mirror of
https://github.com/RicterZ/nhentai.git
synced 2025-04-20 11:01:17 +02:00
fix bug of move-to-dir
This commit is contained in:
parent
f932b1fbbe
commit
02d47632cf
@ -1,4 +1,6 @@
|
|||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
import signal
|
import signal
|
||||||
import platform
|
import platform
|
||||||
@ -12,7 +14,7 @@ from nhentai.downloader import Downloader
|
|||||||
from nhentai.logger import logger
|
from nhentai.logger import logger
|
||||||
from nhentai.constant import BASE_URL
|
from nhentai.constant import BASE_URL
|
||||||
from nhentai.utils import generate_html, generate_doc, generate_main_html, generate_metadata_file, \
|
from nhentai.utils import generate_html, generate_doc, generate_main_html, generate_metadata_file, \
|
||||||
paging, check_cookie, signal_handler, DB
|
paging, check_cookie, signal_handler, DB, move_to_folder
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -104,12 +106,22 @@ def main():
|
|||||||
generate_html(options.output_dir, doujinshi, template=constant.CONFIG['template'])
|
generate_html(options.output_dir, doujinshi, template=constant.CONFIG['template'])
|
||||||
|
|
||||||
if options.is_cbz:
|
if options.is_cbz:
|
||||||
generate_doc('cbz', options.output_dir, doujinshi, options.rm_origin_dir, options.move_to_folder,
|
generate_doc('cbz', options.output_dir, doujinshi, options.rm_origin_dir)
|
||||||
options.regenerate)
|
|
||||||
|
|
||||||
if options.is_pdf:
|
if options.is_pdf:
|
||||||
generate_doc('pdf', options.output_dir, doujinshi, options.rm_origin_dir, options.move_to_folder,
|
generate_doc('pdf', options.output_dir, doujinshi, options.rm_origin_dir)
|
||||||
options.regenerate)
|
|
||||||
|
if options.move_to_folder:
|
||||||
|
if options.is_cbz:
|
||||||
|
move_to_folder(options.output_dir, doujinshi, 'cbz')
|
||||||
|
if options.is_pdf:
|
||||||
|
move_to_folder(options.output_dir, doujinshi, 'pdf')
|
||||||
|
|
||||||
|
if options.rm_origin_dir:
|
||||||
|
if options.move_to_folder:
|
||||||
|
logger.critical('You specified both --move-to-folder and --rm-origin-dir options, '
|
||||||
|
'you will not get anything :(')
|
||||||
|
shutil.rmtree(os.path.join(options.output_dir, doujinshi.filename), ignore_errors=True)
|
||||||
|
|
||||||
if options.main_viewer:
|
if options.main_viewer:
|
||||||
generate_main_html(options.output_dir)
|
generate_main_html(options.output_dir)
|
||||||
|
@ -72,8 +72,8 @@ def parse_doujinshi_obj(
|
|||||||
doujinshi_obj=None,
|
doujinshi_obj=None,
|
||||||
file_type: str = ''
|
file_type: str = ''
|
||||||
) -> Tuple[str, str]:
|
) -> Tuple[str, str]:
|
||||||
filename = './doujinshi' + file_type
|
|
||||||
|
|
||||||
|
filename = f'./doujinshi.{file_type}'
|
||||||
doujinshi_dir = os.path.join(output_dir, doujinshi_obj.filename)
|
doujinshi_dir = os.path.join(output_dir, doujinshi_obj.filename)
|
||||||
if doujinshi_obj is not None:
|
if doujinshi_obj is not None:
|
||||||
_filename = f'{doujinshi_obj.filename}.{file_type}'
|
_filename = f'{doujinshi_obj.filename}.{file_type}'
|
||||||
@ -128,6 +128,27 @@ def generate_html(output_dir='.', doujinshi_obj=None, template='default'):
|
|||||||
logger.warning(f'Writing HTML Viewer failed ({e})')
|
logger.warning(f'Writing HTML Viewer failed ({e})')
|
||||||
|
|
||||||
|
|
||||||
|
def move_to_folder(output_dir='.', doujinshi_obj=None, file_type=None):
|
||||||
|
if not file_type:
|
||||||
|
raise RuntimeError('no file_type specified')
|
||||||
|
|
||||||
|
doujinshi_dir, filename = parse_doujinshi_obj(output_dir, doujinshi_obj, file_type)
|
||||||
|
|
||||||
|
for fn in os.listdir(doujinshi_dir):
|
||||||
|
file_path = os.path.join(doujinshi_dir, fn)
|
||||||
|
_, ext = os.path.splitext(file_path)
|
||||||
|
if ext in ['.pdf', '.cbz']:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if os.path.isfile(file_path):
|
||||||
|
try:
|
||||||
|
os.remove(file_path)
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error deleting file: {e}")
|
||||||
|
|
||||||
|
shutil.move(filename, os.path.join(doujinshi_dir, os.path.basename(filename)))
|
||||||
|
|
||||||
|
|
||||||
def generate_main_html(output_dir='./'):
|
def generate_main_html(output_dir='./'):
|
||||||
"""
|
"""
|
||||||
Generate a main html to show all the contains doujinshi.
|
Generate a main html to show all the contains doujinshi.
|
||||||
@ -185,8 +206,7 @@ def generate_main_html(output_dir='./'):
|
|||||||
logger.warning(f'Writing Main Viewer failed ({e})')
|
logger.warning(f'Writing Main Viewer failed ({e})')
|
||||||
|
|
||||||
|
|
||||||
def generate_doc(file_type='', output_dir='.', doujinshi_obj=None, rm_origin_dir=False,
|
def generate_doc(file_type='', output_dir='.', doujinshi_obj=None, regenerate=False):
|
||||||
move_to_folder=False, regenerate=False):
|
|
||||||
|
|
||||||
doujinshi_dir, filename = parse_doujinshi_obj(output_dir, doujinshi_obj, file_type)
|
doujinshi_dir, filename = parse_doujinshi_obj(output_dir, doujinshi_obj, file_type)
|
||||||
|
|
||||||
@ -225,20 +245,6 @@ def generate_doc(file_type='', output_dir='.', doujinshi_obj=None, rm_origin_dir
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
logger.error("Please install img2pdf package by using pip.")
|
logger.error("Please install img2pdf package by using pip.")
|
||||||
|
|
||||||
if rm_origin_dir:
|
|
||||||
shutil.rmtree(doujinshi_dir, ignore_errors=True)
|
|
||||||
|
|
||||||
if move_to_folder:
|
|
||||||
for filename in os.listdir(doujinshi_dir):
|
|
||||||
file_path = os.path.join(doujinshi_dir, filename)
|
|
||||||
if os.path.isfile(file_path):
|
|
||||||
try:
|
|
||||||
os.remove(file_path)
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error deleting file: {e}")
|
|
||||||
|
|
||||||
shutil.move(filename, doujinshi_dir)
|
|
||||||
|
|
||||||
|
|
||||||
def format_filename(s, length=MAX_FIELD_LENGTH, _truncate_only=False):
|
def format_filename(s, length=MAX_FIELD_LENGTH, _truncate_only=False):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user