| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- async def create_user(pg, user_id):
- await pg.execute("INSERT INTO \"user\"(user_id) VALUES($1) ON CONFLICT DO NOTHING", user_id)
- async def ignore_user(pg, user_id):
- await pg.execute("UPDATE \"user\" SET ignore = TRUE WHERE user_id = $1", user_id)
- async def unignore_user(pg, user_id):
- await pg.execute("UPDATE \"user\" SET ignore = FALSE WHERE user_id = $1", user_id)
- async def is_ignored(pg, user_id):
- return await pg.fetchval("SELECT ignore FROM \"user\" WHERE user_id = $1", user_id)
- async def get_level(pg, user_id):
- return await pg.fetchval("SELECT level FROM \"user\" WHERE user_id = $1", user_id)
- async def get_xp(pg, user_id):
- message_array = await pg.fetch("SELECT total_messages FROM channel_user WHERE \"user\" = $1", user_id)
- total_xp = 0
- for messages in message_array:
- total_xp += messages[0]
- extras_array = await pg.fetch("SELECT invites_created, integrations_created, member_updated, user_updated, member_banned, member_unbanned, presence_updated, messages_edited, messages_deleted, reacted, events_created, events_joined, threads_created, threads_joined FROM \"user\" WHERE user_id = $1", user_id)
- invites_created, integrations_created, member_updated, user_updated, member_banned, member_unbanned, presence_updated, messages_edited, messages_deleted, reacted, events_created, events_joined, threads_created, threads_joined = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- for extra in extras_array:
- invites_created += extra[0]
- integrations_created += extra[1]
- member_updated += extra[2]
- user_updated += extra[3]
- member_banned += extra[4]
- member_unbanned += extra[5]
- presence_updated += extra[6]
- messages_edited += extra[7]
- messages_deleted += extra[8]
- reacted += extra[9]
- events_created += extra[10]
- events_joined += extra[11]
- threads_created += extra[12]
- threads_joined += extra[13]
- total_xp += (invites_created * 100) + ((integrations_created + events_created) * 200) + ((member_updated + user_updated + presence_updated + events_joined + threads_joined) * 10) + member_banned + member_unbanned + messages_edited + messages_deleted + (reacted * 2) + (threads_created * 50)
- xp_spent = await pg.fetchval("SELECT xp_spent FROM \"user\" WHERE user_id = $1", user_id)
- return xp_spent, total_xp
- async def level_up(pg, user_id, xp):
- await pg.execute("UPDATE \"user\" SET (level, xp_spent) = (level + 1, $2) WHERE user_id = $1", user_id, xp)
- await increment_all_coin(pg)
- async def created_invite(pg, user_id):
- await pg.execute("UPDATE \"user\" SET invites_created = invites_created + 1 WHERE user_id = $1", user_id)
- async def invites_created(pg, user_id):
- return await pg.fetchval("SELECT invites_created FROM \"user\" WHERE user_id = $1", user_id)
- async def created_integration(pg, user_id):
- await pg.execute("UPDATE \"user\" SET integrations_created = integrations_created + 1 WHERE user_id = $1", user_id)
- async def member_joined(pg, user_id):
- await create_user(pg, user_id)
- await pg.execute("UPDATE \"user\" SET karma = karma + 1 WHERE user_id = $1", user_id)
- # TODO count event instead of using karma
- async def member_removed(pg, user_id):
- await pg.execute("UPDATE \"user\" SET karma = karma - 1 WHERE user_id = $1", user_id)
- # TODO count event instead of using karma
- async def member_updated(pg, user_id):
- await pg.execute("UPDATE \"user\" SET member_updated = member_updated + 1 WHERE user_id = $1", user_id)
- async def user_updated(pg, user_id):
- await pg.execute("UPDATE \"user\" SET user_updated = user_updated + 1 WHERE user_id = $1", user_id)
- async def member_banned(pg, user_id):
- await pg.execute("UPDATE \"user\" SET member_banned = member_banned + 1 WHERE user_id = $1", user_id)
- async def member_unbanned(pg, user_id):
- await pg.execute("UPDATE \"user\" SET member_unbanned = member_unbanned + 1 WHERE user_id = $1", user_id)
- async def presence_updated(pg, user_id):
- await pg.execute("UPDATE \"user\" SET presence_updated = presence_updated + 1 WHERE user_id = $1", user_id)
- async def message_edited(pg, user_id):
- await pg.execute("UPDATE \"user\" SET messages_edited = messages_edited + 1 WHERE user_id = $1", user_id)
- async def message_deleted(pg, user_id):
- await pg.execute("UPDATE \"user\" SET messages_deleted = messages_deleted + 1 WHERE user_id = $1", user_id)
- async def reacted(pg, user_id):
- await pg.execute("UPDATE \"user\" SET (reacted, karma) = (reacted + 1, karma + 1) WHERE user_id = $1", user_id)
- # TODO Change to own fiel, no longer add karma
- async def unreacted(pg, user_id):
- await pg.execute("UPDATE \"user\" SET karma = karma - 1 WHERE user_id = $1", user_id)
- # TODO Change to own fiel, no longer add karma
- async def event_created(pg, user_id):
- await pg.execute("UPDATE \"user\" SET (events_created, karma) = (events_created + 1, karma + 1) WHERE user_id = $1", user_id)
- async def event_joined(pg, user_id):
- await pg.execute("UPDATE \"user\" SET (events_joined, karma) = (events_joined + 1, karma + 1) WHERE user_id = $1", user_id)
- async def event_parted(pg, user_id):
- await pg.execute("UPDATE \"user\" SET karma = karma - 1 WHERE user_id = $1", user_id)
- async def thread_created(pg, user_id):
- await pg.execute("UPDATE \"user\" SET (threads_created, karma) = (threads_created + 1, karma + 1) WHERE user_id = $1", user_id)
- async def thread_deleted(pg, user_id):
- await pg.execute("UPDATE \"user\" SET karma = karma - 1 WHERE user_id = $1", user_id)
- async def joined_thread(pg, user_id):
- await pg.execute("UPDATE \"user\" SET (threads_joined, karma) = (threads_joined + 1, karma + 1) WHERE user_id = $1", user_id)
- async def left_thread(pg, user_id):
- await pg.execute("UPDATE \"user\" SET karma = karma - 1 WHERE user_id = $1", user_id)
- async def get_ability_points_spent(pg, user_id):
- return await pg.fetchval("SELECT ability_points_spent FROM \"user\" WHERE user_id = $1", user_id)
- async def increment_all_coin(pg):
- await pg.execute("UPDATE \"user\" SET coin = coin + 1 WHERE level > 0")
- async def get_coin(pg, user_id):
- return await pg.fetchval("SELECT coin FROM \"user\" WHERE user_id = $1", user_id)
- async def get_karma(pg, user_id):
- return await pg.fetchval("SELECT karma FROM \"user\" WHERE user_id = $1", user_id)
- async def get_theft_skill(pg, user_id):
- return await pg.fetchval("SELECT theft_skill FROM \"user\" WHERE user_id = $1", user_id)
- async def get_random_player(pg):
- return await pg.fetchval("SELECT user_id FROM \"user\" ORDER BY radoom() LIMIT 1")
|