diff --git a/functions/__init__.py b/functions/__init__.py index 28a17ed..fb7b02b 100644 --- a/functions/__init__.py +++ b/functions/__init__.py @@ -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 +from . import (backupLogic, backupType, get_confirmation, get_set_Book, + set_Variables) + + def main(version): print(f"Functions module running version: {version}") env = set_Variables.set_variables() 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() try: - book_list = api.get_books_list()['data'] + book_list = api.get_books_list()["data"] except Exception as e: print(f"Error loading books: {e}") return @@ -22,11 +23,15 @@ def main(version): get_set_Book.get_Books(book_list) book_to_backup = get_set_Book.set_Book(book_list) backup_extension = backupType.get_backup_extension() - backup_extension_fileType = backupType.set_backup_extension_filetype(backup_extension) - book_to_backup = next(book for book in book_list if book['id'] == book_to_backup) + backup_extension_fileType = backupType.set_backup_extension_filetype( + 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): - 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.") else: - return \ No newline at end of file + return diff --git a/functions/backupLogic.py b/functions/backupLogic.py index 2dd5fc2..954ac33 100644 --- a/functions/backupLogic.py +++ b/functions/backupLogic.py @@ -1,31 +1,32 @@ import os + import requests def backup_book(api, env, selected_book, backup_extension, backup_extension_fileType): - base_url = env['base_url'] - backup_dir = env['backup_dir'] - headers = { - "Authorization": f"Token {env['token_id']}:{env['token_secret']}" - } + base_url = env["base_url"] + backup_dir = env["backup_dir"] + headers = {"Authorization": f"Token {env['token_id']}:{env['token_secret']}"} - pages_list = api.get_pages_list()['data'] - chapter_list = api.get_chapters_list()['data'] + pages_list = api.get_pages_list()["data"] + chapter_list = api.get_chapters_list()["data"] print(f"Backup type: {backup_extension}") for chapter in chapter_list: for page in pages_list: - if page['book_id'] == selected_book['id']: - if chapter['id'] == page['chapter_id']: - folder = os.path.join(backup_dir, chapter['name']) - filename = os.path.join(folder, page['name'] + backup_extension_fileType) + if page["book_id"] == selected_book["id"]: + if chapter["id"] == page["chapter_id"]: + folder = os.path.join(backup_dir, chapter["name"]) + filename = os.path.join( + folder, page["name"] + backup_extension_fileType + ) print(f"Backing up: {filename}") if not os.path.exists(folder): os.makedirs(folder, exist_ok=True) response = requests.get( f'{base_url}/api/pages/{page["id"]}/export/{backup_extension}', - headers=headers + headers=headers, ) - with open(filename, 'wb') as file: - file.write(response.content) \ No newline at end of file + with open(filename, "wb") as file: + file.write(response.content) diff --git a/functions/backupType.py b/functions/backupType.py index 8151271..237a084 100644 --- a/functions/backupType.py +++ b/functions/backupType.py @@ -11,6 +11,7 @@ def get_backup_extension(): else: raise ValueError("Unsupported backup type") + def set_backup_extension_filetype(backup_type): if backup_type == "markdown": return ".md" @@ -21,4 +22,4 @@ def set_backup_extension_filetype(backup_type): elif backup_type == "Plaintext": return ".txt" else: - print("Error file type not found") \ No newline at end of file + print("Error file type not found") diff --git a/functions/get_confirmation.py b/functions/get_confirmation.py index 01b2842..436f932 100644 --- a/functions/get_confirmation.py +++ b/functions/get_confirmation.py @@ -3,7 +3,9 @@ def get_confirmation(backup_extension, selected_book): while True: confirm = input("Are these settings correct? (y/n): ").strip().lower() 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.......") return True elif confirm == "n": @@ -11,4 +13,3 @@ def get_confirmation(backup_extension, selected_book): return False else: print("Please enter 'y' or 'n'.") - diff --git a/functions/get_set_Book.py b/functions/get_set_Book.py index 3b4b6a0..ff98bc9 100644 --- a/functions/get_set_Book.py +++ b/functions/get_set_Book.py @@ -4,13 +4,14 @@ def get_Books(book_list): for book in book_list: print(f"{book['id']}: {book['name']}") + def set_Book(book_list): while True: try: 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 else: print("Invalid book ID, please try again.") except ValueError: - print("Please enter a valid number.") \ No newline at end of file + print("Please enter a valid number.") diff --git a/functions/set_Variables.py b/functions/set_Variables.py index 3c17b6d..389dbf1 100644 --- a/functions/set_Variables.py +++ b/functions/set_Variables.py @@ -1,11 +1,13 @@ -from dotenv import load_dotenv import os +from dotenv import load_dotenv + + def set_variables(): load_dotenv() return { - "base_url": os.getenv('BASE_URL'), - "token_id": os.getenv('TOKEN_ID'), - "token_secret": os.getenv('TOKEN_SECRET'), - "backup_dir": os.getenv('BACKUP_DIR') - } \ No newline at end of file + "base_url": os.getenv("BASE_URL"), + "token_id": os.getenv("TOKEN_ID"), + "token_secret": os.getenv("TOKEN_SECRET"), + "backup_dir": os.getenv("BACKUP_DIR"), + } diff --git a/main.py b/main.py index c1f74e2..c96b19a 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,4 @@ ## Imports import functions as func -func.main(version="V2.1") \ No newline at end of file +func.main(version="V2.1")