application.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:acmicpc.cc 作者: MoonHyuk 项目源码 文件源码
def get_user():
    submissions = []
    accepted_submissions = []
    ranking_date = []
    boj_rank = []
    koo_rank = []
    user_dict = []
    user_id = request.args.get("id")
    acc_user_id = is_boj_user(user_id)
    if acc_user_id:
        if not User.query.filter_by(boj_id=acc_user_id).scalar():
            user = User(boj_id=acc_user_id)
            db.session.add(user)
            db.session.commit()
    else:
        return render_template("index.html", id=user_id, err=True)

    user = User.query.filter_by(boj_id=acc_user_id).first()
    if user.update_time is None or (datetime.datetime.utcnow() - user.update_time).seconds > 600:
        updated = False

    else:
        updated = True
        two_weeks_ago = datetime.date.today() - datetime.timedelta(days=14)
        submissions = Submission.query.filter_by(boj_id=acc_user_id).filter(Submission.datetime > two_weeks_ago).all()
        accepted_submissions = AcceptedSubmission.query.filter_by(boj_id=acc_user_id).order_by(
            AcceptedSubmission.datetime).all()
        if Ranking.query.filter_by(boj_id=acc_user_id).scalar():
            ranking_json = Ranking.query.filter_by(boj_id=acc_user_id).first().ranking
            ranking_date = sorted(list(ranking_json.keys()))
            ranking_values = [ranking_json[i] for i in ranking_date]
            boj_rank = [i[0] for i in ranking_values]
            koo_rank = [i[1] for i in ranking_values]

        user_ids = [i.boj_id for i in User.query.order_by(User.update_time).all()][::-1]
        user_dict = OrderedDict()
        for i in user_ids:
            user_dict[i] = None

    return render_template("user.html", user=user, updated=updated, submissions=submissions,
                           accepted_submissions=accepted_submissions, ranking_date=ranking_date,
                           boj_rank=boj_rank, koo_rank=koo_rank, user_ids=json.dumps(user_dict))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号