diff --git a/__pycache__/library.cpython-37.pyc b/__pycache__/library.cpython-37.pyc index 2338485..e712bf9 100644 Binary files a/__pycache__/library.cpython-37.pyc and b/__pycache__/library.cpython-37.pyc differ diff --git a/library.py b/library.py index aec1504..84f84d2 100755 --- a/library.py +++ b/library.py @@ -2,12 +2,14 @@ import json import os import re +import zipfile from config import Config config = Config() class Catalogue: """Decodes and stores book information""" + """Step One: filter_books""" def __init__(self): self.file_list = [] with open(config.book_shelf, 'r') as f: @@ -26,7 +28,19 @@ class Catalogue: self.file_list.append(self.scan_folder(_path)) self.file_list.append(_path) + def scan_book(self, book): + _epub = zipfile.ZipFile(book) + with _epub as _epub_open: + try: _epub_open.open('content.opf'); return True + except Exception as e: print(e); return False + def filter_books(self, ret=0): + """ + filter_books(0) -> Catalogue.books + filter_books(1) -> self.books[] + :param ret: 0 -> create class property + :param ret: 1 -> create & return class property + """ self.scan_folder() regx = re.compile(r"\.epub") self.books = list(filter(regx.search, filter(None, self.file_list))) @@ -36,10 +50,17 @@ class Catalogue: else: return self.books + def filter_tags(self, book): + f_name = 'content.opf' + try: + content_opf = list(filter(re.search, book)) + except: + return False + def compare_shelf_current(self): try: self.books except Exception: self.filter_books() unique = set(self.books) - set(self.catalogue) - return unique + return unique \ No newline at end of file diff --git a/main.py b/main.py index ab32539..19887e3 100755 --- a/main.py +++ b/main.py @@ -7,4 +7,5 @@ from library import Catalogue config = Config() InitFiles(config.file_array) - +Catalogue = Catalogue() +book_list = Catalogue.filter_books(1)