From 2d3199fe08391cbfc655744a4ad0a61a08ba0ef1 Mon Sep 17 00:00:00 2001 From: Bastien Le Querrec <blq@laquadrature.net> Date: Tue, 6 Aug 2024 23:56:39 +0200 Subject: [PATCH] cli: ajoute le support des dates relatives --- README.md | 2 +- cli.py | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 9048250..7861beb 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Les options suivantes peuvent être précisées, par un paramètre si l'utilitai | CLI | Variable d'environnement | Signification | Valeur par défaut | |---|---|---|---| | `--keywords`, `-k` | `KEYWORDS` | Liste des mots-clés recherchés, séparés par une virgule. | Aucune | -| `--not-before` | `NOT_BEFORE` | Date (format YYYY-MM-DD) avant laquelle les RAA ne sont pas analysés. | `2024-01-01` | +| `--not-before` | `NOT_BEFORE` | Date (format relatif `1 week` ou `YYYY-MM-DD`) avant laquelle les RAA ne sont pas analysés. | `2024-01-01` | | `--smtp-hostname` | `SMTP_HOSTNAME` | Nom d'hôte SMTP. | `localhost` | | `--smtp-username` | `SMTP_USERNAME` | Nom d'utilisateur SMTP. | Aucun | | `--smtp-password` | `SMTP_PASSWORD` | Mot de passe SMTP. | Aucun | diff --git a/cli.py b/cli.py index 063f2fd..3b64cf2 100755 --- a/cli.py +++ b/cli.py @@ -4,6 +4,7 @@ import os import argparse import logging import datetime +import dateparser import importlib from Attrap import Attrap @@ -29,9 +30,13 @@ if os.getenv('SMTP_SSL'): else: __SMTP_SSL = False if os.getenv('NOT_BEFORE'): - __NOT_BEFORE = datetime.datetime.strptime( - os.getenv('NOT_BEFORE'), '%Y-%m-%d' - ) + try: + relative_date = dateparser.parse(os.getenv('NOT_BEFORE')) + __NOT_BEFORE = datetime.datetime(year=relative_date.year, month=relative_date.month, day=relative_date.day) + except Exception as exc: + __NOT_BEFORE = datetime.datetime.strptime( + os.getenv('NOT_BEFORE'), '%Y-%m-%d' + ) else: __NOT_BEFORE = datetime.datetime(2024, 1, 1) __MASTODON_ACCESS_TOKEN = os.getenv('MASTODON_ACCESS_TOKEN') @@ -178,7 +183,11 @@ if args.keywords: __KEYWORDS = args.keywords if args.not_before: - __NOT_BEFORE = datetime.datetime.strptime(args.not_before, '%Y-%m-%d') + try: + relative_date = dateparser.parse(args.not_before) + __NOT_BEFORE = datetime.datetime(year=relative_date.year, month=relative_date.month, day=relative_date.day) + except Exception as exc: + __NOT_BEFORE = datetime.datetime.strptime(args.not_before, '%Y-%m-%d') if args.smtp_hostname: __SMTP_HOSTNAME = args.smtp_hostname -- GitLab