1
0
mirror of synced 2025-02-19 03:24:42 +01:00

add mai2 favorite music support

This commit is contained in:
ppc 2024-09-16 16:55:09 +01:00
parent e128631e8f
commit 77aa1afaa0
4 changed files with 34 additions and 4 deletions

View File

@ -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')

View File

@ -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

View File

@ -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

View File

@ -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: