Esempio n. 1
0
def process_drive_links(update, context):
    if not update.message:
        return

    folder_ids = parse_entity_for_drive_id(update.message)

    if not folder_ids:
        return
    message = '๐Ÿ“‘ The following files were detected :\n'

    try:
        gd = GoogleDrive(update.effective_user.id)
    except Exception as e:
        update.message.reply_text(
            '๐Ÿ”ธ Please make sure the SA archive has been uploaded and the collection folder has been configured.\n{}'
            .format(e))
        return

    for item in folder_ids:
        try:
            folder_name = gd.get_file_name(item)
        except Exception as e:
            update.message.reply_text(
                '๐Ÿ”ธ Please make sure that the SA archive has been uplaoded and that the SA has permission to access the link.\n{}'
                .format(e))
            return
        message += '     <a href="https://drive.google.com/open?id={}">{}</a>\n'.format(
            item, html.escape(folder_name))
    message += '\n๐Ÿ“‚ Please select the target destination'
    fav_folder_ids = context.user_data.get(udkey_folders, None)

    callback_query_prefix = 'save_to_folder'
    page = 1
    if fav_folder_ids:
        page_data = []
        for item in fav_folder_ids:
            page_data.append({
                'text':
                simplified_path(fav_folder_ids[item]['path']),
                'data':
                '{}'.format(item)
            })
        inline_keyboard_drive_ids = get_inline_keyboard_pagination_data(
            callback_query_prefix,
            page_data,
            page=page,
            max_per_page=10,
        )
    else:
        inline_keyboard_drive_ids = [[
            InlineKeyboardButton(
                text='โš ๏ธ Use /folders to add a favorite folder',
                callback_data='#')
        ]]
    inline_keyboard = inline_keyboard_drive_ids
    update.message.reply_text(
        message,
        parse_mode=ParseMode.HTML,
        disable_web_page_preview=True,
        reply_markup=InlineKeyboardMarkup(inline_keyboard))
Esempio n. 2
0
def save_to_folder_page(update, context):
    callback_query_prefix = 'save_to_folder'

    query = update.callback_query
    match = re.search(r'^save_to_folder_page#(\d+)$', query.data)
    if not match:
        alert_users(context, update.effective_user, 'invalid query data', query.data)
        query.answer(text='ๅ“Ÿๅ‘ต', show_alert=True)
        return
    page = int(match.group(1))
    fav_folder_ids = context.user_data.get(udkey_folders, None)

    if fav_folder_ids:
        page_data = []
        for item in fav_folder_ids:
            page_data.append({'text': simplified_path(fav_folder_ids[item]['path']), 'data': '{}'.format(item)})
        inline_keyboard_drive_ids = get_inline_keyboard_pagination_data(
            callback_query_prefix,
            page_data,
            page=page,
            max_per_page=10,
        )
    else:
        inline_keyboard_drive_ids = [[InlineKeyboardButton(text='ๆœชๆ”ถ่—ๅ›ข้˜Ÿ็›˜๏ผŒๅ…ˆๆ”ถ่—ๆ‰่ƒฝๆ“ไฝœใ€‚', callback_data='#')]]
    inline_keyboard = inline_keyboard_drive_ids
    query.message.edit_reply_markup(reply_markup=InlineKeyboardMarkup(inline_keyboard))
