#!/usr/bin/env python3 import psycopg import yaml import sys with open('config.yml', 'r', encoding='UTF-8') as data: config = yaml.safe_load(data.read()) with open(config['response_tokens'], 'r', encoding='UTF-8') as data: valid_tokens = {item for item in yaml.safe_load(data.read())} #with open(sys.argv[1], 'r', encoding='UTF-8') as data: # phrases = yaml.safe_load(data.read()) with open(sys.argv[1], 'r', encoding='UTF-8') as data: names = yaml.safe_load(data.read()) with psycopg.connect(config['db_spec']) as conn: query_phrases = 'INSERT INTO responses (tokens, response) VALUES (%s, %s)' query_names = 'INSERT INTO names (tg_id, name) VALUES (%s, %s)' with conn.cursor() as cur: #for regexref, responses in phrases.items(): # tokens = set(regexref.split(',')) # if tokens != tokens & valid_tokens: # print(f'{str(tokens)} failed to add!') # continue # token_string = ','.join(sorted(tokens)) # for response in responses: # cur.execute('SAVEPOINT sp1') # try: # cur.execute(query_phrases, (token_string, response)) # except psycopg.errors.UniqueViolation as err: # cur.execute('ROLLBACK TO SAVEPOINT sp1') # # print(err) # continue # cur.execute('RELEASE SAVEPOINT sp1') #conn.commit() for tg_id, usernames in names.items(): for username in usernames: cur.execute(query_names, (tg_id, username)) conn.commit()