| # Copyright (c) 2012 Web Notes Technologies Pvt Ltd. |
| # License: GNU General Public License (v3). For more information see license.txt |
| |
| from __future__ import unicode_literals |
| frame_xml = """<?xml version="1.0" encoding="UTF-8"?> |
| <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">%s |
| </urlset>""" |
| |
| link_xml = """\n<url><loc>%s</loc><lastmod>%s</lastmod></url>""" |
| |
| # generate the sitemap XML |
| def generate(domain): |
| global frame_xml, link_xml |
| import urllib, os |
| import webnotes |
| import website.utils |
| |
| # settings |
| max_doctypes = 10 |
| max_items = 1000 |
| |
| site_map = '' |
| page_list = [] |
| |
| if domain: |
| # list of all pages in web cache |
| for doctype in website.utils.page_map: |
| d = website.utils.page_map[doctype]; |
| pages = webnotes.conn.sql("""select page_name, `modified` |
| from `tab%s` where ifnull(%s,0)=1 |
| order by modified desc""" % (doctype, d.condition_field)) |
| |
| for p in pages: |
| page_url = os.path.join(domain, urllib.quote(p[0])) |
| modified = p[1].strftime('%Y-%m-%d') |
| site_map += link_xml % (page_url, modified) |
| |
| return frame_xml % site_map |