parent
0c45592b8f
commit
3d8e40bb5e
@ -1 +1,2 @@
|
||||
!/dcs/tests/zhiwang.py
|
||||
!/dcs/tests/cookie.py
|
||||
|
@ -0,0 +1,64 @@
|
||||
import threading
|
||||
import socket
|
||||
import threading
|
||||
import json
|
||||
import struct
|
||||
import dcs.tests.config
|
||||
import dcs.tests.database as database
|
||||
from loguru import logger
|
||||
|
||||
|
||||
def generate_response(response):
|
||||
response_binary = json.JSONEncoder().encode(response).encode("utf-8")
|
||||
response_binary_len = len(response_binary)
|
||||
response_binary_len_binary = struct.pack("!Q", response_binary_len)
|
||||
response_binary = response_binary_len_binary + response_binary
|
||||
|
||||
return response_binary
|
||||
|
||||
|
||||
class Urh(threading.Thread):
|
||||
def __init__(self, request_map: dict, client_socket: 'socket.socket'):
|
||||
super().__init__()
|
||||
self.request_map = request_map
|
||||
self.client_socket = client_socket
|
||||
|
||||
def report_state(self, state):
|
||||
logger.info(f"[REQUEST] report free")
|
||||
if self.request_map['spider_info'] not in dcs.tests.config.get_free_spiders():
|
||||
dcs.tests.config.add_free_spider(self.request_map['spider_info'])
|
||||
response = {
|
||||
'report_free': 'success marked ' + str(self.request_map['spider_info'])
|
||||
}
|
||||
self.client_socket.sendall(generate_response(response))
|
||||
logger.info(f"[RESPONSE] report free: {response['report_free']}")
|
||||
|
||||
def login(self, user, password):
|
||||
logger.info(f"[REQUEST] login")
|
||||
database.mysql_conn()
|
||||
response = database.login(user, password)
|
||||
response = {
|
||||
'login': response
|
||||
}
|
||||
self.client_socket.sendall(generate_response(response))
|
||||
logger.info(f"[RESPONSE] login: {response['login']}")
|
||||
|
||||
def register(self, user, password):
|
||||
logger.info(f"[REQUEST] register")
|
||||
database.mysql_conn()
|
||||
response = database.register(user, password)
|
||||
response = {
|
||||
'register': response
|
||||
}
|
||||
self.client_socket.sendall(generate_response(response))
|
||||
logger.info(f"[RESPONSE] register: {response['register']}")
|
||||
|
||||
def run(self) -> None:
|
||||
if self.request_map['action'] == 'report_free':
|
||||
self.report_state('free')
|
||||
elif self.request_map['action'] == 'login':
|
||||
self.login(self.request_map['user'], self.request_map['password'])
|
||||
elif self.request_map['action'] == 'register':
|
||||
self.register(self.request_map['user'], self.request_map['password'])
|
||||
else:
|
||||
self.client_socket.close()
|
Loading…
Reference in new issue