Example #1
0
def date_display():
    daynumber = current_day_number()
    if daynumber is not None:
        json = get_json()
        if json is not None:
            return 'Day %d of %d — %s' %(int(daynumber), len(json['schedule']['conference']['days'])-1, format_date(datetime_now()))
    else:
        logger.info('no conference')
        return 'No conference — %s' %(format_date(datetime.now()))
def load_local(filename=local_frab_feed):
    if os.path.exists(filename):
        with open(filename, 'r') as f:
            try:
                content = f.read().decode('utf-8')
                result = json.loads(content, strict=False)
            except (ValueError, Exception) as e:
                logger.error('could not parse json file ~ %s' %(e))
            else:
                return result
    else:
        logger.info('json file %s not found' %(filename))
def load_remote():
    content = web_scrape(remote_frab_feed)
    if content is not None:
        try:
            with open(local_frab_feed, 'w') as f:
                f.write(content)
        except Exception as e:
            logger.error('could not save json ~ %s' %(e))
        else:
            logger.info('json file sucessfully written')
    else:
        logger.error('json scrape failed ~ %s' %(remote_frab_feed))
Example #4
0
def current_day_number():
    json = get_json()
    result = None
    if json is not None:
        content = json['schedule']['conference']['days']

        for data in content:
            delta = datetime_now() - datetime_from_date(data['date'])
            if( delta >= timedelta(seconds=0) and delta <= timedelta(hours=24) ):
                result = int(data['index'])
                break
    logger.info('today is day %s' %(result))
    return result
Example #5
0
def writeCsv(srcFileName, dstFileName):
    with open(srcFileName, newline='') as csvdatei:
        csv_reader_object = csv.reader(csvdatei, delimiter=';')
        #schreibt die Info in das logfile
        lg.info("CSV file" + srcFileName + " opened")
        rownum = 0
        Datum = ""
        Haendler = ""
        Betrag = ""
        for row in csv_reader_object:
            lg.info("Gelesen Reihe: {} : {}".format(rownum, row))
            # erforderlich weil die ersten 2 Zeilen im Amazon CSV Schrott sind
            # wenn die Nummer der Reihe < 2 ist setze den Zähler um 1 hoch und mache weiter
            if rownum < 2:
                rownum += 1
            else:
                # wenn die Spalte 2 einer Reihe nicht leer ist schreibe die Werte in eine Datei
                if row[2] != "":
                    Datum = row[2]
                    Haendler = row[3]
                    Betrag = row[8]
                    # schreibt den Händler bei der Ausgleichsbuchung weil der von der Bank leer gelassen wurde
                    if row[3] == '':
                        Haendler = "Sparkasse Ausgleich Kreditkarte"
                    #logger.info(Datum + ' ' + Haendler + ' ' + Betrag)
                with open(dstFileName, 'a+', newline='') as csvfile:
                    fieldnames = ['Datum', 'Haendler', 'Betrag']
                    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
                    if Datum != '':
                        writer.writerow({
                            'Datum': Datum,
                            'Haendler': Haendler,
                            'Betrag': Betrag
                        })
                        lg.info("Geschrieben Reihe {}: {} {} {}".format(
                            rownum, Datum, Haendler, Betrag))
                        Datum = ""
                        Haendler = ""
                        Betrag = ""
                rownum += 1  # für den Ausdruck der Rownummer im Logging
        csvdatei.close()
        csvfile.close()
        lg.info("CSV geschrieben in Datei : " + dstFileName)
        lg.info(
            "<<<<<<<<<<<<<<<<<<<<<< Neues CSV geschrieben >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
        )
Example #6
0
def cleanDst(dst):
    lg.info(
        "<<<<<<<<<<<<<<   CLEARING DST Folder gestartet >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
    )
    dir = os.listdir(dst)
    for el in dir:
        src = dst + el
        shutil.move(src, arcFolder)
        lg.info("{} was moved to arc".format(el))
    lg.info(
        "<<<<<<<<<<<<<<<  CLEARING DST Folder BEENDET >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
    )
Example #7
0
def cleanArc(arc):
    lg.info(
        "<<<<<<<<<<<<<<< Clearing Arc gestartet >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
    )
    dir = os.listdir(arc)
    dirSort = sorted(dir)
    lenDirSort = len(dirSort)
    while lenDirSort > 10:
        remFile = arc + dirSort[0]
        os.remove(remFile)
        lg.info("File {} removed".format(dirSort[0]))
        lenDirSort = lenDirSort - 1
        dirSort.pop(0)
    lg.info(
        "<<<<<<<<<<<<< Clearing Arc beendet >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
    )
Example #8
0
def schedule():
    json = get_json()
    today = current_day_number()
    result = []

    if today is not None:
        if json is not None:
            content = json['schedule']['conference']['days'][today]['rooms']

            for rooms in content.itervalues():
                for event in rooms:
                    if datetime_from_time(event['start']) >= datetime_from_time(format_time(datetime_now())):

                        time = [event['start'].rjust(fb_time_length)]
                        tdiff = datetime_from_time(event['start']) - datetime_from_time(format_time(datetime_now()))
                        if tdiff <= timedelta(minutes=boarding_time):
                            time.append('Boarding'.rjust(fb_time_length))
                        elif tdiff <= timedelta(hours=1):
                            minutedelta = '%02d Min' %(tdiff.seconds / 60)
                            time.append(minutedelta.rjust(fb_time_length))

                        gate = [event['room'].rjust(fb_gate_length)]
                        if '105' in event['room']:
                            gate.append('Workshop'.rjust(fb_gate_length))

                        flight = [event['id']]
                        if event['language']:
                            flight.append(event['language'].rjust(fb_flight_length))

                        depature = wrap(_strconv(event['title'].strip()), fb_daparture_length)
                        if event['subtitle']:
                            depature += wrap(_strconv(event['subtitle'].strip()), fb_daparture_length)

                        result.append({
                            'time': {
                                'messages': time,
                                'maxLength': fb_time_length,
                            },
                            'gate': {
                                'messages': gate,
                                'maxLength': fb_gate_length,
                            },
                            'flight': {
                                'messages': flight,
                                'maxLength': fb_flight_length,
                            },
                            'depature': {
                                'messages': depature,
                                'maxLength': fb_daparture_length,
                            },
                        })
            if len(result) == 0:
                logger.info('no talks for today')
                result.append({
                    'time': {
                            'messages': ['x' * fb_time_length, '-' * fb_time_length],
                            'maxLength': fb_time_length,
                        },
                        'gate': {
                            'messages': ['x' * fb_gate_length, '-' * fb_gate_length],
                            'maxLength': fb_gate_length,
                        },
                        'flight': {
                            'messages': ['x' * fb_flight_length, '-' * fb_flight_length],
                            'maxLength': fb_flight_length,
                        },
                        'depature': {
                            'messages': ['x' * fb_daparture_length, '-' * fb_daparture_length],
                            'maxLength': fb_daparture_length,
                        },
                    })
            result.sort(key=lambda x: x['time']['messages'])
            logger.info('schedule ready ~ got %s entries' %(len(result)))
    return result
def get_json():
    if (timestamp()/60 - frab_feed_refresh_span) >= app.last_refresh:
        load_remote()
        app.last_refresh = timestamp()
        logger.info('json refresh span reset')
    return load_local()
Example #10
0
def blocklog(msg, char='-'):
    logger.info(char * len(msg))
    logger.info(msg)
    logger.info(char * len(msg))