WIP
This commit is contained in:
parent
61d7f6b646
commit
186492de85
2 changed files with 137 additions and 72 deletions
89
boostack_create_pages.py
Normal file
89
boostack_create_pages.py
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
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 = """
|
||||
<p><em>Page restaurée automatiquement depuis l'ancien wiki.</em></p>
|
||||
"""
|
||||
|
||||
# ==========================
|
||||
# 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()
|
||||
Loading…
Add table
Add a link
Reference in a new issue