aboutsummaryrefslogtreecommitdiff
path: root/src/new/command.py
diff options
context:
space:
mode:
authorJoris2023-09-17 12:23:47 +0200
committerJoris2023-09-17 12:23:47 +0200
commit1ebc55c72a1a17293bbf4ad86e0177a10a794750 (patch)
tree5fce0ea3a011ccbae85b0d3927f8ac33099585fb /src/new/command.py
parentc236facb4d4c277773c83f1a4ee85b48833d7e67 (diff)
Make app packageable
Diffstat (limited to 'src/new/command.py')
-rw-r--r--src/new/command.py94
1 files changed, 0 insertions, 94 deletions
diff --git a/src/new/command.py b/src/new/command.py
deleted file mode 100644
index fe706c2..0000000
--- a/src/new/command.py
+++ /dev/null
@@ -1,94 +0,0 @@
-import PIL.Image
-import io
-import os
-import pathlib
-import re
-import requests
-import shutil
-import subprocess
-import sys
-import unicodedata
-import urllib.request
-
-import new.reader as reader
-import new.format as format
-
-def run(book_library, book_source=None):
-
- # Get data
-
- title = reader.required('Title')
- subtitle = reader.optional('Subtitle')
- authors = reader.non_empty_list('Authors')
- author_sort = reader.required('Authors sorting')
- genres = reader.non_empty_list('Genres')
- year = reader.integer('Year')
- lang = reader.choices('Lang', ['fr', 'en', 'de'])
- summary = format.cleanup_text(reader.multi_line('Summary'), lang)
- cover_url = reader.required('Cover url')
- read = reader.choices('Read', ['Read', 'Unread', 'Reading', 'Stopped'])
-
- # Output paths
-
- author_path = format.path_part(author_sort)
- title_path = format.path_part(title)
-
- library_path = '/home/joris/documents/books'
- output_dir = f'{library_path}/{author_path}/{title_path}'
- metadata_path = f'{output_dir}/metadata.toml'
- cover_path = f'{output_dir}/cover.webp'
-
- if not book_source is None:
- ext = format.extension(book_source)
- book_path = f'{output_dir}/book{ext}'
- book_source_dir = os.path.dirname(os.path.realpath(book_source))
- book_source_new = f'{book_source_dir}/{author_path}-{title_path}.mobi'
-
- # Metadata
-
- metadata = f"""title = "{title}"
- subtitle = "{subtitle}"
- authors = {format.format_list(authors)}
- authorsSort = "{author_sort}"
- genres = {format.format_list(genres)}
- date = {year}
- summary = \"\"\"
- {summary}
- \"\"\"
- read = "{read}"
- """
-
- # Ask for confirmation
-
- print(f'About to create:\n\n- {metadata_path}\n- {cover_path}')
- if not book_source is None:
- print(f'- {book_path}')
- print(f'\nAnd moving:\n\n {book_source},\n -> {book_source_new}.')
- print()
-
- reader.confirm('OK?')
-
- # Create files
-
- pathlib.Path(output_dir).mkdir(parents=True, exist_ok=True)
- download_cover(cover_url, cover_path)
- with open(metadata_path, 'w') as f:
- f.write(metadata)
- if not book_path is None:
- shutil.copyfile(book_source, book_path)
- if format.extension(book_source) in ['mobi', 'azw3']:
- os.rename(book_source, book_source_new)
- else:
- subprocess.run(['ebook-convert', book_source, book_source_new])
- os.remove(book_source)
-
-# Download cover as WEBP
-def download_cover(url, path):
- response = requests.get(url, headers={ 'User-Agent': 'python-script' })
- image = PIL.Image.open(io.BytesIO(response.content))
- width, height = image.size
- if width > 300:
- image = image.resize((300, int(300 * height / width)), PIL.Image.LANCZOS)
- image = image.convert('RGB')
- image.save(path, 'WEBP', optimize=True, quality=85)
-