summaryrefslogtreecommitdiffstats
path: root/ircbot
diff options
context:
space:
mode:
authorlassulus <lassulus@googlemail.com>2014-01-04 21:38:58 +0100
committerlassulus <lassulus@googlemail.com>2014-01-04 21:38:58 +0100
commit393abf180b6bfcf89ab8544ec691a97d840f0963 (patch)
tree3aff7112c72889d33fe6b11ca15a2ad856b87732 /ircbot
parent4015f025fa2321b0362aeb1ac1116cdddb89fad6 (diff)
ircbot: more (fancy) features
Diffstat (limited to 'ircbot')
-rwxr-xr-xircbot/contoller.py20
-rw-r--r--ircbot/new_feeds33
-rwxr-xr-xircbot/rssbot.py28
3 files changed, 61 insertions, 20 deletions
diff --git a/ircbot/contoller.py b/ircbot/contoller.py
index 71d04536..9466343d 100755
--- a/ircbot/contoller.py
+++ b/ircbot/contoller.py
@@ -33,7 +33,11 @@ class NewsBot(irc.bot.SingleServerIRCBot):
args_array = event.arguments[0].split()
if args_array[0][:-1]==self.name:
answer = self.read_message(args_array[1:])
- self.connection.privmsg(self.chan, answer)
+ self.send(answer)
+
+ def send(self, string):
+ for line in string.split('\n'):
+ self.connection.privmsg(self.chan, line)
def on_pubmsg(self, connection, event):
@@ -63,7 +67,19 @@ class NewsBot(irc.bot.SingleServerIRCBot):
return "bots saved to " + feedfile
elif args[0] == 'caps':
- return "add del save caps"
+ return "add del save caps list"
+
+ elif args[0] == 'list':
+ output_buffer = ''
+ for bot in bots:
+ output_buffer += bot + ' url: ' + bots[bot].url + '\n'
+ return output_buffer
+
+ elif args[0] == 'info':
+ if args[1] in bots:
+ return 'title: ' + bots[args[1]].feed.feed.title + '\n' + 'size: ' + len(bots[args[1]].feed.entries)
+ else:
+ return 'bot not found'
else:
return "unknown command"
diff --git a/ircbot/new_feeds b/ircbot/new_feeds
index cc3bad6f..767b59f2 100644
--- a/ircbot/new_feeds
+++ b/ircbot/new_feeds
@@ -1,7 +1,32 @@
+fvwm|http://freecode.com/projects/fvwm/releases.atom
+aje|http://www.aljazeera.com/Services/Rss/?PostingId=2007731105943979989
+rt|http://rt.com/rss/news/
+anon|http://anoninsiders.net/feed/
+linuxinsider|http://www.linuxinsider.com/perl/syndication/rssfull.pl
+antirez|http://antirez.com/rss
+lisp|http://planet.lisp.org/rss20.xml
+reddit_prog|http://reddit.com/r/programming/
+rawstory|http://www.rawstory.com/rs/feed/
fefe|http://blog.fefe.de/rss.xml
+xkcd|https://xkcd.com/rss.xml
+slashdot|http://rss.slashdot.org/Slashdot/slashdot
+spiegel_top|http://www.spiegel.de/schlagzeilen/tops/index.rss
+weechat|http://dev.weechat.org/feed/atom
+spiegel_eil|http://www.spiegel.de/schlagzeilen/eilmeldungen/index.rss
+reddit_sci|http://www.reddit.com/r/science/.rss
+reuters|http://feeds.reuters.com/Reuters/worldNews
HN|http://news.ycombinator.com/rss
-lisp|http://planet.lisp.org/rss20.xml
-LtU|http://lambda-the-ultimate.org/rss.xml
-antirez|http://antirez.com/rss
+reddit_tech|http://www.reddit.com/r/technology/.rss
coinspotting|http://coinspotting.com/rss
-xkcd|https://xkcd.com/rss.xml
+ccc|http://www.ccc.de/rss/updates.rdf
+archlinux|http://www.archlinux.org/feeds/news/
+reddit_consp|http://reddit.com/r/conspiracy/.rss
+scmp|http://www.scmp.com/rss/91/feed
+LtU|http://lambda-the-ultimate.org/rss.xml
+reddit_world|http://www.reddit.com/r/worldnews/.rss
+sec-db|http://feeds.security-database.com/SecurityDatabaseToolsWatch
+exploitdb|http://www.exploit-db.com/rss.xml
+heise|http://heise.de.feedsportal.com/c/35207/f/653902/index.rss
+wp_world|http://feeds.washingtonpost.com/rss/rss_blogpost
+ars|http://feeds.arstechnica.com/arstechnica/index?format=xml
+golem|http://www.golem.de/rss.php?feed=RSS1.0
diff --git a/ircbot/rssbot.py b/ircbot/rssbot.py
index 5d2beedc..008f9fa0 100755
--- a/ircbot/rssbot.py
+++ b/ircbot/rssbot.py
@@ -9,7 +9,6 @@ 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
- self.feed = feedparser.parse(self.url)
self.name = name
self.server = server
self.port = port
@@ -18,33 +17,34 @@ class RssBot(irc.bot.SingleServerIRCBot):
self.oldnews = []
self.sendqueue = []
self.loop = True
- for entry in self.feed.entries:
- try:
- self.sendqueue.append(entry.title + " " + entry.link + " com: " + entry.comments)
- except AttributeError:
- self.sendqueue.append(entry.title + " " + entry.link)
-
- self.oldnews.append(entry.link)
def start(self):
- self.upd_thread = _thread.start_new_thread(self.updateloop, ())
+ self.upd_loop = _thread.start_new_thread(self.updateloop, ())
self.bot = _thread.start_new_thread(irc.bot.SingleServerIRCBot.start, (self,))
-
def stop(self):
self.loop = False
self.disconnect()
def updateloop(self):
+ self.feed = feedparser.parse(self.url)
+ for entry in self.feed.entries:
+ #try:
+ # self.sendqueue.append(entry.title + " " + entry.link + " com: " + entry.comments)
+ #except AttributeError:
+ self.sendqueue.append(entry.title + " " + entry.link)
+
+ self.oldnews.append(entry.link)
+
while self.loop:
sleep(self.to)
self.feed = feedparser.parse(self.url)
for entry in self.feed.entries:
if not entry.link in self.oldnews:
- try:
- self.send(entry.title + " " + entry.link + " com: " + entry.comments)
- except AttributeError:
- self.send(entry.title + " " + entry.link)
+ #try:
+ # self.send(entry.title + " " + entry.link + " com: " + entry.comments)
+ #except AttributeError:
+ self.send(entry.title + " " + entry.link)
self.oldnews.append(entry.link)
def sendall(self):