diff --git a/bot.py b/bot.py index d30af0b..9425f40 100644 --- a/bot.py +++ b/bot.py @@ -212,6 +212,35 @@ def save_user_data_to_mysql(user_data): db_cursor.execute(update_query, data) db_connection.commit() + +cached_user_data = {} +pending_deletion = {} + +async def cache_user_data(user_id, data): + cached_user_data[user_id] = data + + # Setze die Daten nach 30 Sekunden auf die Löschliste + if user_id not in pending_deletion: + pending_deletion[user_id] = asyncio.get_event_loop().call_later(30, lambda: remove_user_data_from_cache(user_id)) + +def remove_user_data_from_cache(user_id): + # Entferne den Benutzer aus dem Cache und der Löschliste + if user_id in cached_user_data: + del cached_user_data[user_id] + if user_id in pending_deletion: + pending_deletion[user_id].cancel() + del pending_deletion[user_id] + +def load_user_data(user_id): + if user_id in cached_user_data: + return cached_user_data[user_id] + + user_data = load_user_data_from_mysql(user_id) + asyncio.ensure_future(cache_user_data(user_id, user_data)) + + return user_data + + #----------------------------------------------------------------------------------------------------------- def read_introduction():