aboutsummaryrefslogtreecommitdiffstats
path: root/nikola/plugins/task_render_rss.py
diff options
context:
space:
mode:
authorLibravatarAgustin Henze <tin@sluc.org.ar>2012-12-12 20:15:50 -0300
committerLibravatarAgustin Henze <tin@sluc.org.ar>2012-12-12 20:15:50 -0300
commit540e6aa6fcd86a98e270715d1d4e49493eacc270 (patch)
treead1b1fcca82d9638f5edcf7a4d9149ca113ba2d2 /nikola/plugins/task_render_rss.py
parent25744f4bf462020e353c503db3ec558604c19137 (diff)
parent0f2c04e70a0ffdd0892d6970cafbcd952d221db5 (diff)
Merge tag 'upstream/5'
Upstream version 5
Diffstat (limited to 'nikola/plugins/task_render_rss.py')
-rw-r--r--nikola/plugins/task_render_rss.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/nikola/plugins/task_render_rss.py b/nikola/plugins/task_render_rss.py
new file mode 100644
index 0000000..bee1192
--- /dev/null
+++ b/nikola/plugins/task_render_rss.py
@@ -0,0 +1,41 @@
+import os
+
+from nikola import utils
+from nikola.plugin_categories import Task
+
+
+class RenderRSS(Task):
+ """Generate RSS feeds."""
+
+ name = "render_rss"
+
+ def gen_tasks(self):
+ """Generate RSS feeds."""
+ kw = {
+ "translations": self.site.config["TRANSLATIONS"],
+ "filters": self.site.config["FILTERS"],
+ "blog_title": self.site.config["BLOG_TITLE"],
+ "blog_url": self.site.config["BLOG_URL"],
+ "blog_description": self.site.config["BLOG_DESCRIPTION"],
+ "output_folder": self.site.config["OUTPUT_FOLDER"],
+ }
+ self.site.scan_posts()
+ # TODO: timeline is global, kill it
+ for lang in kw["translations"]:
+ output_name = os.path.join(kw['output_folder'],
+ self.site.path("rss", None, lang))
+ deps = []
+ posts = [x for x in self.site.timeline if x.use_in_feeds][:10]
+ for post in posts:
+ deps += post.deps(lang)
+ yield {
+ 'basename': 'render_rss',
+ 'name': output_name,
+ 'file_dep': deps,
+ 'targets': [output_name],
+ 'actions': [(utils.generic_rss_renderer,
+ (lang, kw["blog_title"], kw["blog_url"],
+ kw["blog_description"], posts, output_name))],
+ 'clean': True,
+ 'uptodate': [utils.config_changed(kw)],
+ }