79 lines
1.7 KiB
Python
79 lines
1.7 KiB
Python
from config import *
|
|
import requests
|
|
import datetime
|
|
import time
|
|
|
|
ROOM_CAPACITY_MAP = {
|
|
0: 0,
|
|
# SACRO CUORE
|
|
83: 11,
|
|
67: 50,
|
|
68: 45,
|
|
69: 84,
|
|
70: 10,
|
|
|
|
# OVERFLOW 1
|
|
75: 50
|
|
}
|
|
|
|
def ans(data, name):
|
|
for p in data['positions']:
|
|
for a in p['answers']:
|
|
if a.get('question_identifier', None) == name:
|
|
if a['answer'] in ['True', 'False']:
|
|
return bool(a['answer'] == 'True')
|
|
return a['answer']
|
|
return None
|
|
|
|
def getOrders():
|
|
ret = []
|
|
p = 0
|
|
|
|
while 1:
|
|
p += 1
|
|
res = requests.get(f"{base_url_event}orders/?page={p}", headers=headers)
|
|
|
|
if res.status_code == 404: break
|
|
|
|
data = res.json()
|
|
for o in data['results']:
|
|
|
|
roomType = 0
|
|
|
|
for pos in o['positions']:
|
|
if pos['item'] == ITEMS_ID_MAP['bed_in_room']:
|
|
roomType = pos['variation']
|
|
|
|
ret.append({"code": o['code'], "fname": ans(o, 'fursona_name'), "rType": roomType, "date": o['datetime']})
|
|
return ret
|
|
|
|
ordersCode = set()
|
|
ordersTime = set()
|
|
ordersFName = set()
|
|
while True:
|
|
#try:
|
|
newOrders = getOrders()
|
|
shouldSleep = True
|
|
for o in newOrders:
|
|
if o['code'] not in ordersCode and not o['date'] in ordersTime and not o['fname'] in ordersFName:
|
|
|
|
remainingInRoomType = ROOM_CAPACITY_MAP[o['rType']]
|
|
remainingInRoomType -= 1
|
|
ROOM_CAPACITY_MAP[o['rType']] = remainingInRoomType
|
|
|
|
roomCapacitiesStr = ", ".join(str(x).rjust(2, "0") for x in ROOM_CAPACITY_MAP.values())
|
|
#dateStr = datetime.datetime.now().isoformat()
|
|
|
|
print(f"[{o['date']}] {len(ordersCode)} - [{o['code']}] New order! FursonaName: {o['fname'].ljust(24)} - Room capacities: {roomCapacitiesStr}")
|
|
|
|
shouldSleep = False
|
|
time.sleep(0.05)
|
|
ordersCode.add(o['code'])
|
|
ordersTime.add(o['date'])
|
|
ordersFName.add(o['fname'])
|
|
#except:
|
|
# print("Exception occurred!")
|
|
# pass
|
|
if shouldSleep:
|
|
time.sleep(1)
|