def test_equality(self):
        a = InlineQueryResultGif(self.id_, self.gif_url, self.thumb_url)
        b = InlineQueryResultGif(self.id_, self.gif_url, self.thumb_url)
        c = InlineQueryResultGif(self.id_, '', self.thumb_url)
        d = InlineQueryResultGif('', self.gif_url, self.thumb_url)
        e = InlineQueryResultVoice(self.id_, '', '')

        assert a == b
        assert hash(a) == hash(b)
        assert a is not b

        assert a == c
        assert hash(a) == hash(c)

        assert a != d
        assert hash(a) != hash(d)

        assert a != e
        assert hash(a) != hash(e)
def inline_query_result_gif():
    return InlineQueryResultGif(TestInlineQueryResultGif.id,
                                TestInlineQueryResultGif.gif_url,
                                TestInlineQueryResultGif.thumb_url,
                                gif_width=TestInlineQueryResultGif.gif_width,
                                gif_height=TestInlineQueryResultGif.gif_height,
                                gif_duration=TestInlineQueryResultGif.gif_duration,
                                title=TestInlineQueryResultGif.title,
                                caption=TestInlineQueryResultGif.caption,
                                input_message_content=TestInlineQueryResultGif.input_message_content,
                                reply_markup=TestInlineQueryResultGif.reply_markup)
Exemplo n.º 3
0
def create_result_not_found():
    results = [
        InlineQueryResultGif(
            id="not_found",
            gif_url=not_found_query_gif,
            thumb_url=not_found_query_gif,
            title="ERROR 404 :)",
            input_message_content=InputTextMessageContent(
                "YOU ARE WONDERFUL =)"),
        )
    ]

    return results
Exemplo n.º 4
0
def gelbooru_images(update: Update, context: CallbackContext):
    query = update.inline_query.query
    if not query:
        return

    offset = update.inline_query.offset
    pid = int(offset) if offset else 0

    results = []
    query = autocomplete(query)
    images = get_images(query, pid=pid)
    if pid == 0 and not images:
        raise ValueError(f'No images match provided query: {query}')
    for image in images:
        try:
            if image['full_url'].endswith('.webm'):
                result = InlineQueryResultVideo(
                    type='video',
                    id=image['id'],
                    title=image['id'],
                    video_url=image['full_url'].replace('.webm', '.mp4'),
                    mime_type="video/mp4",
                    thumb_url=image['thumbnail_url'],
                    reply_markup=image_keyboard(image),
                )
            elif image['full_url'].endswith('.gif'):
                result = InlineQueryResultGif(
                    id=image['id'],
                    title=image['id'],
                    gif_url=image['full_url'],
                    thumb_url=image['thumbnail_url'],
                    gif_height=image['image_width'],
                    gif_width=image['image_height'],
                    reply_markup=image_keyboard(image),
                )
            else:
                result = InlineQueryResultPhoto(
                    id=image['id'],
                    title=image['id'],
                    photo_url=image['full_url'],
                    thumb_url=image['thumbnail_url'],
                    photo_height=image['image_height'],
                    photo_width=image['image_width'],
                    reply_markup=image_keyboard(image),
                )
            results.append(result)
        except Exception as e:
            logger.error(e)
    context.bot.answer_inline_query(update.inline_query.id, results, next_offset=str(pid + 1))
Exemplo n.º 5
0
def inlinequery(bot, update):
    """Handle the inline query. And looks for gifs"""
    query = update.inline_query.query
    gif_urls = []
    gif_thumbs = []
    for i in range(1, 6):
        gif_urls, gif_thumbs = find_gifs(i, query, gif_urls, gif_thumbs)
        # send gifs to inline results
        results = []
        for j in range(len(gif_urls)):
            results.append(
                InlineQueryResultGif(id=uuid4(),
                                     gif_url=gif_urls[j],
                                     thumb_url=gif_thumbs[j]))
        bot.answer_inline_query(update.inline_query.id, results)
def inline_query_result_gif():
    return InlineQueryResultGif(
        TestInlineQueryResultGif.id_,
        TestInlineQueryResultGif.gif_url,
        TestInlineQueryResultGif.thumb_url,
        gif_width=TestInlineQueryResultGif.gif_width,
        gif_height=TestInlineQueryResultGif.gif_height,
        gif_duration=TestInlineQueryResultGif.gif_duration,
        title=TestInlineQueryResultGif.title,
        caption=TestInlineQueryResultGif.caption,
        parse_mode=TestInlineQueryResultGif.parse_mode,
        caption_entities=TestInlineQueryResultGif.caption_entities,
        input_message_content=TestInlineQueryResultGif.input_message_content,
        reply_markup=TestInlineQueryResultGif.reply_markup,
        thumb_mime_type=TestInlineQueryResultGif.thumb_mime_type,
    )
