Commit Graph

146 Commits

Author SHA1 Message Date
zaphkito
592e6961e8 chu&mai2: add option to use https 2025-06-14 14:51:21 +08:00
Keeboy99
02bfc7dba2 SDGB support + extras 2025-06-02 16:31:57 +12:00
Keeboy99
33b7db0e98 Added support for multiple Allnet Lite keys + extras 2025-05-31 20:04:28 +12:00
Keeboy99
3e848d684f SDHJ title server support added + encryption 2025-05-31 09:36:53 +12:00
Hay1tsme
e16bfc713a chuni: add opt to reader 2025-04-08 00:41:49 -04:00
Hay1tsme
311b439cc7 Merge pull request 'chuni: userbox ui and read cleanup' (#206) from daydensteve/artemis-develop-chuni-userbox-ui-fix:develop into develop
Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/206
2025-04-08 03:14:57 +00:00
Hay1tsme
1cab68006d add opt static tables 2025-04-07 18:31:11 -04:00
daydensteve
eb601e3293 fixed read failures in older chuni versions where sortname doesn't exist. Also noticed some character import errors associated with & 2025-04-05 20:10:07 -04:00
daydensteve
5906bc3486 fixed inappropriate use of character illustration id instead of base character id. The Userbox jinja would break if the profile was using an alternate character illustration 2025-04-05 18:05:00 -04:00
Hay1tsme
f939d4976e chuni: make total columns BigInt, for #203 2025-03-29 11:22:12 -04:00
Hay1tsme
c1fa528e45 chuni: fix frontend 500 if no profile is available 2025-03-25 11:30:44 -04:00
Dniel97
cdd46d51b7 chuni: fix favorite music list 2025-03-02 18:34:06 +01:00
Hay1tsme
0f52b89033 remove deprecated warn 2025-02-21 23:51:59 -05:00
Hay1tsme
e8c90634b6 Merge pull request '[chunithm] fix rival music not showing up in game' (#190) from beerpsi/artemis:fix/chunithm/rivals into develop
Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/190
2024-12-19 06:14:10 +00:00
beerpsi
5475b52336 [chunithm] support luminous+ 2024-12-19 13:03:37 +07:00
beerpsi
fe8f365d8a [chunithm] fix rival music not showing up in game 2024-12-12 20:49:39 +07:00
Kevin Trocolli
383859388e chuni: fix 'NoneType' object has no attribute 'split' in score.py 2024-11-29 22:20:55 -05:00
beerpsi
58a5177a30 use SQL's limit/offset pagination for nextIndex/maxCount requests (#185)
Instead of retrieving the entire list of items/characters/scores/etc. at once (and even store them in memory), use SQL's `LIMIT ... OFFSET ...` pagination so we only take what we need.

Currently only CHUNITHM uses this, but this will also affect maimai DX and O.N.G.E.K.I. once the PR is ready.

Also snuck in a fix for CHUNITHM/maimai DX's `GetUserRivalMusicApi` to respect the `userRivalMusicLevelList` sent by the client.

### How this works

Say we have a `GetUserCharacterApi` request:

```json
{
    "userId": 10000,
    "maxCount": 700,
    "nextIndex": 0
}
```

Instead of getting the entire character list from the database (which can be very large if the user force unlocked everything), add limit/offset to the query:

```python
select(character)
.where(character.c.user == user_id)
.order_by(character.c.id.asc())
.limit(max_count + 1)
.offset(next_index)
```

The query takes `maxCount + 1` items from the database to determine if there is more items than can be returned:

```python
rows = ...

if len(rows) > max_count:
    # return only max_count rows
    next_index += max_count
else:
    # return everything left
    next_index = -1
```

This has the benefit of not needing to load everything into memory (and also having to store server state, as seen in the [`SCORE_BUFFER` list](2274b42358/titles/chuni/base.py (L13)).)

Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/185
Co-authored-by: beerpsi <beerpsi@duck.com>
Co-committed-by: beerpsi <beerpsi@duck.com>
2024-11-16 19:10:29 +00:00
daydensteve
eb18ad22b8 hardened ui against the db not being upgraded or importer not being ran 2024-11-08 09:17:12 -05:00
daydensteve
954bd565d3 reduced db access with new chuni webui customizations 2024-11-07 20:28:28 -05:00
daydensteve
3a44b18d91 fixed erroneously wide trophy select 2024-11-03 19:27:20 -05:00
daydensteve
f5205801a8 Added customization unlock overrides 2024-11-03 19:12:49 -05:00
daydensteve
626ce6bd96 userbox, avatar, mapicon, and voice ui configuration 2024-11-03 18:37:09 -05:00
daydensteve
e49c70b738 more enums! 2024-11-03 16:37:27 -05:00
daydensteve
c2d4abcc26 db and import updates for userbox, avatar, voice, and map icon 2024-11-03 16:37:05 -05:00
daydensteve
2f6974cab6 new chuni ui images/directories 2024-11-03 08:48:13 -05:00
daydensteve
ed5e7dc561 [chuni] Added truncation to long Title and Artist Name values on import (#178)
I noticed the importer failing to import music 523 (Niji-iro no Flügel) from an omni pack due to the artist name being crazy long.

To address this, I added truncation to max column value length for both the Title and Artist Name values. Considered doing this for the other 3 string fields as well but I can't imagine those ever being problematic.

Import now succeeds with a warning generated about the truncation occurring

Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/178
Co-authored-by: daydensteve <daydensteve@gmail.com>
Co-committed-by: daydensteve <daydensteve@gmail.com>
2024-09-25 15:21:30 +00:00
daydensteve
b04840f3dd [chuni] Frontend favorites support (#176)
I had been itching for the favorites feature since I'm bad with japanese so figured I'd go ahead and add it. I've included a few pics to help visualize the changes.

### Summary of user-facing changes:
- New Favorites frontend page that itemizes favorites by genre for the current version (as selected on the Profile page). Favorites can be removed from this page via the Remove button
- Updated the Records page so that it only shows the playlog for the currently selected version and includes a "star" to the left of each title that can be clicked to add/remove favorites. When the star is yellow, its a favorite; when its a grey outline, its not. I figure its pretty straight forward
- The Records and new Favorites pages show the jacket image of each song now (The Importer was updated to convert the DDS files to PNGs on import)

### Behind-the-scenes changes:
- Fixed a bug in the chuni get_song method - it was inappropriately comparing the row id instead of the musicid (note this method was not used prior to adding favorites support)
- Overhauled the score scheme file to stop with all the hacky romVersion determination that was going on in various methods. To do this, I created a new ChuniRomVersion class that is populated with all base rom versions, then used to derive the internal integer version  number from the string stored in the DB. As written, this functionality can infer recorded rom versions when the playlog was entered using an update to the base version (e.g. 2.16  vs 2.15 for sunplus or 2.22 vs 2.20 for luminous).
- Made the chuni config version class safer as it would previously throw an exception if you gave it a version not present in the config file. This was done in support of the score overhaul to build up the initial ChuniRomVersion dict
- Added necessary methods to query/update the favorites table.

### Testing
- Frontend testing was performed with playlog data for both sunplus (2.16) and luminous (2.22) present. All add/remove permutations and images behavior was as expected
- Game testing was performed only with Luminous (2.22) and worked fine

Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/176
Co-authored-by: daydensteve <daydensteve@gmail.com>
Co-committed-by: daydensteve <daydensteve@gmail.com>
2024-09-25 14:53:43 +00:00
Hay1tsme
e85728f33c chuni/mai2: remove upsert from put_playlog 2024-09-20 17:10:48 -04:00
EmmyHeart
82004cb743 Fix map overload in Chusan 2024-09-14 01:30:29 +00:00
EmmyHeart
8f4c08f825 Fix map overload in Chusan 2024-09-14 01:28:35 +00:00
Hay1tsme
7ebd9bfb8a Merge pull request '[chuni] Auto stock tickets at login' (#170) from daydensteve/artemis:chuni_ticket_stock into develop
Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/170
2024-09-13 18:12:32 +00:00
Hay1tsme
944b80129b chuni: fix ultimate/worlds end chart reading, closes #63 2024-09-05 11:45:22 -04:00
daydensteve
eacd4a2f43 Adding stock_tickets and stock_count chuni mods. Enables specified tickets to be auto-stocked on login 2024-09-02 20:00:59 -04:00
Hay1tsme
b5715b8da6 Merge pull request 'chuni: fix encryption , added known iter keys , and add c2c api for sdgs' (#165) from Puz/artemis:develop into develop
Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/165
2024-07-15 18:32:55 +00:00
Mr Arythmia
39e89d4908 Add song ranks, improve non-S rating calculation 2024-07-15 03:40:56 +02:00
Puz
ec7605eeb0 chuni: added missing c2c endpoint for sdgs 2024-07-10 07:21:56 +00:00
Puz
b5e7a59b5f chuni: fix encryption , and added all known iter keys 2024-07-10 07:17:12 +00:00
Hay1tsme
9b5283d389 mai2: add event editing for sysops 2024-07-01 18:26:39 -04:00
Kevin Trocolli
44fb6037cf chuni: add missing alembic script 2024-06-29 00:08:11 -04:00
Hay1tsme
b2bd73a8f5 Merge branch 'develop' into develop 2024-06-29 04:03:14 +00:00
Hay1tsme
fef527d61f Merge branch 'beerpsi-fix/chuni/correct-iter-counts' into develop (#151) 2024-06-28 13:10:14 -04:00
Kevin Trocolli
f252b8e322 chuni: fix misnamed var in put_net_battle 2024-06-23 17:41:22 -04:00
zaphkito
acac12c211 chuni: fix GetUserNetBattleRankingInfoApi 2024-06-23 16:17:46 +08:00
Kevin Trocolli
699337c419 chuni: fix get_net_battle 2024-06-23 02:57:37 -04:00
beerpsi
f747a731bf [chuni] Use the map flag event ID when checking in GetGameMapAreaConditionApi 2024-06-23 01:36:48 +07:00
Hay1tsme
be2bf8b491 Merge pull request '[chuni] Improve GetGameMapAreaConditionApi' (#157) from beerpsi/artemis:feat/chunithm/map-area-conditions-rework into develop
Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/157
2024-06-22 17:33:47 +00:00
Kevin Trocolli
203aa43fe1 chuni: add sun plus and lumi to get_rankings 2024-06-22 13:31:52 -04:00
beerpsi
ce124ffe13 [chuni] Improve GetGameMapAreaConditionApi 2024-06-23 00:08:53 +07:00
Kevin Trocolli
ca9ccbe8a3 chuni: add missing net battle funcs 2024-06-21 23:00:35 -04:00