user.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. async def create_user(pg, user_id):
  2. await pg.execute("INSERT INTO \"user\"(user_id) VALUES($1) ON CONFLICT DO NOTHING", user_id)
  3. async def ignore_user(pg, user_id):
  4. await pg.execute("UPDATE \"user\" SET ignore = TRUE WHERE user_id = $1", user_id)
  5. async def unignore_user(pg, user_id):
  6. await pg.execute("UPDATE \"user\" SET ignore = FALSE WHERE user_id = $1", user_id)
  7. async def is_ignored(pg, user_id):
  8. return await pg.fetchval("SELECT ignore FROM \"user\" WHERE user_id = $1", user_id)
  9. async def get_level(pg, user_id):
  10. return await pg.fetchval("SELECT level FROM \"user\" WHERE user_id = $1", user_id)
  11. async def get_xp(pg, user_id):
  12. message_array = await pg.fetch("SELECT total_messages FROM channel_user WHERE \"user\" = $1", user_id)
  13. total_xp = 0
  14. for messages in message_array:
  15. total_xp += messages[0]
  16. 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)
  17. 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
  18. for extra in extras_array:
  19. invites_created += extra[0]
  20. integrations_created += extra[1]
  21. member_updated += extra[2]
  22. user_updated += extra[3]
  23. member_banned += extra[4]
  24. member_unbanned += extra[5]
  25. presence_updated += extra[6]
  26. messages_edited += extra[7]
  27. messages_deleted += extra[8]
  28. reacted += extra[9]
  29. events_created += extra[10]
  30. events_joined += extra[11]
  31. threads_created += extra[12]
  32. threads_joined += extra[13]
  33. 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)
  34. xp_spent = await pg.fetchval("SELECT xp_spent FROM \"user\" WHERE user_id = $1", user_id)
  35. return xp_spent, total_xp
  36. async def level_up(pg, user_id, xp):
  37. await pg.execute("UPDATE \"user\" SET (level, xp_spent) = (+ 1, $2) WHERE user_id = $1", user_id, xp)
  38. async def created_invite(pg, user_id):
  39. await pg.execute("UPDATE \"user\" SET (invites_created) = (+ 1) WHERE user_id = $1", user_id)
  40. async def invites_created(pg, user_id):
  41. return await pg.fetchval("SELECT invites_created FROM \"user\" WHERE user_id = $1", user_id)
  42. async def created_integration(pg, user_id):
  43. await pg.execute("UPDATE \"user\" SET (integrations_created) = (+ 1) WHERE user_id = $1", user_id)
  44. async def member_updated(pg, user_id):
  45. await pg.execute("UPDATE \"user\" SET (member_updated) = (+ 1) WHERE user_id = $1", user_id)
  46. async def user_updated(pg, user_id):
  47. await pg.execute("UPDATE \"user\" SET (user_updated) = (+ 1) WHERE user_id = $1", user_id)
  48. async def member_banned(pg, user_id):
  49. await pg.execute("UPDATE \"user\" SET (member_banned) = (+ 1) WHERE user_id = $1", user_id)
  50. async def member_unbanned(pg, user_id):
  51. await pg.execute("UPDATE \"user\" SET (member_unbanned) = (+ 1) WHERE user_id = $1", user_id)
  52. async def presence_updated(pg, user_id):
  53. await pg.execute("UPDATE \"user\" SET (presence_updated) = (+ 1) WHERE user_id = $1", user_id)
  54. async def message_edited(pg, user_id):
  55. await pg.execute("UPDATE \"user\" SET (messages_edited) = (+ 1) WHERE user_id = $1", user_id)
  56. async def message_deleted(pg, user_id):
  57. await pg.execute("UPDATE \"user\" SET (messages_deleted) = (+ 1) WHERE user_id = $1", user_id)
  58. async def reacted(pg, user_id):
  59. await pg.execute("UPDATE \"user\" SET (reacted) = (+ 1) WHERE user_id = $1", user_id)
  60. async def event_created(pg, user_id):
  61. await pg.execute("UPDATE \"user\" SET (events_created) = (+ 1) WHERE user_id = $1", user_id)
  62. async def event_joined(pg, user_id):
  63. await pg.execute("UPDATE \"user\" SET (events_joined) = (+ 1) WHERE user_id = $1", user_id)
  64. async def thread_created(pg, user_id):
  65. await pg.execute("UPDATE \"user\" SET (threads_created) = (+ 1) WHERE user_id = $1", user_id)
  66. async def thread_joined(pg, user_id):
  67. await pg.execute("UPDATE \"user\" SET (threads_joined) = (+ 1) WHERE user_id = $1", user_id)