Toot dates in french.

This commit is contained in:
Julien Palard 2023-02-11 09:20:04 +01:00
parent 58e3060636
commit 12d3c3ddd4
Signed by: mdk
GPG Key ID: 0EFC1AC1006886F8

View File

@ -4,6 +4,7 @@ import argparse
import logging import logging
import re import re
import sqlite3 import sqlite3
import locale
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from time import sleep from time import sleep
from pathlib import Path from pathlib import Path
@ -141,16 +142,7 @@ def live_toot(talks, mastodon: Mastodon, ahead_days=0):
for talk in talks: for talk in talks:
if talk.category == "Sprint": if talk.category == "Sprint":
continue # We don't toot sprints. continue # We don't toot sprints.
delta = ( toot = toot_for(talk, ahead_days)
talk.start_date - datetime.now(timezone.utc) - timedelta(days=ahead_days)
)
if delta.total_seconds() < -300:
logging.info("Skipping %s (already happened).", talk.title)
continue
if delta.total_seconds() > 10:
logging.info("Waiting %s for %s to start.", delta, talk.title)
sleep(delta.total_seconds() - 2) # Wait for the talk to start.
sleep(2) # This is just a fool guard so we can Ctrl-C easily anytime.
png_name = f"talk-{talk.id}.png" png_name = f"talk-{talk.id}.png"
with suppress(FileNotFoundError): with suppress(FileNotFoundError):
Path(png_name).unlink() Path(png_name).unlink()
@ -164,8 +156,20 @@ def live_toot(talks, mastodon: Mastodon, ahead_days=0):
), ),
salle="Salle " + talk.room.split("/")[0], salle="Salle " + talk.room.split("/")[0],
) )
delta = (
talk.start_date - datetime.now(timezone.utc) - timedelta(days=ahead_days)
)
if delta.total_seconds() < -300:
logging.info(
"Skipping %s with image %s (already happened).", toot, png_name
)
continue
if delta.total_seconds() > 10:
logging.info("Waiting %s for %s to start.", delta, talk.title)
sleep(delta.total_seconds() - 2) # Wait for the talk to start.
sleep(2) # This is just a fool guard so we can Ctrl-C easily anytime.
media = mastodon.media_post(png_name) media = mastodon.media_post(png_name)
mastodon.status_post(toot_for(talk, ahead_days), media_ids=[media]) mastodon.status_post(toot, media_ids=[media])
class DryRunMastodon: class DryRunMastodon:
@ -189,6 +193,7 @@ class DryRunMastodon:
def main(): def main():
args = parse_args() args = parse_args()
locale.setlocale(locale.LC_TIME, "fr_FR.UTF-8")
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
talks = get_talks(args.django_site_id) talks = get_talks(args.django_site_id)
mastodon_instance = DryRunMastodon if args.dry_run else Mastodon mastodon_instance = DryRunMastodon if args.dry_run else Mastodon