def rendered(user): response = get_api_return('library', user) msg = u'' if response['code'] == 200: try: books = response['content'] for book in books: detail = u'\n%s\n%s\n借书时间:%s\n到期时间:%s' % ( book['author'], book['place'], book['render_date'], book['due_date']) if book['renew_time'] == u'0': msg += u'<a href="%s/renew/%s/%s">《%s》</a>%s' % ( LOCAL, user.openid, book['barcode'], book['title'], detail) else: msg += u'《%s》%s\n续借次数:%s' % (book['title'], detail, book['renew_time']) msg += u'\n\n' if not msg: msg = u'没有在图书馆借书哦' else: msg += u'如果要续借的话请戳书名' return msg.strip() except: return u'=。= 出了点故障,不如待会再试试吧' else: return response['content']
def srtp(db, user): response = get_api_return("srtp", user) if response["code"] == 200: srtp = response["content"] try: overview = db.query(SRTPO).filter(SRTPO.openid == user.openid).one() overview.total = srtp[0]["total"] overview.score = srtp[0]["score"] except NoResultFound: db.add(SRTPO(openid=user.openid, total=srtp[0]["total"], score=srtp[0]["score"])) items = db.query(SRTPD).filter(SRTPD.openid == user.openid).all() for item in items: db.delete(item) for item in srtp[1:]: db.add( SRTPD( openid=user.openid, project=item["project"], department=item["department"], date=item["date"], project_type=item["type"], total_credit=item["total credit"], credit=item["credit"], proportion=item["proportion"], ) ) try: db.commit() return u'<a href="%s/srtp/%s">更新好啦,点我查看</a>' % (LOCAL, user.openid) except: db.rollback() return u"T T 出了点小问题" else: return response["content"]
def gpa(db, user): response = get_api_return('gpa', user) if response['code'] == 200: gpa = response['content'] try: overview = db.query(GPAO).filter(GPAO.openid == user.openid).one() overview.gpa = gpa[0]['gpa'] overview.before_revamp = gpa[0]['gpa without revamp'] overview.calc_time = gpa[0]['calculate time'] except NoResultFound: db.add(GPAO(openid=user.openid, gpa=gpa[0]['gpa'], before_revamp=gpa[0]['gpa without revamp'], calc_time=gpa[0]['calculate time'])) items = db.query(GPAD).filter(GPAD.openid == user.openid).all() for item in items: db.delete(item) for item in gpa[1:]: db.add(GPAD(openid=user.openid, course=item['name'], credit=item['credit'], semester=item['semester'], score=item['score'], score_type=item['type'], extra=item['extra'])) try: db.commit() return u'<a href="%s/gpa/%s">更新好啦,点我查看</a>' % ( LOCAL, user.openid) except: db.rollback() return u'T T 出了点小问题' else: return response['content']
def card(user): response = get_api_return('card', user) if response['code'] == 200: ret = response['content'] return u'一卡通余额:%s' % ret['left'] else: return response['content']
def schoolbus(user): response = get_api_return('schoolbus', user) daymap = { 'Mon': u'周一', 'Tue': u'周二', 'Wed': u'周三', 'Thu': u'周四', 'Fri': u'周五', 'Sat': u'周六', 'Sun': u'周日' } if response['code'] == 200: if today() in ['Sat', 'Sun']: ret = response['content']['weekend'] else: ret = response['content']['weekday'] msg = u'Tips:\n今天%s\n到地铁站时,乘车途中只上不下。到九龙湖时,乘车途中只下不上\n' % daymap[today()] msg += u'出九龙湖路线:\n校内停车场-->材料学院、图书馆-->文学院-->西门\n-->橘园-->行政楼-->电工电子\n-->梅园-->教八-->北门-->地铁停靠站' msg += u'\n前往地铁站:\n' for m in ret[u'前往地铁站']: msg += u'[%s] - %s\n' % (m['time'], m['bus']) msg += u'\n返回九龙湖:\n' for m in ret[u'返回九龙湖']: msg += u'[%s] - %s\n' % (m['time'], m['bus']) return msg[:-1] else: return response['content']
def zhu_query(user): ret = get_api_return('zhu_query', user) msg = u'' if ret['code'] == 200: content_get = ret['content_get'] content_apply = ret['content_apply'] msg += u'正在申请助学金:\n' for item in content_apply: msg += u'> %s\n' % item['name'] msg += u'申请日期:%s\n' % item['apply_time'] msg += u'状态:%s\n' % item['state'] if not content_get: msg += u'没有申请助学金T_T\n' msg += u'\n' msg += u'已获得助学金:\n' for item in content_get: msg += u'> %s\n' % item['name'] msg += u'学期:%s\n' % item['apply_time'] msg += u'金额:%s\n' % item['money'] if not content_get: msg += u'没有获得助学金T_T\n' return msg elif ret['code'] == 599: return u"正在获取最新数据,再点一次就有啦!" else: return ret['content']
def srtp(db, user): response = get_api_return('srtp', user) if response['code'] == 200: srtp = response['content'] try: overview = db.query(SRTPO).filter(SRTPO.openid == user.openid).one() overview.total = srtp[0]['total'] overview.score = srtp[0]['score'] except NoResultFound: db.add(SRTPO(openid=user.openid, total=srtp[0]['total'], score=srtp[0]['score'])) items = db.query(SRTPD).filter(SRTPD.openid == user.openid).all() for item in items: db.delete(item) for item in srtp[1:]: db.add(SRTPD(openid=user.openid, project=item['project'], department=item['department'], date=item['date'], project_type=item['type'], total_credit=item['total credit'], credit=item['credit'], proportion=item['proportion'])) try: db.commit() return u'<a href="%s/srtp/%s">更新好啦,点我查看</a>' % ( LOCAL, user.openid) except: db.rollback() return u'T T 出了点小问题' else: return response['content']
def card(user): response = get_api_return("card", user) if response["code"] == 200: ret = response["content"] return u"一卡通余额:%s" % ret["left"] else: return response["content"]
def rendered(user): response = get_api_return("library", user) msg = u"" if response["code"] == 200: try: books = response["content"] for book in books: detail = u"\n%s\n%s\n借书时间:%s\n到期时间:%s" % ( book["author"], book["place"], book["render_date"], book["due_date"], ) if book["renew_time"] == u"0": msg += u'<a href="%s/renew/%s/%s">《%s》</a>%s' % ( LOCAL, user.openid, book["barcode"], book["title"], detail, ) else: msg += u"《%s》%s\n续借次数:%s" % (book["title"], detail, book["renew_time"]) msg += u"\n\n" if not msg: msg = u"没有在图书馆借书哦" else: msg += u"如果要续借的话请戳书名" return msg.strip() except: return u"=。= 出了点故障,不如待会再试试吧" else: return response["content"]
def pe_counts(user): msg = u'' response = get_api_return('pe', user) if response['code'] == 200: msg += u'当前跑操次数 %s 次' % response['content'] msg += u'\n您的跑操次数击败了%s%%的人' % response['rank'] msg += u'\n<a href="%s/pedetail/%s">跑操明细</a>' % (LOCAL, user.openid) else: msg += response['content'] if ismorning(): response = get_api_return('pc', user) if response['code'] == 201: msg += u'\n\n0.0, 早起有益健康,小猴正在获取跑操情报,等会再试试' else: msg += u'\n\n小猴猜测:' + response['content'] msg += u'\n输入[预约]预约场馆' msg += u'\n输入[体测]查看体测成绩' return msg
def get (self,openid) : user = self.db.query(User).filter(User.openid == openid).one() response=get_api_return('pedetail',user) if response['code'] == 200: detail=response['content'] self.render('pe.html', detail=detail) else: self.write(TEMPLATE.format(content=u'T T 出了点小问题')) self.finish()
def nic(user): response = get_api_return('nic', user) if response['code'] == 200: ret = response['content'] return u'卡钱包余额:%s\n流量使用情况:\n web[%s]:%s' % (\ ret['left'], ret['web']['state'], ret['web']['used']) elif response['code'] == 599: return u"正在获取最新数据,再点一次就有啦!" else: return response['content']
def lecture(user): response = get_api_return('lecture', user) if response['code'] == 200: ret = response['content'] msg = u"" for d in ret['detial']: msg += u"%s\n%s\n\n" % (d['date'], d['place']) msg += u'当前人文讲座次数 %s 次' % ret['count'] return msg else: return response['content']
def get(self, openid): user = self.db.query(User).filter(User.openid == openid).one() response = get_api_return('pedetail', user) if response['code'] == 200: detail = response['content'] self.render('pe.html', detail=detail) else: self.write(TEMPLATE.format(content=u'T T 出了点小问题')) self.finish()
def nic(user): response = get_api_return('nic', user) if response['code'] == 200: ret = response['content'] return u'卡钱包余额:%s\n流量使用情况:\n brasa[%s]:%s\n brasb[%s]:%s\n web[%s]:%s' % (\ ret['left'], ret['a']['state'], ret['a']['used'], ret['b']['state'], ret['b']['used'], ret['web']['state'], ret['web']['used']) else: return response['content']
def lecture(user): response = get_api_return("lecture", user) if response["code"] == 200: ret = response["content"] msg = u"" for d in ret["detial"]: msg += u"%s\n%s\n\n" % (d["date"], d["place"]) msg += u"当前人文讲座次数 %s 次" % ret["count"] return msg else: return response["content"]
def schoolnumber(user): response = get_api_return('user', user) if response['code'] == 200: content = response['content']['schoolnum'] if content != '00000000': msg = content else: msg = u'暂时没有查到学号哦~' return msg elif response['code'] == 599: return u"正在获取最新数据,再点一次就有啦!" else: return response['content']
def nic(user): response = get_api_return("nic", user) if response["code"] == 200: ret = response["content"] return u"卡钱包余额:%s\n流量使用情况:\n brasa[%s]:%s\n brasb[%s]:%s\n web[%s]:%s" % ( ret["left"], ret["a"]["state"], ret["a"]["used"], ret["b"]["state"], ret["b"]["used"], ret["web"]["state"], ret["web"]["used"], ) else: return response["content"]
def card(user): response = get_api_return('card', user) if response['code'] == 200: ret = response['content'] msg = u'一卡通余额:%s' % ret['left'] msg += u'\n\n<a href="%s/card/%s">一卡通交易明细</a>' % (LOCAL, user.openid) msg += u"\n\n<a href='http://58.192.115.47:8088/wechat-web/login/dologin.html'>点我进行充值</a>" msg += u"\n微信充值后需到食堂pos机上刷卡写卡,若失败,则请尝试在圈存机上转账少数钱写卡(此功能不由小猴开发,近期由于网络原因可能不太稳定~)" msg += u"\n<a href='http://url.cn/41x4fjh'>更多问题请戳我</a>" return msg elif response['code'] == 599: msg = u"\n\n<a href='http://58.192.115.47:8088/wechat-web/login/dologin.html'>点我进行充值</a>" return u"正在获取最新数据,再点一次就有啦!%s" % msg else: return response['content']
def jwc(user): response = get_api_return('jwc', user) if response['code'] == 200: msg = u'最新动态:\n' ret = response['content'] for m in ret[u'最新动态']: msg += u'● <a href="%s">%s - %s</a>\n' % ( m['href'], m['title'], m['date'][2:].replace('-', '')) #msg += u'\n\n实践教学:\n' #for m in ret[u'实践教学']: # msg += u'● <a href="%s">%s - %s</a>\n' % (m['href'], m['title'], m['date'][2:].replace('-','')) return msg[:-1] elif response['code'] == 201: return u'小猴正在获取教务信息,等会再试试' else: return response['content']
def searchlib(user, text): data = {'book': text.strip().encode('utf-8')} if len(data['book']) < 2: return u'至少要输入两个关键字' response = get_api_return('search', user, data) if response['code'] == 200: ret = response['content'] msg = u'搜索结果:\n' for m in ret: msg += u'●(%s)%s[%s/%s] - %s\n' % ( m['index'], m['name'], m['left'], m['all'], m['author']) msg += u'\n大致藏书范围\nA~E: 中图1(二楼)\nF~G: 中图2(二楼)\nH: 中图3(二楼)\nI~J: 友丰(五楼)\ \nK~TF: 中图3(一楼)\nTG~TP311: 中图4(二楼)\nTP311~Z: 中图4(一楼)\n外文图书: 外图(四楼)' return msg else: return response['content']
def get(self, openid, barcode): try: user = self.db.query(User).filter(User.openid == openid).one() data = { 'barcode': barcode } response = get_api_return('renew', user, data) if response['code'] == 200: if response['content'] == 'success': self.write(TEMPLATE.format(content='续借成功')) else: self.write(TEMPLATE.format(content='现在不是可以续借的时间哦')) else: self.write(response['content']) except NoResultFound: self.write('access verification fail') finally: self.finish()
def jiang_list(user): ret = get_api_return('jiang_list', user) msg = u'' if ret['code'] == 200: content = ret['content'] msg += u'可申请奖学金:\n' for item in content: # msg += u'> %s <a href="%s/jiang_apply/%s">申请</a>\n' % (item['name'],LOCAL,item['id']) msg += u'> %s\n' % item['name'] msg += u' 开始时间:%s\n' % item['start_time'] msg += u' 结束时间:%s\n' % item['end_time'] if not content: return u'暂时没有奖学金可申请' return msg elif ret['code'] == 599: return u"正在获取最新数据,再点一次就有啦!" else: return ret['content']
def lecture(user): response = get_api_return('lecture', user) if response['code'] == 200: ret = response['content'] msg = u"" for d in ret['detial']: msg += u"%s\n%s\n\n" % (d['date'], d['place']) msg += u'当前人文讲座次数 %s 次' % ret['count'] msg += u'\n<a href="http://www.heraldstudio.com/wechat2/lecturequery">点我查询讲座信息~</a>' return msg elif response['code'] == 599: msg = u"正在获取最新数据,再点一次就有啦!" msg += u'\n<a href="http://www.heraldstudio.com/wechat2/lecturequery">点我查询讲座信息~</a>' return msg else: msg = response['content'] msg += u'\n<a href="http://www.heraldstudio.com/wechat2/lecturequery">点我查询讲座信息~</a>' return msg
def exam(user): response = get_api_return('exam', user) if response['code'] == 200: msg = '' content = response['content'] for item in content: msg += u'> %s\n' % item['course'] msg += u'%s %s分钟\n' % (item['teacher'], item['hour']) msg += u'%s\n' % item['location'] msg += u'%s\n' % item['time'] msg += u'\n' if not msg: msg = u'没有查询到考试安排哦' return msg elif response['code'] == 599: return u"正在获取最新数据,再点一次就有啦!" else: return response['content']
def curriculum(db, user): response = get_api_return("curriculum", user) if response["code"] == 200: courses = db.query(Course).filter(Course.openid == user.openid).all() curriculum = response["content"] for course in courses: db.delete(course) for day, items in curriculum.items(): for item in items: db.add(Course(openid=user.openid, course=item[0], period=item[1], place=item[2], day=day)) try: db.commit() return u'<a href="%s/curriculum/%s">更新好啦,点我查看</a>' % (LOCAL, user.openid) except: db.rollback() return u"T T 出了点小问题" else: return response["content"]
def get(self, openid, barcode): try: user = self.db.query(User).filter(User.openid == openid).one() data = {'barcode': barcode} response = get_api_return('renew', user, data) if response['code'] == 200: if response['content'] == 'success': self.write(TEMPLATE.format(content='续借成功')) else: self.write(TEMPLATE.format(content='现在不是可以续借的时间哦')) else: self.write(response['content']) except NoResultFound: self.write('access verification fail') finally: self.finish()
def phylab(db, user): response = get_api_return('phylab', user) msg = u'' if response['code'] == 200: content = response['content'] for labType in content: if labType != '': msg += u'%s:\n' % labType for lab in labType: msg += u'名称:%s\n' % lab['name'] msg += u'老师:%s\n' % lab['Teacher'] msg += u'时间:%s %s\n' % (lab['Date'], lab['Day']) msg += u'地点:%s\n' % lab['Address'] msg += u'\n\n' if not msg: msg = u'没有物理实验哦' return msg else: return response['content']
def phylab(db, user): response = get_api_return("phylab", user) msg = u"" if response["code"] == 200: content = response["content"] for labType in content: if labType != "": msg += u"%s:\n" % labType for lab in labType: msg += u"名称:%s\n" % lab["name"] msg += u"老师:%s\n" % lab["Teacher"] msg += u"时间:%s %s\n" % (lab["Date"], lab["Day"]) msg += u"地点:%s\n" % lab["Address"] msg += u"\n\n" if not msg: msg = u"没有物理实验哦" return msg else: return response["content"]
def jiang_query(user): ret = get_api_return('jiang_query', user) msg = u'' if ret['code'] == 200: content = ret['content'] content_apply = ret['content'] msg += u'已申请奖学金:\n' for item in content: msg += u'> %s\n' % item['name'] msg += u'学期:%s\n' % item['term'] msg += u'金额:%s\n' % item['money'] msg += u'状态:%s\n' % item['state'] if not content: msg += u'没有申请奖学金T_T\n' return msg elif ret['code'] == 599: return u"正在获取最新数据,再点一次就有啦!" else: return ret['content']
def room(user): response = get_api_return('room', user) msg = u'' if response['code'] == 200: content = response['content'] if u'园' in content['room']: msg += content['room'] msg += content['bed'] else: msg += u'宿舍信息可能还没公布~' return msg if not msg: return u'暂且没有查到数据 T_T' return msg elif response['code'] == 599: return u"正在获取最新数据,再发一次就有啦" elif response['code'] == 408: return u"正在获取最新数据,再发一次就有啦!" else: return response['content']
def gpa(db, user): response = get_api_return("gpa", user) if response["code"] == 200: gpa = response["content"] try: overview = db.query(GPAO).filter(GPAO.openid == user.openid).one() overview.gpa = gpa[0]["gpa"] overview.before_revamp = gpa[0]["gpa without revamp"] overview.calc_time = gpa[0]["calculate time"] except NoResultFound: db.add( GPAO( openid=user.openid, gpa=gpa[0]["gpa"], before_revamp=gpa[0]["gpa without revamp"], calc_time=gpa[0]["calculate time"], ) ) items = db.query(GPAD).filter(GPAD.openid == user.openid).all() for item in items: db.delete(item) for item in gpa[1:]: db.add( GPAD( openid=user.openid, course=item["name"], credit=item["credit"], semester=item["semester"], score=item["score"], score_type=item["type"], extra=item["extra"], ) ) try: db.commit() return u'<a href="%s/gpa/%s">更新好啦,点我查看</a>' % (LOCAL, user.openid) except: db.rollback() return u"T T 出了点小问题" else: return response["content"]
def zhu_list(user): ret = get_api_return('zhu_list', user) msg = u'' if ret['code'] == 200: content = ret['content'] msg += u'可申请助学金:\n' for item in content: # msg += u'> %s <a href="%s/jiang_apply/%s">申请</a>\n' % (item['name'],LOCAL,item['id']) msg += u'> %s\n' % item['name'] msg += u'创建时间:%s\n' % item['create_time'] msg += u'发放周期: %s\n' % item['fafangzhouqi'] msg += u'评定周期: %s\n' % item['pingdingzhouqi'] msg += u'是否有校外审:%s\n' % item['is_xiaowaishen'] msg += u'是否基金会助学金:%s\n' % item['is_jijinhui'] if not content: return u'暂时没有助学金可申请' return msg elif ret['code'] == 599: return u"正在获取最新数据,再点一次就有啦!" else: return ret['content']
def curriculum(db, user): response = get_api_return('curriculum', user) if response['code'] == 200: courses = db.query(Course).filter(Course.openid == user.openid).all() curriculum = response['content'] for course in courses: db.delete(course) for day, items in curriculum.items(): for item in items: db.add(Course(openid=user.openid, course=item[0], period=item[1], place=item[2], day=day)) try: db.commit() return u'<a href="%s/curriculum/%s">更新好啦,点我查看</a>' % ( LOCAL, user.openid) except: db.rollback() return u'T T 出了点小问题' else: return response['content']
def tice(user): response = get_api_return('tice', user) if response['code'] == 200: msg = '' content = response['content'] msg += u'总成绩: %s\n' % content['score'] msg += u'>身高,体重: %s %s\n' % (content['height'], content['weight']) msg += u'>立定跳远: %s %s\n' % (content['jump']['comment'], content['jump']['value']) msg += u'>坐位体前屈: %s %s\n' % (content['zuoqian']['comment'], content['zuoqian']['value']) msg += u'>50米: %s %s\n' % (content['50meter']['comment'], content['50meter']['value']) msg += u'>1000(800)米: %s %s\n' % (content['1000meter']['comment'], content['1000meter']['value']) msg += u'>肺活量: %s %s\n' % (content['fei']['comment'], content['fei']['value']) msg += u'>仰卧起坐(引体向上): %s %s\n' % (content['up-down']['comment'], content['up-down']['value']) return msg elif response['code'] == 599: return u"正在获取最新数据,再点一次就有啦!" else: return response['content']
def phylab(user): response = get_api_return('phylab', user) msg = u'' if response['code'] == 200: content = response['content'] for labType in content: if content[labType] != '': msg += u'%s:\n' % labType for lab in content[labType]: msg += u'%s\n' % lab['name'] msg += u'%s ' % lab['Teacher'] if not lab['Grade']: msg += u'%s\n' % lab['Address'] msg += u'%s %s\n' % (lab['Date'], lab['Day']) else: msg += u'成绩:%s\n' % lab['Grade'] msg += u'\n\n' if not msg: return u'没有物理实验哦' return msg[:-2] elif response['code'] == 599: return u"正在获取最新数据,再点一次就有啦!" else: return response['content']
def get(self, type, openid): try: db = self.db user = self.db.query(User).filter(User.openid == openid).one() if type == 'srtp': response = get_api_return('srtp', user, timeout=17) if response['code'] == 200: srtp = response['content'] try: overview = db.query(SRTPO).filter( SRTPO.openid == user.openid).one() overview.total = srtp[0]['total'] overview.score = srtp[0]['score'] except NoResultFound: db.add( SRTPO(openid=user.openid, total=srtp[0]['total'], score=srtp[0]['score'])) items = db.query(SRTPD).filter( SRTPD.openid == user.openid).all() for item in items: db.delete(item) for item in srtp[1:]: db.add( SRTPD(openid=user.openid, project=item['project'], department=item['department'], date=item['date'], project_type=item['type'], total_credit=item['total credit'], credit=item['credit'], proportion=item['proportion'])) try: db.commit() self.write(TEMPLATE.format(content=u'更新好啦')) except: db.rollback() self.write(TEMPLATE.format(content=u'T T 出了点小问题')) else: self.write(TEMPLATE.format(content=response['content'])) elif type == 'gpa': response = get_api_return('gpa', user, timeout=30) if response['code'] == 200: gpa = response['content'] try: overview = db.query(GPAO).filter( GPAO.openid == user.openid).one() overview.gpa = gpa[0]['gpa'] overview.before_revamp = gpa[0]['gpa without revamp'] overview.calc_time = gpa[0]['calculate time'] except NoResultFound: db.add( GPAO(openid=user.openid, gpa=gpa[0]['gpa'], before_revamp=gpa[0]['gpa without revamp'], calc_time=gpa[0]['calculate time'])) items = db.query(GPAD).filter( GPAD.openid == user.openid).all() for item in items: db.delete(item) for item in gpa[1:]: db.add( GPAD(openid=user.openid, course=item['name'], credit=item['credit'], semester=item['semester'], score=item['score'], score_type=item['type'], extra=item['extra'])) try: db.commit() self.write(TEMPLATE.format(content=u'更新好啦')) except: db.rollback() self.write(TEMPLATE.format(content=u'T T 出了点小问题')) else: self.write(TEMPLATE.format(content=response['content'])) elif type == 'curriculum': response = get_api_return('curriculum', user, timeout=30) if response['code'] == 200: courses = db.query(Course).filter( Course.openid == user.openid).all() curriculum = response['content'] for course in courses: db.delete(course) for day, items in curriculum.items(): for item in items: db.add( Course(openid=user.openid, course=item[0], period=item[1], place=item[2], day=day)) try: db.commit() mycontent = response['content'] self.write( TEMPLATE.format(content=mycontent)) #u'更新好啦')) except: db.rollback() self.write(TEMPLATE.format(content=u'T T 出了点小问题')) else: self.write(TEMPLATE.format(content=response['content'])) else: self.write(TEMPLATE.format(content=u'T T 出了点小问题???')) except: self.write(TEMPLATE.format(content=u'T T 出了点小问题...')) self.finish()
def pe_counts(user): response = get_api_return('pe', user) if response['code'] == 200: return u'当前跑操次数 %s 次' % response['content'] else: return response['content']
def get(self, type, openid): try: db = self.db user = self.db.query(User).filter(User.openid == openid).one() if type == 'srtp': response = get_api_return('srtp', user, timeout=17) if response['code'] == 200: srtp = response['content'] try: overview = db.query(SRTPO).filter(SRTPO.openid == user.openid).one() overview.total = srtp[0]['total'] overview.score = srtp[0]['score'] except NoResultFound: db.add(SRTPO(openid=user.openid, total=srtp[0]['total'], score=srtp[0]['score'])) items = db.query(SRTPD).filter(SRTPD.openid == user.openid).all() for item in items: db.delete(item) for item in srtp[1:]: db.add(SRTPD(openid=user.openid, project=item['project'], department=item['department'], date=item['date'], project_type=item['type'], total_credit=item['total credit'], credit=item['credit'], proportion=item['proportion'])) try: db.commit() self.write(TEMPLATE.format(content=u'更新好啦')) except: db.rollback() self.write(TEMPLATE.format(content=u'T T 出了点小问题')) else: self.write(TEMPLATE.format(content=response['content'])) elif type == 'gpa': response = get_api_return('gpa', user, timeout=30) if response['code'] == 200: gpa = response['content'] try: overview = db.query(GPAO).filter(GPAO.openid == user.openid).one() overview.gpa = gpa[0]['gpa'] overview.before_revamp = gpa[0]['gpa without revamp'] overview.calc_time = gpa[0]['calculate time'] except NoResultFound: db.add(GPAO(openid=user.openid, gpa=gpa[0]['gpa'], before_revamp=gpa[0]['gpa without revamp'], calc_time=gpa[0]['calculate time'])) items = db.query(GPAD).filter(GPAD.openid == user.openid).all() for item in items: db.delete(item) for item in gpa[1:]: db.add(GPAD(openid=user.openid, course=item['name'], credit=item['credit'], semester=item['semester'], score=item['score'], score_type=item['type'], extra=item['extra'])) try: db.commit() self.write(TEMPLATE.format(content=u'更新好啦')) except: db.rollback() self.write(TEMPLATE.format(content=u'T T 出了点小问题')) else: self.write(TEMPLATE.format(content=response['content'])) elif type == 'curriculum': response = get_api_return('curriculum', user, timeout=30) if response['code'] == 200: courses = db.query(Course).filter(Course.openid == user.openid).all() curriculum = response['content'] for course in courses: db.delete(course) for day, items in curriculum.items(): for item in items: db.add(Course(openid=user.openid, course=item[0], period=item[1], place=item[2], day=day)) try: db.commit() mycontent = response['content'] self.write(TEMPLATE.format(content=mycontent))#u'更新好啦')) except: db.rollback() self.write(TEMPLATE.format(content=u'T T 出了点小问题')) else: self.write(TEMPLATE.format(content=response['content'])) else: self.write(TEMPLATE.format(content=u'T T 出了点小问题???')) except: self.write(TEMPLATE.format(content=u'T T 出了点小问题...')) self.finish()
def pe_counts(user): response = get_api_return("pe", user) if response["code"] == 200: return u"当前跑操次数 %s 次" % response["content"] else: return response["content"]