diff --git a/README.md b/README.md index 9048250dc299c0fb1749fdcd60c71383263c0027..7861beb0b768443617d032d5f9785ec89f47ca3c 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 063f2fd1cae2d00f80d45a7e2be857f0a8616fbe..3b64cf2461849909698dfa1ed114cdef149bf9f0 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