forked from Hay1tsme/artemis
ongeki: add opts to reader
This commit is contained in:
@ -5,6 +5,7 @@ from sqlalchemy.schema import ForeignKey
|
||||
from sqlalchemy.sql import func, select
|
||||
from sqlalchemy.engine import Row
|
||||
from sqlalchemy.dialects.mysql import insert
|
||||
from sqlalchemy.sql.functions import coalesce
|
||||
|
||||
from core.data.schema import BaseData, metadata
|
||||
from core.data.schema.arcade import machine
|
||||
@ -212,10 +213,10 @@ game_point = Table(
|
||||
)
|
||||
|
||||
class OngekiStaticData(BaseData):
|
||||
async def put_card(self, version: int, card_id: int, **card_data) -> Optional[int]:
|
||||
sql = insert(cards).values(version=version, cardId=card_id, **card_data)
|
||||
async def put_card(self, version: int, card_id: int, opt_id: int = None, **card_data) -> Optional[int]:
|
||||
sql = insert(cards).values(version=version, cardId=card_id, opt=coalesce(cards.c.opt, opt_id), **card_data)
|
||||
|
||||
conflict = sql.on_duplicate_key_update(**card_data)
|
||||
conflict = sql.on_duplicate_key_update(opt=coalesce(cards.c.opt, opt_id), **card_data)
|
||||
|
||||
result = await self.execute(conflict)
|
||||
if result is None:
|
||||
@ -342,7 +343,7 @@ class OngekiStaticData(BaseData):
|
||||
return result.fetchall()
|
||||
|
||||
async def put_event(
|
||||
self, version: int, event_id: int, event_type: int, event_name: str
|
||||
self, version: int, event_id: int, event_type: int, event_name: str, opt_id: int = None
|
||||
) -> Optional[int]:
|
||||
sql = insert(events).values(
|
||||
version=version,
|
||||
@ -350,10 +351,11 @@ class OngekiStaticData(BaseData):
|
||||
type=event_type,
|
||||
name=event_name,
|
||||
endDate=f"2038-01-01 00:00:00",
|
||||
opt=coalesce(events.c.opt, opt_id)
|
||||
)
|
||||
|
||||
conflict = sql.on_duplicate_key_update(
|
||||
name=event_name,
|
||||
name=event_name, opt=coalesce(events.c.opt, opt_id)
|
||||
)
|
||||
|
||||
result = await self.execute(conflict)
|
||||
@ -399,6 +401,7 @@ class OngekiStaticData(BaseData):
|
||||
artist: str,
|
||||
genre: str,
|
||||
level: float,
|
||||
opt_id: int = None
|
||||
) -> Optional[int]:
|
||||
sql = insert(music).values(
|
||||
version=version,
|
||||
@ -408,6 +411,7 @@ class OngekiStaticData(BaseData):
|
||||
artist=artist,
|
||||
genre=genre,
|
||||
level=level,
|
||||
opt=coalesce(music.c.opt, opt_id)
|
||||
)
|
||||
|
||||
conflict = sql.on_duplicate_key_update(
|
||||
@ -415,6 +419,7 @@ class OngekiStaticData(BaseData):
|
||||
artist=artist,
|
||||
genre=genre,
|
||||
level=level,
|
||||
opt=coalesce(music.c.opt, opt_id)
|
||||
)
|
||||
|
||||
result = await self.execute(conflict)
|
||||
@ -449,17 +454,21 @@ class OngekiStaticData(BaseData):
|
||||
return None
|
||||
return result.fetchone()
|
||||
|
||||
async def put_reward(self, version: int, rewardId: int, rewardname: str, itemKind: int, itemId: int) -> Optional[int]:
|
||||
async def put_reward(self, version: int, rewardId: int, rewardname: str, itemKind: int, itemId: int, opt_id: int = None) -> Optional[int]:
|
||||
sql = insert(rewards).values(
|
||||
version=version,
|
||||
rewardId=rewardId,
|
||||
rewardname=rewardname,
|
||||
itemKind=itemKind,
|
||||
itemId=itemId,
|
||||
)
|
||||
version=version,
|
||||
rewardId=rewardId,
|
||||
rewardname=rewardname,
|
||||
itemKind=itemKind,
|
||||
itemId=itemId,
|
||||
opt=coalesce(rewards.c.opt, opt_id)
|
||||
)
|
||||
|
||||
conflict = sql.on_duplicate_key_update(
|
||||
rewardname=rewardname,
|
||||
)
|
||||
rewardname=rewardname,
|
||||
opt=coalesce(rewards.c.opt, opt_id)
|
||||
)
|
||||
|
||||
result = await self.execute(conflict)
|
||||
if result is None:
|
||||
self.logger.warning(f"Failed to insert reward! reward_id: {rewardId}")
|
||||
|
Reference in New Issue
Block a user