diff options
| -rwxr-xr-x | ircbot/rssbot.py | 24 | 
1 files changed, 10 insertions, 14 deletions
| diff --git a/ircbot/rssbot.py b/ircbot/rssbot.py index 1e1d620d..3c8495f1 100755 --- a/ircbot/rssbot.py +++ b/ircbot/rssbot.py @@ -3,6 +3,8 @@ import irc.bot  import feedparser  import _thread  import math +import re +from datetime import datetime  from time import sleep  class RssBot(irc.bot.SingleServerIRCBot): @@ -17,6 +19,7 @@ class RssBot(irc.bot.SingleServerIRCBot):          self.oldnews = []          self.sendqueue = []          self.loop = True +        self.lastpull = datetime.now()      def start(self):          self.upd_loop = _thread.start_new_thread(self.updateloop, ()) @@ -27,20 +30,7 @@ class RssBot(irc.bot.SingleServerIRCBot):          self.disconnect()      def updateloop(self): -        try: -            self.feed = feedparser.parse(self.url) -        except: -            print(self.name + ': rss timeout occured') -        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)              try:                  self.feed = feedparser.parse(self.url)              except: @@ -52,13 +42,19 @@ class RssBot(irc.bot.SingleServerIRCBot):                      #except AttributeError:                      self.send(entry.title + " " + entry.link)                      self.oldnews.append(entry.link) +                    self.lastpull = datetime.now() +            sleep(self.to)      def sendall(self):          while len(self.sendqueue) > 0:              sleep(1)              self.send(self.sendqueue.pop()) -    def send(self, string=''): +    def send(self, string): +        urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', string) +        for url in urls: +            shorturl = subprocess.check_output(["curl", "-F", "uri=" + url, "http://127.0.0.1:1337"]) +            string = string.replace(url, shorturl)          if self.connection.connected:              for line in string.split('\n'):                  if len(line) < 450: | 
