From 09480e2241c42dcab64e9dd0daf049389627abc7 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 16 Apr 2013 20:57:09 +0530 Subject: [PATCH] [sitemap] [fixes] --- website/helpers/sitemap.py | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/website/helpers/sitemap.py b/website/helpers/sitemap.py index 201865a074..c8b6fd0a53 100644 --- a/website/helpers/sitemap.py +++ b/website/helpers/sitemap.py @@ -14,25 +14,40 @@ def generate(domain): import urllib, os import webnotes import webnotes.webutils + from webnotes.utils import nowdate # settings - max_doctypes = 10 max_items = 1000 + count = 0 site_map = '' - page_list = [] - if domain: - # list of all pages in web cache - for doctype in webnotes.webutils.page_map: - d = webnotes.webutils.page_map[doctype]; + today = nowdate() + + # generated pages + for doctype, opts in webnotes.webutils.get_generators().items(): pages = webnotes.conn.sql("""select page_name, `modified` from `tab%s` where ifnull(%s,0)=1 - order by modified desc""" % (doctype, d.condition_field)) + order by modified desc""" % (doctype, opts.get("condition_field"))) for p in pages: + if count >= max_items: break page_url = os.path.join(domain, urllib.quote(p[0])) modified = p[1].strftime('%Y-%m-%d') site_map += link_xml % (page_url, modified) + count += 1 + + if count >= max_items: break + + # standard pages + for page, opts in webnotes.get_config()["web"]["pages"].items(): + if "no_cache" in opts: + continue + + if count >= max_items: break + page_url = os.path.join(domain, urllib.quote(page)) + modified = today + site_map += link_xml % (page_url, modified) + count += 1 - return frame_xml % site_map + return frame_xml % site_map