mirror of
https://gitea.tendokyu.moe/Hay1tsme/artemis.git
synced 2026-02-12 18:57:29 +08:00
Compare commits
4 Commits
f2afb3cff5
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d75f62bcb4 | ||
|
|
04019da9ac | ||
|
|
d91c21d047 | ||
|
|
b3824f038f |
@@ -0,0 +1,31 @@
|
|||||||
|
"""chuni_subtrophy_db_fix
|
||||||
|
|
||||||
|
Revision ID: 318d52559e83
|
||||||
|
Revises: 8b57e9646449
|
||||||
|
Create Date: 2026-01-08 19:13:29.803912
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy.dialects import mysql
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '318d52559e83'
|
||||||
|
down_revision = '8b57e9646449'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
op.alter_column('chuni_profile_data', 'trophyIdSub1', existing_type=mysql.INTEGER(), server_default='-1')
|
||||||
|
op.alter_column('chuni_profile_data', 'trophyIdSub2', existing_type=mysql.INTEGER(), server_default='-1')
|
||||||
|
|
||||||
|
# fix any current profiles where the bad defaults were used
|
||||||
|
op.execute("UPDATE chuni_profile_data SET trophyIdSub1=-1 WHERE trophyIdSub1 IS NULL")
|
||||||
|
op.execute("UPDATE chuni_profile_data SET trophyIdSub2=-1 WHERE trophyIdSub2 IS NULL")
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
# dont bother "unfixing" the table
|
||||||
|
pass
|
||||||
@@ -121,7 +121,9 @@ class ChuniServlet(BaseServlet):
|
|||||||
f"{ChuniConstants.VER_CHUNITHM_LUMINOUS}_chn": 8,
|
f"{ChuniConstants.VER_CHUNITHM_LUMINOUS}_chn": 8,
|
||||||
ChuniConstants.VER_CHUNITHM_LUMINOUS_PLUS: 56,
|
ChuniConstants.VER_CHUNITHM_LUMINOUS_PLUS: 56,
|
||||||
ChuniConstants.VER_CHUNITHM_VERSE: 42,
|
ChuniConstants.VER_CHUNITHM_VERSE: 42,
|
||||||
|
f"{ChuniConstants.VER_CHUNITHM_VERSE}_chn": 37,
|
||||||
ChuniConstants.VER_CHUNITHM_X_VERSE: 14,
|
ChuniConstants.VER_CHUNITHM_X_VERSE: 14,
|
||||||
|
f"{ChuniConstants.VER_CHUNITHM_X_VERSE}_int": 96,
|
||||||
}
|
}
|
||||||
|
|
||||||
for version, keys in self.game_cfg.crypto.keys.items():
|
for version, keys in self.game_cfg.crypto.keys.items():
|
||||||
@@ -306,8 +308,10 @@ class ChuniServlet(BaseServlet):
|
|||||||
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS
|
||||||
elif version >= 135 and version < 140: # LUMINOUS PLUS
|
elif version >= 135 and version < 140: # LUMINOUS PLUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS_PLUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS_PLUS
|
||||||
elif version >= 140:
|
elif version >= 140 and version < 150: # VERSE
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_VERSE
|
internal_ver = ChuniConstants.VER_CHUNITHM_VERSE
|
||||||
|
elif version >= 150: # X-VERSE
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_X_VERSE
|
||||||
elif game_code == "SDHJ": # Chn
|
elif game_code == "SDHJ": # Chn
|
||||||
if version < 110: # NEW
|
if version < 110: # NEW
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_NEW
|
internal_ver = ChuniConstants.VER_CHUNITHM_NEW
|
||||||
@@ -315,8 +319,10 @@ class ChuniServlet(BaseServlet):
|
|||||||
version >= 110 and version < 120
|
version >= 110 and version < 120
|
||||||
): # NEW *Cursed but needed due to different encryption key
|
): # NEW *Cursed but needed due to different encryption key
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_NEW_PLUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_NEW_PLUS
|
||||||
elif version >= 120: # LUMINOUS
|
elif version >= 120 and version < 130: # LUMINOUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS
|
||||||
|
elif version >= 130: # VERSE
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_VERSE
|
||||||
|
|
||||||
if all(c in string.hexdigits for c in endpoint) and len(endpoint) == 32:
|
if all(c in string.hexdigits for c in endpoint) and len(endpoint) == 32:
|
||||||
# If we get a 32 character long hex string, it's a hash and we're
|
# If we get a 32 character long hex string, it's a hash and we're
|
||||||
|
|||||||
@@ -69,7 +69,8 @@ class ChuniReader(BaseReader):
|
|||||||
await self.read_system_voice(f"{dir}/systemVoice", this_opt_id)
|
await self.read_system_voice(f"{dir}/systemVoice", this_opt_id)
|
||||||
await self.read_unlock_challenge(f"{dir}/unlockChallenge")
|
await self.read_unlock_challenge(f"{dir}/unlockChallenge")
|
||||||
await self.read_linked_verse(f"{dir}/linkedVerse")
|
await self.read_linked_verse(f"{dir}/linkedVerse")
|
||||||
await self.read_stage(f"{dir}/stage", this_opt_id)
|
if self.version >= ChuniConstants.VER_CHUNITHM_X_VERSE:
|
||||||
|
await self.read_stage(f"{dir}/stage", this_opt_id)
|
||||||
|
|
||||||
async def read_login_bonus(self, root_dir: str, opt_id: Optional[int] = None) -> None:
|
async def read_login_bonus(self, root_dir: str, opt_id: Optional[int] = None) -> None:
|
||||||
for root, dirs, files in walk(f"{root_dir}loginBonusPreset"):
|
for root, dirs, files in walk(f"{root_dir}loginBonusPreset"):
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ profile = Table(
|
|||||||
Column("frameId", Integer),
|
Column("frameId", Integer),
|
||||||
Column("isMaimai", Boolean),
|
Column("isMaimai", Boolean),
|
||||||
Column("trophyId", Integer),
|
Column("trophyId", Integer),
|
||||||
Column("trophyIdSub1", Integer),
|
Column("trophyIdSub1", Integer, server_default="-1"),
|
||||||
Column("trophyIdSub2", Integer),
|
Column("trophyIdSub2", Integer, server_default="-1"),
|
||||||
Column("userName", String(25)),
|
Column("userName", String(25)),
|
||||||
Column("isWebJoin", Boolean),
|
Column("isWebJoin", Boolean),
|
||||||
Column("playCount", Integer),
|
Column("playCount", Integer),
|
||||||
|
|||||||
Reference in New Issue
Block a user