update
This commit is contained in:
parent
3c23bce846
commit
af4bae183d
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
[core]
|
[core]
|
||||||
pager = delta
|
pager = delta
|
||||||
|
pager = less -R
|
||||||
|
|
||||||
[interactive]
|
[interactive]
|
||||||
diffFilter = delta --color-only
|
diffFilter = delta --color-only
|
||||||
@ -17,3 +18,6 @@
|
|||||||
|
|
||||||
[diff]
|
[diff]
|
||||||
colorMoved = default
|
colorMoved = default
|
||||||
|
|
||||||
|
[color]
|
||||||
|
ui = always
|
||||||
|
@ -1,148 +0,0 @@
|
|||||||
import re
|
|
||||||
import uuid
|
|
||||||
import random
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import requests
|
|
||||||
import json
|
|
||||||
import pickle
|
|
||||||
|
|
||||||
methods = {
|
|
||||||
'POST': requests.post,
|
|
||||||
'GET': requests.get,
|
|
||||||
'PUT': requests.put,
|
|
||||||
'PATCH': requests.patch,
|
|
||||||
'DELETE': requests.delete
|
|
||||||
}
|
|
||||||
|
|
||||||
headers = {}
|
|
||||||
|
|
||||||
def string_to_header(s):
|
|
||||||
key, value = s.split(": ")
|
|
||||||
headers[key] = value.strip()
|
|
||||||
|
|
||||||
def read_default_headers(default_headers_file):
|
|
||||||
if os.path.isfile(default_headers_file):
|
|
||||||
with open(default_headers_file, 'r') as file:
|
|
||||||
headers.update(json.load(file))
|
|
||||||
|
|
||||||
def save_cookies(requests_cookiejar, filename):
|
|
||||||
if os.path.exists(filename):
|
|
||||||
with open(filename, 'rb') as f:
|
|
||||||
try:
|
|
||||||
existing_cookies = pickle.load(f)
|
|
||||||
except EOFError:
|
|
||||||
existing_cookies = requests_cookiejar
|
|
||||||
else:
|
|
||||||
existing_cookies = requests_cookiejar
|
|
||||||
|
|
||||||
for cookie in requests_cookiejar:
|
|
||||||
existing_cookies.set_cookie(cookie)
|
|
||||||
|
|
||||||
with open(filename, 'wb') as f:
|
|
||||||
pickle.dump(existing_cookies, f)
|
|
||||||
|
|
||||||
def load_cookies(filename):
|
|
||||||
try:
|
|
||||||
with open(filename, 'rb') as f:
|
|
||||||
return pickle.load(f)
|
|
||||||
except FileNotFoundError:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def set_vars(_body):
|
|
||||||
def set_to_dict(body):
|
|
||||||
for key, value in body.items():
|
|
||||||
if isinstance(value, str):
|
|
||||||
value = value.replace('{{hex}}', uuid.uuid4().hex)
|
|
||||||
value = value.replace('{{uuid}}', str(uuid.uuid4()))
|
|
||||||
|
|
||||||
pattern = r'\{\{uuid\[(\d+)\]\}\}'
|
|
||||||
def replace_uuid_slice(match):
|
|
||||||
slice = int(match.group(1))
|
|
||||||
return uuid.uuid4().hex[:slice]
|
|
||||||
value = re.sub(pattern, replace_uuid_slice, value)
|
|
||||||
|
|
||||||
body[key] = str(value)
|
|
||||||
|
|
||||||
if isinstance(value, dict):
|
|
||||||
set_vars(value)
|
|
||||||
|
|
||||||
if type(_body) is dict:
|
|
||||||
set_to_dict(_body)
|
|
||||||
elif type(_body) is list:
|
|
||||||
for i in _body:
|
|
||||||
set_to_dict(i)
|
|
||||||
return _body
|
|
||||||
|
|
||||||
def send_req(method, url, body_txt):
|
|
||||||
func = methods[method]
|
|
||||||
cookie = load_cookies(session_path)
|
|
||||||
|
|
||||||
body = json.loads(body_txt) if '{' in body_txt else {}
|
|
||||||
body = set_vars(body)
|
|
||||||
|
|
||||||
if method == 'GET':
|
|
||||||
resp = func(url, headers=headers, params=body, cookies=cookie)
|
|
||||||
else:
|
|
||||||
resp = func(url, headers=headers, json=body, cookies=cookie)
|
|
||||||
|
|
||||||
print(f"// status_code {'':<18} {resp.status_code}")
|
|
||||||
|
|
||||||
for header_name, header_value in resp.headers.items():
|
|
||||||
print(f"// {header_name:<30} {header_value}")
|
|
||||||
try:
|
|
||||||
resp_content = resp.json()
|
|
||||||
print(json.dumps(resp_content, indent=2))
|
|
||||||
except ValueError:
|
|
||||||
print(resp.content)
|
|
||||||
|
|
||||||
save_cookies(resp.cookies, session_path)
|
|
||||||
|
|
||||||
|
|
||||||
if len(sys.argv) != 3:
|
|
||||||
print("Usage: python script.py <file_path> <project_path>")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
file_path = sys.argv[1]
|
|
||||||
project_path = sys.argv[2]
|
|
||||||
|
|
||||||
session_path = os.path.join(project_path, 'pysession')
|
|
||||||
default_headers = os.path.join(project_path, 'headers.json')
|
|
||||||
|
|
||||||
url = ''
|
|
||||||
body_txt = ""
|
|
||||||
_body_start = False
|
|
||||||
|
|
||||||
try:
|
|
||||||
with open(file_path) as file:
|
|
||||||
lines = file.readlines()
|
|
||||||
url = lines[0]
|
|
||||||
|
|
||||||
for line in lines[1:]:
|
|
||||||
line = line.strip()
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
if (_body_start or ('{' in line or '[' in line)) and not line.startswith('#'):
|
|
||||||
_body_start = True
|
|
||||||
body_txt += line
|
|
||||||
elif line.startswith('#'):
|
|
||||||
break
|
|
||||||
elif line:
|
|
||||||
string_to_header(line.strip())
|
|
||||||
|
|
||||||
method, url = url.strip('\n').split(' ')
|
|
||||||
except Exception as e:
|
|
||||||
print('got error when read body/headrs')
|
|
||||||
print(e)
|
|
||||||
|
|
||||||
try:
|
|
||||||
read_default_headers(default_headers)
|
|
||||||
except Exception as e:
|
|
||||||
print('got error when read default headrs')
|
|
||||||
print(e)
|
|
||||||
|
|
||||||
try:
|
|
||||||
send_req(method, url, body_txt)
|
|
||||||
except Exception as e:
|
|
||||||
print('got error when send request')
|
|
||||||
print(e)
|
|
@ -1,139 +0,0 @@
|
|||||||
import uuid
|
|
||||||
import random
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import requests
|
|
||||||
import json
|
|
||||||
import pickle
|
|
||||||
|
|
||||||
methods = {
|
|
||||||
'POST': requests.post,
|
|
||||||
'GET': requests.get,
|
|
||||||
'PUT': requests.put,
|
|
||||||
'PATCH': requests.patch
|
|
||||||
}
|
|
||||||
|
|
||||||
headers = {}
|
|
||||||
|
|
||||||
def string_to_header(s):
|
|
||||||
key, value = s.split(": ")
|
|
||||||
headers[key] = value.strip()
|
|
||||||
|
|
||||||
def read_default_headers(default_headers_file):
|
|
||||||
if os.path.isfile(default_headers_file):
|
|
||||||
with open(default_headers_file, 'r') as file:
|
|
||||||
headers.update(json.load(file))
|
|
||||||
|
|
||||||
def save_cookies(requests_cookiejar, filename):
|
|
||||||
if os.path.exists(filename):
|
|
||||||
with open(filename, 'rb') as f:
|
|
||||||
try:
|
|
||||||
existing_cookies = pickle.load(f)
|
|
||||||
except EOFError:
|
|
||||||
existing_cookies = requests_cookiejar
|
|
||||||
else:
|
|
||||||
existing_cookies = requests_cookiejar
|
|
||||||
|
|
||||||
for cookie in requests_cookiejar:
|
|
||||||
existing_cookies.set_cookie(cookie)
|
|
||||||
|
|
||||||
with open(filename, 'wb') as f:
|
|
||||||
pickle.dump(existing_cookies, f)
|
|
||||||
|
|
||||||
def load_cookies(filename):
|
|
||||||
try:
|
|
||||||
with open(filename, 'rb') as f:
|
|
||||||
return pickle.load(f)
|
|
||||||
except FileNotFoundError:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def set_vars(body):
|
|
||||||
for key, value in body.items():
|
|
||||||
if isinstance(value, str):
|
|
||||||
value = value.replace('{{hex}}', uuid.uuid4().hex)
|
|
||||||
value = value.replace('{{uuid}}', str(uuid.uuid4()))
|
|
||||||
if ':code:' in value:
|
|
||||||
value = value.replace(':code:', '')
|
|
||||||
value = eval(f"{value}")
|
|
||||||
print(value)
|
|
||||||
|
|
||||||
body[key] = str(value)
|
|
||||||
|
|
||||||
if isinstance(value, dict):
|
|
||||||
set_vars(value)
|
|
||||||
|
|
||||||
return body
|
|
||||||
|
|
||||||
def send_req(method, url, body_txt):
|
|
||||||
func = methods[method]
|
|
||||||
cookie = load_cookies(session_path)
|
|
||||||
|
|
||||||
body = json.loads(body_txt) if '{' in body_txt else {}
|
|
||||||
body = set_vars(body)
|
|
||||||
|
|
||||||
if method == 'GET':
|
|
||||||
resp = func(url, headers=headers, params=body, cookies=cookie)
|
|
||||||
else:
|
|
||||||
resp = func(url, headers=headers, json=body, cookies=cookie)
|
|
||||||
|
|
||||||
print(f"status_code {'':<18} {resp.status_code}")
|
|
||||||
|
|
||||||
for header_name, header_value in resp.headers.items():
|
|
||||||
print(f"{header_name:<30} {header_value}")
|
|
||||||
try:
|
|
||||||
resp_content = resp.json()
|
|
||||||
print(json.dumps(resp_content, indent=2))
|
|
||||||
except ValueError:
|
|
||||||
print(resp.content)
|
|
||||||
|
|
||||||
save_cookies(resp.cookies, session_path)
|
|
||||||
|
|
||||||
|
|
||||||
if len(sys.argv) != 3:
|
|
||||||
print("Usage: python script.py <file_path> <project_path>")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
file_path = sys.argv[1]
|
|
||||||
project_path = sys.argv[2]
|
|
||||||
|
|
||||||
session_path = os.path.join(project_path, 'pysession')
|
|
||||||
default_headers = os.path.join(project_path, 'headers.json')
|
|
||||||
|
|
||||||
url = ''
|
|
||||||
body_txt = ""
|
|
||||||
_body_start = False
|
|
||||||
|
|
||||||
try:
|
|
||||||
with open(file_path) as file:
|
|
||||||
lines = file.readlines()
|
|
||||||
url = lines[0]
|
|
||||||
|
|
||||||
for line in lines[1:]:
|
|
||||||
line = line.strip()
|
|
||||||
if not line:
|
|
||||||
continue
|
|
||||||
if (_body_start or '{' in line) and not line.startswith('#'):
|
|
||||||
_body_start = True
|
|
||||||
body_txt += line
|
|
||||||
elif line.startswith('#'):
|
|
||||||
break
|
|
||||||
elif line:
|
|
||||||
string_to_header(line.strip())
|
|
||||||
|
|
||||||
method, url = url.strip('\n').split(' ')
|
|
||||||
except Exception as e:
|
|
||||||
print('got error when read body/headrs')
|
|
||||||
print(e)
|
|
||||||
|
|
||||||
try:
|
|
||||||
read_default_headers(default_headers)
|
|
||||||
except Exception as e:
|
|
||||||
print('got error when read default headrs')
|
|
||||||
print(e)
|
|
||||||
|
|
||||||
try:
|
|
||||||
send_req(method, url, body_txt)
|
|
||||||
except Exception as e:
|
|
||||||
print('got error when send request')
|
|
||||||
print(e)
|
|
||||||
|
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user