def set_folders(update, context):
    if update.effective_user.id in config.USER_IDS\
            or (context.bot_data.get('vip', None) and update.effective_user.id in context.bot_data['vip']):
        max_folders = default_max_folders_vip
    else:
        max_folders = default_max_folders

    callback_query_prefix = 'choose_folder'
    query = update.callback_query
    page = 1
    if not query:
        rsp = update.message.reply_text('Get team disk...')
        rsp.done.wait(timeout=60)
        message_id = rsp.result().message_id
    else:
        if query.message.chat_id < 0 and \
                (not query.message.reply_to_message or
                 query.from_user.id != query.message.reply_to_message.from_user.id):
            alert_users(context, update.effective_user, 'invalid caller',
                        query.data)
            query.answer(text='Yo ha', show_alert=True)
            return
        message_id = query.message.message_id
    folder_ids = context.user_data.get(udkey_folders, None)

    if folder_ids:
        folder_ids_len = len(folder_ids)
        page_data = []
        for item in folder_ids:
            page_data.append({
                'text': simplified_path(folder_ids[item]['path']),
                'data': '{}'.format(item)
            })
        inline_keyboard_drive_ids = get_inline_keyboard_pagination_data(
            callback_query_prefix + '_replace',
            page_data,
            page=page,
            max_per_page=10,
        )
    else:
        inline_keyboard_drive_ids = []
        folder_ids_len = 0
    if folder_ids_len < max_folders:
        inline_keyboard_drive_ids.insert(0, [
            InlineKeyboardButton('Add a favorite folder',
                                 callback_data=callback_query_prefix)
        ])
    inline_keyboard_drive_ids.append(
        [InlineKeyboardButton('carry out', callback_data='cancel')])

    context.bot.edit_message_text(
        chat_id=update.effective_chat.id,
        message_id=message_id,
        text='Of {}/{}Favorite Folder๏ผš'.format(
            folder_ids_len,
            max_folders,
        ),
        reply_markup=InlineKeyboardMarkup(inline_keyboard_drive_ids))
Esempio n. 4
0
def process_drive_links(update, context):
    if not update.message:
        return
    # if update.message.chat.id not in config.USER_IDS:
    #     logger.debug('Ignore message from {0}.'.format(update.message.chat.id))
    #     return

    folder_ids = parse_entity_for_drive_id(update.message)

    if not folder_ids:
        return
    message = 'ๆฃ€ๆต‹ๅˆฐไปฅไธ‹ๆ–‡ไปถ๏ผš'

    try:
        gd = GoogleDrive(update.effective_user.id)
    except Exception as e:
        update.message.reply_text('่ฏท็กฎ่ฎคSAๅทฒๆญฃ็กฎไธŠไผ ๏ผŒๅนถ้…็ฝฎๆ”ถ่—ๆ–‡ไปถๅคนใ€‚\n{}'.format(e))
        return

    for item in folder_ids:
        try:
            folder_name = gd.get_file_name(item)
        except Exception as e:
            update.message.reply_text(
                '่ฏท็กฎ่ฎคSAๅทฒๆญฃ็กฎไธŠไผ ๏ผŒๅนถ็กฎ่ฎคSAๆœ‰่ฎฟ้—ฎ่ฏฅ้“พๆŽฅๆƒ้™ใ€‚\n{}'.format(e))
            return
        message += '<a href="https://drive.google.com/open?id={}">{}</a>\n'.format(
            item, html.escape(folder_name))
    message += '\n่ฏท้€‰ๆ‹ฉ็›ฎๆ ‡ๅ›ข้˜Ÿ็›˜'
    fav_folder_ids = context.user_data.get(udkey_folders, None)

    callback_query_prefix = 'save_to_folder'
    page = 1
    if fav_folder_ids:
        page_data = []
        for item in fav_folder_ids:
            page_data.append({
                'text':
                simplified_path(fav_folder_ids[item]['path']),
                'data':
                '{}'.format(item)
            })
        inline_keyboard_drive_ids = get_inline_keyboard_pagination_data(
            callback_query_prefix,
            page_data,
            page=page,
            max_per_page=10,
        )
    else:
        inline_keyboard_drive_ids = [[
            InlineKeyboardButton(text='ๆœชๆ”ถ่—ๅ›ข้˜Ÿ็›˜๏ผŒๅ…ˆๆ”ถ่—ๆ‰่ƒฝๆ“ไฝœใ€‚', callback_data='#')
        ]]
    inline_keyboard = inline_keyboard_drive_ids
    update.message.reply_text(
        message,
        parse_mode=ParseMode.HTML,
        reply_markup=InlineKeyboardMarkup(inline_keyboard))
