From c1851f09601f4fd2806c1cddfd2cd14ca01ac64d Mon Sep 17 00:00:00 2001 From: David Leutgeb Date: Tue, 14 Jul 2020 16:58:46 +0200 Subject: [PATCH] Add files via upload --- exportBooks.py | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 5 +++++ 2 files changed, 54 insertions(+) create mode 100644 exportBooks.py create mode 100644 requirements.txt diff --git a/exportBooks.py b/exportBooks.py new file mode 100644 index 0000000..433966b --- /dev/null +++ b/exportBooks.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +import requests +import json +import os +from datetime import date + +# Change this vars as you need + +bookstack_url = "https://wiki.yourbookstack.local" # Bookstack Base URL +header = {'Authorization': 'Token xxxx:xxxx'} # API Token +cert_verify_url = "/etc/ssl/certs/ca-certificates.crt" # Cert Store for verifying the SSL Cert +export_path = "exports/" # Where the exported books will be saved + +# Leave this vars UNCHANGED + +books_url = "{}/api/books".format(bookstack_url) + +# Get a list of books available on the Bookstack instance + +books = requests.get(books_url, headers=header, verify=cert_verify_url) +books_data = json.dumps(books.json(), separators=(',', ':')) +books_data_loads = json.loads(books_data) +books_data_data = books_data_loads['data'] + +# Create folder with the current date, if it already exists exit + +folder_name = "{}/{}".format(export_path, date.today()) + +if not os.path.exists(folder_name): + os.mkdir(folder_name) +else: + print("Folder already exists") + exit() + + +# For every book export it as html + +for book in books_data_data: + export_url = "{}/{}/export/html".format(books_url, book['id']) + export_file_name = "{}/{}.html".format(folder_name, book['name']) + + book_html = requests.get(export_url, headers=header, verify=cert_verify_url) + with open(export_file_name, "w+") as file: + file.write(book_html.text) + + print("Successfully exported book {}".format(book['name'])) + +print("Export finished") diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4d72486 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +certifi==2020.6.20 +chardet==3.0.4 +idna==2.10 +requests==2.24.0 +urllib3==1.25.9