From 5819130056e464a83ecaa11c9c31adcf02a87b16 Mon Sep 17 00:00:00 2001
From: Remi  PLANEL <rplanel@pasteur.fr>
Date: Mon, 12 Feb 2024 09:15:20 +0100
Subject: [PATCH] update package to load articles in ms

---
 .../df_wiki_cli/meilisearch/__init__.py       | 23 +++++++++++++++++++
 .../df_wiki_cli/meilisearch/main.py           | 10 +++++++-
 packages/df-wiki-cli/pyproject.toml           |  2 +-
 3 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/packages/df-wiki-cli/df_wiki_cli/meilisearch/__init__.py b/packages/df-wiki-cli/df_wiki_cli/meilisearch/__init__.py
index 3479787c..e1ab6dec 100644
--- a/packages/df-wiki-cli/df_wiki_cli/meilisearch/__init__.py
+++ b/packages/df-wiki-cli/df_wiki_cli/meilisearch/__init__.py
@@ -237,6 +237,29 @@ def update_systems(
     index.update_typo_tolerance({"enabled": False})
 
 
+def update_articles(
+    host: str,
+    key: str,
+    file: Path,
+    document: str,
+):
+    client = meilisearch.Client(host, key)
+    index = client.index(document.lower())
+    with open(file, "r") as jsonfile:
+        json_object = json.load(jsonfile)
+        for obj in json_object:
+            obj["ms_id"] = obj["id"].replace("/", "_")
+        tasks = index.add_documents_in_batches(json_object, primary_key="ms_id")
+        for task in tasks:
+            print(task)
+
+    pagination_settings_task = index.update_pagination_settings(
+        {"maxTotalHits": 100000}
+    )
+    print(pagination_settings_task)
+
+
+
 def split_on_comma(str_val: str) -> List[str]:
     for val in str_val.split(","):
         yield val.strip()
diff --git a/packages/df-wiki-cli/df_wiki_cli/meilisearch/main.py b/packages/df-wiki-cli/df_wiki_cli/meilisearch/main.py
index e7e30377..304a0d12 100644
--- a/packages/df-wiki-cli/df_wiki_cli/meilisearch/main.py
+++ b/packages/df-wiki-cli/df_wiki_cli/meilisearch/main.py
@@ -2,7 +2,12 @@ import typer
 import meilisearch
 from typing_extensions import Annotated
 from pathlib import Path
-from df_wiki_cli.meilisearch import update_refseq, update_structure, update_systems
+from df_wiki_cli.meilisearch import (
+    update_articles,
+    update_refseq,
+    update_structure,
+    update_systems,
+)
 from enum import Enum
 from types import SimpleNamespace
 from rich.console import Console
@@ -17,6 +22,7 @@ class Documents(str, Enum):
     refseq = "refseq"
     structure = "structure"
     systems = "systems"
+    article = "article"
 
 
 @app.callback()
@@ -61,6 +67,8 @@ def update(
         update_structure(ctx.obj.host, ctx.obj.key, file, document)
     if document == "systems":
         update_systems(ctx.obj.host, ctx.obj.key, file, document)
+    if document == "article":
+        update_articles(ctx.obj.host, ctx.obj.key, file, document)
 
 
 @app.command()
diff --git a/packages/df-wiki-cli/pyproject.toml b/packages/df-wiki-cli/pyproject.toml
index 22f5ffe8..e5ce2d86 100644
--- a/packages/df-wiki-cli/pyproject.toml
+++ b/packages/df-wiki-cli/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "df-wiki-cli"
-version = "0.1.5"
+version = "0.1.6"
 description = ""
 authors = ["Remi  PLANEL <rplanel@pasteur.fr>"]
 readme = "README.md"
-- 
GitLab