python3: use urlparse from six
This commit is contained in:
parent
98f3aac85a
commit
ef474d3ade
|
@ -19,7 +19,6 @@
|
|||
import datetime
|
||||
import json
|
||||
import logging
|
||||
import urlparse
|
||||
|
||||
from decimal import Decimal
|
||||
|
||||
|
@ -38,6 +37,7 @@ from django.core.urlresolvers import reverse
|
|||
from django.core.exceptions import ObjectDoesNotExist, PermissionDenied
|
||||
from django.utils.formats import localize
|
||||
from django.utils.http import urlencode
|
||||
from django.utils.six.moves.urllib import parse as urlparse
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.template.loader import render_to_string
|
||||
|
|
|
@ -14,13 +14,12 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from urlparse import urlparse
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
from django.db import connection
|
||||
from django.test.client import RequestFactory
|
||||
from django.utils import translation
|
||||
from django.utils.six.moves.urllib.parse import urlparse
|
||||
|
||||
from combo.apps.momo.utils import generate_manifest, GenerationError, GenerationInfo
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
import logging
|
||||
import json
|
||||
import urlparse
|
||||
|
||||
from requests.exceptions import RequestException, HTTPError
|
||||
|
||||
|
|
|
@ -14,10 +14,10 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import urlparse
|
||||
|
||||
from django.contrib import messages
|
||||
from django.http import HttpResponseRedirect, HttpResponseBadRequest
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.utils.six.moves.urllib import parse as urlparse
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.views.generic import View
|
||||
|
|
|
@ -24,7 +24,6 @@ import os
|
|||
import re
|
||||
import requests
|
||||
import subprocess
|
||||
import urlparse
|
||||
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
|
@ -43,6 +42,7 @@ from django import template
|
|||
from django.utils.encoding import force_text
|
||||
from django.utils.html import strip_tags
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.six.moves.urllib.parse import urlparse
|
||||
from django.utils.text import slugify
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.forms.widgets import MediaDefiningClass
|
||||
|
@ -826,7 +826,7 @@ class LinkCell(CellBase):
|
|||
context['title'] = self.title or self.url
|
||||
if self.anchor:
|
||||
context['url'] += '#' + self.anchor
|
||||
if render_skeleton and not urlparse.urlparse(context['url']).netloc:
|
||||
if render_skeleton and not urlparse(context['url']).netloc:
|
||||
# create full URL when used in a skeleton
|
||||
context['url'] = request.build_absolute_uri(context['url'])
|
||||
return context
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import json
|
||||
import urllib
|
||||
import urlparse
|
||||
|
||||
import django
|
||||
from django.conf import settings
|
||||
|
@ -31,6 +29,7 @@ from django.shortcuts import render, resolve_url
|
|||
from django.template import engines
|
||||
from django.template.loader import get_template, TemplateDoesNotExist
|
||||
from django.utils import lorem_ipsum, timezone
|
||||
from django.utils.six.moves.urllib.parse import urlparse, quote
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
||||
from django.utils.translation import ugettext as _
|
||||
|
@ -56,7 +55,7 @@ def login(request, *args, **kwargs):
|
|||
if not 'next' in request.GET:
|
||||
return HttpResponseRedirect(resolve_url('mellon_login'))
|
||||
return HttpResponseRedirect(resolve_url('mellon_login') + '?next='
|
||||
+ urllib.quote(request.GET.get('next')))
|
||||
+ quote(request.GET.get('next')))
|
||||
return auth_views.login(request, *args, **kwargs)
|
||||
|
||||
def logout(request, next_page=None):
|
||||
|
@ -186,7 +185,7 @@ def skeleton(request):
|
|||
raise PermissionDenied()
|
||||
source = request.GET['source']
|
||||
|
||||
parsed_source = urlparse.urlparse(source)
|
||||
parsed_source = urlparse(source)
|
||||
netloc = parsed_source.netloc
|
||||
if parsed_source.scheme == 'https' and netloc.endswith(':443'):
|
||||
# somme HTTP client (like Mozilla/1.1 (compatible; MSPIE 2.0; Windows
|
||||
|
@ -209,7 +208,7 @@ def skeleton(request):
|
|||
if selected_page is None or len(redirect_url) > len(selected_page.get_redirect_url()):
|
||||
selected_page = page
|
||||
|
||||
if urlparse.urlparse(redirect_url).netloc == netloc:
|
||||
if urlparse(redirect_url).netloc == netloc:
|
||||
same_domain_pages.append(page)
|
||||
|
||||
if selected_page is None and same_domain_pages:
|
||||
|
@ -222,7 +221,7 @@ def skeleton(request):
|
|||
for service_id in settings.KNOWN_SERVICES or {}:
|
||||
for service_key in settings.KNOWN_SERVICES[service_id]:
|
||||
service = settings.KNOWN_SERVICES[service_id][service_key]
|
||||
if urlparse.urlparse(service.get('url')).netloc == netloc:
|
||||
if urlparse(service.get('url')).netloc == netloc:
|
||||
selected_page = Page()
|
||||
selected_page.id = '__root'
|
||||
selected_page.template_name = 'standard'
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
import hashlib
|
||||
import logging
|
||||
from StringIO import StringIO
|
||||
import urlparse
|
||||
|
||||
from requests import Response, Session as RequestsSession
|
||||
|
||||
|
@ -25,6 +24,7 @@ from django.conf import settings
|
|||
from django.core.cache import cache
|
||||
from django.utils.encoding import smart_bytes
|
||||
from django.utils.http import urlencode
|
||||
from django.utils.six.moves.urllib.parse import urlparse, urlunparse
|
||||
|
||||
from .signature import sign_url
|
||||
|
||||
|
@ -49,12 +49,12 @@ class Requests(RequestsSession):
|
|||
|
||||
if remote_service == 'auto':
|
||||
remote_service = None
|
||||
scheme, netloc, path, params, query, fragment = urlparse.urlparse(url)
|
||||
scheme, netloc, path, params, query, fragment = urlparse(url)
|
||||
for services in settings.KNOWN_SERVICES.values():
|
||||
for service in services.values():
|
||||
remote_url = service.get('url')
|
||||
remote_scheme, remote_netloc, r_path, r_params, r_query, r_fragment = \
|
||||
urlparse.urlparse(remote_url)
|
||||
urlparse(remote_url)
|
||||
if remote_scheme == scheme and remote_netloc == netloc:
|
||||
remote_service = service
|
||||
break
|
||||
|
@ -64,7 +64,7 @@ class Requests(RequestsSession):
|
|||
if remote_service:
|
||||
# only keeps the path (URI) in url parameter, scheme and netloc are
|
||||
# in remote_service
|
||||
url = urlparse.urlunparse(('', '', path, params, query, fragment))
|
||||
url = urlunparse(('', '', path, params, query, fragment))
|
||||
else:
|
||||
logging.warning('service not found in settings.KNOWN_SERVICES for %s', url)
|
||||
|
||||
|
@ -91,7 +91,7 @@ class Requests(RequestsSession):
|
|||
query_params['orig'] = remote_service.get('orig')
|
||||
|
||||
remote_service_base_url = remote_service.get('url')
|
||||
scheme, netloc, old_path, params, old_query, fragment = urlparse.urlparse(
|
||||
scheme, netloc, old_path, params, old_query, fragment = urlparse(
|
||||
remote_service_base_url)
|
||||
|
||||
query = urlencode(query_params)
|
||||
|
@ -101,7 +101,7 @@ class Requests(RequestsSession):
|
|||
else:
|
||||
path = url
|
||||
|
||||
url = urlparse.urlunparse((scheme, netloc, path, params, query, fragment))
|
||||
url = urlunparse((scheme, netloc, path, params, query, fragment))
|
||||
|
||||
if method == 'GET' and cache_duration:
|
||||
# handle cache
|
||||
|
|
|
@ -19,17 +19,18 @@ import datetime
|
|||
import hmac
|
||||
import hashlib
|
||||
import random
|
||||
import urlparse
|
||||
|
||||
from django.conf import settings
|
||||
from django.utils.http import quote, urlencode
|
||||
from django.utils.six.moves.urllib.parse import urlparse, urlunparse, parse_qs
|
||||
|
||||
|
||||
# Simple signature scheme for query strings
|
||||
|
||||
def sign_url(url, key, algo='sha256', timestamp=None, nonce=None):
|
||||
parsed = urlparse.urlparse(url)
|
||||
parsed = urlparse(url)
|
||||
new_query = sign_query(parsed.query, key, algo, timestamp, nonce)
|
||||
return urlparse.urlunparse(parsed[:4] + (new_query,) + parsed[5:])
|
||||
return urlunparse(parsed[:4] + (new_query,) + parsed[5:])
|
||||
|
||||
def sign_query(query, key, algo='sha256', timestamp=None, nonce=None):
|
||||
if timestamp is None:
|
||||
|
@ -69,7 +70,7 @@ def check_request_signature(django_request, keys=[]):
|
|||
|
||||
|
||||
def check_query(query, keys, known_nonce=None, timedelta=30):
|
||||
parsed = urlparse.parse_qs(query)
|
||||
parsed = parse_qs(query)
|
||||
if not ('signature' in parsed and 'algo' in parsed and
|
||||
'timestamp' in parsed and 'nonce' in parsed):
|
||||
return False
|
||||
|
|
Loading…
Reference in New Issue