Loading opds_catalog/inpx_parser.py +10 −9 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ Created on 14 нояб. 2016 г. # -*- coding: utf-8 -*- import os import zipfile from opds_catalog import settings sAuthor = 'AUTHOR' sGenre = 'GENRE' Loading @@ -31,8 +32,8 @@ class Inpx: self.inpx_itemseparator = ':' self.append_callback = append_callback self.inpskip_callback = inpskip_callback self.TEST_ZIP = False self.TEST_FILES = False self.TEST_ZIP = settings.INPX_TEST_ZIP self.TEST_FILES = settings.INPX_TEST_FILES self.error = 0 def parse(self): Loading @@ -45,10 +46,14 @@ class Inpx: if inp_ext.upper() != '.INP': continue if self.inpskip_callback(self.inpx_file, inp_name,finpx.getinfo(inp_file).file_size): zip_file_name = os.path.join(self.inpx_catalog,"%s%s"%(inp_name,'.zip')) # Если решили проверять на наличие ZIP файла или книги в ZIP, а самого ZIP файла нет - то пропускаем обработку всего ZIP файла if (self.TEST_ZIP or self.TEST_FILES) and not os.path.isfile(zip_file_name): continue zip_file_name = os.path.join(self.inpx_catalog,"%s%s"%(inp_name,'.zip')) if self.inpskip_callback(self.inpx_file, inp_name,finpx.getinfo(inp_file).file_size): continue # Если будем проверять наличие файлов в ZIP то однократно получаем список файлов в обрабатываемом ZIP if self.TEST_FILES: Loading @@ -57,10 +62,6 @@ class Inpx: else: testzip_namelist = [] # Если решили проверять на наличие ZIP файла или книги в ZIP, а самого ZIP файла нет - то пропускаем обработку всего ZIP файла if (self.TEST_ZIP or self.TEST_FILES) and not os.path.isfile(zip_file_name): continue finp = finpx.open(inp_file) for line in finp: meta_list = line.split(self.inpx_separator) Loading sopds/settings.py +6 −2 Original line number Diff line number Diff line Loading @@ -139,13 +139,17 @@ STATIC_ROOT = 'static' #SOPDS_ROOT_LIB = 'W:\\_Downloads\\_Lib.rus.ec - Официальная\\lib.rus.ec\\' #SOPDS_ROOT_LIB = '/mnt/SATA1TB-1/КНИГИ/BOOKS/' #SOPDS_ROOT_LIB = '/mnt/nfs/КНИГИ/BOOKS/' SOPDS_ROOT_LIB = os.path.join(BASE_DIR,'opds_catalog//tests//data//') #SOPDS_ROOT_LIB = os.path.join(BASE_DIR,'opds_catalog\\tests\\data\\') SOPDS_ROOT_LIB = "d:\\BOOKS\\" SOPDS_SINGLE_COMMIT = False SOPDS_AUTH = True SOPDS_SCAN_SHED_MIN ='0' SOPDS_SCAN_SHED_HOUR ='0,12' SOPDS_SINGLE_COMMIT = True SOPDS_INPX_TEST_ZIP = True #Конвертеры EPUB и MOBI #SOPDS_FB2TOEPUB = os.path.join(BASE_DIR,'convert/fb2toepub/unix_dist/fb2toepub') #SOPDS_FB2TOEPUB = os.path.join(BASE_DIR,'convert/fb2conv/fb2epub') Loading sopds_web_backend/views.py +3 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ def SearchBooksView(request): # prefetch_related on sqlite on items >999 therow error "too many SQL variables" #if len(books)>0: # books = books.prefetch_related('authors','genres','series') # books = books.select_related('authors','genres','series') # Фильтруем дубликаты result = [] Loading @@ -191,6 +191,8 @@ def SearchBooksView(request): else: result.append(p) result = books p = Paginator(result, MAXITEMS) try: books = p.page(page_num) Loading Loading
opds_catalog/inpx_parser.py +10 −9 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ Created on 14 нояб. 2016 г. # -*- coding: utf-8 -*- import os import zipfile from opds_catalog import settings sAuthor = 'AUTHOR' sGenre = 'GENRE' Loading @@ -31,8 +32,8 @@ class Inpx: self.inpx_itemseparator = ':' self.append_callback = append_callback self.inpskip_callback = inpskip_callback self.TEST_ZIP = False self.TEST_FILES = False self.TEST_ZIP = settings.INPX_TEST_ZIP self.TEST_FILES = settings.INPX_TEST_FILES self.error = 0 def parse(self): Loading @@ -45,10 +46,14 @@ class Inpx: if inp_ext.upper() != '.INP': continue if self.inpskip_callback(self.inpx_file, inp_name,finpx.getinfo(inp_file).file_size): zip_file_name = os.path.join(self.inpx_catalog,"%s%s"%(inp_name,'.zip')) # Если решили проверять на наличие ZIP файла или книги в ZIP, а самого ZIP файла нет - то пропускаем обработку всего ZIP файла if (self.TEST_ZIP or self.TEST_FILES) and not os.path.isfile(zip_file_name): continue zip_file_name = os.path.join(self.inpx_catalog,"%s%s"%(inp_name,'.zip')) if self.inpskip_callback(self.inpx_file, inp_name,finpx.getinfo(inp_file).file_size): continue # Если будем проверять наличие файлов в ZIP то однократно получаем список файлов в обрабатываемом ZIP if self.TEST_FILES: Loading @@ -57,10 +62,6 @@ class Inpx: else: testzip_namelist = [] # Если решили проверять на наличие ZIP файла или книги в ZIP, а самого ZIP файла нет - то пропускаем обработку всего ZIP файла if (self.TEST_ZIP or self.TEST_FILES) and not os.path.isfile(zip_file_name): continue finp = finpx.open(inp_file) for line in finp: meta_list = line.split(self.inpx_separator) Loading
sopds/settings.py +6 −2 Original line number Diff line number Diff line Loading @@ -139,13 +139,17 @@ STATIC_ROOT = 'static' #SOPDS_ROOT_LIB = 'W:\\_Downloads\\_Lib.rus.ec - Официальная\\lib.rus.ec\\' #SOPDS_ROOT_LIB = '/mnt/SATA1TB-1/КНИГИ/BOOKS/' #SOPDS_ROOT_LIB = '/mnt/nfs/КНИГИ/BOOKS/' SOPDS_ROOT_LIB = os.path.join(BASE_DIR,'opds_catalog//tests//data//') #SOPDS_ROOT_LIB = os.path.join(BASE_DIR,'opds_catalog\\tests\\data\\') SOPDS_ROOT_LIB = "d:\\BOOKS\\" SOPDS_SINGLE_COMMIT = False SOPDS_AUTH = True SOPDS_SCAN_SHED_MIN ='0' SOPDS_SCAN_SHED_HOUR ='0,12' SOPDS_SINGLE_COMMIT = True SOPDS_INPX_TEST_ZIP = True #Конвертеры EPUB и MOBI #SOPDS_FB2TOEPUB = os.path.join(BASE_DIR,'convert/fb2toepub/unix_dist/fb2toepub') #SOPDS_FB2TOEPUB = os.path.join(BASE_DIR,'convert/fb2conv/fb2epub') Loading
sopds_web_backend/views.py +3 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ def SearchBooksView(request): # prefetch_related on sqlite on items >999 therow error "too many SQL variables" #if len(books)>0: # books = books.prefetch_related('authors','genres','series') # books = books.select_related('authors','genres','series') # Фильтруем дубликаты result = [] Loading @@ -191,6 +191,8 @@ def SearchBooksView(request): else: result.append(p) result = books p = Paginator(result, MAXITEMS) try: books = p.page(page_num) Loading