Beispiel #1
0
def on_release_selected(update: Update, context: CallbackContext):
    logger.info('%d: user selected the release from the keyboard', update.effective_user.id)

    release_match = re.search(r'^(\d+)\.\s.*', update.message.text)
    if not release_match:
        # user changed his query
        return search_release(update, WAITING_RELEASE)
    
    release_id = release_match.group(1)
    release = db.release_by_id(release_id, as_dict=True)
    
    forum_url = 'http://forum.tntvillage.scambioetico.org/index.php?showtopic={}'.format(release['topic'])
    release_string = Strings.RELEASE.format(
        titolo=utils.html_escape(release['titolo']),
        descrizione=utils.html_escape(release['descrizione']),
        dimensione=utils.human_readable_size(release['dimensione']),
        autore=utils.html_escape(release['autore']),
        categoria=CATEGORIE[release['categoria']],
        data=release['data'],
        magnet='magnet:?xt=urn:btih:{}'.format(release['hash'])
        # forum_url=forum_url,
        # webarchive_url='https://web.archive.org/web/{}'.format(forum_url)
    )
    
    reply_markup = InlineKeyboard.forum_urls(forum_url, 'https://web.archive.org/web/{}'.format(forum_url))
    update.message.reply_html(release_string, disable_web_page_preview=True, reply_markup=reply_markup)

    return WAITING_RELEASE
Beispiel #2
0
def on_collapse_button(update: Update, context: CallbackContext):
    logger.info('%d: collapse button', update.effective_user.id)

    release_id = context.match[1]
    release = db.release_by_id(release_id)

    update.callback_query.edit_message_text(
        Strings.RELEASE.format(**release),
        disable_web_page_preview=True,
        reply_markup=InlineKeyboard.release_info(release_id,
                                                 release['webarchive_url']),
        parse_mode=ParseMode.HTML)
    update.callback_query.answer(Strings.CB_ANSWER_COLLAPSED)
Beispiel #3
0
def on_expand_magnet_button(update: Update, context: CallbackContext):
    logger.info('%d: magnet with trackers button', update.effective_user.id)

    release_id = context.match[1]
    release = db.release_by_id(release_id)

    reply_markup = InlineKeyboard.collapse_magnet_button(release_id)
    update.callback_query.edit_message_text(MAGNET_TEXT.format(
        hash=release['hash'], trackers_list='&tr='.join(TRACKERS)),
                                            disable_web_page_preview=True,
                                            reply_markup=reply_markup,
                                            parse_mode=ParseMode.HTML)
    update.callback_query.answer(Strings.CB_ANSWER_TRACKERS)
Beispiel #4
0
def on_release_selected(update: Update, _):
    logger.info('%d: user selected the release from the keyboard', update.effective_user.id)

    release_match = re.search(r'^(\d+)\.\s.*', update.message.text)
    if not release_match:
        # user changed his query
        return search_release(update, WAITING_RELEASE)
    
    release_id = release_match.group(1)
    release = db.release_by_id(release_id)
    
    release_string = Strings.RELEASE.format(**release)
    
    reply_markup = InlineKeyboard.release_info(release_id, release['webarchive_url'])
    update.message.reply_html(release_string, disable_web_page_preview=True, reply_markup=reply_markup)

    return WAITING_RELEASE