diff --git a/bin/breadmixer.py b/bin/breadmixer.py index 190c4b6..80918b4 100644 --- a/bin/breadmixer.py +++ b/bin/breadmixer.py @@ -4,6 +4,7 @@ import json import os import sys import datetime +from pprint import pprint argument_parser = argparse.ArgumentParser(description="BreadMixer is used to combine media from Discord Voice Calls") argument_parser.add_argument("callid", help="The call id that needs to be mixed") @@ -46,5 +47,38 @@ cursor.execute("SELECT call_start_time FROM call_states WHERE call_id = %s", [ar call_start_time = cursor.fetchall() -print(call_start_time) +if len(call_start_time) == 0: + print('{call_id} does not exist in the database'.format(call_id=args.callid)) + + sys.exit(3) + +file_dict = {} +user_lut = {} + +for file in os.listdir(os.path.join(json_config["media_voice_folder"], args.callid)): + file_name_no_ext = file.split('.')[0] + timestamp = file_name_no_ext.split('-')[0] + user_snowflake = file_name_no_ext.split('-')[1] + + if not user_snowflake in user_lut: + cursor.execute("SELECT user_name FROM users WHERE user_snowflake = %s", [user_snowflake]) + + username = cursor.fetchall() + + if len(username) == 0: + print('The user snowflake {snowflake} is not present in the DB'.format(snowflake=user_snowflake)) + + sys.exit(4) + + # In this instance you have to unwrap both the result list and the result tuple, + # which creates the obnoxious 0,0 double dereference operation + user_lut[user_snowflake] = username[0][0] + + file_dict[file] = dict( + user=user_lut[user_snowflake], + real_date=datetime.datetime.fromtimestamp(timestamp / 1000), + seconds_from_starttime=(datetime.datetime.fromtimestamp(timestamp / 1000) - call_start_time[0][0]).seconds + ) + +pprint(file_dict)