Skip to content
Snippets Groups Projects
rss.py 1.24 KiB
Newer Older
from json import load
Virgile Gerecke's avatar
Virgile Gerecke committed

import dateutil.parser
Virgile Gerecke's avatar
Virgile Gerecke committed
from feedgen.feed import FeedGenerator
from slugify import slugify
from jinja2 import Template
Virgile Gerecke's avatar
Virgile Gerecke committed

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


def df(date):
Virgile Gerecke's avatar
Virgile Gerecke committed
    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')
Virgile Gerecke's avatar
Virgile Gerecke committed
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:
Virgile Gerecke's avatar
Virgile Gerecke committed
    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))
Virgile Gerecke's avatar
Virgile Gerecke committed
    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')

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