# Copyright (c) 2015, InfluxFramework LLC
# License: MIT. See LICENSE

from urllib.parse import quote, urljoin

import influxframework
from influxframework.utils import cstr, escape_html, get_request_site_address, now

no_cache = 1
base_template_path = "www/rss.xml"


def get_context(context):
	"""generate rss feed"""

	host = get_request_site_address()

	blog_list = influxframework.db.sql(
		"""\
		select route as name, published_on, modified, title, content from `tabBlog Post`
		where ifnull(published,0)=1
		order by published_on desc limit 20""",
		as_dict=1,
	)

	for blog in blog_list:
		blog_page = cstr(quote(blog.name.encode("utf-8")))
		blog.link = urljoin(host, blog_page)
		blog.content = escape_html(blog.content or "")

	if blog_list:
		modified = max(blog["modified"] for blog in blog_list)
	else:
		modified = now()

	blog_settings = influxframework.get_doc("Blog Settings", "Blog Settings")

	context = {
		"title": blog_settings.blog_title or "Blog",
		"description": blog_settings.blog_introduction or "",
		"modified": modified,
		"items": blog_list,
		"link": host + "/blog",
	}

	# print context
	return context
