2019-01-29 10:20:43 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
|
|
import zipfile
|
2019-02-01 12:23:17 +00:00
|
|
|
import logging
|
2019-01-29 10:20:43 +00:00
|
|
|
|
|
|
|
import ox
|
|
|
|
|
2019-02-01 12:23:17 +00:00
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
2019-01-29 10:20:43 +00:00
|
|
|
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:
|
2019-01-29 13:16:12 +00:00
|
|
|
cover = ox.sortedstrings(files)[0]
|
|
|
|
try:
|
|
|
|
data = z.read(cover)
|
|
|
|
except:
|
|
|
|
data = None
|
|
|
|
return data
|
2019-01-29 10:20:43 +00:00
|
|
|
|
|
|
|
def info(path):
|
|
|
|
data = {}
|
|
|
|
data['title'] = os.path.splitext(os.path.basename(path))[0]
|
|
|
|
#data['pages'] = fixme read rar to count pages
|
|
|
|
return data
|
|
|
|
|