示例#1
0
文件: handlers.py 项目: DarkKeks/Bots
    def inlinequery(self, bot, update):
        results = [
            InlineQueryResultCachedVoice(id=uuid4(),
                                         voice_file_id=Handlers.AUDIO_DADADA,
                                         title='Dadadadadadadadadada'),
            InlineQueryResultCachedVoice(id=uuid4(),
                                         voice_file_id=Handlers.AUDIO_AAAAAA,
                                         title='AAAAAAAAAAAAAAAAAAAA'),
        ]

        update.inline_query.answer(results)
def inline_query_result_cached_voice():
    return InlineQueryResultCachedVoice(TestInlineQueryResultCachedVoice.id,
                                        TestInlineQueryResultCachedVoice.voice_file_id,
                                        TestInlineQueryResultCachedVoice.title,
                                        caption=TestInlineQueryResultCachedVoice.caption,
                                        input_message_content=TestInlineQueryResultCachedVoice.input_message_content,
                                        reply_markup=TestInlineQueryResultCachedVoice.reply_markup)
def inlinequery(_, update):
    global large_results

    inl_q = update.inline_query
    query = inl_q.query
    offset = int(inl_q.offset) if inl_q.offset else 0

    if offset == 0 or query not in large_results:
        if query:
            memes = meme_storage.find(query)
        else:
            memes = meme_storage.get_most_popular()

        if len(memes) > PAGE_SIZE:
            large_results = save_result(large_results, query, memes)

    else:
        memes = get_result(large_results, query)

    large_results = filter_old_results(large_results)

    have_next_page = bool(len(memes) - offset > PAGE_SIZE)
    next_offset = str(offset + PAGE_SIZE) if have_next_page else ''
    logger.info(
        'Query: %s, items: %s, offset: %d, has next page: %d, next offset: %s',
        query, len(memes), offset, have_next_page, next_offset)

    results = [
        InlineQueryResultCachedVoice(meme.id, meme.file_id, title=meme.name)
        for meme in memes[offset:offset + PAGE_SIZE]
    ]
    update.inline_query.answer(results, cache_time=0, next_offset=next_offset)
示例#4
0
def create_voice_inline_result(doc: Document) -> InlineQueryResultCachedVoice:
    content = doc.content
    return InlineQueryResultCachedVoice(
        id=doc.internal_id,
        voice_file_id=content['file_id'],
        title=doc.keywords,
        caption=content.get('caption'),
    )
    def test_equality(self):
        a = InlineQueryResultCachedVoice(self.id, self.voice_file_id, self.title)
        b = InlineQueryResultCachedVoice(self.id, self.voice_file_id, self.title)
        c = InlineQueryResultCachedVoice(self.id, '', self.title)
        d = InlineQueryResultCachedVoice('', self.voice_file_id, self.title)
        e = InlineQueryResultCachedAudio(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)
示例#6
0
def on_inline_query(update: Update, context: CallbackContext):
    query: InlineQuery = update.inline_query
    results = [
        InlineQueryResultCachedVoice(id=id,
                                     voice_file_id=file_id,
                                     title=text,
                                     reply_markup=InlineKeyboardMarkup([[
                                         InlineKeyboardButton(text='text',
                                                              callback_data=id)
                                     ]]))
        for file_id, text, id in get_voices(query.query)
    ]
    context.bot.answer_inline_query(query.id, results)
示例#7
0
    def test_equality(self):
        a = InlineQueryResultCachedSticker(self.id_, self.sticker_file_id)
        b = InlineQueryResultCachedSticker(self.id_, self.sticker_file_id)
        c = InlineQueryResultCachedSticker(self.id_, "")
        d = InlineQueryResultCachedSticker("", self.sticker_file_id)
        e = InlineQueryResultCachedVoice(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 test_equality(self):
        a = InlineQueryResultCachedGif(self.id_, self.gif_file_id)
        b = InlineQueryResultCachedGif(self.id_, self.gif_file_id)
        c = InlineQueryResultCachedGif(self.id_, '')
        d = InlineQueryResultCachedGif('', self.gif_file_id)
        e = InlineQueryResultCachedVoice(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)
示例#9
0
    def test_equality(self):
        a = InlineQueryResultCachedPhoto(self.id, self.photo_file_id)
        b = InlineQueryResultCachedPhoto(self.id, self.photo_file_id)
        c = InlineQueryResultCachedPhoto(self.id, "")
        d = InlineQueryResultCachedPhoto("", self.photo_file_id)
        e = InlineQueryResultCachedVoice(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)
示例#10
0
    def search(self, update, context):
        query = update.inline_query.query
        # search_string = update.message.text
        results = []
        if (query != '' or query != None):
            result = self.sess.query(self.Voice).filter(
                or_(self.Voice.tags.ilike(u'%' + query + u'%'),
                    self.Voice.voice_name.like(u'%' + query +
                                               u'%'))).limit(15).all()

            for res in result:
                results.append(
                    InlineQueryResultCachedVoice(id=res.voice_id,
                                                 voice_file_id=res.file_id,
                                                 title=res.voice_name))
            # results = [
            #     InlineQueryResultCachedVoice(id='0',voice_file_id='AwADBAADVgMAAmWq-FJkfcXcHoZodwI',title='کس لیسی میلاد')
            # ]
            update.inline_query.answer(results)
    def test_equality(self):
        a = InlineQueryResultCachedDocument(self.id, self.title, self.document_file_id)
        b = InlineQueryResultCachedDocument(self.id, self.title, self.document_file_id)
        c = InlineQueryResultCachedDocument(self.id, self.title, '')
        d = InlineQueryResultCachedDocument('', self.title, self.document_file_id)
        e = InlineQueryResultCachedVoice(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 test_equality(self):
        a = InlineQueryResultCachedVideo(self.id_, self.video_file_id,
                                         self.title)
        b = InlineQueryResultCachedVideo(self.id_, self.video_file_id,
                                         self.title)
        c = InlineQueryResultCachedVideo(self.id_, "", self.title)
        d = InlineQueryResultCachedVideo("", self.video_file_id, self.title)
        e = InlineQueryResultCachedVoice(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)