diff --git a/FaustBot/FaustBot.py b/FaustBot/FaustBot.py index 0af3b9d..4b12fff 100644 --- a/FaustBot/FaustBot.py +++ b/FaustBot/FaustBot.py @@ -6,7 +6,7 @@ from FaustBot.Modules import ActivityObserver, IdentNickServObserver, GiveCookie UserList, WikiObserver, GiveDrinkObserver, GiveFoodObserver, ComicObserver, HelpObserver, \ IntroductionObserver, HangmanObserver, DuckObserver, AllSeenObserver, JokeObserver,TellObserver, WordRunObserver,\ GiveIceObserver, GiveDrinkToObserver, Greeter, MathRunObserver, PartyObserver, PrideObserver, SnacksObserver, \ - BlockObserver, LetterObserver, DiceObserver, First_Greeter + BlockObserver, LetterObserver, DiceObserver, First_Greeter, CharactersCountObserver from FaustBot.Modules.CustomUserModules import GlossaryModule, ICDObserver, ModmailObserver from FaustBot.Modules.ModuleType import ModuleType @@ -62,6 +62,7 @@ class FaustBot(object): self.add_module(BlockObserver.BlockObserver()) self.add_module(LetterObserver.LetterObserver()) self.add_module(DiceObserver.DiceObserver()) + self.add_module(CharactersCountObserver.CharactersCountObserver()) def run(self): self._setup() running = True diff --git a/FaustBot/Model/UserProvider.py b/FaustBot/Model/UserProvider.py index 909e28a..11c089a 100644 --- a/FaustBot/Model/UserProvider.py +++ b/FaustBot/Model/UserProvider.py @@ -90,15 +90,15 @@ class UserProvider(object): def _get_id(self, name): cursor = self.database_connection.cursor() try: - for id in cursor.execute("SELECT id FROM user WHERE name = ?", (name,)): + for id in cursor.execute("SELECT id FROM user WHERE name = ?", (name.lower(),)): return id[0] except: return None def _create_user(self, name): cursor = self.database_connection.cursor() - cursor.execute("INSERT INTO user(name) VALUES (?)", (name,)) - id = self._get_id(name) + cursor.execute("INSERT INTO user(name) VALUES (?)", (name.lower(),)) + id = self._get_id(name.lower()) cursor.execute("INSERT INTO user_stats(id, characters) VALUES (?, 0)", (id,)) cursor.execute("INSERT INTO last_seen (id, last_seen) VALUES (?, 0)", (id,)) self.database_connection.commit() diff --git a/FaustBot/Modules/CharactersCountObserver.py b/FaustBot/Modules/CharactersCountObserver.py new file mode 100644 index 0000000..68f95bd --- /dev/null +++ b/FaustBot/Modules/CharactersCountObserver.py @@ -0,0 +1,22 @@ +import datetime + +from FaustBot.Communication.Connection import Connection +from FaustBot.Model.UserProvider import UserProvider +from FaustBot.Modules.PrivMsgObserverPrototype import PrivMsgObserverPrototype + + +class CharactersCountObserver(PrivMsgObserverPrototype): + @staticmethod + def cmd(): + return [".characters"] + + @staticmethod + def help(): + return ".characters - um abzufragen wieviel du bisher geschrieben hast." + + def update_on_priv_msg(self, data, connection: Connection): + if data['message'].find('.characters') == -1: + return + user_provider = UserProvider() + output = data['nick']+": du hast "+str(user_provider.get_characters(data['nick']))+ " Zeichen geschrieben." + connection.send_back(output, data) diff --git a/FaustBot/Modules/SeenObserver.py b/FaustBot/Modules/SeenObserver.py index 9617b12..da7b501 100644 --- a/FaustBot/Modules/SeenObserver.py +++ b/FaustBot/Modules/SeenObserver.py @@ -19,7 +19,7 @@ class SeenObserver(PrivMsgObserverPrototype): return if not self._is_idented_mod(data, connection): return - who = data['messageCaseSensitive'].split(' ')[1] + who = data['message'].split(' ')[1] user_provider = UserProvider() activity = user_provider.get_activity(who) output = data['nick']+": Ich habe "+who+" zuletzt am "+str(datetime.datetime.fromtimestamp(activity).strftime("%d.%m.%Y um %H:%M:%S"))+ ' Uhr gesehen'