Reviewed-on: http://gitea.shuishan.net.cn/10174507132/new-vsc/pulls/1master
@ -0,0 +1,42 @@ | |||||
from urllib import parse | |||||
import requests | |||||
# 必须submit/test之后才能checklogic error (test即一次submit) | |||||
# 从submit_id.txt中找到submit_id,填入referer | |||||
# 从data.c找到代码,编码之后,填入url | |||||
# get请求 | |||||
# 获得返回结果 | |||||
def check_logic_error() : | |||||
file = open('data.c', mode='r', encoding='utf-8', newline='') | |||||
code = file.read() | |||||
file.close() | |||||
code = parse.quote(code) | |||||
print(code) | |||||
url = "http://jf.shuishan.net.cn/api/code2vec?code=" + code | |||||
print(url) | |||||
file = open('submit_id.txt', mode='r', encoding='utf-8', newline='') | |||||
submit_id = file.read() | |||||
file.close() | |||||
payload={} | |||||
headers = { | |||||
'Host': 'jf.shuishan.net.cn', | |||||
'Connection': 'keep-alive', | |||||
'Accept': 'application/json, text/plain, */*', | |||||
'X-CSRFToken': '6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6', | |||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36', | |||||
'Content-Type': 'application/json;charset=utf-8', | |||||
'Referer': 'http://jf.shuishan.net.cn/status/'+ submit_id, | |||||
'Accept-Encoding': 'gzip, deflate', | |||||
'Accept-Language': 'zh-CN,zh;q=0.9', | |||||
'Cookie': '_ga=GA1.3.1580759526.1611565238; _gid=GA1.3.412268444.1611565238; csrftoken=6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml' | |||||
} | |||||
response = requests.request("GET", url, headers=headers, data=payload) | |||||
print(response.text) | |||||
with open('check_logic_error.txt', 'w', encoding='utf-8', newline='') as f: # 设置文件对象 | |||||
f.write(response.text) # 将字符串写入文件中 | |||||
f.close() | |||||
return response.text | |||||
@ -0,0 +1,127 @@ | |||||
import requests | |||||
import re | |||||
import time | |||||
def submit(payload) : | |||||
url = "http://jf.shuishan.net.cn/api/submission" | |||||
payload = payload | |||||
headers = { | |||||
'Host': 'jf.shuishan.net.cn', | |||||
'Connection': 'keep-alive', | |||||
'Content-Length': '101', | |||||
'Accept': 'application/json, text/plain, */*', | |||||
'X-CSRFToken': '6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6', | |||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' | |||||
'Chrome/88.0.4324.104 Safari/537.36', | |||||
'Content-Type': 'application/json;charset=UTF-8', | |||||
'Origin': 'http://jf.shuishan.net.cn', | |||||
'Referer': 'http://jf.shuishan.net.cn/problem/1-1', | |||||
'Accept-Encoding': 'gzip, deflate', | |||||
'Accept-Language': 'zh-CN,zh;q=0.9', | |||||
'Cookie': '_ga=GA1.3.1580759526.1611565238; _gid=GA1.3.412268444.1611565238; csrftoken=6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml; _gat=1; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml' | |||||
} | |||||
response = requests.request("POST", url, headers=headers, data=payload) | |||||
## print(response.text) | |||||
res = response.text | |||||
submit_id = re.findall(r'"submission_id": "([^"]+)"',res) | |||||
submit_id = submit_id[0] | |||||
with open('submit_id.txt', 'w', encoding='utf-8', newline='') as f: # 设置文件对象 | |||||
f.write(submit_id) # 将字符串写入文件中 | |||||
f.close() | |||||
#获取judge信息 | |||||
url = "http://jf.shuishan.net.cn/api/submission?id="+str(submit_id) | |||||
#url = "http://jf.shuishan.net.cn/api/submission?id=2610feac243108d927e8760f24b808c6" | |||||
payload={} | |||||
headers = { | |||||
'Host': 'jf.shuishan.net.cn', | |||||
'Connection': 'keep-alive', | |||||
'Accept': 'application/json, text/plain, */*', | |||||
'X-CSRFToken': '6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6', | |||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36', | |||||
'Content-Type': 'application/json;charset=utf-8', | |||||
'Referer': 'http://jf.shuishan.net.cn/problem/1-1', | |||||
'Accept-Encoding': 'gzip, deflate', | |||||
'Accept-Language': 'zh-CN,zh;q=0.9', | |||||
'Cookie': '_ga=GA1.3.1580759526.1611565238; _gid=GA1.3.412268444.1611565238; csrftoken=6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml; _gat=1; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml' | |||||
} | |||||
#等待judgeserver出结果 | |||||
time.sleep(0.5) | |||||
response = requests.request("GET", url, headers=headers, data=payload) | |||||
## print(response.text) | |||||
res = response.text | |||||
result_code = re.findall(r'"result": ([^"]+),',res) | |||||
error_code = re.findall(r'"error": ([^"]+),',res) | |||||
result_code = result_code[0] | |||||
error_code = error_code[0] | |||||
## print(result_code) | |||||
## print(error_code) | |||||
if(error_code != '0' and error_code != "null"): | |||||
print("ERROR_CODE") | |||||
return "ERROR_CODE" | |||||
elif(result_code == '0'): | |||||
print("ACCEPTED") | |||||
return "ACCEPTED" | |||||
elif(result_code == '1'): | |||||
print("CPU_TIME_LIMIT_EXCEEDED") | |||||
return "CPU_TIME_LIMIT_EXCEEDED" | |||||
elif(result_code == '2'): | |||||
print("REAL_TIME_LIMIT_EXCEEDED") | |||||
return "REAL_TIME_LIMIT_EXCEEDED" | |||||
elif(result_code == '3'): | |||||
print("MEMORY_LIMIT_EXCEEDED") | |||||
return "MEMORY_LIMIT_EXCEEDED" | |||||
elif(result_code == '4'): | |||||
print("RUNTIME_ERROR") | |||||
return "RUNTIME_ERROR" | |||||
elif (result_code == '5'): | |||||
print("SYSTEM_ERROR") | |||||
return "SYSTEM_ERROR" | |||||
else: | |||||
print("WRONG_ANSWER") | |||||
return "WRONG_ANSWER" | |||||
#写入一个输出文件 | |||||
def submit_handler(code, problem_id, language_type): | |||||
with open('data.c', 'w', encoding='utf-8', newline='') as f: | |||||
f.write(code) | |||||
f.close() | |||||
file = open('data.c', mode='r', encoding='utf-8', newline='') | |||||
code = file.readlines() | |||||
file.close() | |||||
code = ''.join([i.replace(' ', r'\t').replace('"', r'\"').rstrip() + r'\n' for i in code]) | |||||
## print(code) | |||||
# payload="{\"problem_id\":1,\"language\":\"C\",\"code\":\"# include <stdio.h>\\nint main()\\n{\\n\\tint a;\\n\\treturn 0;\\n}\"}" | |||||
# print(payload) | |||||
payload = "{\"problem_id\":" + problem_id + ",\"language\":\"" + language_type + "\",\"code\":\"" + code + "\"}" | |||||
## print(payload) | |||||
results = submit(payload) | |||||
return results | |||||
# 输入文件名,题号,语言种类 | |||||
# results = submit_handler('1.c','1','C') | |||||
# print(results) | |||||
#获取逻辑错误信息 | |||||
@ -0,0 +1,129 @@ | |||||
import requests | |||||
import re | |||||
import time | |||||
def submit(payload) : | |||||
url = "http://jf.shuishan.net.cn/api/submission" | |||||
payload = payload | |||||
headers = { | |||||
'Host': 'jf.shuishan.net.cn', | |||||
'Connection': 'keep-alive', | |||||
'Content-Length': '101', | |||||
'Accept': 'application/json, text/plain, */*', | |||||
'X-CSRFToken': '6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6', | |||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' | |||||
'Chrome/88.0.4324.104 Safari/537.36', | |||||
'Content-Type': 'application/json;charset=UTF-8', | |||||
'Origin': 'http://jf.shuishan.net.cn', | |||||
'Referer': 'http://jf.shuishan.net.cn/problem/1-1', | |||||
'Accept-Encoding': 'gzip, deflate', | |||||
'Accept-Language': 'zh-CN,zh;q=0.9', | |||||
'Cookie': '_ga=GA1.3.1580759526.1611565238; _gid=GA1.3.412268444.1611565238; csrftoken=6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml; _gat=1; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml' | |||||
} | |||||
response = requests.request("POST", url, headers=headers, data=payload) | |||||
## print(response.text) | |||||
res = response.text | |||||
submit_id = re.findall(r'"submission_id": "([^"]+)"',res) | |||||
submit_id = submit_id[0] | |||||
with open('submit_id.txt', 'w', encoding='utf-8', newline='') as f: # 设置文件对象 | |||||
f.write(submit_id) # 将字符串写入文件中 | |||||
f.close() | |||||
## print(submit_id) | |||||
#获取judge信息 | |||||
url = "http://jf.shuishan.net.cn/api/submission?id="+str(submit_id) | |||||
#url = "http://jf.shuishan.net.cn/api/submission?id=2610feac243108d927e8760f24b808c6" | |||||
payload={} | |||||
headers = { | |||||
'Host': 'jf.shuishan.net.cn', | |||||
'Connection': 'keep-alive', | |||||
'Accept': 'application/json, text/plain, */*', | |||||
'X-CSRFToken': '6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6', | |||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36', | |||||
'Content-Type': 'application/json;charset=utf-8', | |||||
'Referer': 'http://jf.shuishan.net.cn/problem/1-1', | |||||
'Accept-Encoding': 'gzip, deflate', | |||||
'Accept-Language': 'zh-CN,zh;q=0.9', | |||||
'Cookie': '_ga=GA1.3.1580759526.1611565238; _gid=GA1.3.412268444.1611565238; csrftoken=6eM4EeOzqLJFt6xfkbSMQD1e89qF28Lgg5aPIbB1k7Hvu6UFVzzb2d1u5lQG37p6; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml; _gat=1; sessionid=0e47tlihcjyqr3oynpx5pq9xpf7jtqml' | |||||
} | |||||
#等待judgeserver出结果 | |||||
time.sleep(0.5) | |||||
response = requests.request("GET", url, headers=headers, data=payload) | |||||
print(response.text) | |||||
res = response.text | |||||
result_code = re.findall(r'"result": ([^"]+),',res) | |||||
error_code = re.findall(r'"error": ([^"]+),',res) | |||||
result_code = result_code[1] | |||||
error_code = error_code[0] | |||||
print(result_code) | |||||
print(error_code) | |||||
if(error_code != '0' and error_code != "null"): | |||||
print("ERROR_CODE") | |||||
return "ERROR_CODE" | |||||
elif(result_code == '0'): | |||||
print("SUCCESS") | |||||
return "SUCCESS" | |||||
elif(result_code == '1'): | |||||
print("CPU_TIME_LIMIT_EXCEEDED") | |||||
return "CPU_TIME_LIMIT_EXCEEDED" | |||||
elif(result_code == '2'): | |||||
print("REAL_TIME_LIMIT_EXCEEDED") | |||||
return "REAL_TIME_LIMIT_EXCEEDED" | |||||
elif(result_code == '3'): | |||||
print("MEMORY_LIMIT_EXCEEDED") | |||||
return "MEMORY_LIMIT_EXCEEDED" | |||||
elif(result_code == '4'): | |||||
print("RUNTIME_ERROR") | |||||
return "RUNTIME_ERROR" | |||||
elif (result_code == '5'): | |||||
print("SYSTEM_ERROR") | |||||
return "SYSTEM_ERROR" | |||||
else: | |||||
print("WRONG_ANSWER") | |||||
return "WRONG_ANSWER" | |||||
#写入一个输出文件 | |||||
def submit_handler(code, problem_id, language_type): | |||||
with open('data.c', 'w', encoding='utf-8', newline='') as f: | |||||
f.write(code) | |||||
f.close() | |||||
file = open('data.c', mode='r', encoding='utf-8', newline='') | |||||
code = file.readlines() | |||||
file.close() | |||||
code = ''.join([i.replace(' ', r'\t').replace('"', r'\"').rstrip() + r'\n' for i in code]) | |||||
## print(code) | |||||
# payload="{\"problem_id\":1,\"language\":\"C\",\"code\":\"# include <stdio.h>\\nint main()\\n{\\n\\tint a;\\n\\treturn 0;\\n}\"}" | |||||
# print(payload) | |||||
payload = "{\"problem_id\":" + problem_id + ",\"language\":\"" + language_type + "\",\"code\":\"" + code + "\"}" | |||||
## print(payload) | |||||
results = submit(payload) | |||||
return results | |||||
# 输入文件名,题号,语言种类 | |||||
#results = submit_handler('22.c','22','C') | |||||
#print(results) | |||||
#获取逻辑错误信息 | |||||