Black & Isort changes

This commit is contained in:
2025-10-13 18:00:03 +02:00
parent 9a27cc175c
commit a81316672c
7 changed files with 48 additions and 37 deletions

View File

@@ -1,20 +1,21 @@
from . import get_set_Book
from . import set_Variables
from . import backupType
from . import backupLogic
from . import get_confirmation
import bookstack import bookstack
from . import (backupLogic, backupType, get_confirmation, get_set_Book,
set_Variables)
def main(version): def main(version):
print(f"Functions module running version: {version}") print(f"Functions module running version: {version}")
env = set_Variables.set_variables() env = set_Variables.set_variables()
print(f"You are currently running on Version: {version}") print(f"You are currently running on Version: {version}")
api = bookstack.BookStack(env['base_url'], token_id=env['token_id'], token_secret=env['token_secret']) api = bookstack.BookStack(
env["base_url"], token_id=env["token_id"], token_secret=env["token_secret"]
)
api.generate_api_methods() api.generate_api_methods()
try: try:
book_list = api.get_books_list()['data'] book_list = api.get_books_list()["data"]
except Exception as e: except Exception as e:
print(f"Error loading books: {e}") print(f"Error loading books: {e}")
return return
@@ -22,11 +23,15 @@ def main(version):
get_set_Book.get_Books(book_list) get_set_Book.get_Books(book_list)
book_to_backup = get_set_Book.set_Book(book_list) book_to_backup = get_set_Book.set_Book(book_list)
backup_extension = backupType.get_backup_extension() backup_extension = backupType.get_backup_extension()
backup_extension_fileType = backupType.set_backup_extension_filetype(backup_extension) backup_extension_fileType = backupType.set_backup_extension_filetype(
book_to_backup = next(book for book in book_list if book['id'] == book_to_backup) backup_extension
)
book_to_backup = next(book for book in book_list if book["id"] == book_to_backup)
if get_confirmation.get_confirmation(backup_extension, book_to_backup): if get_confirmation.get_confirmation(backup_extension, book_to_backup):
backupLogic.backup_book(api, env, book_to_backup, backup_extension, backup_extension_fileType) backupLogic.backup_book(
api, env, book_to_backup, backup_extension, backup_extension_fileType
)
print("Backup completed.") print("Backup completed.")
else: else:
return return

View File

@@ -1,31 +1,32 @@
import os import os
import requests import requests
def backup_book(api, env, selected_book, backup_extension, backup_extension_fileType): def backup_book(api, env, selected_book, backup_extension, backup_extension_fileType):
base_url = env['base_url'] base_url = env["base_url"]
backup_dir = env['backup_dir'] backup_dir = env["backup_dir"]
headers = { headers = {"Authorization": f"Token {env['token_id']}:{env['token_secret']}"}
"Authorization": f"Token {env['token_id']}:{env['token_secret']}"
}
pages_list = api.get_pages_list()['data'] pages_list = api.get_pages_list()["data"]
chapter_list = api.get_chapters_list()['data'] chapter_list = api.get_chapters_list()["data"]
print(f"Backup type: {backup_extension}") print(f"Backup type: {backup_extension}")
for chapter in chapter_list: for chapter in chapter_list:
for page in pages_list: for page in pages_list:
if page['book_id'] == selected_book['id']: if page["book_id"] == selected_book["id"]:
if chapter['id'] == page['chapter_id']: if chapter["id"] == page["chapter_id"]:
folder = os.path.join(backup_dir, chapter['name']) folder = os.path.join(backup_dir, chapter["name"])
filename = os.path.join(folder, page['name'] + backup_extension_fileType) filename = os.path.join(
folder, page["name"] + backup_extension_fileType
)
print(f"Backing up: {filename}") print(f"Backing up: {filename}")
if not os.path.exists(folder): if not os.path.exists(folder):
os.makedirs(folder, exist_ok=True) os.makedirs(folder, exist_ok=True)
response = requests.get( response = requests.get(
f'{base_url}/api/pages/{page["id"]}/export/{backup_extension}', f'{base_url}/api/pages/{page["id"]}/export/{backup_extension}',
headers=headers headers=headers,
) )
with open(filename, 'wb') as file: with open(filename, "wb") as file:
file.write(response.content) file.write(response.content)

View File

@@ -11,6 +11,7 @@ def get_backup_extension():
else: else:
raise ValueError("Unsupported backup type") raise ValueError("Unsupported backup type")
def set_backup_extension_filetype(backup_type): def set_backup_extension_filetype(backup_type):
if backup_type == "markdown": if backup_type == "markdown":
return ".md" return ".md"

View File

@@ -3,7 +3,9 @@ def get_confirmation(backup_extension, selected_book):
while True: while True:
confirm = input("Are these settings correct? (y/n): ").strip().lower() confirm = input("Are these settings correct? (y/n): ").strip().lower()
if confirm == "y": if confirm == "y":
print(f"Starting backup for book: {selected_book['name']} with filetype {backup_extension}.") print(
f"Starting backup for book: {selected_book['name']} with filetype {backup_extension}."
)
print("Starting now.......") print("Starting now.......")
return True return True
elif confirm == "n": elif confirm == "n":
@@ -11,4 +13,3 @@ def get_confirmation(backup_extension, selected_book):
return False return False
else: else:
print("Please enter 'y' or 'n'.") print("Please enter 'y' or 'n'.")

View File

@@ -4,11 +4,12 @@ def get_Books(book_list):
for book in book_list: for book in book_list:
print(f"{book['id']}: {book['name']}") print(f"{book['id']}: {book['name']}")
def set_Book(book_list): def set_Book(book_list):
while True: while True:
try: try:
book_to_backup = int(input("Enter the book ID to backup: ")) book_to_backup = int(input("Enter the book ID to backup: "))
if any(book['id'] == book_to_backup for book in book_list): if any(book["id"] == book_to_backup for book in book_list):
return book_to_backup return book_to_backup
else: else:
print("Invalid book ID, please try again.") print("Invalid book ID, please try again.")

View File

@@ -1,11 +1,13 @@
from dotenv import load_dotenv
import os import os
from dotenv import load_dotenv
def set_variables(): def set_variables():
load_dotenv() load_dotenv()
return { return {
"base_url": os.getenv('BASE_URL'), "base_url": os.getenv("BASE_URL"),
"token_id": os.getenv('TOKEN_ID'), "token_id": os.getenv("TOKEN_ID"),
"token_secret": os.getenv('TOKEN_SECRET'), "token_secret": os.getenv("TOKEN_SECRET"),
"backup_dir": os.getenv('BACKUP_DIR') "backup_dir": os.getenv("BACKUP_DIR"),
} }