aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/main/sitemap_xml.py
diff options
context:
space:
mode:
Diffstat (limited to 'pysite/views/main/sitemap_xml.py')
-rw-r--r--pysite/views/main/sitemap_xml.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/pysite/views/main/sitemap_xml.py b/pysite/views/main/sitemap_xml.py
new file mode 100644
index 00000000..98893c21
--- /dev/null
+++ b/pysite/views/main/sitemap_xml.py
@@ -0,0 +1,69 @@
+from flask import Response, url_for
+
+from pysite.base_route import RouteView
+
+
+class SitemapXML(RouteView):
+ path = "/sitemap.xml"
+ name = "sitemap_xml"
+
+ def get(self):
+ urls = [
+ {
+ "type": "url",
+ "url": url_for("main.index", _external=True),
+ "priority": 1.0, # Max priority
+
+ "images": [
+ {
+ "caption": "Python Discord Logo",
+ "url": url_for("static", filename="logos/logo_discord.png", _external=True)
+ },
+ {
+ "caption": "Python Discord Banner",
+ "url": url_for("static", filename="logos/logo_banner.png", _external=True)
+ }
+ ]
+ },
+
+ {
+ "type": "url",
+ "url": url_for("main.jams.index", _external=True),
+ "priority": 0.9 # Above normal priority
+ },
+
+ {
+ "type": "url",
+ "url": url_for("main.about.privacy", _external=True),
+ "priority": 0.8 # Above normal priority
+ },
+ {
+ "type": "url",
+ "url": url_for("main.about.rules", _external=True),
+ "priority": 0.8 # Above normal priority
+ },
+
+ {
+ "type": "url",
+ "url": url_for("main.info.help", _external=True),
+ "priority": 0.7 # Above normal priority
+ },
+ {
+ "type": "url",
+ "url": url_for("main.info.faq", _external=True),
+ "priority": 0.7 # Above normal priority
+ },
+ {
+ "type": "url",
+ "url": url_for("main.info.resources", _external=True),
+ "priority": 0.7 # Above normal priority
+ },
+
+ {
+ "type": "url",
+ "url": url_for("main.about.partners", _external=True),
+ "priority": 0.6 # Normal priority
+ },
+ ]
+
+ return Response(self.render("sitemap.xml", urls=urls), content_type="application/xml")