summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlassulus <lassulus@googlemail.com>2014-01-04 05:09:40 +0100
committerlassulus <lassulus@googlemail.com>2014-01-04 05:09:40 +0100
commit366f912a3771a1c5b92441ef7efed52541b33827 (patch)
treeccf436ee2e708d53b332a17be235f84730031de5
parent2a730efca62a76d7344ad6bcaf0fa38acf925cdc (diff)
ircbot: now with controller
-rwxr-xr-xircbot/contoller.py92
-rw-r--r--ircbot/new_feeds2
-rwxr-xr-xircbot/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()