diff --git a/bot.py b/bot.py index f98e71b..de06119 100644 --- a/bot.py +++ b/bot.py @@ -22,10 +22,9 @@ def __init__(self, config, db, on_connect_cb): self.__db = db self.__on_connect_cb = on_connect_cb self.__servers = [irc.bot.ServerSpec(self.__config.HOST, self.__config.PORT, self.__config.PASSWORD)] - self.num_col = self.__config.num_col - self.date = self.__config.date - self.feedname = self.__config.feedname - self.shorturls = self.__config.shorturls + self.color_num = self.__config.num_col + self.color_date = self.__config.date + self.color_feedname = self.__config.feedname self.dateformat = self.__config.dateformat if self.__config.SSL: @@ -41,7 +40,7 @@ def on_welcome(self, connection, event): def on_join(self, connection, event): """Say hello to other people in the channel. """ - connection.privmsg(self.__config.CHANNEL, "Hi, I'm " + Colours('3',str(connection.get_nickname())).get() + " your bot. Send " + Colours(self.num_col,"!help").get() +" to get a list of commands.") + connection.privmsg(self.__config.CHANNEL, "Hi, I'm " + self.__get_colored_text('3',str(connection.get_nickname())) + " your bot. Send " + self.__get_colored_text(self.color_num,"!help") +" to get a list of commands.") self.__on_connect_cb() def __handle_msg(self, msg): @@ -55,19 +54,19 @@ def __handle_msg(self, msg): elif msg == "!list": answer = "" for entry in self.__db.get_feeds(): - answer += "#" + Colours(self.num_col,str(entry[0])).get() + ": " + entry[1] + ", " + Colours('',str(entry[2])).get() + Colours(self.date,", updated every ").get() + Colours(self.num_col,str(entry[3])).get() + Colours(self.date," min").get() + "\n" + answer += "#" + self.__get_colored_text(self.color_num,str(entry[0])) + ": " + entry[1] + ", " + self.__get_colored_text('',str(entry[2])) + self.__get_colored_text(self.color_date,", updated every ") + self.__get_colored_text(self.color_num,str(entry[3])) + self.__get_colored_text(self.color_date," min") + "\n" # Print some simple stats (Feed / News count) elif msg == "!stats": feeds_count = self.__db.get_feeds_count() news_count = self.__db.get_news_count() - answer = "Feeds: " + Colours(self.num_col,str(feeds_count)).get() + ", News: " + Colours(self.num_col,str(news_count)).get() + answer = "Feeds: " + self.__get_colored_text(self.color_num,str(feeds_count)) + ", News: " + self.__get_colored_text(self.color_num,str(news_count)) # Print last 25 news. elif msg == "!last": answer = "" for entry in self.__db.get_latest_news(self.__config.feedlimit)[::-1]: - answer += "#" + Colours(self.num_col,str(entry[0])).get() + ": " + entry[1] + ", " + Colours('',str(entry[2])).get() + ", " + Colours(self.date,entry[3]).get() + "\n" + answer += "#" + self.__get_colored_text(self.color_num,str(entry[0])) + ": " + entry[1] + ", " + self.__get_colored_text('',str(entry[2])) + ", " + self.__get_colored_text(self.color_date,entry[3]) + "\n" # Print last 25 news for a specific feed elif msg.startswith("!lastfeed"): @@ -75,9 +74,9 @@ def __handle_msg(self, msg): try: feedid = int(msg.replace("!lastfeed","").strip()) except: - return Colours('1',"Wrong command: ").get() + msg + ", use: !lastfeed " + return self.__get_colored_text('1',"Wrong command: ") + msg + ", use: !lastfeed " for entry in self.__db.get_news_from_feed(feedid, self.__config.feedlimit)[::-1]: - answer += "#" + Colours(self.num_col,str(entry[0])).get() + ": " + entry[1] + ", " + Colours('',str(entry[2])).get() + ", " + Colours(self.date,str(entry[3])).get() + "\n" + answer += "#" + self.__get_colored_text(self.color_num,str(entry[0])) + ": " + entry[1] + ", " + self.__get_colored_text('',str(entry[2])) + ", " + self.__get_colored_text(self.color_date,str(entry[3])) + "\n" # Else tell the user how to use the bot else: @@ -131,11 +130,17 @@ def send_msg(self, target, msg): def post_news(self, feed_name, title, url, date): """Posts a new announcement to the channel""" try: - msg = Colours(self.feedname,str(feed_name)).get() + ": " + title + ", " + Colours('',url).get() + ", " + Colours(self.date,str(date)).get() + msg = self.__get_colored_text(self.color_feedname,str(feed_name)) + ": " + title + ", " + self.__get_colored_text('',url) + ", " + self.__get_colored_text(self.color_date,str(date)) self.send_msg(self.__config.CHANNEL, msg) except Exception as e: print e + def __get_colored_text(self, color, text): + if not self.__config.use_colors: + return text + + return Colours(color, text).get() + def __help_msg(self): """Returns the help/usage message""" return """\ diff --git a/config.py.sample b/config.py.sample index fb023b1..66cc55f 100644 --- a/config.py.sample +++ b/config.py.sample @@ -15,6 +15,7 @@ class Config(object): #4 - blue 5 - purple 6 - cyan #7 - lightgreen 8 - grey 9 - pink #10 - lighblue + self.use_colors = True self.num_col = '1' self.date = '8' self.feedname = '2'