parent
0c45592b8f
commit
3d8e40bb5e
@ -1 +1,2 @@
|
|||||||
!/dcs/tests/zhiwang.py
|
!/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