epub / app.py
mr2along's picture
Update app.py
e245a2e verified
raw
history blame
5.7 kB
import asyncio
import websockets
import json
import requests
from datetime import datetime
import logging
# Set up logging configuration
logging.basicConfig(level=logging.INFO)
def send(your_data):
url = "https://script.google.com/macros/s/AKfycbzT-l3-HhuiXuqUHcEqxAa91DM9WBghdKEaKA4p4wxdN3abuaOvqhX_HhFUEZRj_N92IQ/exec"
try:
respond = requests.get(url, data=your_data)
respond.raise_for_status()
print('response:', respond)
logging.info("Submitted successfully to Google Form.")
except requests.exceptions.RequestException as e:
logging.error("Failed to submit to Google Form: " + str(e))
def send_form(form_data):
url = "https://docs.google.com/forms/u/0/d/e/1FAIpQLSfGlFpSsV9KG40ZT_ttcEFdNl_l2R6FqNDOsXvv8kdTBufVow/formResponse"
try:
respond = requests.post(url, data=form_data)
respond.raise_for_status()
#print('response:', respond)
#logging.info("Submitted successfully to Google Form.")
except requests.exceptions.RequestException as e:
logging.error("Failed to submit to Google Form: " + str(e))
def card(dtCard):
cardid = []
for x in dtCard:
if dtCard[x] % 20 in [1, 14]:
a = 1
elif dtCard[x] % 20 in [11, 12, 13]:
a = 10
elif dtCard[x] % 20 in [2,3,4,5,6,7,8,9,10]:
a = dtCard[x] % 20
else:
a = ""
cardid.append(a)
return {"Cardid": cardid}
def handle_case_25(data):
groupID = data['groupID']
playerScore = data['playerScore']
bankerScore = data['bankerScore']
dtCard = data['dtCard']
cardno = card(dtCard)
cardArr = cardno['Cardid']
if playerScore == bankerScore:
result = "T"
elif playerScore > bankerScore:
result = "P"
else:
result = "B"
today = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
record = {
"Time": today,
"ID": groupID,
"P1": cardArr[0],
"P2": cardArr[2],
"P3": cardArr[4],
"B1": cardArr[1],
"B2": cardArr[3],
"B3": cardArr[5],
"playerScore": playerScore,
"bankerScore": bankerScore,
"Result": result,
}
record_form = {
"entry.1910151925": groupID,
"entry.345081202": cardArr[0],
"entry.790265993": cardArr[2],
"entry.266290562": cardArr[4],
"entry.1840046760": cardArr[1],
"entry.2050858893": cardArr[3],
"entry.1372409472": cardArr[5],
"entry.211810544": playerScore,
"entry.2078666320": bankerScore,
"entry.1824106848": result,
}
return record_form
async def init_sma_ws():
uri = "wss://a45gs-t.wmetg.com/15101"
try:
async with websockets.connect(uri) as websocket:
# Send login message to the WebSocket server
await send_login(websocket)
print('Login message sent')
# Receive and process responses from the server
while True:
#await send_heartbeat(websocket)
try:
response = await websocket.recv()
#print('Response:', response)
json_obj = json.loads(response)
protocol = json_obj["protocol"]
#print('protocol:', protocol)
#c = json_obj["data"]
#print('data:', json.dumps(c))
if protocol==25 :
data=handle_case_25(json_obj["data"])
send_form(data)
# Perform other processing based on the server response
# Send periodic heartbeat messages to maintain the connection
#await send_heartbeat(websocket)
except websockets.exceptions.ConnectionClosedError as e:
print(f"Connection closed: {e}")
break
except asyncio.CancelledError:
print("WebSocket connection cancelled.")
except Exception as e:
print(f"Error: {e}")
async def send_login(websocket):
# Create a JSON message containing login information
login_data = {
"protocol": 1,
"data": {
"sid": "ANONYMOUS-1000759",
"dtBetLimitSelectID": {
"101": 99101,
"102": 99102,
"103": 99103,
"104": 99104,
"105": 99105,
"106": 99106,
"107": 99107,
"108": 99108,
"110": 99110,
"111": 99111,
"112": 99112,
"113": 99113,
"125": 99125,
"126": 99126,
"128": 99128,
"129": 99129
},
"bGroupList": False,
"videoName": "HttpFlv",
"videoDelay": 3000,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"
}
}
login_message = json.dumps(login_data)
# Send the login message to the WebSocket server
await websocket.send(login_message)
async def send_heartbeat(websocket):
# Send a heartbeat message to the WebSocket server
heartbeat_message = {"protocol": 999, "data": {}}
await websocket.send(json.dumps(heartbeat_message))
# Wait for a period of time before sending the next heartbeat
await asyncio.sleep(10) # Send heartbeat every 10 seconds
# Create an event loop and run the coroutine until completion
asyncio.run(init_sma_ws())
#await init_sma_ws()
# Run the event loop and execute the asynchronous main function