Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import psycopg2
- import json
- #from collections import defaultdict
- class SafeDict(dict):
- def __missing__(self, key):
- return '{' + key + '}'
- conn = psycopg2.connect(dbname='zseznyre', user='zseznyre',
- password='CSnOszr21d34as8eRFwV6txWG68_NLQS', host='dumbo.db.elephantsql.com', port=5432)
- conn.autocommit = True
- cursor = conn.cursor()
- def new_user(message_from_user):
- """
- add new user to database
- """
- data = {
- "first_name": message_from_user.first_name,
- "last_name": message_from_user.last_name,
- "username": message_from_user.username,
- "user_group": "none",
- "user_week": "auto",
- "user_subgroup": "none"
- }
- try:
- cursor.execute("INSERT INTO bot_users VALUES(%s, %s)", (message_from_user.id, json.dumps(data)))
- print('new user')
- except psycopg2.errors.UniqueViolation:
- pass
- def get_user_data(user_id):
- """
- to get the data
- """
- cursor.execute(f'SELECT user_data FROM bot_users WHERE user_id = {user_id}')
- return cursor.fetchone()[0]
- def update_group(user_id, group_type):
- """
- to set the group
- """
- cursor.execute("""UPDATE bot_users SET user_data = jsonb_set(user_data, '{user_group}', '"{group}"')
- WHERE user_id = {id}""".format_map(SafeDict(id=user_id, group=group_type)))
- def update_week(user_id, week_type):
- """
- to set type of week
- """
- cursor.execute("""UPDATE bot_users SET user_data = jsonb_set(user_data, '{user_week}', '"{week}"')
- WHERE user_id = {id}""".format_map(SafeDict(id=user_id, week=week_type)))
- def update_subgroup(user_id, subgroup_type):
- """
- to set the subgroup
- """
- cursor.execute("""UPDATE bot_users SET user_data = jsonb_set(user_data, '{user_subgroup}', '"{subgroup}"')
- WHERE user_id = {id}""".format_map(SafeDict(id=user_id, subgroup=subgroup_type)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement