diff options
| -rwxr-xr-x | ircbot/contoller.py | 92 | ||||
| -rw-r--r-- | ircbot/new_feeds | 2 | ||||
| -rwxr-xr-x | ircbot/rssbot.py (renamed from ircbot/bot.py) | 30 | 
3 files changed, 109 insertions, 15 deletions
| diff --git a/ircbot/contoller.py b/ircbot/contoller.py new file mode 100755 index 00000000..5750551f --- /dev/null +++ b/ircbot/contoller.py @@ -0,0 +1,92 @@ +import irc.bot +import _thread +import rssbot +# +#def startall(): +#    for bot in botarray: +#        bot.start() + +class NewsBot(irc.bot.SingleServerIRCBot): +    def __init__(self, name, server='ire', port=6667, chan='#news', timeout=60): +        irc.bot.SingleServerIRCBot.__init__(self, [(server, port)], name, name) +        self.name = name +        self.server = server +        self.port = port +        self.chan = chan +        self.to = timeout + +    def start(self): +        self.bot = _thread.start_new_thread(irc.bot.SingleServerIRCBot.start, (self,)) + +#   def send(self, string): +#       if len(string) < 450: +#           self.connection.privmsg(self.chan, string) +#       else: +#           space = 0 +#           for x in range(math.ceil(len(string)/400)): +#               oldspace = space +#               space = string.find(" ", (x+1)*400, (x+1)*400+50) +#               self.connection.privmsg(self.chan, string[oldspace:space]) +#               sleep(1) + + +    def on_welcome(self, connection, event): +        connection.join(self.chan) + +    def on_privmsg(self, connection, event): +        print(event.source) +        args_array = event.arguments[0].split() +        print(args_array) +        if args_array[0][:-1]==self.name: +            answer = self.read_message(args_array[1:]) +            self.connection.privmsg(self.chan, answer) +         + +    def on_pubmsg(self, connection, event): +        self.on_privmsg(connection, event) + +    def read_message(self, args): +        print('reading message') +        try: +            if args[0] == 'add': +                bot = rssbot.RssBot(args[2], args[1]) +                bots[args[1]] = bot +                bot.start() +                return "bot " + args[1] + " added" +            elif args[0] == 'del': +                bots[args[1]].die() +                del bots[args1] +                return "bot " + args[1] + " deleted" +            elif args[0] == 'save': +                output_buffer = '' +                for bot in bots: +                   output_buffer += bot + '|' + bots[bot].url + '\n' + +                F = open(feedfile, "w") +                F.writelines(output_buffer) +                F.close() + +                return "bots saved to " + feedfile + + +            else: +                return "unknown command" +        except: +            return "mimimimi" + +feedfile = 'new_feeds' + +bots = {} +knews = NewsBot('knews') +knews.start() + +#config file reading +F = open(feedfile, "r") +lines = F.readlines() +F.close() + +for line in lines: +    linear = line.split('|') +    bot = rssbot.RssBot(linear[1], linear[0]) +    bot.start() +    bots[linear[0]] = bot diff --git a/ircbot/new_feeds b/ircbot/new_feeds new file mode 100644 index 00000000..4931f3fd --- /dev/null +++ b/ircbot/new_feeds @@ -0,0 +1,2 @@ +fefe|http://blog.fefe.de/rss.xml +HN|http://news.ycombinator.com/rss diff --git a/ircbot/bot.py b/ircbot/rssbot.py index c9a7d027..40c4554a 100755 --- a/ircbot/bot.py +++ b/ircbot/rssbot.py @@ -5,7 +5,7 @@ import _thread  import math  from time import sleep -class TestBot(irc.bot.SingleServerIRCBot): +class RssBot(irc.bot.SingleServerIRCBot):      def __init__(self, rss, name, server='ire', port=6667, chan='#news', timeout=60):          irc.bot.SingleServerIRCBot.__init__(self, [(server, port)], name, name)          self.url = rss @@ -65,17 +65,17 @@ class TestBot(irc.bot.SingleServerIRCBot):  #    def on_privmsg(self, connection, event):  #        print event.source().split('!')[0], event.arguments() -F = open("feeds", "r") -lines = F.readlines() -F.close() - -botarray = [] -for line in lines: -    lineArray = line.split('|') -    bot = TestBot(lineArray[1], lineArray[0]) -    #bot.start() -    botarray.append(bot) - -def startall(): -    for bot in botarray: -        bot.start() +#F = open("feeds", "r") +#lines = F.readlines() +#F.close() +# +#botarray = [] +#for line in lines: +#    lineArray = line.split('|') +#    bot = TestBot(lineArray[1], lineArray[0]) +#    #bot.start() +#    botarray.append(bot) +# +#def startall(): +#    for bot in botarray: +#        bot.start() | 
