import requests import re import time def submit(payload,pid) : 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-'+pid, '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.encode('utf-8').decode('latin1')) ## print(response.text) res = response.text with open('wulin3.txt', 'w', encoding='utf-8', newline='') as f: f.write(res) f.close() 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-'+pid, '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 with open('wulin5.txt', 'w', encoding='utf-8', newline='') as f: f.write(res) f.close() result_code = re.findall(r'"result": ([^"]+),',res) error_code = re.findall(r'"error": ([^"]+),',res) result_code_compile = result_code[0] if (len(result_code) >= 2) : 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" if (result_code_compile == '-2') : print("COMPILE_ERROR") return "COMPILE_ERROR" 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("\t"," ").replace('\\', '\\\\').replace('"', r'\"').rstrip() + r'\n' for i in code]) ## print(code) # payload="{\"problem_id\":1,\"language\":\"C\",\"code\":\"# include \\nint main()\\n{\\n\\tint a;\\n\\treturn 0;\\n}\"}" # print(payload) payload = "{\"problem_id\":" + problem_id + ",\"language\":\"" + language_type + "\",\"code\":\"" + code + "\"}" ## print(payload) with open('wulin4.txt', 'w', encoding='utf-8', newline='') as f: f.write(payload) f.close() # with open('wulin4.txt', 'r', encoding='utf-8', newline='') as f: # payload=f.read() #f.close() #payload = payload.replace("\t","").replace(" ","") #with open('wulin4.txt', 'w', encoding='utf-8', newline='') as f: # f.write(payload) #f.close() results = submit(payload,problem_id) return results # 输入文件名,题号,语言种类 #results = submit_handler('22.c','22','C') #print(results) #获取逻辑错误信息