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))
评论列表
文章目录