Пример #1
0
    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.
            (per_chat_id_in([owner_id]), create_open(OwnerHandler, 20, self._store)),

            # 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, call(self._send_welcome)),
        ])
Пример #2
0
    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, call(self._send_welcome)),
        ])
Пример #3
0
 def __init__(self):
     self.token = open(config.TOKEN_FILE).read().strip()
     self._seen = set()
     super(BotManager, self).__init__(self.token, [
         pave_event_space()(
                 per_from_id_in(config.WHITELIST)
                 if config.WHITELIST
                 else per_from_id(),
                 create_open,
                 chatbot.ChatBot,
                 None,
                 timeout=10 * 60
         ),
         (
             per_application(),
             create_open(adminmonitor.AdminMonitor, config.ADMINS_LIST)
         ),
     ])
Пример #4
0
            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.')



bot = telepot.aio.DelegatorBot(cmdline.token, [

    pave_event_space()(
        per_application(), create_open, TeleCron),

#    pave_event_space()(
#        per_chat_id(), create_open, TeleCron, timeout=10),

#    pave_event_space()(
#        per_event_source_id(1), create_open, TeleCron, timeout=10),

])

loop = asyncio.get_event_loop()
log.debug("loop = " + str(loop))

loop.create_task(MessageLoop(bot).run_forever())
log.debug("created task...")