54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
# flake8: noqa: E501
|
|
|
|
import re
|
|
from urllib.parse import parse_qs, quote as qs_quote
|
|
|
|
|
|
def get_user_agent():
|
|
# TODO: randomize it
|
|
return "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
|
|
|
|
|
|
def regex_search_string(regexes, string, default=None):
|
|
if not isinstance(regexes, list):
|
|
regexes = [regexes]
|
|
for regex in regexes:
|
|
match = re.search(regex, string)
|
|
if match:
|
|
return match.group(1)
|
|
return default
|
|
|
|
|
|
def dump_qs(obj):
|
|
old_qs = []
|
|
qs = []
|
|
for key in obj:
|
|
old_qs.append((key, obj[key]))
|
|
not_flat = True
|
|
while not_flat:
|
|
not_flat = False
|
|
for old_qs_element in old_qs:
|
|
if isinstance(old_qs_element[1], (str, int, float)):
|
|
qs.append((old_qs_element[0], old_qs_element[1]))
|
|
elif isinstance(old_qs_element[1], (dict)):
|
|
for subkey in old_qs_element[1]:
|
|
qs.append(
|
|
(old_qs_element[0] + "[" + subkey + "]", old_qs_element[1][subkey]))
|
|
if isinstance(old_qs_element[1][subkey], (dict, list)):
|
|
not_flat = True
|
|
elif isinstance(old_qs_element[1], (list)):
|
|
for index in range(len(old_qs_element[1])):
|
|
element = old_qs_element[1][index]
|
|
qs.append(
|
|
(old_qs_element[0] + "[" + str(index) + "]", element))
|
|
if isinstance(element, (dict, list)):
|
|
not_flat = True
|
|
if not_flat:
|
|
old_qs = qs
|
|
qs = []
|
|
strng = ""
|
|
for el in qs:
|
|
strng += qs_quote(str(el[0]), encoding="utf8") + "=" + \
|
|
qs_quote(str(el[1]), encoding="utf8") + "&"
|
|
return strng[:-1]
|