mirror of https://github.com/dnomd343/ProxyC
dnomd343
2 years ago
3 changed files with 35 additions and 33 deletions
@ -0,0 +1,31 @@ |
|||||
|
#!/usr/bin/env python3 |
||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
from Utils.Logger import logger |
||||
|
from Utils.Common.Coding import * |
||||
|
|
||||
|
def checkScheme(url: str, scheme: str, name: str) -> str: # check url scheme and remove it |
||||
|
if not url.startswith('%s://' % scheme): |
||||
|
logger.warning('%s url should start with `%s://`' % (name, scheme)) |
||||
|
raise RuntimeError('%s scheme error' % name) |
||||
|
return url[len(scheme) + 3:] |
||||
|
|
||||
|
|
||||
|
def splitTag(url: str, fromRight: bool = True, spaceRemark: bool = True) -> tuple[str, str]: # split tag after `#` |
||||
|
if '#' not in url: # without tag |
||||
|
return url, '' |
||||
|
if not fromRight: |
||||
|
url, remark = url.split('#', 1) # from left search |
||||
|
else: |
||||
|
url, remark = url.rsplit('#', 1) # from right search |
||||
|
if spaceRemark: # deal with space remark for space |
||||
|
remark = remark.replace('+', ' ') |
||||
|
return url, urlDecode(remark) |
||||
|
|
||||
|
|
||||
|
def splitParam(params: str) -> dict: # split params |
||||
|
ret = {} |
||||
|
if params != '': |
||||
|
for param in params.split('&'): |
||||
|
ret[param.split('=', 1)[0]] = urlDecode(param.split('=', 1)[1]) |
||||
|
return ret |
@ -1,8 +1,6 @@ |
|||||
#!/usr/bin/env python3 |
#!/usr/bin/env python3 |
||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||
|
|
||||
from Utils.Common.Coding import urlEncode, urlDecode |
from Utils.Common.Url import * |
||||
from Utils.Common.Host import hostFormat, v6AddBracket |
from Utils.Common.Host import * |
||||
from Utils.Common.Coding import base64Encode, base64Decode |
from Utils.Common.Network import * |
||||
from Utils.Common.Network import isVacantPort, getAvailablePort |
|
||||
from Utils.Common.Coding import checkScheme, splitTag, splitParam |
|
||||
|
Loading…
Reference in new issue