summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorSanyam Khurana <sanyam.khurana01@gmail.com>2019-01-10 15:30:00 +0530
committerTim Graham <timograham@gmail.com>2019-01-11 10:32:22 -0500
commit76d31be2d04dd6e6bcb5cb39a29ea9ed3938d0f9 (patch)
tree696b5d2c59b40be4d9f4072967650bb33ed725ff /django
parent6d73278d38e65b5785ce67f21c7ef6d7082aec0a (diff)
Refs #23829 -- Made ping_google command/function use https for the sitemap URL.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/sitemaps/__init__.py9
-rw-r--r--django/contrib/sitemaps/management/commands/ping_google.py6
2 files changed, 10 insertions, 5 deletions
diff --git a/django/contrib/sitemaps/__init__.py b/django/contrib/sitemaps/__init__.py
index cdf5f1b7a8..05a1b654dc 100644
--- a/django/contrib/sitemaps/__init__.py
+++ b/django/contrib/sitemaps/__init__.py
@@ -15,19 +15,19 @@ class SitemapNotFound(Exception):
pass
-def ping_google(sitemap_url=None, ping_url=PING_URL):
+def ping_google(sitemap_url=None, ping_url=PING_URL, sitemap_uses_https=True):
"""
Alert Google that the sitemap for the current site has been updated.
If sitemap_url is provided, it should be an absolute path to the sitemap
for this site -- e.g., '/sitemap.xml'. If sitemap_url is not provided, this
function will attempt to deduce it by using urls.reverse().
"""
- sitemap_full_url = _get_sitemap_full_url(sitemap_url)
+ sitemap_full_url = _get_sitemap_full_url(sitemap_url, sitemap_uses_https)
params = urlencode({'sitemap': sitemap_full_url})
urlopen('%s?%s' % (ping_url, params))
-def _get_sitemap_full_url(sitemap_url):
+def _get_sitemap_full_url(sitemap_url, sitemap_uses_https=True):
if not django_apps.is_installed('django.contrib.sites'):
raise ImproperlyConfigured("ping_google requires django.contrib.sites, which isn't installed.")
@@ -47,7 +47,8 @@ def _get_sitemap_full_url(sitemap_url):
Site = django_apps.get_model('sites.Site')
current_site = Site.objects.get_current()
- return 'http://%s%s' % (current_site.domain, sitemap_url)
+ scheme = 'https' if sitemap_uses_https else 'http'
+ return '%s://%s%s' % (scheme, current_site.domain, sitemap_url)
class Sitemap:
diff --git a/django/contrib/sitemaps/management/commands/ping_google.py b/django/contrib/sitemaps/management/commands/ping_google.py
index a72d2add60..b2d8f84366 100644
--- a/django/contrib/sitemaps/management/commands/ping_google.py
+++ b/django/contrib/sitemaps/management/commands/ping_google.py
@@ -7,6 +7,10 @@ class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument('sitemap_url', nargs='?')
+ parser.add_argument('--sitemap-uses-http', action='store_true')
def handle(self, *args, **options):
- ping_google(sitemap_url=options['sitemap_url'])
+ ping_google(
+ sitemap_url=options['sitemap_url'],
+ sitemap_uses_https=not options['sitemap_uses_http'],
+ )