58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
"""
|
|
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')
|
|
|