[geany/www.geany.org] 3b62ba: Exclude API or legacy URLs from /sitemap.xml

Enrico Tröger git-noreply at xxxxx
Sun Jun 30 12:46:03 UTC 2019


Branch:      refs/heads/master
Author:      Enrico Tröger <enrico.troeger at uvena.de>
Committer:   Enrico Tröger <enrico.troeger at uvena.de>
Date:        Sun, 30 Jun 2019 12:46:03 UTC
Commit:      3b62baf048984a1bf60549470c360403f9283a52
             https://github.com/geany/www.geany.org/commit/3b62baf048984a1bf60549470c360403f9283a52

Log Message:
-----------
Exclude API or legacy URLs from /sitemap.xml

Those URLs cannot or should not be called directly and so also
not indexed by search engines.


Modified Paths:
--------------
    geany/sitemaps.py
    latest_version/urls.py
    pastebin/urls.py

Modified: geany/sitemaps.py
24 lines changed, 16 insertions(+), 8 deletions(-)
===================================================================
@@ -92,9 +92,10 @@ class StaticSitemap(sitemaps.Sitemap):
     priority = 0.5
 
     # ----------------------------------------------------------------------
-    def __init__(self, domain, patterns):
+    def __init__(self, domain, patterns, exclude_views=None):
         self._domain = domain
         self._patterns = patterns
+        self._exclude_views = exclude_views or list()
         self._site = None
         self._url_mapping = {}
         self._get_site()
@@ -111,7 +112,8 @@ def get_static_items(self):
     # ----------------------------------------------------------------------
     def _initialize(self):
         for pattern in self._patterns:
-            if getattr(pattern, 'name', None) is not None:
+            view_name = getattr(pattern, 'name', None)
+            if view_name is not None and view_name not in self._exclude_views:
                 url_resolved = self._resolve_url(pattern.name)
                 if url_resolved:
                     self._url_mapping[pattern.name] = url_resolved
@@ -153,11 +155,11 @@ def __init__(self):
         self._static_items = None
 
     # ----------------------------------------------------------------------
-    def add(self, generator_class, url_patterns, site_domain=None):
+    def add(self, generator_class, url_patterns, site_domain=None, exclude_views=None):
         if site_domain is None:
             site = Site.objects.get(id=settings.SITE_ID)
             site_domain = site.domain
-        sitemap_generator_item = (generator_class, url_patterns, site_domain)
+        sitemap_generator_item = (generator_class, url_patterns, site_domain, exclude_views)
         self._sitemap_generators.append(sitemap_generator_item)
 
     # ----------------------------------------------------------------------
@@ -176,17 +178,23 @@ def get_all_items(self):
     # ----------------------------------------------------------------------
     def _get_static_items(self):
         static_items = list()
-        for sitemap_generator_class, url_patterns, site_domain in self._sitemap_generators:
-            generator = sitemap_generator_class(site_domain, url_patterns)
+        for generator_class, url_patterns, site_domain, exclude_views in self._sitemap_generators:
+            generator = generator_class(
+                site_domain,
+                url_patterns,
+                exclude_views=exclude_views)
             items = generator.get_static_items()
             static_items.extend(items)
         return static_items
 
     # ----------------------------------------------------------------------
     def _get_dynamic_items(self):
         dynamic_items = list()
-        for sitemap_generator_class, url_patterns, site_domain in self._sitemap_generators:
-            generator = sitemap_generator_class(site_domain, url_patterns)
+        for generator_class, url_patterns, site_domain, exclude_views in self._sitemap_generators:
+            generator = generator_class(
+                site_domain,
+                url_patterns,
+                exclude_views=exclude_views)
             items = generator.get_dynamic_items()
             dynamic_items.extend(items)
         return dynamic_items


Modified: latest_version/urls.py
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -32,4 +32,4 @@
 )
 
 # register our urlpatterns to the global sitemap generator
-sitemap_registry.add(StaticSitemap, urlpatterns)
+sitemap_registry.add(StaticSitemap, urlpatterns, exclude_views=['latest_version_legacy'])


Modified: pastebin/urls.py
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -57,4 +57,4 @@
 
 
 # Sitemap framework
-sitemap_registry.add(StaticSitemap, urlpatterns)
+sitemap_registry.add(StaticSitemap, urlpatterns, exclude_views=['snippet_api'])



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list