From 572f0b21ad6879825d6c6741e2b69c7a39f575db Mon Sep 17 00:00:00 2001 From: lifegpc Date: Tue, 26 Mar 2024 21:29:19 +0800 Subject: [PATCH] Add new settings --- lib/api/config.dart | 6 ++++++ lib/api/config.g.dart | 4 ++++ lib/l10n/app_en.arb | 3 ++- lib/l10n/app_zh.arb | 3 ++- lib/server_settings.dart | 13 +++++++++++++ 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/lib/api/config.dart b/lib/api/config.dart index 8ff222b..c234ea8 100644 --- a/lib/api/config.dart +++ b/lib/api/config.dart @@ -42,6 +42,7 @@ class Config { required this.redirectToFlutter, required this.downloadTimeoutCheckInterval, required this.ehMetadataCacheTime, + this.randomFileSecret, }); bool cookies; @JsonKey(name: 'db_path') @@ -96,6 +97,8 @@ class Config { int downloadTimeoutCheckInterval; @JsonKey(name: "eh_metadata_cache_time") int ehMetadataCacheTime; + @JsonKey(name: "random_file_secret") + String? randomFileSecret; factory Config.fromJson(Map json) => _$ConfigFromJson(json); Map toJson() => _$ConfigToJson(this); } @@ -145,6 +148,7 @@ class ConfigOptional { this.redirectToFlutter, this.downloadTimeoutCheckInterval, this.ehMetadataCacheTime, + this.randomFileSecret, }); String? cookies; @JsonKey(name: 'db_path') @@ -199,6 +203,8 @@ class ConfigOptional { int? downloadTimeoutCheckInterval; @JsonKey(name: "eh_metadata_cache_time") int? ehMetadataCacheTime; + @JsonKey(name: "random_file_secret") + String? randomFileSecret; factory ConfigOptional.fromJson(Map json) => _$ConfigOptionalFromJson(json); Map toJson() => _$ConfigOptionalToJson(this); diff --git a/lib/api/config.g.dart b/lib/api/config.g.dart index 3db26ca..f7fa34a 100644 --- a/lib/api/config.g.dart +++ b/lib/api/config.g.dart @@ -43,6 +43,7 @@ Config _$ConfigFromJson(Map json) => Config( downloadTimeoutCheckInterval: json['download_timeout_check_interval'] as int, ehMetadataCacheTime: json['eh_metadata_cache_time'] as int, + randomFileSecret: json['random_file_secret'] as String?, ); Map _$ConfigToJson(Config instance) => { @@ -76,6 +77,7 @@ Map _$ConfigToJson(Config instance) => { 'redirect_to_flutter': instance.redirectToFlutter, 'download_timeout_check_interval': instance.downloadTimeoutCheckInterval, 'eh_metadata_cache_time': instance.ehMetadataCacheTime, + 'random_file_secret': instance.randomFileSecret, }; const _$ThumbnailMethodEnumMap = { @@ -131,6 +133,7 @@ ConfigOptional _$ConfigOptionalFromJson(Map json) => downloadTimeoutCheckInterval: json['download_timeout_check_interval'] as int?, ehMetadataCacheTime: json['eh_metadata_cache_time'] as int?, + randomFileSecret: json['random_file_secret'] as String?, ); Map _$ConfigOptionalToJson(ConfigOptional instance) => @@ -165,4 +168,5 @@ Map _$ConfigOptionalToJson(ConfigOptional instance) => 'redirect_to_flutter': instance.redirectToFlutter, 'download_timeout_check_interval': instance.downloadTimeoutCheckInterval, 'eh_metadata_cache_time': instance.ehMetadataCacheTime, + 'random_file_secret': instance.randomFileSecret, }; diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index cbd0351..1c3c89c 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -154,5 +154,6 @@ "hour": "hour", "createDownloadTask": "Create Download Task", "galleryURL": "Gallery URL", - "galleryToken": "Gallery Token" + "galleryToken": "Gallery Token", + "randomFileSecret": "The secret of token to access random file without login" } diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 455ffc4..f876735 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -154,5 +154,6 @@ "hour": "小时", "createDownloadTask": "新建下载任务", "galleryURL": "画廊地址", - "galleryToken": "画廊令牌" + "galleryToken": "画廊令牌", + "randomFileSecret": "生成无需登录即可访问随机文件的令牌的密钥" } diff --git a/lib/server_settings.dart b/lib/server_settings.dart index 99a21d2..96b2dda 100644 --- a/lib/server_settings.dart +++ b/lib/server_settings.dart @@ -708,6 +708,19 @@ class _ServerSettingsPage extends State }); }, )), + _buildWithVecticalPadding(TextFormField( + initialValue: _now.randomFileSecret ?? _config!.randomFileSecret, + decoration: InputDecoration( + border: const OutlineInputBorder(), + labelText: i18n.randomFileSecret, + ), + onChanged: (s) { + setState(() { + _now.randomFileSecret = s; + _changed = true; + }); + }, + )), ])); }