from json import load

import dateutil.parser
from feedgen.feed import FeedGenerator
from slugify import slugify
from jinja2 import Template

data = load(open('weather.json', 'r'))


def df(date):
    dt = dateutil.parser.parse(date)
    return dt.strftime("%d/%m/%Y à %Hh%M")


fg = FeedGenerator()
fg.id('https://support.unistra.fr/')
fg.title('Maintenance des services numériques')
fg.subtitle('Annonces de la Direction du Numérique')
fg.link(href='https://support.unistra.fr/#go-weather')
fg.language('fr')
fg.author(name='Direction du Numérique', email='support@unistra.fr')
fg.logo('https://langagevisuel.unistra.fr/fileadmin/Contenu/4.2.Favicon/favicon2.png')

slugs = []

template = Template(open('item.html', 'r').read())

for item in data:
    fe = fg.add_entry()
    title = item['title']
    slug = slugify(title)
    while slug in slugs:
        slug = slug + "-"
    slugs.append(slug)
    fe.title(title)
    fe.id(slugify(title))
    fe.description(template.render(item=item))
    fe.pubDate(item['start'])

fg.link(href='https://support.unistra.fr/rss.php', rel='self')
rssfeed = fg.rss_str(pretty=True)
fg.rss_file('rss.xml')

fg.link(href='https://support.unistra.fr/atom.php', rel='self')
atomfeed = fg.atom_str(pretty=True)
fg.atom_file('atom.xml')