Advertisement
darkor

database_4_bot

Feb 22nd, 2020
354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.93 KB | None | 0 0
  1. import psycopg2
  2. import json
  3. #from collections import defaultdict
  4.  
  5.  
  6. class SafeDict(dict):
  7.     def __missing__(self, key):
  8.         return '{' + key + '}'
  9.  
  10.  
  11. conn = psycopg2.connect(dbname='zseznyre', user='zseznyre',
  12.                         password='CSnOszr21d34as8eRFwV6txWG68_NLQS', host='dumbo.db.elephantsql.com', port=5432)
  13. conn.autocommit = True
  14.  
  15. cursor = conn.cursor()
  16.  
  17.  
  18. def new_user(message_from_user):
  19.     """
  20.    add new user to database
  21.    """
  22.  
  23.     data = {
  24.         "first_name": message_from_user.first_name,
  25.         "last_name": message_from_user.last_name,
  26.         "username": message_from_user.username,
  27.         "user_group": "none",
  28.         "user_week": "auto",
  29.         "user_subgroup": "none"
  30.     }
  31.     try:
  32.         cursor.execute("INSERT INTO bot_users VALUES(%s, %s)", (message_from_user.id, json.dumps(data)))
  33.         print('new user')
  34.     except psycopg2.errors.UniqueViolation:
  35.         pass
  36.  
  37.  
  38. def get_user_data(user_id):
  39.     """
  40.    to get the data
  41.    """
  42.  
  43.     cursor.execute(f'SELECT user_data FROM bot_users WHERE user_id = {user_id}')
  44.  
  45.     return cursor.fetchone()[0]
  46.  
  47.  
  48. def update_group(user_id, group_type):
  49.     """
  50.    to set the group
  51.    """
  52.  
  53.     cursor.execute("""UPDATE bot_users SET user_data = jsonb_set(user_data, '{user_group}', '"{group}"')
  54.    WHERE user_id = {id}""".format_map(SafeDict(id=user_id, group=group_type)))
  55.  
  56.  
  57. def update_week(user_id, week_type):
  58.     """
  59.    to set type of week
  60.    """
  61.  
  62.     cursor.execute("""UPDATE bot_users SET user_data = jsonb_set(user_data, '{user_week}', '"{week}"')
  63.    WHERE user_id = {id}""".format_map(SafeDict(id=user_id, week=week_type)))
  64.  
  65.  
  66. def update_subgroup(user_id, subgroup_type):
  67.     """
  68.    to set the subgroup
  69.    """
  70.  
  71.     cursor.execute("""UPDATE bot_users SET user_data = jsonb_set(user_data, '{user_subgroup}', '"{subgroup}"')
  72.    WHERE user_id = {id}""".format_map(SafeDict(id=user_id, subgroup=subgroup_type)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement