Explicit account modification #42

Merged
waifu merged 7 commits from 35_Explicit_account_modification into dev 2025-06-03 19:06:14 -07:00
Showing only changes of commit a0ed6ded41 - Show all commits

View file

@ -1,12 +1,14 @@
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from db_utils import get_or_create_user, insert_pull, get_last_rolled_at, get_random_character from db_utils import get_player, insert_player, insert_pull, get_last_rolled_at, get_random_character
from add_character import add_character from add_character import add_character
from config import GACHA_ROLL_INTERVAL from config import GACHA_ROLL_INTERVAL
def do_roll(full_user): def do_roll(full_user):
'''Determines whether the user can roll, then pulls a random character''' '''Determines whether the user can roll, then pulls a random character'''
user_id = get_or_create_user(full_user) user_id = get_player(full_user)
if not user_id:
Review

The function seems to grow too big too huge. Instead of piling every action in one file response.py, splitting every do_* into separate files could help. The file will be very heavy on a lot of unrelated to each other changes, hence every function belongs to a separate "domain", that could be expressed by splitting

The function seems to grow too big too huge. Instead of piling every action in one file `response.py`, splitting every do_* into separate files could help. The file will be very heavy on a lot of unrelated to each other changes, hence every function belongs to a separate "domain", that could be expressed by splitting
return f'@{full_user} 🛑 You havent signed up yet! Use the `signup` command to start playing.'
# Get date of user's last roll # Get date of user's last roll
date = get_last_rolled_at(user_id) date = get_last_rolled_at(user_id)
@ -43,6 +45,16 @@ def do_roll(full_user):
return([f"@{full_user} 🎲 Congrats! You rolled {stars} **{character_name}**\n\ return([f"@{full_user} 🎲 Congrats! You rolled {stars} **{character_name}**\n\
She's all yours now~ 💖✨",[file_id]]) She's all yours now~ 💖✨",[file_id]])
def do_signup(full_user):
'''Registers a new user if they havent signed up yet.'''
user_id = get_player(full_user)
if user_id:
return f'@{full_user} 👀 Youre already signed up! Let the rolling begin~ 🎲'
new_user_id = insert_player(full_user)
return f'@{full_user} ✅ Signed up successfully! Your gacha destiny begins now... ✨ Use the roll command to start!'
def is_float(val): def is_float(val):
'''Returns true if `val` can be converted to a float''' '''Returns true if `val` can be converted to a float'''
try: try:
@ -96,5 +108,7 @@ def generate_response(parsed_command):
return do_create(full_user, arguments, note_obj) return do_create(full_user, arguments, note_obj)
case 'help': case 'help':
return do_help(command) return do_help(command)
case 'signup':
return do_signup(full_user)
case _: case _:
return None return None