Add day 2

Signed-off-by: Emmy D'Anello <ynerant@emy.lu>
This commit is contained in:
Emmy D'Anello 2023-04-20 16:51:19 +02:00
parent cae46e21a8
commit 50de72bea1
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
4 changed files with 52 additions and 19 deletions

View File

@ -3,7 +3,7 @@ generate:
cp static/* output/ cp static/* output/
clean: clean:
rm output/* rm -r output/*
install: install:
rsync -arvP --delete-after output/ proxy.adm.ynerant.fr:/var/www/apaisement/ rsync -arvP --delete-after output/ proxy.adm.ynerant.fr:/var/www/apaisement/

View File

@ -1,7 +1,7 @@
[ [
{ {
"index": 0, "index": 0,
"subtitle": "Allocution présidentielle", "subtitle": "Allocution présidentielle et rencontre avec des fachos",
"events": [ "events": [
{ {
"description": "Emmanuel Macron s'exprime à 20h devant les Français⋅es. Il fixe un cap de 100 jours pour appaiser le pays.", "description": "Emmanuel Macron s'exprime à 20h devant les Français⋅es. Il fixe un cap de 100 jours pour appaiser le pays.",
@ -32,33 +32,46 @@
}, },
{ {
"index": 1, "index": 1,
"subtitle": "La faute aux Maghrébin⋅es", "subtitle": "Les aides sociales renvoyées au Maghreb",
"events": [ "events": [
{ {
"description": "Bruno Le Maire affirme que l'argent de l'État part au Maghreb.", "description": "Bruno Le Maire estime que « Les Français⋅es en ont légitement ras-le-bol […] de voir que des personnes qui peuvent toucher des aides qu'iels paient elleux-même […] et les renvoyer au Maghreb ou ailleurs alors qu'iles n'y ont pas droit ».",
"url": null, "media": [
"image": null {
"type": "video",
"link": "https://bcboltnexti1-a.akamaihd.net/media/v1/pmp4/static/clear/876450610001/4805adbc-e458-4e9c-95d2-c1be1609607f/2fbad444-a28d-45a9-9150-9ba832d36647/main.mp4",
"subtitles_link": "https://bcboltnexti1-a.akamaihd.net/media/v1/dash/live/clear/876450610001/4805adbc-e458-4e9c-95d2-c1be1609607f/a85dfde4-7199-4ae9-93b1-cebf4c9739ff.vtt",
"subtitles_file": "2023-04-18-BFMTV.vtt",
"start": "00:07:58",
"end": "00:08:31",
"source_text": "Face-à-Face : Bruno Le Maire - 18/04, BFMTV",
"source_url": "https://www.bfmtv.com/replay-emissions/l-interview/face-a-face-bruno-le-maire-18-04_VN-202304180186.html"
},
{
"type": "video",
"link": "https://bcboltnexti1-a.akamaihd.net/media/v1/pmp4/static/clear/876450610001/1893e56e-cda4-4054-bf95-4bfdad8b9c81/7d1e9809-ea15-4296-a06a-17dc300bda4f/main.mp4",
"source_text": "Olivier Dussopt : « La fraude est une question importante, sur laquelle nous devons consacrer beaucoup d'énergie et beaucoup de moyens », BFMTV",
"source_url": "https://www.bfmtv.com/politique/olivier-dussopt-la-fraude-est-une-question-importante-sur-laquelle-nous-devons-consacrer-beaucoup-d-energie-et-beaucoup-de-moyens_VN-202304180500.html"
}
]
} }
] ]
}, },
{ {
"index": 2, "index": 2,
"subtitle": "L'Alsace se rebèle", "subtitle": "L'Alsace se rebelle",
"events": [ "events": [
{ {
"description": "Macron hué à Muttersholtz et à Sélestat.", "description": "Macron hué à Muttersholtz et à Sélestat.",
"url": null, "media": []
"image": null
}, },
{ {
"description": "Le député LFI Emmanuel Fernandes baîlloné par le 49§3 devant Macron.", "description": "Le député LFI Emmanuel Fernandes baîlloné par le 49§3 devant Macron.",
"url": null, "media": []
"image": null
}, },
{ {
"description": "La nouvelle devise du pays selon Véran : « Travail, <s>Famille, Patrie</s> Ordre, Progrès", "description": "La nouvelle devise du pays selon Véran : « Travail, <s>Famille, Patrie</s> Ordre, Progrès",
"url": null, "media": []
"image": null
} }
] ]
}, },
@ -68,13 +81,11 @@
"events": [ "events": [
{ {
"description": "La préfecture de l'Hérault interdit le port d'objets sonores portatifs.", "description": "La préfecture de l'Hérault interdit le port d'objets sonores portatifs.",
"url": null, "media": []
"image": null
}, },
{ {
"description": "Le député LFI Sébastien Rome remet à Macron un livre sur la Résistance dans la région", "description": "Le député LFI Sébastien Rome remet à Macron un livre sur la Résistance dans la région",
"image": null, "media": []
"url": null
} }
] ]
} }

View File

@ -2,6 +2,8 @@
from datetime import date, timedelta from datetime import date, timedelta
import json import json
import os.path
import requests
from jinja2 import Environment, FileSystemLoader from jinja2 import Environment, FileSystemLoader
@ -13,9 +15,26 @@ def to_date(offset: int, date_format="%d/%m/%Y"):
def generate(): def generate():
if not os.path.exists('output'):
os.mkdir('output')
if not os.path.exists('output/subtitles'):
os.mkdir('output/subtitles')
with open('data.json') as f: with open('data.json') as f:
data = json.load(f) data = json.load(f)
for day in data:
for event in day['events']:
for medium in event['media']:
if 'subtitles_link' in medium:
req = requests.get(medium['subtitles_link'], stream=True)
with open(os.path.join('output/subtitles', medium['subtitles_file']), 'wb') as f:
for chunk in req.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
env = Environment(loader=FileSystemLoader("templates/")) env = Environment(loader=FileSystemLoader("templates/"))
env.filters['to_date'] = to_date env.filters['to_date'] = to_date
template = env.get_template("template.html.j2") template = env.get_template("template.html.j2")

View File

@ -46,13 +46,16 @@
</p> </p>
{% elif medium.type == "youtube" %} {% elif medium.type == "youtube" %}
<div class="text-center"> <div class="text-center">
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/{{ medium.code }}" title="Allocution du président de la République du 17 avril 2023" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/{{ medium.code }}?start={{ medium.start|default(0) }}" title="Allocution du président de la République du 17 avril 2023" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div> </div>
{% elif medium.type == "video" %} {% elif medium.type == "video" %}
<div class="text-center"> <div class="text-center">
<div> <div>
<video controls width="560" height="315"> <video controls width="560" height="315">
<source src="{{ medium.link }}"> <source src="{{ medium.link }}{% if medium.start %}#t={{ medium.start }}{% if medium.end %},{{ medium.end }}{% endif %}{% endif %}">
{% if medium.subtitles_file %}
<track label="Français" kind="subtitles" srclang="fr" src="subtitles/{{ medium.subtitles_file }}" default>
{% endif %}
</video> </video>
</div> </div>
<p> <p>