Skip to content

Commit

Permalink
Recherche de contenus : fusionne les résultats avec la même URL (= ig…
Browse files Browse the repository at this point in the history
…nore les sous-sections des articles) (#119)
  • Loading branch information
Guts authored Feb 27, 2024
2 parents e72655a + 3f75c4f commit f079ab0
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 4 deletions.
1 change: 1 addition & 0 deletions docs/usage/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -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) |
Expand Down
35 changes: 31 additions & 4 deletions geotribu_cli/search/search_content.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)),
Expand Down Expand Up @@ -345,6 +355,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"
):
Expand Down Expand Up @@ -375,21 +386,37 @@ 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
elif isinstance(args.filter_date_end, date) and is_more_recent(
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 (
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
):
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": (
Expand Down

0 comments on commit f079ab0

Please sign in to comment.