diff --git a/src/chunithm/handler/getGameSetting.ts b/src/chunithm/handler/getGameSetting.ts index 000d0cb..3cef5ca 100644 --- a/src/chunithm/handler/getGameSetting.ts +++ b/src/chunithm/handler/getGameSetting.ts @@ -23,7 +23,7 @@ export default async function getGameSetting( isBackgroundDistribute: "false", maxCountCharacter: "300", maxCountItem: "300", - maxCountMusic: "300", + maxCountMusic: "100", }, isDumpUpload: "false", isAou: "false", diff --git a/src/chunithm/sql/userMusic.ts b/src/chunithm/sql/userMusic.ts index 037a3a9..1f6706b 100644 --- a/src/chunithm/sql/userMusic.ts +++ b/src/chunithm/sql/userMusic.ts @@ -34,14 +34,22 @@ export class SqlUserMusicRepository implements UserMusicRepository { profileId: Id, page?: Page ): Promise { + const preStmt = sql + .select("DISTINCT(music_id)") + .from("cm_user_music") + .where("profile_id", profileId) + .orderBy("music_id"); + if (page) { + preStmt.limit(page.limit).offset(page.offset); + } + const preRows = await this._txn.fetchRows(preStmt); + const musicIds = preRows.map(r => r.music_id); + const stmt = sql .select("*") .from("cm_user_music") - .where("profile_id", profileId); - - if (page) { - stmt.limit(page.limit).offset(page.offset); - } + .where("profile_id", profileId) + .and(sql.in('music_id', musicIds)); const rows = await this._txn.fetchRows(stmt);