Esempio n. 5
0
def set_folders(update, context):
    if update.effective_user.id in config.USER_IDS or update.effective_user.id in context.bot_data[
            'vip']:
        max_folders = default_max_folders_vip
    else:
        max_folders = default_max_folders

    callback_query_prefix = 'choose_folder'
    query = update.callback_query
    page = 1
    if not query:
        rsp = update.message.reply_text('่Žทๅ–ๅ›ข้˜Ÿ็›˜...')
        rsp.done.wait(timeout=60)
        message_id = rsp.result().message_id
    else:
        message_id = query.message.message_id
    folder_ids = context.user_data.get(udkey_folders, None)

    if folder_ids:
        folder_ids_len = len(folder_ids)
        page_data = []
        for item in folder_ids:
            page_data.append({
                'text': simplified_path(folder_ids[item]['path']),
                'data': '{}'.format(item)
            })
        inline_keyboard_drive_ids = get_inline_keyboard_pagination_data(
            callback_query_prefix + '_replace',
            page_data,
            page=page,
            max_per_page=10,
        )
    else:
        inline_keyboard_drive_ids = []
        folder_ids_len = 0
    if folder_ids_len < max_folders:
        inline_keyboard_drive_ids.insert(0, [
            InlineKeyboardButton('ๆ–ฐๅขžไธ€ไธชๆ”ถ่—ๆ–‡ไปถๅคน',
                                 callback_data=callback_query_prefix)
        ])
    inline_keyboard_drive_ids.append(
        [InlineKeyboardButton('ๅฎŒๆˆ', callback_data='cancel')])

    for item in inline_keyboard_drive_ids:
        logger.debug(str(item[0].text) + str(item[0].callback_data))
    context.bot.edit_message_text(
        chat_id=update.effective_chat.id,
        message_id=message_id,
        text='ๅ…ฑ{}/{}ๆ”ถ่—ๆ–‡ไปถๅคน๏ผš'.format(
            folder_ids_len,
            max_folders,
        ),
        reply_markup=InlineKeyboardMarkup(inline_keyboard_drive_ids))
Esempio n. 6
0
def save_to_folder_page(update, context):
    callback_query_prefix = 'save_to_folder'

    query = update.callback_query
    if query.message.chat_id < 0 and \
            (not query.message.reply_to_message or
             query.from_user.id != query.message.reply_to_message.from_user.id):
        alert_users(context, update.effective_user, 'invalid caller',
                    query.data)
        query.answer(text='Yo ha', show_alert=True)
        return
    match = re.search(r'^save_to_folder_page#(\d+)$', query.data)
    if not match:
        alert_users(context, update.effective_user, 'invalid query data',
                    query.data)
        query.answer(text='Yo ha', show_alert=True)
        return
    page = int(match.group(1))
    fav_folder_ids = context.user_data.get(udkey_folders, None)

    if fav_folder_ids:
        page_data = []
        for item in fav_folder_ids:
            page_data.append({
                'text':
                simplified_path(fav_folder_ids[item]['path']),
                'data':
                '{}'.format(item)
            })
        inline_keyboard_drive_ids = get_inline_keyboard_pagination_data(
            callback_query_prefix,
            page_data,
            page=page,
            max_per_page=10,
        )
    else:
        inline_keyboard_drive_ids = [[
            InlineKeyboardButton(
                text=
                'If the team disk is not saved, please save it before operation.',
                callback_data='#')
        ]]
    inline_keyboard = inline_keyboard_drive_ids
    query.message.edit_reply_markup(
        reply_markup=InlineKeyboardMarkup(inline_keyboard))