Exemplo n.º 7
0
def fetch_animated_post():
    results = []
    posts = client.post_list(tags="animated_gif", limit=10, random=True)
    if not posts:
        print("Пустой запрос")
    else:
        for post in posts:
            if "file_url" in post:
                print(post["id"])
                thumbimg = str(post["preview_file_url"])
                message = str(post["large_file_url"])
                results.append(InlineQueryResultGif(
                    id=uuid4(),
                    gif_width=150,
                    gif_height=150,
                    thumb_url=thumbimg,
                    gif_url=message))
    return results
Exemplo n.º 8
0
def replyAudioSearchResults(audios, query, linksMode, bot, update):
    cache_time = INLINE_QUERY_CACHE_TIME
    results = list()
    try:
        if not audios:
            cache_time = 300
            print(f"Empty results for query: {query}")
            results.append(InlineQueryResultGif(id=uuid4(),
                                           gif_url='https://media.giphy.com/media/sS8YbjrTzu4KI/giphy.gif',
                                           thumb_url='https://media.giphy.com/media/sS8YbjrTzu4KI/giphy.gif',
                                            title="Failed You",
                                            input_message_content=InputTextMessageContent(f"youtube.com/results?search_query={query}")))
        else:
            print(f"Found {len(audios)} results for query: {query}")
            results = buildInlineAudioResults(audios, linksMode)
        update.inline_query.answer(results=results, cache_time=cache_time)
    except Exception as e:
        logError(bot, update, e)
Exemplo n.º 9
0
def inline_function(update, context):
    query = update.inline_query.query

    if(len(query) == 0):
        return

    links = list()
    if("hug" in query):
        title = "hug"
        links.append(str(getGifLink("hug")))
        links.append(str(getGifLink("hug")))
        links.append(str(getGifLink("hug")))
        links.append(str(getGifLink("hug")))
    elif("wink" in query):
        title = "wink"
        links.append(str(getGifLink("wink")))
        links.append(str(getGifLink("wink")))
        links.append(str(getGifLink("wink")))
        links.append(str(getGifLink("wink")))
    elif("pat" in query):
        title = "pat"
        links.append(str(getGifLink("pat")))
        links.append(str(getGifLink("pat")))
        links.append(str(getGifLink("pat")))
        links.append(str(getGifLink("pat")))
    else:
        return

    results = list()
    
    results.append(
        InlineQueryResultGif(
            id=0,
            title=title,
            caption=title,
            gif_url=links[0],
            thumb_url=links[0]
        )
    )
    
    results.append(
        InlineQueryResultGif(
            id=1,
            title=title,
            caption=title,
            gif_url=links[1],
            thumb_url=links[1]
        )
    )
    
    results.append(
        InlineQueryResultGif(
            id=2,
            title=title,
            caption=title,
            gif_url=links[2],
            thumb_url=links[2]
        )
    )

    results.append(
        InlineQueryResultGif(
            id=3,
            title=title,
            caption=title,
            gif_url=links[3],
            thumb_url=links[3]
        )
    )
    update.inline_query.answer(results, cache_time=1)
