mirror of
https://github.com/drmext/MonkeyBusiness.git
synced 2026-03-21 18:04:48 -05:00
Fix
This commit is contained in:
parent
827c80b26d
commit
ed64259784
|
|
@ -19,6 +19,6 @@ port = 8000
|
|||
services_prefix = "/core"
|
||||
verbose_log = True
|
||||
|
||||
arcade = "Monkey Business"
|
||||
paseli = 5730
|
||||
arcade = "M0NKYBUS1N3Z"
|
||||
paseli = 10000
|
||||
maintenance_mode = False
|
||||
|
|
|
|||
|
|
@ -1,24 +1,40 @@
|
|||
import config
|
||||
|
||||
from fastapi import APIRouter, Request, Response
|
||||
from tinydb import where
|
||||
|
||||
from core_common import core_process_request, core_prepare_response, E
|
||||
from core_database import get_db
|
||||
|
||||
router = APIRouter(prefix="/core", tags=["eacoin"])
|
||||
|
||||
sessid = 0
|
||||
payments = {}
|
||||
|
||||
@router.post("/{gameinfo}/eacoin/checkin")
|
||||
async def eacoin_checkin(request: Request):
|
||||
request_info = await core_process_request(request)
|
||||
pcbid = request_info["root"].attrib["srcid"]
|
||||
cardid = request_info["root"][0].find("cardid").text
|
||||
|
||||
op = get_db().table("shop").get(where("pcbid") == pcbid)
|
||||
op = {} if op is None else op
|
||||
|
||||
bal = get_db().table("paseli").get(where("cardid") == cardid)
|
||||
bal = {} if bal is None else bal
|
||||
|
||||
global sessid
|
||||
sessid += 1
|
||||
payments[sessid] = cardid
|
||||
|
||||
response = E.response(
|
||||
E.eacoin(
|
||||
E.sequence(1, __type="s16"),
|
||||
E.acstatus(1, __type="u8"),
|
||||
E.acid(1, __type="str"),
|
||||
E.acname(config.arcade, __type="str"),
|
||||
E.balance(config.paseli, __type="s32"),
|
||||
E.sessid(1, __type="str"),
|
||||
E.acname(op.get("opname", config.arcade), __type="str"),
|
||||
E.balance(bal.get("balance", config.paseli), __type="s32"),
|
||||
E.sessid(sessid, __type="str"),
|
||||
E.inshopcharge(1, __type="u8"),
|
||||
)
|
||||
)
|
||||
|
|
@ -40,7 +56,13 @@ async def eacoin_checkout(request: Request):
|
|||
@router.post("/{gameinfo}/eacoin/consume")
|
||||
async def eacoin_consume(request: Request):
|
||||
request_info = await core_process_request(request)
|
||||
sessid = int(request_info["root"][0].find("sessid").text)
|
||||
payment = int(request_info["root"][0].find("payment").text)
|
||||
|
||||
cardid = payments.get(sessid, None)
|
||||
|
||||
# fallback if server is restarted mid-round for IIDX movie or gacha purchases
|
||||
if cardid == None:
|
||||
response = E.response(
|
||||
E.eacoin(
|
||||
E.acstatus(0, __type="u8"),
|
||||
|
|
@ -52,6 +74,40 @@ async def eacoin_consume(request: Request):
|
|||
response_body, response_headers = await core_prepare_response(request, response)
|
||||
return Response(content=response_body, headers=response_headers)
|
||||
|
||||
bal = get_db().table("paseli").get(where("cardid") == cardid)
|
||||
if bal == None:
|
||||
bal = {
|
||||
"cardid": cardid,
|
||||
"balance": config.paseli,
|
||||
"total_spent": 0,
|
||||
}
|
||||
|
||||
new_balance = bal["balance"] - payment
|
||||
|
||||
paseli_card = {
|
||||
"cardid": cardid,
|
||||
"balance": new_balance,
|
||||
"total_spent": bal["total_spent"] + payment,
|
||||
}
|
||||
|
||||
response = E.response(
|
||||
E.eacoin(
|
||||
E.acstatus(0, __type="u8"),
|
||||
E.autocharge(0, __type="u8"),
|
||||
E.balance(new_balance, __type="s32"),
|
||||
)
|
||||
)
|
||||
|
||||
if new_balance < 1000 or new_balance > config.paseli:
|
||||
paseli_card["balance"] = config.paseli
|
||||
|
||||
get_db().table("paseli").upsert(paseli_card, where("cardid") == cardid)
|
||||
|
||||
# del payments[sessid]
|
||||
|
||||
response_body, response_headers = await core_prepare_response(request, response)
|
||||
return Response(content=response_body, headers=response_headers)
|
||||
|
||||
|
||||
@router.post("/{gameinfo}/eacoin/getbalance")
|
||||
async def eacoin_getbalance(request: Request):
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
import config
|
||||
|
||||
from fastapi import APIRouter, Request, Response
|
||||
from tinydb import where
|
||||
|
||||
from core_common import core_process_request, core_prepare_response, E
|
||||
from core_database import get_db
|
||||
|
||||
router = APIRouter(prefix="/core", tags=["facility"])
|
||||
|
||||
|
|
@ -10,6 +12,10 @@ router = APIRouter(prefix="/core", tags=["facility"])
|
|||
@router.post("/{gameinfo}/facility/get")
|
||||
async def facility_get(request: Request):
|
||||
request_info = await core_process_request(request)
|
||||
pcbid = request_info["root"].attrib["srcid"]
|
||||
|
||||
op = get_db().table("shop").get(where("pcbid") == pcbid)
|
||||
op = {} if op is None else op
|
||||
|
||||
response = E.response(
|
||||
E.facility(
|
||||
|
|
@ -26,7 +32,7 @@ async def facility_get(request: Request):
|
|||
E.regionname("Tokyo", __type="str"),
|
||||
E.countryjname("日本国", __type="str"),
|
||||
E.regionjname("東京都", __type="str"),
|
||||
E.name(config.arcade, __type="str"),
|
||||
E.name(op.get("opname", config.arcade), __type="str"),
|
||||
E("type", 255, __type="u8"),
|
||||
),
|
||||
E.line(
|
||||
|
|
@ -42,7 +48,7 @@ async def facility_get(request: Request):
|
|||
),
|
||||
E.public(
|
||||
E.flag(1, __type="u8"),
|
||||
E.name(config.arcade, __type="str"),
|
||||
E.name(op.get("opname", config.arcade), __type="str"),
|
||||
E.latitude(0, __type="str"),
|
||||
E.longitude(0, __type="str"),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
import config
|
||||
|
||||
from fastapi import APIRouter, Request, Response
|
||||
from tinydb import Query, where
|
||||
|
||||
from core_common import core_process_request, core_prepare_response, E
|
||||
from core_database import get_db
|
||||
|
||||
router = APIRouter(prefix="/local", tags=["local"])
|
||||
router.model_whitelist = ["LDJ"]
|
||||
|
|
@ -11,11 +13,15 @@ router.model_whitelist = ["LDJ"]
|
|||
@router.post("/{gameinfo}/IIDX33shop/getname")
|
||||
async def iidx33shop_getname(request: Request):
|
||||
request_info = await core_process_request(request)
|
||||
pcbid = request_info["root"].attrib["srcid"]
|
||||
|
||||
op = get_db().table("shop").get(where("pcbid") == pcbid)
|
||||
op = {} if op is None else op
|
||||
|
||||
response = E.response(
|
||||
E.IIDX33shop(
|
||||
cls_opt=0,
|
||||
opname=config.arcade,
|
||||
opname=op.get("opname", config.arcade),
|
||||
pid=13,
|
||||
)
|
||||
)
|
||||
|
|
@ -24,6 +30,25 @@ async def iidx33shop_getname(request: Request):
|
|||
return Response(content=response_body, headers=response_headers)
|
||||
|
||||
|
||||
@router.post("/{gameinfo}/IIDX33shop/savename")
|
||||
async def iidx33shop_savename(request: Request):
|
||||
request_info = await core_process_request(request)
|
||||
pcbid = request_info["root"].attrib["srcid"]
|
||||
opname = request_info["root"][0].attrib["opname"]
|
||||
|
||||
shop_info = {
|
||||
"pcbid": pcbid,
|
||||
"opname": opname,
|
||||
}
|
||||
|
||||
get_db().table("shop").upsert(shop_info, where("pcbid") == pcbid)
|
||||
|
||||
response = E.response(E.IIDX33shop())
|
||||
|
||||
response_body, response_headers = await core_prepare_response(request, response)
|
||||
return Response(content=response_body, headers=response_headers)
|
||||
|
||||
|
||||
@router.post("/{gameinfo}/IIDX33shop/getconvention")
|
||||
async def iidx33shop_getconvention(request: Request):
|
||||
request_info = await core_process_request(request)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user