diff --git a/ebook/__init__.py b/ebook/__init__.py index ed52ebd..4a25801 100644 --- a/ebook/__init__.py +++ b/ebook/__init__.py @@ -70,6 +70,7 @@ class CoverOptions: wrapat = attr.ib(default=None, convert=attr.converters.optional(int)) bgcolor = attr.ib(default=None, convert=attr.converters.optional(tuple)) textcolor = attr.ib(default=None, convert=attr.converters.optional(tuple)) + cover_url = attr.ib(default=None, convert=attr.converters.optional(str)) def chapter_html(story, titleprefix=None): @@ -90,7 +91,7 @@ def chapter_html(story, titleprefix=None): return chapters -def generate_epub(story, output_filename=None, cover_options={}): +def generate_epub(story, cover_options={}, output_filename=None): dates = list(story.dates()) metadata = { 'title': story.title, diff --git a/leech.py b/leech.py index bcf12d5..d906613 100755 --- a/leech.py +++ b/leech.py @@ -56,11 +56,12 @@ def load_on_disk_options(site): store = json.load(store_file) login = store.get('logins', {}).get(site.__name__, False) configured_site_options = store.get('site_options', {}).get(site.__name__, {}) + cover_options = store.get('cover') except FileNotFoundError: logger.info("Unable to locate leech.json. Continuing assuming it does not exist.") login = False configured_site_options = {} - return configured_site_options, login + return configured_site_options, login, cover_options def create_options(site, site_options, unused_flags): @@ -71,7 +72,7 @@ def create_options(site, site_options, unused_flags): flag_specified_site_options = site.interpret_site_specific_options(**unused_flags) - configured_site_options, login = load_on_disk_options(site) + configured_site_options, login, cover_options = load_on_disk_options(site) overridden_site_options = json.loads(site_options) @@ -81,7 +82,8 @@ def create_options(site, site_options, unused_flags): list(default_site_options.items()) + list(configured_site_options.items()) + list(overridden_site_options.items()) + - list(flag_specified_site_options.items()) + list(flag_specified_site_options.items()) + + list(cover_options.items()) ) return options, login @@ -146,7 +148,7 @@ def download(url, site_options, cache, verbose, **other_flags): options, login = create_options(site, site_options, other_flags) story = open_story(site, url, session, login, options) - filename = ebook.generate_epub(story) + filename = ebook.generate_epub(story, options) logger.info("File created: " + filename)