def create_keyword(sendung, roboting_sg, dt_sg_new_date): """concatenate keyword""" try: lib_cm.message_write_to_console( ac, lib_cm.replace_uchar_sonderzeichen_with_latein(sendung[16])) lib_cm.message_write_to_console( ac, lib_cm.replace_uchar_sonderzeichen_with_latein(roboting_sg[1])) # search counter, if found increase value counter_pos = roboting_sg[1].find("nnn") if counter_pos != -1: counter_old = sendung[16][counter_pos:counter_pos + 3] lib_cm.message_write_to_console(ac, "counter old: " + counter_old) # bei zweistelligem ergebnis null auffuellen counter_new = str(int(counter_old) + 1).zfill(3) lib_cm.message_write_to_console(ac, "counter new: " + counter_new) # Stichwort bis Counter # stichwort_anfang = sendung[16][0:counter_pos] # search date in keyword date_pos = roboting_sg[1].find("yyyy_mm_dd") # counter and date present if counter_pos != -1 and date_pos != -1: # durch sendung[16][date_pos+10:] wird alles # was in stichwort sonst noch eingetragen # hinten wieder dran gesetzt sg_stichwort = (roboting_sg[1][0:counter_pos] + counter_new + "_" + dt_sg_new_date.strftime("%Y_%m_%d") + sendung[16][date_pos + 10:]) # counter but no date present if counter_pos != -1 and date_pos == -1: # durch sendung[16][counter_pos + 3:] wird alles # was in stichwort sonst noch eingetragen # hinten wieder dran gesetzt sg_stichwort = (roboting_sg[1][0:counter_pos] + counter_new + sendung[16][counter_pos + 3:]) # counter not, but date present if counter_pos == -1 and date_pos != -1: sg_stichwort = (roboting_sg[1][0:date_pos] + dt_sg_new_date.strftime("%Y_%m_%d") + sendung[16][date_pos + 10:]) # neither counter nor date in keyword present if counter_pos == -1 and date_pos == -1: sg_stichwort = sendung[16] # max. laenge stichwort pruefen, wenn noetig kuerzen if len(sg_stichwort) > 40: sg_stichwort = sg_stichwort[0:40] lib_cm.message_write_to_console( ac, lib_cm.replace_uchar_sonderzeichen_with_latein(sg_stichwort)) except Exception, e: lib_cm.message_write_to_console( ac, "Fehler Stichwort generieren :" + str(e)) db.write_log_to_db_a( ac, ac.app_errorslist[1] + lib_cm.replace_uchar_sonderzeichen_with_latein(sendung[16]), "x", "write_also_to_console") sg_stichwort = None
def create_keyword(sendung, roboting_sg, dt_sg_new_date): """concatenate keyword""" try: lib_cm.message_write_to_console(ac, lib_cm.replace_uchar_sonderzeichen_with_latein(sendung[16])) lib_cm.message_write_to_console(ac, lib_cm.replace_uchar_sonderzeichen_with_latein(roboting_sg[1])) # search counter, if found increase value counter_pos = roboting_sg[1].find("nnn") if counter_pos != -1: counter_old = sendung[16][counter_pos:counter_pos + 3] lib_cm.message_write_to_console(ac, "counter old: " + counter_old) # bei zweistelligem ergebnis null auffuellen counter_new = str(int(counter_old) + 1).zfill(3) lib_cm.message_write_to_console(ac, "counter new: " + counter_new) # Stichwort bis Counter # stichwort_anfang = sendung[16][0:counter_pos] # search date in keyword date_pos = roboting_sg[1].find("yyyy_mm_dd") # counter and date present if counter_pos != -1 and date_pos != -1: # durch sendung[16][date_pos+10:] wird alles # was in stichwort sonst noch eingetragen # hinten wieder dran gesetzt sg_stichwort = (roboting_sg[1][0:counter_pos] + counter_new + "_" + dt_sg_new_date.strftime("%Y_%m_%d") + sendung[16][date_pos + 10:]) # counter but no date present if counter_pos != -1 and date_pos == -1: # durch sendung[16][counter_pos + 3:] wird alles # was in stichwort sonst noch eingetragen # hinten wieder dran gesetzt sg_stichwort = (roboting_sg[1][0:counter_pos] + counter_new + sendung[16][counter_pos + 3:]) # counter not, but date present if counter_pos == -1 and date_pos != -1: sg_stichwort = (roboting_sg[1][0:date_pos] + dt_sg_new_date.strftime("%Y_%m_%d") + sendung[16][date_pos + 10:]) # neither counter nor date in keyword present if counter_pos == -1 and date_pos == -1: sg_stichwort = sendung[16] # max. laenge stichwort pruefen, wenn noetig kuerzen if len(sg_stichwort) > 40: sg_stichwort = sg_stichwort[0:40] lib_cm.message_write_to_console(ac, lib_cm.replace_uchar_sonderzeichen_with_latein(sg_stichwort)) except Exception, e: lib_cm.message_write_to_console(ac, "Fehler Stichwort generieren :" + str(e)) db.write_log_to_db_a(ac, ac.app_errorslist[1] + lib_cm.replace_uchar_sonderzeichen_with_latein(sendung[16]), "x", "write_also_to_console") sg_stichwort = None
def create_filename(sendung, sg_stichwort, main_id_sg_cont): """concatenate filename""" if sendung[8].strip() == "03": # Vorproduziert oder stream if sendung[15][0:7] == "http://": # wenn stream, dann nix bauen sondern uebernehmen sg_filename = sendung[15] else: sg_filename = (str(main_id_sg_cont) + "_" + lib_cm.replace_uchar_sonderzeichen_with_latein(sendung[25]) + "_" + lib_cm.replace_uchar_sonderzeichen_with_latein(sg_stichwort) + ".mp3") else: # Live sg_filename = "Keine_Audiodatei" return sg_filename
def create_filename(sendung, sg_stichwort, main_id_sg_cont): """concatenate filename""" if sendung[8].strip() == "03": # Vorproduziert oder stream if sendung[15][0:7] == "http://": # wenn stream, dann nix bauen sondern uebernehmen sg_filename = sendung[15] else: sg_filename = ( str(main_id_sg_cont) + "_" + lib_cm.replace_uchar_sonderzeichen_with_latein(sendung[25]) + "_" + lib_cm.replace_uchar_sonderzeichen_with_latein(sg_stichwort) + ".mp3") else: # Live sg_filename = "Keine_Audiodatei" return sg_filename
def write_to_file_record_params(r_duration, list_live_sendungen): """write configfile for recorder""" log_message = ("Laenge des Mitschnitts: " + str(r_duration) + "Sekunden") db.write_log_to_db_a(ac, log_message, "t", "write_also_to_console") c_date_time_from = (str(ac.time_target.date()) + "_" + str(ac.time_target.hour).zfill(2)) file_recording_config = ac.app_homepath + db.ac_config_1[5] r_name = lib_cm.replace_uchar_sonderzeichen_with_latein( list_live_sendungen[0][15]).replace(" ", "") r_title = lib_cm.replace_uchar_sonderzeichen_with_latein( list_live_sendungen[0][11][0:8]).replace(" ", "") # home path of active stream-server if db.ac_config_server_active[3] == "A": r_path = ("/home/" + db.ac_config_servset[9] + lib_cm.check_slashes(ac, db.ac_config_1[6])) if db.ac_config_server_active[3] == "B": r_path = ("/home/" + db.ac_config_servset[10] + lib_cm.check_slashes(ac, db.ac_config_1[6])) r_path_file = (r_path + c_date_time_from + "_" + r_name + "_" + r_title + ".wav") # startdelay when transmitting begins not with 0 minute and 0 sec r_wait = list_live_sendungen[0][2].minute * 60 r_wait += list_live_sendungen[0][2].second # begin record a few seconds before transmitt begins r_wait -= int(db.ac_config_1[3]) # crotab starts record script in minute 59, so 60 sec must added r_wait += 60 try: f_r_conf = open(file_recording_config, 'w') except IOError as (errno, strerror): log_message = ( "write_to_file_record_params: I/O error({0}): {1}".format( errno, strerror) + ": " + file_recording_config) db.write_log_to_db(ac, log_message, "x") db.write_log_to_db_a(ac, ac.app_errorslist[1], "x", "write_also_to_console")
def write_to_file_record_params(r_duration, list_live_sendungen): """write configfile for recorder""" log_message = ("Laenge des Mitschnitts: " + str(r_duration) + "Sekunden") db.write_log_to_db_a(ac, log_message, "t", "write_also_to_console") c_date_time_from = (str(ac.time_target.date()) + "_" + str(ac.time_target.hour).zfill(2)) file_recording_config = ac.app_homepath + db.ac_config_1[5] r_name = lib_cm.replace_uchar_sonderzeichen_with_latein( list_live_sendungen[0][15]).replace(" ", "") r_title = lib_cm.replace_uchar_sonderzeichen_with_latein( list_live_sendungen[0][11][0:8]).replace(" ", "") # home path of active stream-server if db.ac_config_server_active[3] == "A": r_path = ("/home/" + db.ac_config_servset[9] + lib_cm.check_slashes(ac, db.ac_config_1[6])) if db.ac_config_server_active[3] == "B": r_path = ("/home/" + db.ac_config_servset[10] + lib_cm.check_slashes(ac, db.ac_config_1[6])) r_path_file = (r_path + c_date_time_from + "_" + r_name + "_" + r_title + ".wav") # startdelay when transmitting begins not with 0 minute and 0 sec r_wait = list_live_sendungen[0][2].minute * 60 r_wait += list_live_sendungen[0][2].second # begin record a few seconds before transmitt begins r_wait -= int(db.ac_config_1[3]) # crotab starts record script in minute 59, so 60 sec must added r_wait += 60 try: f_r_conf = open(file_recording_config, 'w') except IOError as (errno, strerror): log_message = ("write_to_file_record_params: I/O error({0}): {1}" .format(errno, strerror) + ": " + file_recording_config) db.write_log_to_db(ac, log_message, "x") db.write_log_to_db_a(ac, ac.app_errorslist[1], "x", "write_also_to_console")
def log_duration(list_live_sendungen): """Log recordings and calc length""" duration = 0 title = list_live_sendungen[0][11] for item in list_live_sendungen: if item[11] == title: live = check_live_sendungen(str(list_live_sendungen[0][0])) # sum duration if live is None: # it's not live, so we must go away here break duration += lib_cm.get_seconds_from_tstr(item[3]) lib_cm.message_write_to_console(ac, duration) # logging db.write_log_to_db( ac, u"Mitschnitt vorbereiten: " + str(item[2]) + u" - " + lib_cm.replace_uchar_sonderzeichen_with_latein(item[15]) + u" - " + lib_cm.replace_uchar_sonderzeichen_with_latein(item[11]), "t") db.write_log_to_db(ac, u"Live-Sendung: " + str(item[0]), "t") else: break return duration
def log_duration(list_live_sendungen): """Log recordings and calc length""" duration = 0 title = list_live_sendungen[0][11] for item in list_live_sendungen: if item[11] == title: live = check_live_sendungen(str(list_live_sendungen[0][0])) # sum duration if live is None: # it's not live, so we must go away here break duration += lib_cm.get_seconds_from_tstr(item[3]) lib_cm.message_write_to_console(ac, duration) # logging db.write_log_to_db(ac, u"Mitschnitt vorbereiten: " + str(item[2]) + u" - " + lib_cm.replace_uchar_sonderzeichen_with_latein(item[15]) + u" - " + lib_cm.replace_uchar_sonderzeichen_with_latein(item[11]), "t") db.write_log_to_db(ac, u"Live-Sendung: " + str(item[0]), "t") else: break return duration
log_message = ("write_to_file_record_params: I/O error({0}): {1}" .format(errno, strerror) + ": " + file_recording_config) db.write_log_to_db(ac, log_message, "x") db.write_log_to_db_a(ac, ac.app_errorslist[1], "x", "write_also_to_console") else: f_r_conf.write("#!/bin/bash\n") f_r_conf.write('r_wait=' + str(r_wait) + '\n') f_r_conf.write('r_duration=' + str(r_duration) + '\n') f_r_conf.write('r_filename="' + r_path_file + '"\n') f_r_conf.close log_message = ("Datei für Live-Recorder geschrieben") db.write_log_to_db_a(ac, log_message, "k", "write_also_to_console") log_message = (u"Mitschnitt vorbereitet: " + lib_cm.replace_uchar_sonderzeichen_with_latein( list_live_sendungen[0][15]) + " " + lib_cm.replace_uchar_sonderzeichen_with_latein( list_live_sendungen[0][11]) + " Laenge: " + str(r_duration / 60) + " Minuten") db.write_log_to_db(ac, log_message, "i") db.write_log_to_db(ac, log_message, "n") def lets_rock(): """mainfunktion """ print "lets_rock " # extendet params load_extended_params_ok = load_extended_params() if load_extended_params_ok is None: return
"write_to_file_record_params: I/O error({0}): {1}".format( errno, strerror) + ": " + file_recording_config) db.write_log_to_db(ac, log_message, "x") db.write_log_to_db_a(ac, ac.app_errorslist[1], "x", "write_also_to_console") else: f_r_conf.write("#!/bin/bash\n") f_r_conf.write('r_wait=' + str(r_wait) + '\n') f_r_conf.write('r_duration=' + str(r_duration) + '\n') f_r_conf.write('r_filename="' + r_path_file + '"\n') f_r_conf.close log_message = ("Datei für Live-Recorder geschrieben") db.write_log_to_db_a(ac, log_message, "k", "write_also_to_console") log_message = (u"Mitschnitt vorbereitet: " + lib_cm.replace_uchar_sonderzeichen_with_latein( list_live_sendungen[0][15]) + " " + lib_cm.replace_uchar_sonderzeichen_with_latein( list_live_sendungen[0][11]) + " Laenge: " + str(r_duration / 60) + " Minuten") db.write_log_to_db(ac, log_message, "i") db.write_log_to_db(ac, log_message, "n") def lets_rock(): """mainfunktion """ print "lets_rock " # extendet params load_extended_params_ok = load_extended_params() if load_extended_params_ok is None: return # prepare path
file_dest = path_dest + repeat_sendung[12] else: # no Filename like SRB Pattern, make pattern lib_cm.message_write_to_console(ac, u"SRB-Muster-Filename nicht in db, zusammenbauen") if repeat_sendung[4].strip() == "T" or repeat_sendung[5].strip() == "T": # InfoTime path_dest = lib_cm.check_slashes(ac, db.ac_config_servpath_a[1]) else: # Sendung path_dest = lib_cm.check_slashes(ac, db.ac_config_servpath_a[2]) # filename: SG-Content-Nr_Nachname_Stichworte file_dest = (path_dest + str(repeat_sendung[8]) + "_" + lib_cm.replace_uchar_sonderzeichen_with_latein(repeat_sendung[16]) + "_" + lib_cm.replace_uchar_sonderzeichen_with_latein(repeat_sendung[13]) + ".mp3") # Suchen ob vorhanden if os.path.isfile(file_dest): lib_cm.message_write_to_console(ac, u"vorhanden: " + file_dest) db.write_log_to_db_a(ac, u"Audiodatei fuer Wiederholung bereits vorhanden: " + file_dest, "k", "write_also_to_console") return lib_cm.message_write_to_console(ac, u"nicht vorhanden: " + file_dest) # Erstsendung suchen #first_sendung = load_sg_first(ac, repeat_sendung[8])
else: # no Filename like SRB Pattern, make pattern lib_cm.message_write_to_console( ac, u"SRB-Muster-Filename nicht in db, zusammenbauen") if repeat_sendung[4].strip() == "T" or repeat_sendung[5].strip( ) == "T": # InfoTime path_dest = lib_cm.check_slashes(ac, db.ac_config_servpath_a[1]) else: # Sendung path_dest = lib_cm.check_slashes(ac, db.ac_config_servpath_a[2]) # filename: SG-Content-Nr_Nachname_Stichworte file_dest = ( path_dest + str(repeat_sendung[8]) + "_" + lib_cm.replace_uchar_sonderzeichen_with_latein(repeat_sendung[16]) + "_" + lib_cm.replace_uchar_sonderzeichen_with_latein(repeat_sendung[13]) + ".mp3") # Suchen ob vorhanden if os.path.isfile(file_dest): lib_cm.message_write_to_console(ac, u"vorhanden: " + file_dest) db.write_log_to_db_a( ac, u"Audiodatei fuer Wiederholung bereits vorhanden: " + file_dest, "k", "write_also_to_console") return lib_cm.message_write_to_console(ac, u"nicht vorhanden: " + file_dest) # Erstsendung suchen