18 lines
911 B
Python
18 lines
911 B
Python
from discord.ext import tasks
|
|
from datetime import datetime
|
|
from .bot import bot, user_repo, active_voice_users, VOICE_EXP_POINTS_PER_MINUTE
|
|
|
|
@tasks.loop(minutes=1)
|
|
async def update_voice_exp():
|
|
current_time = datetime.now()
|
|
for user_id in list(active_voice_users):
|
|
last_join_time = await user_repo.get_voice_time(user_id)
|
|
if last_join_time:
|
|
join_time = datetime.fromisoformat(last_join_time)
|
|
time_spent = current_time - join_time
|
|
if time_spent.total_seconds() >= 60:
|
|
current_exp = await user_repo.get_exp(user_id)
|
|
new_exp = current_exp + VOICE_EXP_POINTS_PER_MINUTE
|
|
await user_repo.update_exp(user_id, new_exp)
|
|
await user_repo.update_voice_time(user_id, current_time.isoformat())
|
|
print(f"Added {VOICE_EXP_POINTS_PER_MINUTE} exp points to user {user_id} for voice time") |