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')