Exemplo n.º 10
0
def inlineparse(update, context):
    inline_query = update.inline_query
    query = inline_query.query
    helpmsg = [
        InlineQueryResultArticle(
            id=uuid4(),
            title="帮助",
            description="将 Bot 添加到群组可以自动匹配消息, Inline 模式只可发单张图。",
            reply_markup=sourcecodemarkup,
            input_message_content=InputTextMessageContent(
                "欢迎使用 @bilifeedbot 的 Inline 模式来转发动态,您也可以将 Bot 添加到群组自动匹配消息。"),
        )
    ]
    if not query:
        inline_query.answer(helpmsg)
        return
    try:
        url = re.search(regex, query).group(0)
    except AttributeError:
        inline_query.answer(helpmsg)
        return
    logger.info(f"Inline: {url}")
    f = asyncio.run(feedparser(url))
    if not f:
        logger.warning("解析错误!")
        return
    if not f.mediaurls:
        results = [
            InlineQueryResultArticle(
                id=uuid4(),
                title=f.user,
                description=f.content,
                reply_markup=origin_link(f.url),
                input_message_content=InputTextMessageContent(
                    captions(f),
                    parse_mode=ParseMode.MARKDOWN_V2,
                    disable_web_page_preview=True,
                ),
            )
        ]
    else:
        if f.mediatype == "video":
            results = [
                InlineQueryResultVideo(
                    id=uuid4(),
                    caption=captions(f),
                    title=f.user,
                    description=f.content,
                    mime_type="video/mp4",
                    parse_mode=ParseMode.MARKDOWN_V2,
                    reply_markup=origin_link(f.url),
                    thumb_url=f.mediathumb,
                    video_url=f.mediaurls[0],
                )
            ]
        if f.mediatype == "audio":
            results = [
                InlineQueryResultAudio(
                    id=uuid4(),
                    caption=captions(f),
                    title=f.mediatitle,
                    description=f.content,
                    audio_duration=f.mediaduration,
                    audio_url=f.mediaurls[0],
                    parse_mode=ParseMode.MARKDOWN_V2,
                    performer=f.user,
                    reply_markup=origin_link(f.url),
                    thumb_url=f.mediathumb,
                )
            ]
        else:
            results = [
                InlineQueryResultGif(
                    id=uuid4(),
                    caption=captions(f),
                    title=f"{f.user}: {f.content}",
                    gif_url=img,
                    parse_mode=ParseMode.MARKDOWN_V2,
                    reply_markup=origin_link(f.url),
                    thumb_url=img,
                ) if ".gif" in img else InlineQueryResultPhoto(
                    id=uuid4(),
                    caption=captions(f),
                    title=f.user,
                    description=f.content,
                    parse_mode=ParseMode.MARKDOWN_V2,
                    photo_url=img + "@1280w.jpg",
                    reply_markup=origin_link(f.url),
                    thumb_url=img + "@512w_512h.jpg",
                ) for img in f.mediaurls
            ]
        if len(results) == 1:
            results.extend(helpmsg)
    inline_query.answer(results)
Exemplo n.º 11
0
 def answer_results(f: feed, fallback: bool = False):
     if not f.mediaurls:
         results = [
             InlineQueryResultArticle(
                 id=str(uuid4()),
                 title=f.user,
                 description=f.content,
                 reply_markup=origin_link(f.url),
                 input_message_content=InputTextMessageContent(
                     captions(f, fallback),
                     parse_mode=None
                     if fallback else ParseMode.MARKDOWN_V2,
                 ),
             )
         ]
     else:
         if f.mediatype == "video":
             results = [
                 InlineQueryResultVideo(
                     id=str(uuid4()),
                     caption=captions(f, fallback),
                     title=f.user,
                     description=f.content,
                     mime_type="video/mp4",
                     parse_mode=None
                     if fallback else ParseMode.MARKDOWN_V2,
                     reply_markup=origin_link(f.url),
                     thumb_url=f.mediathumb,
                     video_url=f.mediaurls[0],
                 )
             ]
         if f.mediatype == "audio":
             results = [
                 InlineQueryResultAudio(
                     id=str(uuid4()),
                     caption=captions(f, fallback),
                     title=f.mediatitle,
                     description=f.content,
                     audio_duration=f.mediaduration,
                     audio_url=f.mediaurls[0],
                     parse_mode=None
                     if fallback else ParseMode.MARKDOWN_V2,
                     performer=f.user,
                     reply_markup=origin_link(f.url),
                     thumb_url=f.mediathumb,
                 )
             ]
         else:
             results = [
                 InlineQueryResultGif(
                     id=str(uuid4()),
                     caption=captions(f, fallback),
                     title=f"{f.user}: {f.content}",
                     gif_url=img,
                     parse_mode=None
                     if fallback else ParseMode.MARKDOWN_V2,
                     reply_markup=origin_link(f.url),
                     thumb_url=img,
                 ) if ".gif" in img else InlineQueryResultPhoto(
                     id=str(uuid4()),
                     caption=captions(f, fallback),
                     title=f.user,
                     description=f.content,
                     parse_mode=None
                     if fallback else ParseMode.MARKDOWN_V2,
                     photo_url=img + "@1280w.jpg",
                     reply_markup=origin_link(f.url),
                     thumb_url=img + "@512w_512h.jpg",
                 ) for img in f.mediaurls
             ]
             results.extend(helpmsg)
     inline_query.answer(results)