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)
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
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))
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, )
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
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)
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)
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)
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)