Manga mode

Comics are parsed for images only
Miscellaneous fixes
This commit is contained in:
BasioMeusPuga
2019-01-14 15:54:29 +05:30
parent f997bc9c9a
commit 17f39c557b
18 changed files with 7580 additions and 7046 deletions

View File

@@ -36,16 +36,24 @@ class ParseCOMIC:
if self.book_extension[1] == '.cbz':
self.book = zipfile.ZipFile(
self.filename, mode='r', allowZip64=True)
self.image_list = [i.filename for i in self.book.infolist() if not i.is_dir()]
self.image_list = [
i.filename for i in self.book.infolist()
if not i.is_dir() and is_image(i.filename)]
elif self.book_extension[1] == '.cbr':
self.book = rarfile.RarFile(self.filename)
self.image_list = [i.filename for i in self.book.infolist() if not i.isdir()]
self.image_list = [
i.filename for i in self.book.infolist()
if not i.isdir() and is_image(i.filename)]
self.image_list.sort()
except: # Specifying no exception here is warranted
print('Cannot parse ' + self.filename)
return
if not self.image_list:
return False
return True
except: # Specifying no exception here is warranted
return False
def get_title(self):
title = os.path.basename(self.book_extension[0]).strip(' ')
@@ -76,3 +84,11 @@ class ParseCOMIC:
contents = [(f'Page {count + 1}', i) for count, i in enumerate(self.image_list)]
return contents, file_settings
def is_image(filename):
valid_image_extensions = ['.png', '.jpg', '.bmp']
if os.path.splitext(filename)[1].lower() in valid_image_extensions:
return True
else:
return False

View File

@@ -33,9 +33,9 @@ class ParseEPUB:
self.book_ref = EPUB(self.filename)
contents_found = self.book_ref.read_epub()
if not contents_found:
print('Cannot process: ' + self.filename)
return
return False
self.book = self.book_ref.book
return True
def get_title(self):
return self.book['title']

View File

@@ -32,9 +32,9 @@ class ParseFB2:
self.book_ref = FB2(self.filename)
contents_found = self.book_ref.read_fb2()
if not contents_found:
print('Cannot process: ' + self.filename)
return
return False
self.book = self.book_ref.book
return True
def get_title(self):
return self.book['title']

View File

@@ -55,9 +55,9 @@ class ParseMOBI:
self.book_ref = EPUB(self.epub_filepath)
contents_found = self.book_ref.read_epub()
if not contents_found:
print('Cannot process: ' + self.filename)
return
return False
self.book = self.book_ref.book
return True
def get_title(self):
return self.book['title']

View File

@@ -36,9 +36,10 @@ class ParsePDF:
def read_book(self):
self.book = popplerqt5.Poppler.Document.load(self.filename)
if not self.book:
return
return False
self.metadata = BeautifulSoup(self.book.metadata(), 'xml')
return True
def get_title(self):
try: