Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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()
Пример #5
0
    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()