From 619792025666c9f5efcb6954adbad722be7a1d4d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 4 Apr 2014 00:33:00 +0530 Subject: [PATCH] A method to add many custom recipes at once --- src/calibre/web/feeds/recipes/collection.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/calibre/web/feeds/recipes/collection.py b/src/calibre/web/feeds/recipes/collection.py index 3d4ac952fb..1334017840 100644 --- a/src/calibre/web/feeds/recipes/collection.py +++ b/src/calibre/web/feeds/recipes/collection.py @@ -158,6 +158,27 @@ def add_custom_recipe(title, script): with open(os.path.join(bdir, fname), 'wb') as f: f.write(script) +def add_custom_recipes(script_map): + from calibre.web.feeds.recipes import custom_recipes, \ + custom_recipe_filename + id_ = 1000 + keys = tuple(map(int, custom_recipes.iterkeys())) + if keys: + id_ = max(keys)+1 + with custom_recipes: + for title, script in script_map.iteritems(): + fid = str(id_) + bdir = os.path.dirname(custom_recipes.file_path) + + fname = custom_recipe_filename(fid, title) + if isinstance(script, unicode): + script = script.encode('utf-8') + + custom_recipes[fid] = (title, fname) + + with open(os.path.join(bdir, fname), 'wb') as f: + f.write(script) + def remove_custom_recipe(id_): from calibre.web.feeds.recipes import custom_recipes