judge.py 文件源码

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

项目:vj4 作者: vijos 项目源码 文件源码
def post(self, *, rid: objectid.ObjectId, score: int, message: str=''):
    rdoc = await record.get(rid)
    if rdoc['domain_id'] == self.domain_id:
      self.check_perm(builtin.PERM_REJUDGE)
    else:
      self.check_priv(builtin.PRIV_REJUDGE)
    await record.rejudge(rdoc['_id'], False)
    await record.begin_judge(rid, self.user['_id'], self.user['_id'],
                             constant.record.STATUS_FETCHED)
    update = {'$set': {}, '$push': {}}
    update['$set']['status'] = constant.record.STATUS_ACCEPTED if score == 100 \
                               else constant.record.STATUS_WRONG_ANSWER
    update['$push']['cases'] = {
      'status': update['$set']['status'],
      'score': score,
      'time_ms': 0,
      'memory_kb': 0,
      'judge_text': message,
    }
    await record.next_judge(rid, self.user['_id'], self.user['_id'], **update)
    rdoc = await record.end_judge(rid, self.user['_id'], self.user['_id'],
                                  update['$set']['status'], score, 0, 0)
    await _post_judge(self, rdoc)
    self.json_or_redirect(self.referer_or_main)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号