def login(self, request): """接受登录表单提交的数据,登录后跳转或登录失败后展示错误信息。 :param request: aiohttp.web.Request :return: aiohttp.web.HTTPFound or aiohttp.web.Response """ post = yield from request.post() session = yield from get_session(request) login_id = post.get('login_id', None) password = post.get('password', None) mode = int(post.get('mode', 1)) session['mode'] = mode dbc = DbConnect(localhost, 3306, username, password, db) if login_id and password and dbc.query(login_id): kancolle = KancolleAuth(login_id, password) dbc.update(login_id) dbc.close() del dbc if mode in (1, 2, 3): try: yield from kancolle.get_flash() session['api_token'] = kancolle.api_token session['api_starttime'] = kancolle.api_starttime session['world_ip'] = kancolle.world_ip if mode == 2: return aiohttp.web.HTTPFound('/kcv') elif mode == 3: return aiohttp.web.HTTPFound('/poi') else: return aiohttp.web.HTTPFound('/kancolle') except OOIAuthException as e: context = {'errmsg': e.message, 'mode': mode} return aiohttp_jinja2.render_template( 'form.html', request, context) elif mode == 4: try: osapi_url = yield from kancolle.get_osapi() session['osapi_url'] = osapi_url return aiohttp.web.HTTPFound('/connector') except OOIAuthException as e: context = {'errmsg': e.message, 'mode': mode} return aiohttp_jinja2.render_template( 'form.html', request, context) else: raise aiohttp.web.HTTPBadRequest() else: context = {'errmsg': '请输入完整的有效的ID和密码', 'mode': mode} dbc.close() del dbc return aiohttp_jinja2.render_template('form.html', request, context)
def login(self, request): """接受登录表单提交的数据,登录后跳转或登录失败后展示错误信息。 :param request: aiohttp.web.Request :return: aiohttp.web.HTTPFound or aiohttp.web.Response """ post = yield from request.post() session = yield from get_session(request) login_id = post.get('login_id', None) password = post.get('password', None) mode = int(post.get('mode', 1)) session['mode'] = mode f = open(config.white_list, encoding='utf-8') WhiteList = f.readlines() isre = False for item in WhiteList: if login_id.strip().upper() == item.upper().strip(): isre = True break if isre: if login_id and password: kancolle = KancolleAuth(login_id, password) if mode in (1, 2, 3): try: yield from kancolle.get_flash() session['api_token'] = kancolle.api_token session['api_starttime'] = kancolle.api_starttime session['world_ip'] = kancolle.world_ip if mode == 2: return aiohttp.web.HTTPFound('/kcv') elif mode == 3: return aiohttp.web.HTTPFound('/poi') else: return aiohttp.web.HTTPFound('/kancolle') except OOIAuthException as e: context = {'errmsg': e.message, 'mode': mode} return aiohttp_jinja2.render_template('form.html', request, context) elif mode == 4: try: osapi_url = yield from kancolle.get_osapi() session['osapi_url'] = osapi_url return aiohttp.web.HTTPFound('/connector') except OOIAuthException as e: context = {'errmsg': e.message, 'mode': mode} return aiohttp_jinja2.render_template('form.html', request, context) else: raise aiohttp.web.HTTPBadRequest() else: context = {'errmsg': '请输入完整的登录ID和密码', 'mode': mode} return aiohttp_jinja2.render_template('form.html', request, context) else: context = {'errmsg': 'ID不在白名单', 'mode': mode} return aiohttp_jinja2.render_template('form.html', request, context)
def login(self, request): """接受登录表单提交的数据,登录后跳转或登录失败后展示错误信息。 :param request: aiohttp.web.Request :return: aiohttp.web.HTTPFound or aiohttp.web.Response """ post = yield from request.post() session = yield from get_session(request) login_id = post.get('login_id', None) password = post.get('password', None) mode = int(post.get('mode', 1)) session['mode'] = mode if login_id and password: kancolle = KancolleAuth(login_id, password) if mode in (1, 2, 3): try: yield from kancolle.get_flash() session['api_token'] = kancolle.api_token session['api_starttime'] = kancolle.api_starttime session['world_ip'] = kancolle.world_ip if mode == 2: return aiohttp.web.HTTPFound('/kcv') elif mode == 3: return aiohttp.web.HTTPFound('/poi') else: return aiohttp.web.HTTPFound('/kancolle') except OOIAuthException as e: context = {'errmsg': e.message, 'mode': mode} return aiohttp_jinja2.render_template('form.html', request, context) elif mode == 4: try: osapi_url = yield from kancolle.get_osapi() session['osapi_url'] = osapi_url return aiohttp.web.HTTPFound('/connector') except OOIAuthException as e: context = {'errmsg': e.message, 'mode': mode} return aiohttp_jinja2.render_template('form.html', request, context) else: raise aiohttp.web.HTTPBadRequest() else: context = {'errmsg': '请输入完整的登录ID和密码', 'mode': mode} return aiohttp_jinja2.render_template('form.html', request, context)
def get_flash(self, request): """获取用户的游戏FLASH地址,返回一个JSON格式的字典。 结果中`status`键值为1时获取成功,`flash_url`键值为游戏FLASH地址;`status`为0时获取失败,`message`键值提供了错误信息。 :param request: aiohttp.web.Request :return: aiohttp.web.Response or aiohttp.web.HTTPBadRequest """ data = yield from request.post() login_id = data.get('login_id', None) password = data.get('password', None) if login_id and password: headers = aiohttp.MultiDict({'Content-Type': 'application/json'}) kancolle = KancolleAuth(login_id, password) try: flash_url = yield from kancolle.get_flash() result = {'status': 1, 'flash_url': flash_url} except OOIAuthException as e: result = {'status': 0, 'message': e.message} return aiohttp.web.Response(body=json.dumps(result).encode(), headers=headers) else: return aiohttp.web.HTTPBadRequest()