Exemplo n.º 1
0
async def _token(client, message):
    token = message.text.split()[-1]
    WORD = len(token)
    if WORD == 62 and token[1] == "/":
        creds = None
        global flow
        if flow:
            try:
                user_id = message.from_user.id
                sent_message = await message.reply_text(
                    "🕵️**Checking received code...**", quote=True)
                creds = flow.step2_exchange(message.text)
                gDriveDB._set(user_id, creds)
                LOGGER.info(f'AuthSuccess: {user_id}')
                await sent_message.edit(Messages.AUTH_SUCCESSFULLY)
                flow = None
            except FlowExchangeError:
                await sent_message.edit(Messages.INVALID_AUTH_CODE)
            except Exception as e:
                await sent_message.edit(f"**ERROR:** ```{e}```")
        else:
            await message.reply_text(Messages.FLOW_IS_NONE, quote=True)
async def _auth(client, message):
    user_id = message.from_user.id
    creds = gDriveDB.search(user_id)
    if creds is not None:
        creds.refresh(Http())
        gDriveDB._set(user_id, creds)
        await message.reply_text(Messages.ALREADY_AUTH, quote=True)
    else:
        global flow
        try:
            flow = OAuth2WebServerFlow(G_DRIVE_CLIENT_ID,
                                       G_DRIVE_CLIENT_SECRET,
                                       OAUTH_SCOPE,
                                       redirect_uri=REDIRECT_URI)
            auth_url = flow.step1_get_authorize_url()
            LOGGER.info(f'AuthURL:{user_id}')
            await message.reply_text(
                text=Messages.AUTH_TEXT.format(auth_url),
                quote=True,
                reply_markup=InlineKeyboardMarkup(
                    [[InlineKeyboardButton("Authorization URL",
                                           url=auth_url)]]))
        except Exception as e:
            await message.reply_text(f"**ERROR:** ```{e}```", quote=True)