self._score[self._answer == int(query_data)] += 1 self._answer = await self._show_next_question() async def on__idle(self, event): text = '%d out of %d' % (self._score[True], self._score[True] + self._score[False]) await self.editor.editMessageText( text + '\n\nThis message will disappear in 5 seconds to test deleteMessage', reply_markup=None) await asyncio.sleep(5) await self.editor.deleteMessage() self.close() TOKEN = sys.argv[1] bot = amanobot.aio.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), ]) loop = asyncio.get_event_loop() loop.create_task(MessageLoop(bot).run_forever()) print('Listening ...') loop.run_forever()
else: await self.bot.answerCallbackQuery( query_id, text='Ok. But I am going to keep asking.') await self._cancel_last() await self._propose() async def on__idle(self, event): await 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.aio.DelegatorBot(TOKEN, [ include_callback_query_chat_id(pave_event_space())( per_chat_id(types=['private']), create_open, Lover, timeout=10), ]) loop = asyncio.get_event_loop() loop.create_task(MessageLoop(bot).run_forever()) print('Listening ...') loop.run_forever()
# 2. Define event-handling function async def on__alarm(self, event): print(event) # see what the event object actually looks like await self.sender.sendMessage('Beep beep, time to wake up!') async 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})) await self.sender.sendMessage( 'Got it. Alarm is set at %.1f seconds from now.' % delay) except ValueError: await self.sender.sendMessage('Not a number. No alarm set.') TOKEN = sys.argv[1] bot = amanobot.aio.DelegatorBot(TOKEN, [ pave_event_space()(per_chat_id(), create_open, AlarmSetter, timeout=10), ]) loop = asyncio.get_event_loop() loop.create_task(MessageLoop(bot).run_forever()) print('Listening ...') loop.run_forever()
from amanobot.aio.delegate import per_chat_id, create_open, pave_event_space """ $ python3.5 countera.py <token> Counts number of messages a user has sent. Starts over if silent for 10 seconds. Illustrates the basic usage of `DelegateBot` and `ChatHandler`. """ class MessageCounter(amanobot.aio.helper.ChatHandler): def __init__(self, *args, **kwargs): super(MessageCounter, self).__init__(*args, **kwargs) self._count = 0 async def on_chat_message(self, msg): self._count += 1 await self.sender.sendMessage(self._count) TOKEN = sys.argv[1] # get token from command-line bot = amanobot.aio.DelegatorBot(TOKEN, [ pave_event_space()(per_chat_id(), create_open, MessageCounter, timeout=10), ]) loop = asyncio.get_event_loop() loop.create_task(MessageLoop(bot).run_forever()) print('Listening ...') loop.run_forever()
'Time is up:\nYes: %d\nNo: %d\nSilent: %d' % result) def on_close(self, ex): global votes if self._ballot_box is None: try: del votes[self.id] except KeyError: pass else: votes[self.id] = (self._ballot_box, self._keyboard_msg_ident, self._expired_event, self._member_count) from pprint import pprint print('%d closing ...' % self.id) pprint(votes) TOKEN = sys.argv[1] bot = amanobot.aio.DelegatorBot(TOKEN, [ include_callback_query_chat_id(pave_event_space())( per_chat_id(types=['group']), create_open, VoteCounter, timeout=10), ]) loop = asyncio.get_event_loop() loop.create_task(MessageLoop(bot).run_forever()) print('Listening ...') loop.run_forever()
import sys import asyncio import amanobot from amanobot.aio.loop import MessageLoop from amanobot.aio.delegate import pave_event_space, per_chat_id, create_open class MessageCounter(amanobot.aio.helper.ChatHandler): def __init__(self, *args, **kwargs): super(MessageCounter, self).__init__(*args, **kwargs) self._count = 0 async def on_chat_message(self, msg): self._count += 1 await self.sender.sendMessage(self._count) TOKEN = sys.argv[1] # get token from command-line bot = amanobot.aio.DelegatorBot(TOKEN, [ pave_event_space()( per_chat_id(), create_open, MessageCounter, timeout=10), ]) loop = asyncio.get_event_loop() loop.create_task(MessageLoop(bot).run_forever()) print('Listening ...') loop.run_forever()
except ValueError: await 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) await self.sender.sendMessage(hint) else: await self.sender.sendMessage('Correct!') self.close() async def on__idle(self, event): await self.sender.sendMessage('Game expired. The answer is %d' % self._answer) self.close() TOKEN = sys.argv[1] bot = amanobot.aio.DelegatorBot(TOKEN, [ pave_event_space()(per_chat_id(), create_open, Player, timeout=10), ]) loop = asyncio.get_event_loop() loop.create_task(MessageLoop(bot).run_forever()) print('Listening ...') loop.run_forever()
name = msg['from']['first_name'] print("LOG: " + name + ": " + txt) if txt == '/start': await start(chat_id, name) elif txt == '/help': await help_me(chat_id) elif txt == '/yes': await yes_no(chat_id, True) elif txt == '/no': await yes_no(chat_id, False) else: await process_result(chat_id, txt) elif content_type == 'voice': await process_audio(chat_id, msg) elif content_type == 'photo': await process_image(chat_id, msg) if __name__ == '__main__': TOKEN, client_id = load_credentials() client = wolframalpha.Client(client_id) bot = amanobot.aio.DelegatorBot(TOKEN, [ pave_event_space()( per_chat_id(), create_open, MessageHandler, timeout=60), ]) loop = asyncio.get_event_loop() loop.create_task(MessageLoop(bot).run_forever()) loop.run_forever()
except ValueError: await 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) await self.sender.sendMessage(hint) else: await self.sender.sendMessage('Correct!') self.close() async def on__idle(self, event): await self.sender.sendMessage('Game expired. The answer is %d' % self._answer) self.close() TOKEN = sys.argv[1] bot = amanobot.aio.DelegatorBot(TOKEN, [ pave_event_space()( per_chat_id(), create_open, Player, timeout=10), ]) loop = asyncio.get_event_loop() loop.create_task(MessageLoop(bot).run_forever()) print('Listening ...') loop.run_forever()