diff --git a/plugins/RSS.py b/plugins/RSS.py index f82f0853f..ed94ee26d 100644 --- a/plugins/RSS.py +++ b/plugins/RSS.py @@ -159,11 +159,16 @@ class RSS(callbacks.Privmsg): oldheadlines = [] newresults = self.getFeed(url) newheadlines = self.getHeadlines(newresults) - for headline in oldheadlines: + def headlineEq(h1, h2): + return h1.lower().split() == h2.lower().split() + for (i, oldheadline) in enumerate(oldheadlines): try: - newheadlines.remove(headline) - except ValueError: - pass + newheadline = newheadlines[i] + except IndexError: + break + if headlineEq(oldheadline, newheadline): + newheadlines[i] = None + newheadlines = filter(None, newheadlines) # Removes Nones. if newheadlines: for channel in channels: bold = self.registryValue('bold', channel) diff --git a/test/test_RSS.py b/test/test_RSS.py index 0e37f5c3b..1e17d860a 100644 --- a/test/test_RSS.py +++ b/test/test_RSS.py @@ -44,6 +44,8 @@ if network: def testRss(self): self.assertNotError('rss %s' % url) + m = self.assertNotError('rss %s' % url) + self.failUnless(m.args[1].count('||') == 1) def testRssAdd(self): self.assertNotError('rss add advogato %s' % url)