From 73cf369cc4a4e51972e6f9a68e8d06a8ee760310 Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Mon, 14 Aug 2023 11:49:31 +0200 Subject: [PATCH 1/2] Merge results from the same URL --- geotribu_cli/search/search_content.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/geotribu_cli/search/search_content.py b/geotribu_cli/search/search_content.py index 9ce47d0..97c3ccf 100644 --- a/geotribu_cli/search/search_content.py +++ b/geotribu_cli/search/search_content.py @@ -345,6 +345,7 @@ def run(args: argparse.Namespace): # résultats : enrichissement et filtre count_ignored_results = 0 + unique_ref: list = [] with console.status( f"Enrichissement des {len(search_results)} résultats...", spinner="earth" ): @@ -390,6 +391,21 @@ def run(args: argparse.Namespace): count_ignored_results += 1 continue + if ( + result.get("ref").startswith("articles/") + and "#" in result.get("ref") + and result.get("ref").split("#")[0] in unique_ref + ): + logger.info( + f"Résultat {result.get('ref')} ignoré car il s'agit d'une " + f"sous-partie ({result.get('ref').split('#')[1]}) d'un article déjà " + "présent dans les résultats." + ) + count_ignored_results += 1 + continue + + unique_ref.append(result.get("ref").split("#")[0]) + # crée un résultat de sortie out_result = { "type": ( From 3f75c4f30ab01bf47305c03521cbd8743649b0cc Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Tue, 27 Feb 2024 13:26:55 +0100 Subject: [PATCH 2/2] feature: add option to ignore automerge --- docs/usage/configuration.md | 1 + geotribu_cli/search/search_content.py | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/docs/usage/configuration.md b/docs/usage/configuration.md index 3dbaf74..c1b8cea 100644 --- a/docs/usage/configuration.md +++ b/docs/usage/configuration.md @@ -12,6 +12,7 @@ | `GEOTRIBU_CONTENUS_DEFAULT_TYPE` | Type de contenu sur lequel filtrer. | `--filter-type` de `search-images` | `None` | | `GEOTRIBU_CONTENUS_INDEX_EXPIRATION_HOURS` | Nombre d'heures à partir duquel considérer le fichier local comme périmé. | `--expiration-rotating-hours` de `search-content` | `24*7` (1 semaine) | | `GEOTRIBU_DEFAULT_SUBCOMMAND` | Sous-commande à exécuter par défaut quand on lance le CLI sans argument | | `read-latest` | +| `GEOTRIBU_MERGE_CONTENT_BY_UNIQUE_URL` | Cette option permet de désactiver la fusion des résultats qui partagent la même URL. Si désactivée, plusieurs résultats peuvent concerner le même article. | `-a` ou `--no-fusion-par-url` de `search-content` | `True` | | `GEOTRIBU_PROXY_HTTP` | Proxy HTTP/S à utiliser spécifiquement. Par défaut, les paramètres systèmes ou les valeurs de `HTTP_PROXY` et `HTTPS_PROXY` sont utilisés. | | `None` | | `GEOTRIBU_IMAGES_DEFAULT_TYPE` | Type d'image sur lequel filtrer. | `--filter-type` de `search-images` | `None` | | `GEOTRIBU_IMAGES_INDEX_EXPIRATION_HOURS` | Nombre d'heures à partir duquel considérer le fichier local comme périmé. | `--expiration-rotating-hours` de `search-images` | `24` (1 jour) | diff --git a/geotribu_cli/search/search_content.py b/geotribu_cli/search/search_content.py index 97c3ccf..5c265eb 100644 --- a/geotribu_cli/search/search_content.py +++ b/geotribu_cli/search/search_content.py @@ -206,6 +206,16 @@ def parser_search_content( metavar="GEOTRIBU_RESULTATS_FORMAT", ) + subparser.add_argument( + "-a", + "--no-fusion-par-url", + default=str2bool(getenv("GEOTRIBU_MERGE_CONTENT_BY_UNIQUE_URL", True)), + action="store_false", + dest="opt_merge_unique_url", + help="Désactive la fusion des contenus par URL. Les résultats contiendront " + "donc potentiellement donc différentes sections d'un même article.", + ) + subparser.add_argument( "--no-prompt", default=str2bool(getenv("GEOTRIBU_PROMPT_AFTER_SEARCH", True)), @@ -376,8 +386,8 @@ def run(args: argparse.Namespace): date_ref=args.filter_date_start, date_to_compare=rezult_date ): logger.info( - f"Résultat {result.get('ref')} plus ancien ({rezult_date})" - f"que la date minimum {args.filter_date_start}" + f"Résultat {result.get('ref')} ignoré car plus ancien " + f"({rezult_date}) que la date minimum {args.filter_date_start}" ) count_ignored_results += 1 continue @@ -385,14 +395,15 @@ def run(args: argparse.Namespace): date_ref=args.filter_date_end, date_to_compare=rezult_date ): logger.info( - f"Résultat {result.get('ref')} plus récent ({rezult_date})" - f"que la date maximum {args.filter_date_end}" + f"Résultat {result.get('ref')} ignoré car plus récent " + f"({rezult_date}) que la date maximum {args.filter_date_end}." ) count_ignored_results += 1 continue if ( - result.get("ref").startswith("articles/") + args.opt_merge_unique_url + and result.get("ref").startswith("articles/") and "#" in result.get("ref") and result.get("ref").split("#")[0] in unique_ref ):