mangle/mangle-cli.py
clach04 fec243c4d4 Working commandline without PyQt
* Show simple usage in doc comments
  * python3 ready print() calls
  * add note on format and image filename preservation
  * display progress
  * remove Qt dependency for mangle-cli.py
2021-07-16 20:34:32 -07:00

72 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python2
"""python mangle-cli.py extracted_cbz_folder/*
-d directory_name defaults to ./
-t title defaults 'Unknown'
-o book.outputFormat defaults to 'CBZ only'
NOTE order of arguments for image files is significant.
"""
import shutil
import sys
import os
import getopt
import mangle.cbz
import mangle.image
from mangle.image import ImageFlags
class FakeBook:
device = 'Kindle 2/3/Touch' # See mangle/image.py KindleData.Profiles
outputFormat = 'CBZ only'
title = 'Unknown'
imageFlags = ImageFlags.Orient | ImageFlags.Resize | ImageFlags.Quantize
try:
opts, args = getopt.getopt(sys.argv[1:], 'd:t:o:')
except getopt.GetoptError, err:
print(str(err))
sys.exit(2)
directory = '.'
book = FakeBook()
book.device = 'Kindle 2/3/Touch'
#book.device = 'Kindle Paperwhite 1 & 2'
book.outputFormat = 'CBZ only'
book.title = 'Unknown'
for o,a in opts:
if o == '-d':
directory = a
elif o == '-t':
book.title = a
elif o == '-o':
book.outputFormat = a
bookPath = os.path.join(directory, book.title)
archive = mangle.cbz.Archive(bookPath)
if not os.path.isdir(bookPath):
os.makedirs(bookPath)
for index in range(0, len(args)):
target = os.path.join(bookPath, '%05d.png' % index) # FIXME preserve original; format and name?
print(index, args[index], target) # cheap display progress
mangle.image.convertImage(args[index], target, str(book.device), book.imageFlags)
archive.addFile(target);
if 'Image' not in book.outputFormat:
shutil.rmtree(bookPath)
archive.close()