83 lines
2.8 KiB
Python
83 lines
2.8 KiB
Python
# encoding: utf-8
|
|
|
|
from datetime import datetime
|
|
import os
|
|
from time import mktime
|
|
|
|
import feedparser
|
|
|
|
|
|
JOB_URL = "https://discuss.afpy.org/c/emplois/14.rss"
|
|
NEWS_URL = "https://discuss.afpy.org/c/association/actualites/16.rss"
|
|
|
|
|
|
def synchronize_jobs():
|
|
"""
|
|
Get jobs data from AFPy website and parse it to update jobs.
|
|
"""
|
|
os.makedirs("content/jobs", exist_ok=True)
|
|
data = feedparser.parse(JOB_URL)
|
|
for entry in data.entries:
|
|
# Retrieve informations
|
|
job_id = entry.id.split("-")[-1]
|
|
job_title = entry.title
|
|
job_author = entry.author
|
|
job_link = entry.link
|
|
job_date = datetime.fromtimestamp(mktime(entry.published_parsed))
|
|
job_body = ""
|
|
for line in entry.description.splitlines()[:-2]:
|
|
job_body += line.strip() + "\n"
|
|
job_body += "\n"
|
|
job_body += f"[Voir l'article original]({job_link})\n"
|
|
|
|
# Generating filename to save/replace job offer
|
|
filename = f"content/jobs/offre_{job_id}.md"
|
|
# Writing file
|
|
with open(filename, "w") as file_handle:
|
|
file_handle.write(f"Title: {job_title}\n")
|
|
file_handle.write(f"Date: {job_date}\n")
|
|
file_handle.write(f"Category: jobs\n")
|
|
file_handle.write(f"Slug: offre-{job_id}\n")
|
|
file_handle.write(f"Author: {job_author}\n")
|
|
file_handle.write(f"\n")
|
|
file_handle.write(f"\n")
|
|
file_handle.write(f"{job_body}")
|
|
|
|
|
|
def synchronize_news():
|
|
"""
|
|
Get news data from AFPy website and parse it to update jobs.
|
|
"""
|
|
os.makedirs("content/news", exist_ok=True)
|
|
data = feedparser.parse(NEWS_URL)
|
|
for entry in data.entries:
|
|
# Retrieve informations
|
|
news_id = entry.id.split("-")[-1]
|
|
news_title = entry.title
|
|
news_author = entry.author
|
|
news_link = entry.link
|
|
news_date = datetime.fromtimestamp(mktime(entry.published_parsed))
|
|
news_body = ""
|
|
for line in entry.description.splitlines()[:-2]:
|
|
news_body += line.strip() + "\n"
|
|
news_body += "\n"
|
|
news_body += f"[Voir l'article original]({news_link})\n"
|
|
|
|
# Generating filename to save/replace job offer
|
|
filename = f"content/news/actu_{news_id}.md"
|
|
# Writing file
|
|
with open(filename, "w") as file_handle:
|
|
file_handle.write(f"Title: {news_title}\n")
|
|
file_handle.write(f"Date: {news_date}\n")
|
|
file_handle.write(f"Category: news\n")
|
|
file_handle.write(f"Slug: actu-{news_id}\n")
|
|
file_handle.write(f"Author: {news_author}\n")
|
|
file_handle.write(f"\n")
|
|
file_handle.write(f"\n")
|
|
file_handle.write(f"{news_body}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
synchronize_jobs()
|
|
synchronize_news()
|