import requests import sys # ========================== # CONFIGURATION # ========================== BOOKSTACK_API_URL = "https://wiki-warmachine.ungol.fr/api" API_TOKEN_ID = "VOTRE_TOKEN_ID" API_TOKEN_SECRET = "VOTRE_TOKEN_SECRET" PAGES_FILE = "pages.txt" DEFAULT_CONTENT = """

Page restaurée automatiquement depuis l'ancien wiki.

""" # ========================== # HEADERS # ========================== HEADERS = { "Authorization": f"Token {API_TOKEN_ID}:{API_TOKEN_SECRET}", "Content-Type": "application/json" } # ========================== # FUNCTIONS # ========================== def create_page(title, chapter_id, content=DEFAULT_CONTENT): """Create a page in BookStack""" url = f"{BOOKSTACK_API_URL}/pages" payload = { "name": title, "html": content, "chapter_id": int(chapter_id) } response = requests.post(url, headers=HEADERS, json=payload) if response.status_code == 200: page_id = response.json().get("id") print(f"[OK] Page créée : '{title}' (ID {page_id})") return page_id else: print(f"[ERREUR] Impossible de créer '{title}'") print(response.status_code, response.text) return None def load_pages(filename): """Load pages list from file""" pages = [] with open(filename, "r", encoding="utf-8") as f: for line in f: line = line.strip() if not line or line.startswith("#"): continue try: title, chapter_id = line.split("|") pages.append((title.strip(), chapter_id.strip())) except ValueError: print(f"[IGNORÉ] Ligne invalide : {line}") return pages # ========================== # MAIN # ========================== def main(): pages = load_pages(PAGES_FILE) if not pages: print("Aucune page à créer.") sys.exit(0) print(f"{len(pages)} pages à créer...\n") for title, chapter_id in pages: create_page(title, chapter_id) print("\nImport terminé.") if __name__ == "__main__": main()