""" read file with URLs and store in DB """ import uuid from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter import datetime import mariadb from setup import get_database_cursors, get_logger, get_scripts, get_meta_data parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter) parser.add_argument('-f', '--links', help='file with links') parser.add_argument('--verbose', '-v', action='count', default=0) args = parser.parse_args() def read_links_file(links_file): with open(links_file, 'r') as input_file: lines = input_file.readlines() return lines def add_link_to_db(statement, connection, video_url, log): entry_id = str(uuid.uuid4()) current_date_time = datetime.datetime.now() try: cur = connection.cursor() cur.execute(statement, (entry_id, current_date_time, current_date_time, 0, video_url, True, True, None, None, None, None)) connection.commit() log.info(f'link {video_url} added to db') except mariadb.Error as insert_error: log.debug("insert failed with %s", insert_error) entry_id = None return entry_id if __name__ == '__main__': logger = get_logger(args.verbose) logger.info('kontor.read_list started') s_conn, m_conn = get_database_cursors(logger) meta_data_tables = get_meta_data(m_conn) scripts = get_scripts(meta_data_tables, logger) tables = {} for table_id in scripts: tables[scripts[table_id]['name']] = table_id media_file_id = tables['media_file'] insert_statement = scripts[tables['media_file']]['insert_mariadb'] if args.links: logger.info("read links from file") links = read_links_file(args.links) for link in links: logger.info("add link to db") add_link_to_db(insert_statement, m_conn, link.strip(), logger) else: logger.info('script used: {}'.format(insert_statement)) logger.info('kontor.read_list finished')