From 58689cd4ffa11f703b67910470a6d67b8494643d Mon Sep 17 00:00:00 2001 From: j Date: Tue, 29 Jan 2019 15:50:03 +0530 Subject: [PATCH 1/3] skip Inbox --- static/js/folders.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/js/folders.js b/static/js/folders.js index f4e84a3..f413156 100644 --- a/static/js/folders.js +++ b/static/js/folders.js @@ -338,7 +338,7 @@ oml.ui.folders = function() { that.updateOwnLists = function(callback) { oml.getLists(function(lists) { var items = lists.filter(function(list) { - return list.user == '' && list.type != 'library'; + return list.user == '' && list.type != 'library' && list.name != 'Inbox'; }); oml.$ui.folder[0].$content .css({height: 16 + items.length * 16 + 'px'}); From 8fdda01d4db8a3b0b22c61a378fc0d587f8d7821 Mon Sep 17 00:00:00 2001 From: j Date: Tue, 29 Jan 2019 15:50:43 +0530 Subject: [PATCH 2/3] extract cover from cbr,cbz --- oml/media/__init__.py | 6 ++++-- oml/media/cbr.py | 14 +++++++++++++- oml/media/cbz.py | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 oml/media/cbz.py diff --git a/oml/media/__init__.py b/oml/media/__init__.py index dd9d32b..d77b11b 100644 --- a/oml/media/__init__.py +++ b/oml/media/__init__.py @@ -10,7 +10,7 @@ import ox from . import pdf from . import cbr -cbz = cbr +from . import cbz from . import epub from . import txt from . import opf @@ -34,8 +34,10 @@ def metadata(f, from_=None): data['size'] = os.stat(f).st_size try: - if ext in ('cbr', 'cbz'): + if ext in ('cbr', ): info = cbr.info(f) + elif ext in ('cbz', ): + info = cbz.info(f) elif ext in ('epub', 'kepub'): info = epub.info(f) data['extension'] = 'epub' diff --git a/oml/media/cbr.py b/oml/media/cbr.py index 66e1324..fdade82 100644 --- a/oml/media/cbr.py +++ b/oml/media/cbr.py @@ -2,11 +2,23 @@ import os - +import ox def cover(path): data = None #open rar file and extract first page here + try: + from unrar import rarfile + rar = rarfile.RarFile(path) + for cover in ox.sorted_strings(rar.namelist()): + try: + data = rar.read(cover) + except: + data = None + finally: + return data + except: + data = None return data def info(path): diff --git a/oml/media/cbz.py b/oml/media/cbz.py new file mode 100644 index 0000000..83fba49 --- /dev/null +++ b/oml/media/cbz.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +import os +import zipfile + +import ox + +def cover(path): + data = None + logger.debug('cover %s', path) + data = None + try: + z = zipfile.ZipFile(path) + except zipfile.BadZipFile: + logger.debug('invalid zbc file %s', path) + return data + files = [f.filename for f in z.filelist] + if files: + for cover in ox.sortedstrings(files): + try: + data = z.read(cover) + except: + data = None + finally: + return data + + +def info(path): + data = {} + data['title'] = os.path.splitext(os.path.basename(path))[0] + #data['pages'] = fixme read rar to count pages + return data + From 3ec0930f5292424f13c39f2b3c4fc99275da93ae Mon Sep 17 00:00:00 2001 From: j Date: Tue, 29 Jan 2019 16:11:35 +0530 Subject: [PATCH 3/3] update shared path, add unrar --- ctl | 8 +++++++- oml/__main__.py | 3 +++ requirements-shared.txt | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ctl b/ctl index 4c05511..c45e82b 100755 --- a/ctl +++ b/ctl @@ -37,7 +37,7 @@ if [ ! -e "$PID" ]; then fi PLATFORM_PYTHON=3.4 -SHARED_PYTHON=3.4 +SHARED_PYTHON=3.7 if [ -e "$BASE/platform_local" ]; then export PLATFORM_ENV="$BASE/platform_local" else @@ -56,10 +56,16 @@ else ARCH="_armv7l" fi PLATFORM="linux$ARCH" + if [ -e $BASE/platform_${PLATFORM}/lib/libunrar.so ]; then + export UNRAR_LIB_PATH="$BASE/platform_${PLATFORM}/lib/libunrar.so" + fi fi if [ $SYSTEM == "Darwin" ]; then PLATFORM="darwin64" PLATFORM_PYTHON=3.7 + if [ -e $BASE/platform_${PLATFORM}/lib/libunrar.dylib ]; then + export UNRAR_LIB_PATH="$BASE/platform_${PLATFORM}/lib/libunrar.dylib" + fi fi export PLATFORM_ENV="$BASE/platform_${PLATFORM}" fi diff --git a/oml/__main__.py b/oml/__main__.py index f5e2b5e..3c54ef6 100644 --- a/oml/__main__.py +++ b/oml/__main__.py @@ -17,6 +17,9 @@ if sys.platform == 'win32': site.addsitedir(site_packages) sys.path.append(join(base, 'platform_win32')) os.environ['oxCACHE'] = join(base, 'data', 'ox') + unrar_dll = join(base, 'platform_win32', 'unrar.dll') + if os.path.exists(unrar_dll): + os.environ['UNRAR_LIB_PATH'] = unrar_dll import api import commands diff --git a/requirements-shared.txt b/requirements-shared.txt index 2edce59..ced1c73 100644 --- a/requirements-shared.txt +++ b/requirements-shared.txt @@ -10,3 +10,4 @@ pysocks stem sqlitedict==1.6.0 zeroconf +unrar