Ejemplo n.º 1
0
    def Run(self):
        if self.conf.startAfterFetch:
            self.firstFetch()

        self.onPlug()
        self.onStartupComplete()

        # child thread 1~4
        StartDaemonThread(self.pollForever)
        StartDaemonThread(self.intervalForever)
        StartDaemonThread(
            QTermServer(self.conf.termServerPort, self.onTermCommand).Run)
        self.scheduler.start()

        self.started = True

        try:
            MainLoop()
        except SystemExit as e:
            self.onExit(e.code, getReason(e.code), None)
            raise
        except Exception as e:
            ERROR('', exc_info=True)
            ERROR('Mainloop 发生未知错误:%r', e)
            self.onExit(1, 'unknown-error', e)
            raise SystemExit(1)
Ejemplo n.º 2
0
 def Run(self):
     import qqbot.qslots as _x
     _x
     StartDaemonThread(self.pollForever)
     StartDaemonThread(self.termForver, self.onTermCommand)
     StartDaemonThread(self.intervalForever)
     Put(self.updateForever, self.onNewContact, self.onLostContact)
     MainLoop()
Ejemplo n.º 3
0
 def Run(self):
     import qqbot.qslots as _x
     _x
     StartDaemonThread(self.pollForever)
     StartDaemonThread(self.termForver, self.onTermCommand)
     StartDaemonThread(self.intervalForever)
     Put(self.updateForever, bot=self)
     Put(self.onStartupComplete)
     MainLoop()
Ejemplo n.º 4
0
    def Test(self):
        def onTermCommand(client, command):
            if command == 'stop':
                client.Reply('QQBot已停止')
                sys.exit(0)
            else:
                client.Reply('Hello, ' + command)

        Put(StartDaemonThread, self.Run, onTermCommand)
        MainLoop()
Ejemplo n.º 5
0
    def Run(self):
        import qqbot.qslots as _x; _x

        if self.conf.fetchInterval < 0:
            self.firstFetch()
            self.onFetchComplete()
            self.onStartupComplete()
        else:
            Put(self.updateForever, bot=self)
            Put(self.onStartupComplete)
            
        StartDaemonThread(self.pollForever)
        StartDaemonThread(self.termForver, self.onTermCommand)
        StartDaemonThread(self.intervalForever)

        MainLoop()
Ejemplo n.º 6
0
    def Run(self):
        import qqbot.qslots as _x
        _x

        if self.conf.startAfterFetch:
            self.firstFetch()
            self.onFetchComplete()

        self.onStartupComplete()

        StartDaemonThread(self.pollForever)
        StartDaemonThread(self.termForver, self.onTermCommand)
        Put(self.updateForever, bot=self)
        Put(self.monitorForever, bot=self)
        StartDaemonThread(self.intervalForever)

        MainLoop()
Ejemplo n.º 7
0
    def Run(self):
        QQBot.initScheduler(self)

        import qqbot.qslots as _x; _x
        
        for plugin in self.conf.plugins:
            self.Plug(plugin)

        if self.conf.startAfterFetch:
            self.firstFetch()

        self.onStartupComplete()
  
        StartDaemonThread(self.pollForever)
        StartDaemonThread(self.termForver, self.onTermCommand)
        StartDaemonThread(self.intervalForever)

        MainLoop()
Ejemplo n.º 8
0
    def Run(self):
        self.started = False
        QQBot.initScheduler(self)

        import qqbot.qslots as _x
        _x

        for plugin in self.conf.plugins:
            self.Plug(plugin)

        if self.conf.startAfterFetch:
            self.firstFetch()

        self.onStartupComplete()

        StartDaemonThread(self.pollForever)
        StartDaemonThread(self.intervalForever)
        StartDaemonThread(
            QTermServer(self.conf.termServerPort, self.onTermCommand).Run)

        self.started = True
        MainLoop()
Ejemplo n.º 9
0
            name = '#' + name
        elif contact.ctype == 'discuss':
            name = '#!' + name
        nick = name
        i = 1
        while nick in self.nicks:
            nick = name + str(i)
            i += 1
        self.nicks[nick] = contact
        contact.__dict__['nick'] = nick
        if contact.ctype in ('group', 'discuss'):
            contact.__dict__['membNicks'] = set()

    def get(self, nick=None, uin=None):
        if nick is not None:
            return self.nicks.get(nick, None)
        else:
            return self.uins.get(uin, None)

    @property
    def nicknames(self):
        return list(self.nicks.keys())


if __name__ == '__main__':
    from qqbot.utf8logger import SetLogLevel
    SetLogLevel('debug')
    from qqbot.mainloop import MainLoop
    StartDaemonThread(IRCServer('127.0.0.1', 6667).Run)
    MainLoop()