add mai2 favorite music support
This commit is contained in:
parent
e128631e8f
commit
77aa1afaa0
@ -0,0 +1,24 @@
|
||||
"""mai2_favorite_song_ordering
|
||||
|
||||
Revision ID: bc91c1206dca
|
||||
Revises: 28443e2da5b8
|
||||
Create Date: 2024-09-16 14:24:56.714066
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'bc91c1206dca'
|
||||
down_revision = '28443e2da5b8'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.add_column('mai2_item_favorite_music', sa.Column('orderId', sa.Integer(nullable=True)))
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_column('mai2_item_favorite_music', 'orderId')
|
@ -922,7 +922,7 @@ class Mai2Base:
|
||||
fav_music = await self.data.item.get_fav_music(user_id)
|
||||
if fav_music:
|
||||
for fav in fav_music:
|
||||
id_list.append({"orderId": 0, "id": fav["musicId"]})
|
||||
id_list.append({"orderId": fav["orderId"] or 0, "id": fav["musicId"]})
|
||||
if len(id_list) >= 100: # Lazy but whatever
|
||||
break
|
||||
|
||||
|
@ -245,6 +245,10 @@ class Mai2DX(Mai2Base):
|
||||
kind_id = fav.get("kind", fav.get("itemKind")) # itemKind key used in BUDDiES+
|
||||
await self.data.item.put_favorite(user_id, kind_id, fav["itemIdList"])
|
||||
|
||||
if "userFavoritemusicList" in upsert and len(upsert["userFavoritemusicList"]) > 0:
|
||||
for fav in upsert["userFavoritemusicList"]:
|
||||
await self.data.item.add_fav_music(user_id, fav["id"], fav["orderId"])
|
||||
|
||||
if (
|
||||
"userFriendSeasonRankingList" in upsert
|
||||
and len(upsert["userFriendSeasonRankingList"]) > 0
|
||||
|
@ -144,6 +144,7 @@ fav_music = Table(
|
||||
nullable=False,
|
||||
),
|
||||
Column("musicId", Integer, nullable=False),
|
||||
Column("orderId", Integer, nullable=True),
|
||||
UniqueConstraint("user", "musicId", name="mai2_item_favorite_music_uk"),
|
||||
mysql_charset="utf8mb4",
|
||||
)
|
||||
@ -484,13 +485,14 @@ class Mai2ItemData(BaseData):
|
||||
if result:
|
||||
return result.fetchall()
|
||||
|
||||
async def add_fav_music(self, user_id: int, music_id: int) -> Optional[int]:
|
||||
async def add_fav_music(self, user_id: int, music_id: int, order_id: Optional[int] = None) -> Optional[int]:
|
||||
sql = insert(fav_music).values(
|
||||
user = user_id,
|
||||
musicId = music_id
|
||||
musicId = music_id,
|
||||
orderId = order_id
|
||||
)
|
||||
|
||||
conflict = sql.on_duplicate_key_update(musicId = music_id)
|
||||
conflict = sql.on_duplicate_key_update(orderId = order_id)
|
||||
|
||||
result = await self.execute(conflict)
|
||||
if result:
|
||||
|
Loading…
x
Reference in New Issue
Block a user