aboutsummaryrefslogtreecommitdiff
path: root/modules/words.py
diff options
context:
space:
mode:
authorGravatar jesopo2016-04-06 09:40:49 +0100
committerGravatar jesopo2016-04-06 09:40:49 +0100
commitafec1deb5c5fc12444fb4775ae0da69d2f03ef1d (patch)
treea81538aa9e0c5b2a2ee1f5229cee3045684da7f9 /modules/words.py
parentadded words.py for keeping track of how many words people have said. (diff)
added tracking certain words in words.py and fixed/changed a couple of things to allow it to work.
Diffstat (limited to 'modules/words.py')
-rw-r--r--modules/words.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/modules/words.py b/modules/words.py
index c0c8169b..42c0b19a 100644
--- a/modules/words.py
+++ b/modules/words.py
@@ -3,19 +3,35 @@
class Module(object):
def __init__(self, bot):
self.bot = bot
+ bot.events.on("new").on("server").hook(self.new_server)
bot.events.on("received").on("message").on("channel"
).hook(self.channel_message)
bot.events.on("received").on("command").on("words"
).hook(self.words, channel_only=True)
+ def new_server(self, event):
+ event["server"].tracked_words = set([])
+ settings = event["server"].find_settings("word-%")
+ for word, _ in settings:
+ word = word.split("word-", 1)[1]
+ event["server"].tracked_words.add(word)
+
def channel_message(self, event):
- word_count = len(list(filter(None, event["message_split"
- ])))
+ words = list(filter(None, event["message_split"]))
+ word_count = len(words)
words = event["user"].get_setting("words", {})
if not event["channel"].name in words:
words[event["channel"].name] = 0
words[event["channel"].name] += word_count
event["user"].set_setting("words", words)
+ for word in words:
+ if word.lower() in event["server"].tracked_words:
+ setting = "word-%s" % word
+ tracked_word = event["server"].get_setting(setting, {})
+ if not event["user"].name in tracked_word:
+ tracked_word[event["user"].name] = 0
+ tracked_word[event["user"].name] += 1
+ event["server"].set_setting(setting, tracked_word)
def words(self, event):
if event["args_split"]: