124 lines
3.7 KiB
Python
124 lines
3.7 KiB
Python
from socket import *
|
|
from datetime import datetime
|
|
import json
|
|
import time
|
|
|
|
HOST = "10.0.0.57" # local
|
|
PORT = 50002
|
|
ADDR = (HOST,PORT)
|
|
|
|
PATH = "D:\\timer.json"
|
|
|
|
|
|
def connect():
|
|
tcp_socket = socket(AF_INET, SOCK_STREAM)
|
|
tcp_socket.connect(ADDR)
|
|
data = "Hello, world"
|
|
data = str.encode(data)
|
|
tcp_socket.send(data)
|
|
data = bytes.decode(data)
|
|
data = tcp_socket.recv(1024)
|
|
# tcp_socket.close()
|
|
|
|
return data
|
|
|
|
|
|
def save_log(name, data):
|
|
current_time = datetime.now().strftime("%d-%m-%Y %H:%M:%S.%f")
|
|
message_with_time = f"[{current_time}] {data}"
|
|
with open(name, "a") as file:
|
|
file.write(message_with_time + "\n")
|
|
|
|
|
|
def formatted_data(data):
|
|
save_log("logs_mba.txt", data)
|
|
|
|
# data_converted = list(data)
|
|
# data_formatted = [
|
|
# str(hex_value // 16) + str(hex_value % 16) for hex_value in data_converted
|
|
# ]
|
|
# save_log("logs_mba_formatted.txt", data_formatted)
|
|
|
|
|
|
def parse(data_formatted):
|
|
# print(len(data_formatted))
|
|
# print(data_formatted)
|
|
with open(PATH, "r", encoding="utf-8") as f:
|
|
new_data = json.load(f)
|
|
new_data = new_data[0]
|
|
|
|
if len(data_formatted) > 30:
|
|
if data_formatted[17] == "010":
|
|
if data_formatted[-8] in ["01", "05"]:
|
|
timer_str = (
|
|
f"{int(data_formatted[-7])}:{data_formatted[-6]}"
|
|
if int(data_formatted[-7]) != 0
|
|
else f"{int(data_formatted[-6])}.{int(data_formatted[-5])}"
|
|
)
|
|
new_data["timeGFX"] = timer_str
|
|
new_data["minutesGFX"] = int(
|
|
data_formatted[-7]
|
|
) # [25] #data_formatted[17] = 010 - таймер data_formatted[-8] = 05 - овертайм, 06 - перерыв между основным временем и овертаймом, 01 - игровое время, 02 - перерыв между периодами
|
|
new_data["secondsGFX"] = data_formatted[-6] # [26]
|
|
else:
|
|
timer_str = f"{int(data_formatted[-7])}:{data_formatted[-6]}"
|
|
new_data["timeNotGame"] = timer_str
|
|
|
|
if len(data_formatted) == 58:
|
|
new_data[
|
|
"timeDel1"
|
|
] = f"{int(data_formatted[26])}:{data_formatted[27]}" # data_formatted[17] = 24 - удаление
|
|
new_data["timeDel2"] = f"{int(data_formatted[41])}:{data_formatted[42]}"
|
|
|
|
try:
|
|
with open(PATH, "w", encoding="utf-8") as file:
|
|
json.dump([new_data], file, ensure_ascii=False, indent=4)
|
|
print(new_data)
|
|
except Exception:
|
|
pass
|
|
|
|
|
|
def main():
|
|
with socket(AF_INET, SOCK_STREAM) as s:
|
|
s.connect((HOST, PORT))
|
|
s.sendall(b"Hello, world")
|
|
data = s.recv(1024)
|
|
while True:
|
|
print(data)
|
|
data_new = formatted_data(data)
|
|
time.sleep(.1)
|
|
# parse(data)
|
|
|
|
|
|
|
|
|
|
|
|
def read_logs():
|
|
import time
|
|
with open("test_logs_balashikha_new.txt", "r") as file:
|
|
for line in file:
|
|
parts = line.strip().split("] ")
|
|
if len(parts) == 2:
|
|
timestamp = parts[0][1:]
|
|
data = parts[1]
|
|
parse(eval(data))
|
|
if len(eval(data)) > 30 and eval(data)[-7] == "00":
|
|
time.sleep(.1)
|
|
else:
|
|
time.sleep(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
new_data = {
|
|
"timeGFX": "0:00",
|
|
"minutesGFX": "0",
|
|
"secondsGFX": "0",
|
|
"foul1": "0",
|
|
"foul2": "0",
|
|
"quarter": "0",
|
|
}
|
|
with open(PATH, "w", encoding="utf-8") as file:
|
|
json.dump([new_data], file, ensure_ascii=False, indent=4)
|
|
main()
|
|
# read_logs()
|