feat.Hatsune Miku

This commit is contained in:
Cookiues committed 2026-05-29 16:08:32 +08:00
1 parent dca69d095a
commit 53e078ff91
5 files changed
+112 -66

No files matched your search

+15 -4
View File
@@ -119,17 +119,18 @@ class AppStrings {
// Settings
static const titleServerSettings = 'Title Server 设置';
static const required = '必填';
static const optional = '可选 (有默认值)';
static const titleServerSection = 'Title Server';
static const authServerSettings = 'Auth Server';
static const machineSettings = '机器信息';
static const save = '保存';
static const labelTitleServerUrl = 'Title Server URL';
static const hintTitleServerUrl = 'http://maimai-gm.wahlap.com:42081';
static const hintTitleServerUrl = 'https://maimai-gm.wahlap.com:42081/Maimai2Servlet/';
static const labelAesKey = 'AES Key';
static const hintAesKey = 'your aes key string';
static const labelAesIv = 'AES IV';
static const hintAesIv = 'your aes iv string';
static const labelClientId = 'Client ID';
static const hintClientId = 'your client id';
static const hintClientId = 'A63E01C2805';
static const labelRegionId = 'Region ID';
static const hintRegionId = '1';
static const labelPlaceId = 'Place ID';
@@ -138,6 +139,16 @@ class AppStrings {
static const hintObfuscateParam = 'LatuAa81';
static const labelApiVersion = 'API Version (Mai-Encoding)';
static const hintApiVersion = '1.53';
static const labelRegionName = 'Region 名称';
static const hintRegionName = '北京';
static const labelPlaceName = 'Place 名称';
static const hintPlaceName = '插电师北京王府井银泰店';
static const labelKeychipId = 'Keychip ID';
static const hintKeychipId = 'A63E-01C28055905';
static const labelAimeUrl = 'Aime URL';
static const hintAimeUrl = 'http://ai.sys-allnet.cn/wc_aime/api/get_data';
static const labelAimeSalt = 'Aime Salt';
static const hintAimeSalt = 'API Key 派生用 Salt';
static String fieldRequired(String label) => '$label 不能为空';
// About
+25 -1
View File
@@ -11,6 +11,12 @@ class TitleServerConfig {
final String clientId;
final int regionId;
final int placeId;
final String regionName;
final String placeName;
final String keychipId;
final String aimeUrl;
final String aimeSalt;
final String openGameID;
const TitleServerConfig({
required this.titleServerUrl,
@@ -21,7 +27,13 @@ class TitleServerConfig {
required this.clientId,
this.regionId = 1,
this.placeId = 1403,
});
this.regionName = '',
this.placeName = '',
this.keychipId = '',
this.aimeUrl = '',
this.aimeSalt = '',
String? openGameID,
}) : openGameID = openGameID ?? 'MAID';
List<int> get aesKeyBytes => utf8.encode(aesKey);
List<int> get aesIvBytes => utf8.encode(aesIv);
@@ -35,6 +47,12 @@ class TitleServerConfig {
'clientId': clientId,
'regionId': regionId,
'placeId': placeId,
'regionName': regionName,
'placeName': placeName,
'keychipId': keychipId,
'aimeUrl': aimeUrl,
'aimeSalt': aimeSalt,
'openGameID': openGameID,
};
factory TitleServerConfig.fromJson(Map<String, dynamic> json) {
@@ -47,6 +65,12 @@ class TitleServerConfig {
clientId: json['clientId'] as String? ?? '',
regionId: json['regionId'] as int? ?? 1,
placeId: json['placeId'] as int? ?? 1403,
regionName: json['regionName'] as String? ?? '',
placeName: json['placeName'] as String? ?? '',
keychipId: json['keychipId'] as String? ?? '',
aimeUrl: json['aimeUrl'] as String? ?? '',
aimeSalt: json['aimeSalt'] as String? ?? '',
openGameID: json['openGameID'] as String? ?? 'MAID',
);
}
}