def __init__(self, token, owner_id): self._owner_id = owner_id self._seen = set() self._store = UnreadStore() super(ChatBox, self).__init__(token, [ # Here is a delegate to specially handle owner commands. pave_event_space()( per_chat_id_in([owner_id]), create_open, OwnerHandler, self._store, timeout=20), # Only one MessageSaver is ever spawned for entire application. (per_application(), create_open(MessageSaver, self._store, exclude=[owner_id])), # For senders never seen before, send him a welcome message. (self._is_newcomer, custom_thread(call(self._send_welcome))), ])
super(MessageCounter, self).__init__(*args, **kwargs) self._count = 0 def on_chat_message(self, msg): self._count += 1 self.sender.sendMessage(self._count) TOKEN = sys.argv[1] PORT = int(sys.argv[2]) URL = sys.argv[3] app = Flask(__name__) bot = amanobot.DelegatorBot(TOKEN, [ pave_event_space()(per_chat_id(), create_open, MessageCounter, timeout=10), ]) webhook = OrderedWebhook(bot) @app.route('/webhook', methods=['GET', 'POST']) def pass_update(): webhook.feed(request.data) return 'OK' if __name__ == '__main__': try: bot.setWebhook(URL) # Sometimes it would raise this error, but webhook still set successfully.
if query_data != 'start': self._score[self._answer == int(query_data)] += 1 self._answer = self._show_next_question() def on__idle(self, event): text = '%d out of %d' % (self._score[True], self._score[True]+self._score[False]) self.editor.editMessageText( text + '\n\nThis message will disappear in 5 seconds to test deleteMessage', reply_markup=None) time.sleep(5) self.editor.deleteMessage() self.close() TOKEN = sys.argv[1] bot = amanobot.DelegatorBot(TOKEN, [ pave_event_space()( per_chat_id(), create_open, QuizStarter, timeout=3), pave_event_space()( per_callback_query_origin(), create_open, Quizzer, timeout=10), ]) MessageLoop(bot).run_as_thread() print('Listening ...') while 1: time.sleep(10)
if content_type == 'text': sent = bot.sendInvoice( chat_id, "Nick's Hand Cream", "Keep a man's hand like a woman's", payload='a-string-identifying-related-payment-messages-tuvwxyz', provider_token=PAYMENT_PROVIDER_TOKEN, start_parameter='abc', currency='HKD', prices=[ LabeledPrice(label='One Case', amount=987), LabeledPrice(label='Package', amount=12)], need_shipping_address=True, is_flexible=True) # required for shipping query print('Invoice sent:') pprint(sent) TOKEN = sys.argv[1] PAYMENT_PROVIDER_TOKEN = sys.argv[2] bot = amanobot.DelegatorBot(TOKEN, [ (per_message(flavors=['chat']), call(send_invoice)), pave_event_space()( per_invoice_payload(), create_open, OrderProcessor, timeout=30, ) ]) MessageLoop(bot).run_as_thread() while 1: time.sleep(10)
articles = [ InlineQueryResultArticle( id='abc', title=text, input_message_content=InputTextMessageContent( message_text=text)) ] return articles self.answerer.answer(msg, compute) def on_chosen_inline_result(self, msg): result_id, from_id, query_string = amanobot.glance( msg, flavor='chosen_inline_result') print(self.id, ':', 'Chosen Inline Result:', result_id, from_id, query_string) TOKEN = sys.argv[1] # get token from command-line bot = amanobot.DelegatorBot(TOKEN, [ pave_event_space()( per_inline_from_id(), create_open, QueryCounter, timeout=10), ]) MessageLoop(bot).run_as_thread() while 1: time.sleep(10)
for key, item in flex.items(): msg += f'\n *{key}:* {item}' self.sender.sendMessage(msg, parse_mode='Markdown') return except: self.sender.sendMessage( "Não encontrei informações da Flex de " + argumento) return def on_callback_query(self, msg): query_id, from_id, query_data = amanobot.glance( msg, flavor='callback_query') pass def on__idle(self, event): # print('Em caso de dúvidas, contate a STI por telefone. O ramal 0000.') pass TOKEN = '1366501748:AAHD61_3d0brQKvpGDCRt3caB7sG5yJJx-M' bot = amanobot.DelegatorBot(TOKEN, [ include_callback_query_chat_id(pave_event_space())( per_chat_id(types='all'), create_open, Chat, timeout=10), ]) MessageLoop(bot).run_as_thread() print('Listening ...') while 1: time.sleep(10)
self._cancel_last() self.sender.sendMessage('Thank you!') self.close() else: self.bot.answerCallbackQuery(query_id, text='Ok. But I am going to keep asking.') self._cancel_last() self._propose() def on__idle(self, event): self.sender.sendMessage('I know you may need a little time. I will always be here for you.') self.close() def on_close(self, ex): # Save to database global propose_records propose_records[self.id] = (self._count, self._edit_msg_ident) TOKEN = sys.argv[1] bot = amanobot.DelegatorBot(TOKEN, [ include_callback_query_chat_id( pave_event_space())( per_chat_id(types=['private']), create_open, Lover, timeout=10), ]) MessageLoop(bot).run_as_thread() print('Listening ...') while 1: time.sleep(10)
'type': 'article', 'id': 'abc', 'title': query_string, 'message_text': query_string }] return articles self.answerer.answer(msg, compute_answer) def on_chosen_inline_result(self, msg): from pprint import pprint pprint(msg) result_id, from_id, query_string = amanobot.glance( msg, flavor='chosen_inline_result') print(self.id, ':', 'Chosen Inline Result:', result_id, from_id, query_string) TOKEN = sys.argv[1] bot = amanobot.DelegatorBot(TOKEN, [ pave_event_space()( per_inline_from_id(), create_open, InlineHandler, timeout=10), ]) MessageLoop(bot).run_as_thread() print('Listening ...') while 1: time.sleep(10)
# 2. Define event-handling function def on__alarm(self, event): print(event) # see what the event object actually looks like self.sender.sendMessage('Beep beep, time to wake up!') def on_chat_message(self, msg): try: delay = float(msg['text']) # 3. Schedule event # The second argument is the event spec: a 2-tuple of (flavor, dict). # Put any custom data in the dict. Retrieve them in the event-handling function. self.scheduler.event_later(delay, ('_alarm', {'payload': delay})) self.sender.sendMessage( 'Got it. Alarm is set at %.1f seconds from now.' % delay) except ValueError: self.sender.sendMessage('Not a number. No alarm set.') TOKEN = sys.argv[1] bot = amanobot.DelegatorBot(TOKEN, [ pave_event_space()(per_chat_id(), create_open, AlarmSetter, timeout=10), ]) MessageLoop(bot).run_as_thread() print('Listening ...') while 1: time.sleep(10)
guess = int(msg['text']) except ValueError: self.sender.sendMessage('Give me a number, please.') return # check the guess against the answer ... if guess != self._answer: # give a descriptive hint hint = self._hint(self._answer, guess) self.sender.sendMessage(hint) else: self.sender.sendMessage('Correct!') self.close() def on__idle(self, event): self.sender.sendMessage('Game expired. The answer is %d' % self._answer) self.close() TOKEN = sys.argv[1] bot = amanobot.DelegatorBot(TOKEN, [ pave_event_space()(per_chat_id(), create_open, Player, timeout=10), ]) MessageLoop(bot).run_as_thread() print('Listening ...') while 1: time.sleep(10)
inline_message_id = evt['inline_message_id'] suggested_date = evt['date'] ballot = self._ballots[inline_message_id] text = '%s\nYes: %d\nNo: %d' % ( (suggested_date, ) + self._count(ballot)) editor = amanobot.helper.Editor(self.bot, inline_message_id) editor.editMessageText(text=text, reply_markup=None) del self._ballots[inline_message_id] self.close() def on_close(self, ex): global user_ballots user_ballots[self.id] = self._ballots print('Closing, ballots saved.') TOKEN = sys.argv[1] bot = amanobot.DelegatorBot(TOKEN, [ intercept_callback_query_origin(pave_event_space())( per_inline_from_id(), create_open, DateCalculator, timeout=10), ]) MessageLoop(bot).run_as_thread() print('Listening ...') while 1: time.sleep(10)