diff options
| author | Sanyam Khurana <sanyam.khurana01@gmail.com> | 2019-01-10 15:30:00 +0530 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2019-01-11 10:32:22 -0500 |
| commit | 76d31be2d04dd6e6bcb5cb39a29ea9ed3938d0f9 (patch) | |
| tree | 696b5d2c59b40be4d9f4072967650bb33ed725ff /django | |
| parent | 6d73278d38e65b5785ce67f21c7ef6d7082aec0a (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__.py | 9 | ||||
| -rw-r--r-- | django/contrib/sitemaps/management/commands/ping_google.py | 6 |
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'], + ) |
