diff options
author | 2018-07-10 14:53:59 +0100 | |
---|---|---|
committer | 2018-07-10 14:53:59 +0100 | |
commit | 28b72409b43cb401f5bef03747e888e1cf27262a (patch) | |
tree | 4fa4998816fe6ff4bf80db281dc12b3d68323490 /pysite | |
parent | Merge branch 'fix-numbers-in-channel-names' into 'master' (diff) |
All domains: sitemap.xml and robots.txt
Diffstat (limited to 'pysite')
-rw-r--r-- | pysite/views/api/robots_txt.py | 15 | ||||
-rw-r--r-- | pysite/views/api/sitemap_xml.py | 11 | ||||
-rw-r--r-- | pysite/views/main/robots_txt.py | 15 | ||||
-rw-r--r-- | pysite/views/main/sitemap_xml.py | 69 | ||||
-rw-r--r-- | pysite/views/staff/robots_txt.py | 15 | ||||
-rw-r--r-- | pysite/views/staff/sitemap_xml.py | 11 | ||||
-rw-r--r-- | pysite/views/wiki/robots_txt.py | 15 | ||||
-rw-r--r-- | pysite/views/wiki/sitemap_xml.py | 22 |
8 files changed, 173 insertions, 0 deletions
diff --git a/pysite/views/api/robots_txt.py b/pysite/views/api/robots_txt.py new file mode 100644 index 00000000..d4406d54 --- /dev/null +++ b/pysite/views/api/robots_txt.py @@ -0,0 +1,15 @@ +from flask import Response, url_for + +from pysite.base_route import RouteView + + +class RobotsTXT(RouteView): + path = "/robots.txt" + name = "robots_txt" + + def get(self): + return Response( + self.render( + "robots.txt", sitemap_url=url_for("api.sitemap_xml", _external=True), rules={"*": ["/"]} + ), content_type="text/plain" + ) diff --git a/pysite/views/api/sitemap_xml.py b/pysite/views/api/sitemap_xml.py new file mode 100644 index 00000000..26a786b0 --- /dev/null +++ b/pysite/views/api/sitemap_xml.py @@ -0,0 +1,11 @@ +from flask import Response + +from pysite.base_route import RouteView + + +class SitemapXML(RouteView): + path = "/sitemap.xml" + name = "sitemap_xml" + + def get(self): + return Response(self.render("sitemap.xml", urls=[]), content_type="application/xml") diff --git a/pysite/views/main/robots_txt.py b/pysite/views/main/robots_txt.py new file mode 100644 index 00000000..d4406d54 --- /dev/null +++ b/pysite/views/main/robots_txt.py @@ -0,0 +1,15 @@ +from flask import Response, url_for + +from pysite.base_route import RouteView + + +class RobotsTXT(RouteView): + path = "/robots.txt" + name = "robots_txt" + + def get(self): + return Response( + self.render( + "robots.txt", sitemap_url=url_for("api.sitemap_xml", _external=True), rules={"*": ["/"]} + ), content_type="text/plain" + ) 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") diff --git a/pysite/views/staff/robots_txt.py b/pysite/views/staff/robots_txt.py new file mode 100644 index 00000000..308fe2a2 --- /dev/null +++ b/pysite/views/staff/robots_txt.py @@ -0,0 +1,15 @@ +from flask import Response, url_for + +from pysite.base_route import RouteView + + +class RobotsTXT(RouteView): + path = "/robots.txt" + name = "robots_txt" + + def get(self): + return Response( + self.render( + "robots.txt", sitemap_url=url_for("api.sitemap_xml", _external=True) + ), content_type="text/plain" + ) diff --git a/pysite/views/staff/sitemap_xml.py b/pysite/views/staff/sitemap_xml.py new file mode 100644 index 00000000..26a786b0 --- /dev/null +++ b/pysite/views/staff/sitemap_xml.py @@ -0,0 +1,11 @@ +from flask import Response + +from pysite.base_route import RouteView + + +class SitemapXML(RouteView): + path = "/sitemap.xml" + name = "sitemap_xml" + + def get(self): + return Response(self.render("sitemap.xml", urls=[]), content_type="application/xml") diff --git a/pysite/views/wiki/robots_txt.py b/pysite/views/wiki/robots_txt.py new file mode 100644 index 00000000..308fe2a2 --- /dev/null +++ b/pysite/views/wiki/robots_txt.py @@ -0,0 +1,15 @@ +from flask import Response, url_for + +from pysite.base_route import RouteView + + +class RobotsTXT(RouteView): + path = "/robots.txt" + name = "robots_txt" + + def get(self): + return Response( + self.render( + "robots.txt", sitemap_url=url_for("api.sitemap_xml", _external=True) + ), content_type="text/plain" + ) diff --git a/pysite/views/wiki/sitemap_xml.py b/pysite/views/wiki/sitemap_xml.py new file mode 100644 index 00000000..9b7f0980 --- /dev/null +++ b/pysite/views/wiki/sitemap_xml.py @@ -0,0 +1,22 @@ +from flask import Response, url_for + +from pysite.base_route import RouteView +from pysite.mixins import DBMixin + + +class SitemapXML(RouteView, DBMixin): + path = "/sitemap.xml" + name = "sitemap_xml" + table_name = "wiki" + + def get(self): + urls = [] + + for page in self.db.get_all(self.table_name): + urls.append({ + "change_frequency": "weekly", + "type": "url", + "url": url_for("wiki.page", page=page["slug"], _external=True) + }) + + return Response(self.render("sitemap.xml", urls=urls), content_type="application/xml") |