from json import load import dateutil.parser from feedgen.feed import FeedGenerator from slugify import slugify 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 = [] 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)) content = "<p><b>Date de début : </b>{}</p><p><b>Date de fin : </b>{}</p>{}".format(df(item['start']), df(item['end']), item['content']) fe.description(content) 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')