made user managment case insensitive

Added CharactersCountObserver.py which outputs the written characters on command
This commit is contained in:
BaerbelBox
2024-02-10 16:16:16 +01:00
parent db1f59f823
commit 368bce5ebd
4 changed files with 28 additions and 5 deletions

View File

@@ -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

View File

@@ -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()

View File

@@ -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)

View File

@@ -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'