Esempio n. 7
0
def process_drive_links(update, context):
    if not update.message:
        return

    folder_ids = parse_entity_for_drive_id(update.message)

    if not folder_ids:
        return
    message = '๐Ÿ“‘ แด€ลžแด€ฤžษชแด…แด€แด‹ษช แด…แด๊œฑสแด€สŸแด€ส€ แด€สŸษขษชสŸแด€ษดแด…ษช :\n'

    try:
        gd = GoogleDrive(update.effective_user.id)
    except Exception as e:
        update.message.reply_text(
            '๐Ÿ”ธ ๐•ทรผ๐–™๐–‹๐–Š๐–“ ๐•พ๐•ฌ ๐–žรผ๐–๐–‘๐–Š๐–“๐–‰๐–ŽฤŸ๐–Ž๐–“๐–‰๐–Š๐–“ ๐–›๐–Š ๐•พ๐•ฌ"๐–“ฤฑ๐–“ ๐–‡๐–†ฤŸ๐–‘๐–†๐–“๐–™ฤฑ๐–ž๐–† ๐–Š๐–—๐–ŽลŸ๐–Ž๐–’ ๐–Ž๐–Ÿ๐–“๐–Ž๐–“๐–Š ๐–˜๐–†๐–๐–Ž๐–• ๐–”๐–‘๐–‰๐–šฤŸ๐–š๐–“๐–‰๐–†๐–“ ๐–Š๐–’๐–Ž๐–“ ๐–”๐–‘๐–š๐–“..\n{}'
            .format(e))
        return

    for item in folder_ids:
        try:
            folder_name = gd.get_file_name(item)
        except Exception as e:
            update.message.reply_text(
                '๐Ÿ”ธ ๐•ทรผ๐–™๐–‹๐–Š๐–“ ๐•พ๐•ฌ ๐–žรผ๐–๐–‘๐–Š๐–“๐–‰๐–ŽฤŸ๐–Ž๐–“๐–‰๐–Š๐–“ ๐–›๐–Š ๐•พ๐•ฌ"๐–“ฤฑ๐–“ ๐–‡๐–†ฤŸ๐–‘๐–†๐–“๐–™ฤฑ๐–ž๐–† ๐–Š๐–—๐–ŽลŸ๐–Ž๐–’ ๐–Ž๐–Ÿ๐–“๐–Ž๐–“๐–Š ๐–˜๐–†๐–๐–Ž๐–• ๐–”๐–‘๐–‰๐–šฤŸ๐–š๐–“๐–‰๐–†๐–“ ๐–Š๐–’๐–Ž๐–“ ๐–”๐–‘๐–š๐–“..\n{}'
                .format(e))
            return
        message += '     <a href="https://drive.google.com/open?id={}">{}</a>\n'.format(
            item, html.escape(folder_name))
    message += '\n๐Ÿ“‚ ๊ˆรผีงฦ’าฝีฒ ีฐาฝีชาฝฦ’ ีฐาฝีชาฝฦ’ ส‚าฝรงรฌีฒ'
    fav_folder_ids = context.user_data.get(udkey_folders, None)

    callback_query_prefix = 'save_to_folder'
    page = 1
    if fav_folder_ids:
        page_data = []
        for item in fav_folder_ids:
            page_data.append({
                'text':
                simplified_path(fav_folder_ids[item]['path']),
                'data':
                '{}'.format(item)
            })
        inline_keyboard_drive_ids = get_inline_keyboard_pagination_data(
            callback_query_prefix,
            page_data,
            page=page,
            max_per_page=10,
        )
    else:
        inline_keyboard_drive_ids = [[
            InlineKeyboardButton(
                text=
                'โš ๏ธ ๐—ณ๐—ฎ๐˜ƒ๐—ผ๐—ฟ๐—ถ ๐—ธ๐—น๐—ฎ๐˜€รถ๐—ฟ ๐—ฒ๐—ธ๐—น๐—ฒ๐—บ๐—ฒ๐—ธ ๐—ถรง๐—ถ๐—ป /folders [ฬ…ฬฒk][ฬ…ฬฒu][ฬ…ฬฒl][ฬ…ฬฒl][ฬ…ฬฒa][ฬ…ฬฒn]',
                callback_data='#')
        ]]
    inline_keyboard = inline_keyboard_drive_ids
    update.message.reply_text(
        message,
        parse_mode=ParseMode.HTML,
        disable_web_page_preview=True,
        reply_markup=InlineKeyboardMarkup(inline_keyboard))