def privmsg(self, server, user, channel, message): say = lambda msg: self.say(server, channel, msg) if message.startswith("!feed") or message.startswith("!addfeed"): _, url, time, title = str_utils.split(message, " ", 4) try: time = int(time) * 60 except: time = DEFAULT_FETCH_TIME if url == "": say(HELP_MESSAGE) return self.feeds.append(Feedpoller(say, url, time, title)) self.saver.save(server, channel, message) elif message.startswith("!removefeed"): feeds = [] for i in message.split(" "): i = int(i) if unicode(i).isdecimal() else -1 if i >= 0 and i < len(self.feeds): feeds.append(i); for i in sorted(feeds, reverse=True): say(REMOVING_FEED_MESSAGE.format(i, self.feeds[i].feed.title)) del self.feeds[i] self.saver.remove(i) log.msg("Removed feed: " + str(i)) elif message.startswith("!listfeed"): if len(self.feeds) == 0: say(NO_FEED_MESSAGE) for i, feed in enumerate(self.feeds): say(LIST_FEED_ITEM_MESSAGE.format(i, feed.feed.title))
def test_more_parameters_than_limit(self): self.assertEqual(str_utils.split("a b c d", " ", 3), ["a", "b", "c d"])
def test_equal_number_of_parameters(self): self.assertEqual(str_utils.split("a b c", " ", 3), ["a", "b", "c"])
def test_less_parameters_than_limit(self): self.assertEqual(str_utils.split("a b", " ", 3), ["a", "b", ""])