Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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")
Ejemplo n.º 6
0
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")
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
        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
Ejemplo n.º 10
0
            "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
Ejemplo n.º 11
0
        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])
Ejemplo n.º 12
0
    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