diff --git a/public/html/rss.xml b/public/html/rss.xml
index 4ddd6aed91..2f692af19e 100755
--- a/public/html/rss.xml
+++ b/public/html/rss.xml
@@ -17,7 +17,7 @@
# along with this program. If not, see .
-import cgi, cgitb, os, sys
+import cgi, cgitb, sys
cgitb.enable()
# import libs
@@ -28,12 +28,10 @@ sys.path.append('../app')
import webnotes
import webnotes.auth
-import conf
-
if __name__=='__main__':
# webnotes.http_request = webnotes.auth.HTTPRequest()
webnotes.connect()
- from website.helpers import blog_feed
+ from website.doctype.blog_post import blog_feed
try:
print 'Content-Type: text/xml'
print
diff --git a/public/html/sitemap.xml b/public/html/sitemap.xml
index 260af8c7bb..d514e618f9 100755
--- a/public/html/sitemap.xml
+++ b/public/html/sitemap.xml
@@ -31,7 +31,7 @@ if __name__=='__main__':
webnotes.http_request = webnotes.auth.HTTPRequest()
domain = os.environ.get('HTTP_HOST')
protocol = os.environ.get('HTTPS') and 'https://' or 'http://'
- from website.helpers import sitemap
+ import website.sitemap
print 'Content-Type: text/xml'
print
- print sitemap.generate(protocol + domain + '/')
\ No newline at end of file
+ print website.sitemap.generate(protocol + domain + '/')
\ No newline at end of file
diff --git a/webnotes/webutils.py b/webnotes/webutils.py
index bbecc5b178..d5f760600e 100644
--- a/webnotes/webutils.py
+++ b/webnotes/webutils.py
@@ -58,17 +58,21 @@ def build_page(page_name):
if not webnotes.conn:
webnotes.connect()
- sitemap = webnotes.cache().get_value("website_sitemap", build_sitemap)
+ sitemap = get_website_sitemap()
page_options = sitemap.get(page_name)
if not page_options:
if page_name=="index":
# page not found, try home page
- page_options = sitemap.get(get_home_page())
+ home_page = get_home_page()
+ page_options = sitemap.get(home_page)
if not page_options:
raise PageNotFoundError
+ page_options["page_name"] = home_page
else:
raise PageNotFoundError
+ else:
+ page_options["page_name"] = page_name
basepath = webnotes.utils.get_base_path()
module = None
@@ -82,8 +86,8 @@ def build_page(page_name):
if page_options.get("is_generator"):
if not module:
raise Exception("Generator controller not defined")
-
- name = webnotes.conn.get_value(module.doctype, {"page_name": page_name})
+
+ name = webnotes.conn.get_value(module.doctype, {"page_name": page_options["page_name"]})
obj = webnotes.get_obj(module.doctype, name, with_children=True)
if hasattr(obj, 'get_context'):
@@ -237,9 +241,12 @@ def clear_cache(page_name=None):
cache.delete_value("page:" + p)
cache.delete_value("website_sitemap")
cache.delete_value("website_sitemap_config")
+
+def get_website_sitemap():
+ return webnotes.cache().get_value("website_sitemap", build_sitemap)
def get_all_pages():
- return webnotes.cache().get_value("website_sitemap", build_sitemap).keys()
+ return get_website_sitemap().keys()
def delete_page_cache(page_name):
if page_name:
diff --git a/website/sitemap.py b/website/sitemap.py
index 9d0e5ebffe..31fe34d38e 100644
--- a/website/sitemap.py
+++ b/website/sitemap.py
@@ -2,54 +2,26 @@
# MIT License. See license.txt
from __future__ import unicode_literals
+import urllib
+import webnotes
+import webnotes.webutils
+from webnotes.utils import nowdate
-frame_xml = """
-%s
-"""
-
-link_xml = """\n%s%s"""
-
-# generate the sitemap XML
def generate(domain):
- global frame_xml, link_xml
- import urllib, os
- import webnotes
- import webnotes.webutils
- from webnotes.utils import nowdate
+ """generate the sitemap XML"""
- # settings
- max_items = 1000
- count = 0
+ frame_xml = """
+ %s
+ """
+
+ link_xml = """\n%s%s"""
- site_map = ''
+ site_map = ""
if domain:
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, opts.get("condition_field")))
-
- for p in pages:
- if count >= max_items: break
- if p[0]:
- 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
-
+ for page_name, page_options in webnotes.webutils.get_website_sitemap().items():
+ url = urllib.basejoin(domain, urllib.quote(page_name))
+ site_map += link_xml % (url, today)
+
return frame_xml % site_map