Program Masters of Rock 2014 pro Google kalendář (iCal)

Pokud Vás stejně jako mě nebaví přeťukávat program oblíbeného festivalu z webových stránek do kalendáře, zde nabízím řešení a program letošního ročníku Masters of Rock ke stažení.

Soubory ke stažení

iCal pro Google kalendář a chytré telefony

CSV soubory, ze kterých jsem program generoval

Soubory jsou ve formátu stage;datum startu;čas startu;datum konce;čas konce;interpret

Skript pro generování iCAL souboru

Skript vygeneruje z CSV souboru, který je ve stejném formátu jako výše zmíněné CSV soubory, textový soubor ve formátu iCal pro import do Google kalendáře a dalších, které tento formát podporují.

#!/usr/bin/env python
 
from hashlib import md5
 
# Input file name without .csv - Output will be (input).ics
inputfile = 'autogramiady'
 
filestart = '''BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:MoR2014
X-WR-TIMEZONE:Europe/Prague
X-WR-CALDESC:Program Masters of Rock 2014\n'''
fileend = 'END:VCALENDAR'
 
iCAL = ""
iCAL += filestart
 
with open(inputfile + '.csv', 'r') as program:
    for line in program:
        if line.startswith('#'):
            continue
 
        stage, dstart, tstart, dend, tend, artist = line.split(';')
        iCAL += 'BEGIN:VEVENT\n'
        iCAL += 'UID:%s\n' % (md5(dstart + tstart + dend + tend).hexdigest())
        iCAL += 'DTSTAMP:%s\n' % ('20140630T100000')
        iCAL += 'DTSTART:%s\n' % (dstart + 'T' + tstart)
        iCAL += 'DTEND:%s\n' % (dend + 'T' + tend)
        iCAL += 'SUMMARY:%s\n' % (artist.strip())
        iCAL += 'LOCATION:%s\n' % (stage)
        iCAL += 'END:VEVENT\n'
 
iCAL += fileend
 
print iCAL
 
with open(inputfile + '.ics', 'w') as output:
    output.write(iCAL)

Celý program nedělá žádná kouzla, jen ze vstupního CSV souboru vygeneruje výstupní iCal soubor v patřičném formátu s odpovídajícím začátkem a koncem souboru a informacemi pro každou událost.

Jedná se o jednorázový skriptík napsaný pro vlastní potřebu během pár minut. Pokud by i přes to byly k jeho obsahu nějaké dotazy, rád je zodpovím.

Kategorie:

Okomentovat