feat: p4k 分流增加版本信息

This commit is contained in:
xkeyC 2024-10-07 12:29:57 +08:00
parent 197053380d
commit 53087306a8
9 changed files with 141 additions and 114 deletions

View File

@ -1,27 +1,32 @@
/// name : "Data.p4k" /// name : "Data.p4k"
/// update_at : "2024-02-24 18:00" /// update_at : "2024-09-03 15:00"
/// url : "https://p4k.42kit.com/3.22.1-LIVE.9072370/Data.p4k.torrent" /// url : "https://p4k.42kit.com/3.24.1-LIVE.9234446/Data.p4k.torrent"
/// info : "3.24.1-LIVE.9234446"
class AppTorrentData { class AppTorrentData {
AppTorrentData({ AppTorrentData({
this.name, this.name,
this.updateAt, this.updateAt,
this.url,}); this.url,
this.info,});
AppTorrentData.fromJson(dynamic json) { AppTorrentData.fromJson(dynamic json) {
name = json['name']; name = json['name'];
updateAt = json['update_at']; updateAt = json['update_at'];
url = json['url']; url = json['url'];
info = json['info'];
} }
String? name; String? name;
String? updateAt; String? updateAt;
String? url; String? url;
String? info;
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final map = <String, dynamic>{}; final map = <String, dynamic>{};
map['name'] = name; map['name'] = name;
map['update_at'] = updateAt; map['update_at'] = updateAt;
map['url'] = url; map['url'] = url;
map['info'] = info;
return map; return map;
} }

View File

@ -142,34 +142,37 @@ class MessageLookup extends MessageLookupByLibrary {
"If you have a problem with the NVME patch, run this tool. (It may cause game installation/update to be unavailable.)\n\nCurrent patch status: ${v0}"; "If you have a problem with the NVME patch, run this tool. (It may cause game installation/update to be unavailable.)\n\nCurrent patch status: ${v0}";
static String m51(v0) => static String m51(v0) =>
"In some cases, the LOG file of the RSI promoter will be damaged, causing the problem to be scanned, and using this tool to clean up the damaged log file.\n\nCurrent log file size: ${v0} MB"; "The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nVersion info:${v0}";
static String m52(v0) => static String m52(v0) =>
"In some cases, the LOG file of the RSI promoter will be damaged, causing the problem to be scanned, and using this tool to clean up the damaged log file.\n\nCurrent log file size: ${v0} MB";
static String m53(v0) =>
"If the game screen appears abnormal or the version is updated, you can use the tool to clean the expired color (when it is greater than 500m, it is recommended to clean it)\n\nCache size: ${v0} MB"; "If the game screen appears abnormal or the version is updated, you can use the tool to clean the expired color (when it is greater than 500m, it is recommended to clean it)\n\nCache size: ${v0} MB";
static String m53(v0, v1, v2, v3, v4) => static String m54(v0, v1, v2, v3, v4) =>
"System: ${v0}\n\nProcessor: ${v1}\n\nMemory size: ${v2} gb\n\nGraphics card information:\n${v3}\n\nStorage information:\n${v4}\n\n"; "System: ${v0}\n\nProcessor: ${v1}\n\nMemory size: ${v2} gb\n\nGraphics card information:\n${v3}\n\nStorage information:\n${v4}\n\n";
static String m54(v0) => "Failure to handle! : ${v0}"; static String m55(v0) => "Failure to handle! : ${v0}";
static String m55(v0) => "Read the RSI Launcher information failure: ${v0}"; static String m56(v0) => "Read the RSI Launcher information failure: ${v0}";
static String m56(v0) => "Patch status: ${v0}"; static String m57(v0) => "Patch status: ${v0}";
static String m57(v0) => static String m58(v0) =>
"Internal version information of the RSI Launcher: ${v0}"; "Internal version information of the RSI Launcher: ${v0}";
static String m58(v0) => "Open the file: ${v0}"; static String m59(v0) => "Open the file: ${v0}";
static String m59(v0, v1) => "After loading: ${v0} a file, time: ${v1} ms"; static String m60(v0, v1) => "After loading: ${v0} a file, time: ${v1} ms";
static String m60(v0) => "Read file: ${v0} ..."; static String m61(v0) => "Read file: ${v0} ...";
static String m61(v0, v1) => "Processing files (${v0}/${v1}) ..."; static String m62(v0, v1) => "Processing files (${v0}/${v1}) ...";
static String m62(v0) => "Unknown file type\n${v0}"; static String m63(v0) => "Unknown file type\n${v0}";
static String m63(v0) => "P4k viewer -> ${v0}"; static String m64(v0) => "P4k viewer -> ${v0}";
final messages = _notInlinedMessages(_notInlinedMessages); final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{ static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
@ -1023,9 +1026,7 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_p4k_download_in_progress": "tools_action_info_p4k_download_in_progress":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"There is already a P4K download task in progress, please go to the download manager to view!"), "There is already a P4K download task in progress, please go to the download manager to view!"),
"tools_action_info_p4k_download_repair_tip": "tools_action_info_p4k_download_repair_tip": m51,
MessageLookupByLibrary.simpleMessage(
"The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nLimited resources, please do not abuse."),
"tools_action_info_p4k_file_description": "tools_action_info_p4k_file_description":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the RSI Launcher to check it."), "P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the RSI Launcher to check it."),
@ -1040,7 +1041,7 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_rsi_launcher_directory_not_found": "tools_action_info_rsi_launcher_directory_not_found":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"If the RSI Launcher directory is not found, please try manually."), "If the RSI Launcher directory is not found, please try manually."),
"tools_action_info_rsi_launcher_log_issue": m51, "tools_action_info_rsi_launcher_log_issue": m52,
"tools_action_info_rsi_launcher_not_found": "tools_action_info_rsi_launcher_not_found":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"If the RSI label is not found, try to reinstall it or add it manually in the settings."), "If the RSI label is not found, try to reinstall it or add it manually in the settings."),
@ -1049,11 +1050,11 @@ class MessageLookup extends MessageLookupByLibrary {
"The RSI Launcher is running! Please turn off the label first and then use this feature!"), "The RSI Launcher is running! Please turn off the label first and then use this feature!"),
"tools_action_info_run_rsi_as_admin": MessageLookupByLibrary.simpleMessage( "tools_action_info_run_rsi_as_admin": MessageLookupByLibrary.simpleMessage(
"Run RSI startups as an administrator may solve some problems.\n\nIf the energy efficiency core shielding parameters are set, it will also be applied here."), "Run RSI startups as an administrator may solve some problems.\n\nIf the energy efficiency core shielding parameters are set, it will also be applied here."),
"tools_action_info_shader_cache_issue": m52, "tools_action_info_shader_cache_issue": m53,
"tools_action_info_star_citizen_not_found": "tools_action_info_star_citizen_not_found":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"If the interstellar game installation location is not found, please complete the game startup operation at least once or add it manually in the settings."), "If the interstellar game installation location is not found, please complete the game startup operation at least once or add it manually in the settings."),
"tools_action_info_system_info_content": m53, "tools_action_info_system_info_content": m54,
"tools_action_info_system_info_title": "tools_action_info_system_info_title":
MessageLookupByLibrary.simpleMessage("System message"), MessageLookupByLibrary.simpleMessage("System message"),
"tools_action_info_valid_game_directory_needed": "tools_action_info_valid_game_directory_needed":
@ -1115,7 +1116,7 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_info_game_install_location": "tools_info_game_install_location":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"Game installation location: "), "Game installation location: "),
"tools_info_processing_failed": m54, "tools_info_processing_failed": m55,
"tools_info_rsi_launcher_location": "tools_info_rsi_launcher_location":
MessageLookupByLibrary.simpleMessage("RSI Launcher position:"), MessageLookupByLibrary.simpleMessage("RSI Launcher position:"),
"tools_info_scanning": "tools_info_scanning":
@ -1140,14 +1141,14 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"Reading the Launcher information failed!"), "Reading the Launcher information failed!"),
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args": "tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args":
m55, m56,
"tools_rsi_launcher_enhance_msg_error_launcher_notfound": "tools_rsi_launcher_enhance_msg_error_launcher_notfound":
MessageLookupByLibrary.simpleMessage("No RSI promoter was found"), MessageLookupByLibrary.simpleMessage("No RSI promoter was found"),
"tools_rsi_launcher_enhance_msg_patch_status": m56, "tools_rsi_launcher_enhance_msg_patch_status": m57,
"tools_rsi_launcher_enhance_msg_uninstall": "tools_rsi_launcher_enhance_msg_uninstall":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"* If you need to uninstall the enhanced patch, cover the installation RSI promoter."), "* If you need to uninstall the enhanced patch, cover the installation RSI promoter."),
"tools_rsi_launcher_enhance_msg_version": m57, "tools_rsi_launcher_enhance_msg_version": m58,
"tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage( "tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage(
"RSI Launcher enhancement is a community function. It will unpack \"RSI LAUNCHER\" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the Launcher, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official RSI Launcher directly."), "RSI Launcher enhancement is a community function. It will unpack \"RSI LAUNCHER\" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the Launcher, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official RSI Launcher directly."),
"tools_rsi_launcher_enhance_note_title": "tools_rsi_launcher_enhance_note_title":
@ -1179,16 +1180,16 @@ class MessageLookup extends MessageLookupByLibrary {
"Use this function to install the .NET8 runtime, please click the button below to download and install it. After the installation is successful, reopen this page to continue to use."), "Use this function to install the .NET8 runtime, please click the button below to download and install it. After the installation is successful, reopen this page to continue to use."),
"tools_unp4k_msg_init": "tools_unp4k_msg_init":
MessageLookupByLibrary.simpleMessage("Initialization ..."), MessageLookupByLibrary.simpleMessage("Initialization ..."),
"tools_unp4k_msg_open_file": m58, "tools_unp4k_msg_open_file": m59,
"tools_unp4k_msg_read_completed": m59, "tools_unp4k_msg_read_completed": m60,
"tools_unp4k_msg_read_file": m60, "tools_unp4k_msg_read_file": m61,
"tools_unp4k_msg_reading": "tools_unp4k_msg_reading":
MessageLookupByLibrary.simpleMessage("Reading P4K file ..."), MessageLookupByLibrary.simpleMessage("Reading P4K file ..."),
"tools_unp4k_msg_reading2": "tools_unp4k_msg_reading2":
MessageLookupByLibrary.simpleMessage("Treatment files ..."), MessageLookupByLibrary.simpleMessage("Treatment files ..."),
"tools_unp4k_msg_reading3": m61, "tools_unp4k_msg_reading3": m62,
"tools_unp4k_msg_unknown_file_type": m62, "tools_unp4k_msg_unknown_file_type": m63,
"tools_unp4k_title": m63, "tools_unp4k_title": m64,
"tools_unp4k_view_file": "tools_unp4k_view_file":
MessageLookupByLibrary.simpleMessage("Click the file to preview"), MessageLookupByLibrary.simpleMessage("Click the file to preview"),
"webview_localization_finished_invitations": "webview_localization_finished_invitations":

View File

@ -128,34 +128,36 @@ class MessageLookup extends MessageLookupByLibrary {
static String m50(v0) => static String m50(v0) =>
"若您使用 nvme 补丁出现问题,请运行此工具。(可能导致游戏 安装/更新 不可用。)\n\n当前补丁状态:${v0}"; "若您使用 nvme 补丁出现问题,请运行此工具。(可能导致游戏 安装/更新 不可用。)\n\n当前补丁状态:${v0}";
static String m51(v0) => static String m51(v0) => "使用星际公民中文百科提供的分流下载服务,可用于下载或修复 p4k。 \n版本信息:${v0}";
"在某些情况下 RSI启动器 的 log 文件会损坏,导致无法完成问题扫描,使用此工具清理损坏的 log 文件。\n\n当前日志文件大小:${v0} MB";
static String m52(v0) => static String m52(v0) =>
"在某些情况下 RSI启动器 的 log 文件会损坏,导致无法完成问题扫描,使用此工具清理损坏的 log 文件。\n\n当前日志文件大小:${v0} MB";
static String m53(v0) =>
"若游戏画面出现异常或版本更新后可使用本工具清理过期的着色器当大于500M时建议清理 \n\n缓存大小:${v0} MB"; "若游戏画面出现异常或版本更新后可使用本工具清理过期的着色器当大于500M时建议清理 \n\n缓存大小:${v0} MB";
static String m53(v0, v1, v2, v3, v4) => static String m54(v0, v1, v2, v3, v4) =>
"系统:${v0}\n\n处理器:${v1}\n\n内存大小:${v2}GB\n\n显卡信息:\n${v3}\n\n硬盘信息:\n${v4}\n\n"; "系统:${v0}\n\n处理器:${v1}\n\n内存大小:${v2}GB\n\n显卡信息:\n${v3}\n\n硬盘信息:\n${v4}\n\n";
static String m54(v0) => "处理失败!:${v0}"; static String m55(v0) => "处理失败!:${v0}";
static String m55(v0) => "读取启动器信息失败:${v0}"; static String m56(v0) => "读取启动器信息失败:${v0}";
static String m56(v0) => "补丁状态:${v0}"; static String m57(v0) => "补丁状态:${v0}";
static String m57(v0) => "启动器内部版本信息:${v0}"; static String m58(v0) => "启动器内部版本信息:${v0}";
static String m58(v0) => "打开文件:${v0}"; static String m59(v0) => "打开文件:${v0}";
static String m59(v0, v1) => "加载完毕:${v0} 个文件,用时:${v1} ms"; static String m60(v0, v1) => "加载完毕:${v0} 个文件,用时:${v1} ms";
static String m60(v0) => "读取文件:${v0} ..."; static String m61(v0) => "读取文件:${v0} ...";
static String m61(v0, v1) => "正在处理文件 (${v0}/${v1}) ..."; static String m62(v0, v1) => "正在处理文件 (${v0}/${v1}) ...";
static String m62(v0) => "未知文件类型\n${v0}"; static String m63(v0) => "未知文件类型\n${v0}";
static String m63(v0) => "P4K 查看器 -> ${v0}"; static String m64(v0) => "P4K 查看器 -> ${v0}";
final messages = _notInlinedMessages(_notInlinedMessages); final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{ static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
@ -915,9 +917,7 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_p4k_download_in_progress": "tools_action_info_p4k_download_in_progress":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"已经有一个p4k下载任务正在进行中请前往下载管理器查看"), "已经有一个p4k下载任务正在进行中请前往下载管理器查看"),
"tools_action_info_p4k_download_repair_tip": "tools_action_info_p4k_download_repair_tip": m51,
MessageLookupByLibrary.simpleMessage(
"使用星际公民中文百科提供的分流下载服务,可用于下载或修复 p4k。 \n资源有限,请勿滥用。"),
"tools_action_info_p4k_file_description": "tools_action_info_p4k_file_description":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"P4k 是星际公民的核心游戏文件,高达 100GB+盒子提供的离线下载是为了帮助一些p4k文件下载超级慢的用户 或用于修复官方启动器无法修复的 p4k 文件。\n\n接下来会弹窗询问您保存位置(可以选择星际公民文件夹也可以选择别处),下载完成后请确保 P4K 文件夹位于 LIVE 文件夹内,之后使用星际公民启动器校验更新即可。"), "P4k 是星际公民的核心游戏文件,高达 100GB+盒子提供的离线下载是为了帮助一些p4k文件下载超级慢的用户 或用于修复官方启动器无法修复的 p4k 文件。\n\n接下来会弹窗询问您保存位置(可以选择星际公民文件夹也可以选择别处),下载完成后请确保 P4K 文件夹位于 LIVE 文件夹内,之后使用星际公民启动器校验更新即可。"),
@ -930,7 +930,7 @@ class MessageLookup extends MessageLookupByLibrary {
"还原镜头摇晃效果。\n\n@拉邦那 Lapernum 提供参数信息。"), "还原镜头摇晃效果。\n\n@拉邦那 Lapernum 提供参数信息。"),
"tools_action_info_rsi_launcher_directory_not_found": "tools_action_info_rsi_launcher_directory_not_found":
MessageLookupByLibrary.simpleMessage("未找到 RSI 启动器目录,请您尝试手动操作。"), MessageLookupByLibrary.simpleMessage("未找到 RSI 启动器目录,请您尝试手动操作。"),
"tools_action_info_rsi_launcher_log_issue": m51, "tools_action_info_rsi_launcher_log_issue": m52,
"tools_action_info_rsi_launcher_not_found": "tools_action_info_rsi_launcher_not_found":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"未找到 RSI 启动器,请尝试重新安装,或在设置中手动添加。"), "未找到 RSI 启动器,请尝试重新安装,或在设置中手动添加。"),
@ -939,11 +939,11 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_run_rsi_as_admin": "tools_action_info_run_rsi_as_admin":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"以管理员身份运行RSI启动器可能会解决一些问题。\n\n若设置了能效核心屏蔽参数,也会在此应用。"), "以管理员身份运行RSI启动器可能会解决一些问题。\n\n若设置了能效核心屏蔽参数,也会在此应用。"),
"tools_action_info_shader_cache_issue": m52, "tools_action_info_shader_cache_issue": m53,
"tools_action_info_star_citizen_not_found": "tools_action_info_star_citizen_not_found":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"未找到星际公民游戏安装位置,请至少完成一次游戏启动操作 或在设置中手动添加。"), "未找到星际公民游戏安装位置,请至少完成一次游戏启动操作 或在设置中手动添加。"),
"tools_action_info_system_info_content": m53, "tools_action_info_system_info_content": m54,
"tools_action_info_system_info_title": "tools_action_info_system_info_title":
MessageLookupByLibrary.simpleMessage("系统信息"), MessageLookupByLibrary.simpleMessage("系统信息"),
"tools_action_info_valid_game_directory_needed": "tools_action_info_valid_game_directory_needed":
@ -993,7 +993,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("正在写入 Hosts ..."), MessageLookupByLibrary.simpleMessage("正在写入 Hosts ..."),
"tools_info_game_install_location": "tools_info_game_install_location":
MessageLookupByLibrary.simpleMessage("游戏安装位置: "), MessageLookupByLibrary.simpleMessage("游戏安装位置: "),
"tools_info_processing_failed": m54, "tools_info_processing_failed": m55,
"tools_info_rsi_launcher_location": "tools_info_rsi_launcher_location":
MessageLookupByLibrary.simpleMessage("RSI启动器位置"), MessageLookupByLibrary.simpleMessage("RSI启动器位置"),
"tools_info_scanning": MessageLookupByLibrary.simpleMessage("正在扫描..."), "tools_info_scanning": MessageLookupByLibrary.simpleMessage("正在扫描..."),
@ -1012,13 +1012,13 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error": "tools_rsi_launcher_enhance_msg_error_get_launcher_info_error":
MessageLookupByLibrary.simpleMessage("读取启动器信息失败!"), MessageLookupByLibrary.simpleMessage("读取启动器信息失败!"),
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args": "tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args":
m55, m56,
"tools_rsi_launcher_enhance_msg_error_launcher_notfound": "tools_rsi_launcher_enhance_msg_error_launcher_notfound":
MessageLookupByLibrary.simpleMessage("未找到 RSI 启动器"), MessageLookupByLibrary.simpleMessage("未找到 RSI 启动器"),
"tools_rsi_launcher_enhance_msg_patch_status": m56, "tools_rsi_launcher_enhance_msg_patch_status": m57,
"tools_rsi_launcher_enhance_msg_uninstall": "tools_rsi_launcher_enhance_msg_uninstall":
MessageLookupByLibrary.simpleMessage("* 如需卸载增强补丁,请覆盖安装 RSI 启动器。"), MessageLookupByLibrary.simpleMessage("* 如需卸载增强补丁,请覆盖安装 RSI 启动器。"),
"tools_rsi_launcher_enhance_msg_version": m57, "tools_rsi_launcher_enhance_msg_version": m58,
"tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage( "tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage(
"RSI 启动器增强是一项社区功能,它会在您的电脑上解包 \"RSI Launcher\" 并加入额外的增强功能,具体使用哪些功能由您决定。\n\n目前官方CIG仅许可我们进行多语言操作启动器下载增强是我们认为有用的额外功能违反cig用户协议https://robertsspaceindustries.com/eula可能导致账号被封禁等严重后果是否启用由您自己决定我们不对可能产生的后果游戏损坏账号封禁等承担任何责任。\n\n对于启动器的修改内容我们开源于https://github.com/StarCitizenToolBox/RSILauncherEnhance如有需要您可自行查阅。\n\n如果您因为任何原因需要取消此增强补丁,请直接覆盖安装官方启动器。"), "RSI 启动器增强是一项社区功能,它会在您的电脑上解包 \"RSI Launcher\" 并加入额外的增强功能,具体使用哪些功能由您决定。\n\n目前官方CIG仅许可我们进行多语言操作启动器下载增强是我们认为有用的额外功能违反cig用户协议https://robertsspaceindustries.com/eula可能导致账号被封禁等严重后果是否启用由您自己决定我们不对可能产生的后果游戏损坏账号封禁等承担任何责任。\n\n对于启动器的修改内容我们开源于https://github.com/StarCitizenToolBox/RSILauncherEnhance如有需要您可自行查阅。\n\n如果您因为任何原因需要取消此增强补丁,请直接覆盖安装官方启动器。"),
"tools_rsi_launcher_enhance_note_title": "tools_rsi_launcher_enhance_note_title":
@ -1046,16 +1046,16 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"使用此功能需安装 .NET8 运行库,请点击下方按钮下载安装,安装成功后重新打开此页面即可继续使用。"), "使用此功能需安装 .NET8 运行库,请点击下方按钮下载安装,安装成功后重新打开此页面即可继续使用。"),
"tools_unp4k_msg_init": MessageLookupByLibrary.simpleMessage("初始化中..."), "tools_unp4k_msg_init": MessageLookupByLibrary.simpleMessage("初始化中..."),
"tools_unp4k_msg_open_file": m58, "tools_unp4k_msg_open_file": m59,
"tools_unp4k_msg_read_completed": m59, "tools_unp4k_msg_read_completed": m60,
"tools_unp4k_msg_read_file": m60, "tools_unp4k_msg_read_file": m61,
"tools_unp4k_msg_reading": "tools_unp4k_msg_reading":
MessageLookupByLibrary.simpleMessage("正在读取P4K 文件 ..."), MessageLookupByLibrary.simpleMessage("正在读取P4K 文件 ..."),
"tools_unp4k_msg_reading2": "tools_unp4k_msg_reading2":
MessageLookupByLibrary.simpleMessage("正在处理文件 ..."), MessageLookupByLibrary.simpleMessage("正在处理文件 ..."),
"tools_unp4k_msg_reading3": m61, "tools_unp4k_msg_reading3": m62,
"tools_unp4k_msg_unknown_file_type": m62, "tools_unp4k_msg_unknown_file_type": m63,
"tools_unp4k_title": m63, "tools_unp4k_title": m64,
"tools_unp4k_view_file": "tools_unp4k_view_file":
MessageLookupByLibrary.simpleMessage("单击文件以预览"), MessageLookupByLibrary.simpleMessage("单击文件以预览"),
"webview_localization_finished_invitations": "webview_localization_finished_invitations":

View File

@ -128,34 +128,36 @@ class MessageLookup extends MessageLookupByLibrary {
static String m50(v0) => static String m50(v0) =>
"若您使用 nvme 補丁出現問題,請執行此工具。(可能導致遊戲 安裝/更新 無法使用。)\n\n目前補丁狀態:${v0}"; "若您使用 nvme 補丁出現問題,請執行此工具。(可能導致遊戲 安裝/更新 無法使用。)\n\n目前補丁狀態:${v0}";
static String m51(v0) => static String m51(v0) => "使用星際公民中文百科提供的分流下載服務,可用於下載或修復 p4k。 \n版本資訊:${v0}";
"在某些情況下 RSI啟動器 的 log 文件會損壞,導致無法完成問題掃描,使用此工具清理損壞的 log 文件。\n\n目前日誌檔案大小:${v0} MB";
static String m52(v0) => static String m52(v0) =>
"在某些情況下 RSI啟動器 的 log 文件會損壞,導致無法完成問題掃描,使用此工具清理損壞的 log 文件。\n\n目前日誌檔案大小:${v0} MB";
static String m53(v0) =>
"若遊戲畫面出現異常或版本更新後可使用此工具清除著色器快取 \n\n建議清理:快取大於 500 MB\n快取大小:${v0} MB"; "若遊戲畫面出現異常或版本更新後可使用此工具清除著色器快取 \n\n建議清理:快取大於 500 MB\n快取大小:${v0} MB";
static String m53(v0, v1, v2, v3, v4) => static String m54(v0, v1, v2, v3, v4) =>
"系統:${v0}\n\n處理器:${v1}\n\n記憶體:${v2}GB\n\n顯示卡:\n${v3}\n\n硬碟:\n${v4}\n\n"; "系統:${v0}\n\n處理器:${v1}\n\n記憶體:${v2}GB\n\n顯示卡:\n${v3}\n\n硬碟:\n${v4}\n\n";
static String m54(v0) => "處理失敗!:${v0}"; static String m55(v0) => "處理失敗!:${v0}";
static String m55(v0) => "讀取啟動器資訊失敗:${v0}"; static String m56(v0) => "讀取啟動器資訊失敗:${v0}";
static String m56(v0) => "補丁狀態:${v0}"; static String m57(v0) => "補丁狀態:${v0}";
static String m57(v0) => "啟動器內部版本資訊:${v0}"; static String m58(v0) => "啟動器內部版本資訊:${v0}";
static String m58(v0) => "打開文件:${v0}"; static String m59(v0) => "打開文件:${v0}";
static String m59(v0, v1) => "載入完畢:${v0} 個文件,用時:${v1} ms"; static String m60(v0, v1) => "載入完畢:${v0} 個文件,用時:${v1} ms";
static String m60(v0) => "讀取文件:${v0} ..."; static String m61(v0) => "讀取文件:${v0} ...";
static String m61(v0, v1) => "正在處理文件 (${v0}/${v1}) ..."; static String m62(v0, v1) => "正在處理文件 (${v0}/${v1}) ...";
static String m62(v0) => "未知文件類型\n${v0}"; static String m63(v0) => "未知文件類型\n${v0}";
static String m63(v0) => "P4K 查看器 -> ${v0}"; static String m64(v0) => "P4K 查看器 -> ${v0}";
final messages = _notInlinedMessages(_notInlinedMessages); final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{ static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
@ -918,9 +920,7 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_p4k_download_in_progress": "tools_action_info_p4k_download_in_progress":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"已經有一個p4k下載任務正在進行中請前往下載管理器查看"), "已經有一個p4k下載任務正在進行中請前往下載管理器查看"),
"tools_action_info_p4k_download_repair_tip": "tools_action_info_p4k_download_repair_tip": m51,
MessageLookupByLibrary.simpleMessage(
"使用星際公民中文百科提供的分流下載服務,可用於下載或修復 p4k。 \n資源有限,請勿濫用。"),
"tools_action_info_p4k_file_description": "tools_action_info_p4k_file_description":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"P4k 是星際公民的核心遊戲文件,高達 100GB+工具箱提供的離線下載是為了幫助一些p4k文件下載慢到不行的使用者 或用於修復官方啟動器無法修復的 p4k 文件。\n\n接下來會跳出視窗詢問您儲存位置(可以選擇星際公民資料夾也可以選擇別處),下載完成後請確保 P4K 資料夾位於 LIVE 資料夾內,之後使用星際公民啟動器校驗更新即可。"), "P4k 是星際公民的核心遊戲文件,高達 100GB+工具箱提供的離線下載是為了幫助一些p4k文件下載慢到不行的使用者 或用於修復官方啟動器無法修復的 p4k 文件。\n\n接下來會跳出視窗詢問您儲存位置(可以選擇星際公民資料夾也可以選擇別處),下載完成後請確保 P4K 資料夾位於 LIVE 資料夾內,之後使用星際公民啟動器校驗更新即可。"),
@ -933,7 +933,7 @@ class MessageLookup extends MessageLookupByLibrary {
"已開啟攝影模式,再次點擊來關閉並還原鏡頭晃動效果。\n\n@拉邦那 Lapernum 提供參數資訊。"), "已開啟攝影模式,再次點擊來關閉並還原鏡頭晃動效果。\n\n@拉邦那 Lapernum 提供參數資訊。"),
"tools_action_info_rsi_launcher_directory_not_found": "tools_action_info_rsi_launcher_directory_not_found":
MessageLookupByLibrary.simpleMessage("未找到 RSI 啟動器目錄,請您嘗試手動操作。"), MessageLookupByLibrary.simpleMessage("未找到 RSI 啟動器目錄,請您嘗試手動操作。"),
"tools_action_info_rsi_launcher_log_issue": m51, "tools_action_info_rsi_launcher_log_issue": m52,
"tools_action_info_rsi_launcher_not_found": "tools_action_info_rsi_launcher_not_found":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"未找到 RSI 啟動器,請嘗試重新安裝,或在設定中手動新增。"), "未找到 RSI 啟動器,請嘗試重新安裝,或在設定中手動新增。"),
@ -942,11 +942,11 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_action_info_run_rsi_as_admin": "tools_action_info_run_rsi_as_admin":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"以管理員身份執行RSI啟動器可能會解決一些問題。\n\n若設定了 E-Core 核心忽略參數,也會在此套用。"), "以管理員身份執行RSI啟動器可能會解決一些問題。\n\n若設定了 E-Core 核心忽略參數,也會在此套用。"),
"tools_action_info_shader_cache_issue": m52, "tools_action_info_shader_cache_issue": m53,
"tools_action_info_star_citizen_not_found": "tools_action_info_star_citizen_not_found":
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"未找到星際公民遊戲安裝位置,請至少完成一次遊戲啟動操作 或在設定中手動新增。"), "未找到星際公民遊戲安裝位置,請至少完成一次遊戲啟動操作 或在設定中手動新增。"),
"tools_action_info_system_info_content": m53, "tools_action_info_system_info_content": m54,
"tools_action_info_system_info_title": "tools_action_info_system_info_title":
MessageLookupByLibrary.simpleMessage("系統資訊"), MessageLookupByLibrary.simpleMessage("系統資訊"),
"tools_action_info_valid_game_directory_needed": "tools_action_info_valid_game_directory_needed":
@ -996,7 +996,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("正在寫入 Hosts ..."), MessageLookupByLibrary.simpleMessage("正在寫入 Hosts ..."),
"tools_info_game_install_location": "tools_info_game_install_location":
MessageLookupByLibrary.simpleMessage("遊戲安裝位置: "), MessageLookupByLibrary.simpleMessage("遊戲安裝位置: "),
"tools_info_processing_failed": m54, "tools_info_processing_failed": m55,
"tools_info_rsi_launcher_location": "tools_info_rsi_launcher_location":
MessageLookupByLibrary.simpleMessage("RSI啟動器位置"), MessageLookupByLibrary.simpleMessage("RSI啟動器位置"),
"tools_info_scanning": MessageLookupByLibrary.simpleMessage("正在掃描..."), "tools_info_scanning": MessageLookupByLibrary.simpleMessage("正在掃描..."),
@ -1015,13 +1015,13 @@ class MessageLookup extends MessageLookupByLibrary {
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error": "tools_rsi_launcher_enhance_msg_error_get_launcher_info_error":
MessageLookupByLibrary.simpleMessage("讀取啟動器資訊失敗!"), MessageLookupByLibrary.simpleMessage("讀取啟動器資訊失敗!"),
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args": "tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args":
m55, m56,
"tools_rsi_launcher_enhance_msg_error_launcher_notfound": "tools_rsi_launcher_enhance_msg_error_launcher_notfound":
MessageLookupByLibrary.simpleMessage("未找到 RSI 啟動器"), MessageLookupByLibrary.simpleMessage("未找到 RSI 啟動器"),
"tools_rsi_launcher_enhance_msg_patch_status": m56, "tools_rsi_launcher_enhance_msg_patch_status": m57,
"tools_rsi_launcher_enhance_msg_uninstall": "tools_rsi_launcher_enhance_msg_uninstall":
MessageLookupByLibrary.simpleMessage("* 如需移除增強補丁,請覆蓋安裝 RSI 啟動器。"), MessageLookupByLibrary.simpleMessage("* 如需移除增強補丁,請覆蓋安裝 RSI 啟動器。"),
"tools_rsi_launcher_enhance_msg_version": m57, "tools_rsi_launcher_enhance_msg_version": m58,
"tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage( "tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage(
"RSI 啟動器增強是一項社群功能,它會在您的電腦上解包 \"RSI Launcher\" 並加入額外的增強功能,具體使用哪些功能由您決定。\n\n目前官方CIG僅許可我們進行多語言操作啟動器下載增強是我們認為有用的額外功能違反cig使用者協議https://robertsspaceindustries.com/eula可能導致帳號被封禁等嚴重後果是否啟用由您自己決定我們不對可能產生的後果遊戲損壞帳號封禁等承擔任何責任。\n\n對於啟動器的修改內容我們開源於https://github.com/StarCitizenToolBox/RSILauncherEnhance如有需要您可自行查閱。\n\n如果您因為任何原因需要取消此增強補丁,請直接覆蓋安裝官方啟動器。"), "RSI 啟動器增強是一項社群功能,它會在您的電腦上解包 \"RSI Launcher\" 並加入額外的增強功能,具體使用哪些功能由您決定。\n\n目前官方CIG僅許可我們進行多語言操作啟動器下載增強是我們認為有用的額外功能違反cig使用者協議https://robertsspaceindustries.com/eula可能導致帳號被封禁等嚴重後果是否啟用由您自己決定我們不對可能產生的後果遊戲損壞帳號封禁等承擔任何責任。\n\n對於啟動器的修改內容我們開源於https://github.com/StarCitizenToolBox/RSILauncherEnhance如有需要您可自行查閱。\n\n如果您因為任何原因需要取消此增強補丁,請直接覆蓋安裝官方啟動器。"),
"tools_rsi_launcher_enhance_note_title": "tools_rsi_launcher_enhance_note_title":
@ -1049,16 +1049,16 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage( MessageLookupByLibrary.simpleMessage(
"使用此功能需安裝 .NET8 運行庫,請點擊下方按鈕下載安裝,安裝成功後重新打開此頁面即可繼續使用。"), "使用此功能需安裝 .NET8 運行庫,請點擊下方按鈕下載安裝,安裝成功後重新打開此頁面即可繼續使用。"),
"tools_unp4k_msg_init": MessageLookupByLibrary.simpleMessage("初始化中..."), "tools_unp4k_msg_init": MessageLookupByLibrary.simpleMessage("初始化中..."),
"tools_unp4k_msg_open_file": m58, "tools_unp4k_msg_open_file": m59,
"tools_unp4k_msg_read_completed": m59, "tools_unp4k_msg_read_completed": m60,
"tools_unp4k_msg_read_file": m60, "tools_unp4k_msg_read_file": m61,
"tools_unp4k_msg_reading": "tools_unp4k_msg_reading":
MessageLookupByLibrary.simpleMessage("正在讀取P4K 文件 ..."), MessageLookupByLibrary.simpleMessage("正在讀取P4K 文件 ..."),
"tools_unp4k_msg_reading2": "tools_unp4k_msg_reading2":
MessageLookupByLibrary.simpleMessage("正在處理文件 ..."), MessageLookupByLibrary.simpleMessage("正在處理文件 ..."),
"tools_unp4k_msg_reading3": m61, "tools_unp4k_msg_reading3": m62,
"tools_unp4k_msg_unknown_file_type": m62, "tools_unp4k_msg_unknown_file_type": m63,
"tools_unp4k_title": m63, "tools_unp4k_title": m64,
"tools_unp4k_view_file": "tools_unp4k_view_file":
MessageLookupByLibrary.simpleMessage("單擊文件以預覽"), MessageLookupByLibrary.simpleMessage("單擊文件以預覽"),
"webview_localization_finished_invitations": "webview_localization_finished_invitations":

View File

@ -2761,13 +2761,13 @@ class S {
); );
} }
/// `The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nLimited resources, please do not abuse.` /// `The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nVersion info:{v0}`
String get tools_action_info_p4k_download_repair_tip { String tools_action_info_p4k_download_repair_tip(Object v0) {
return Intl.message( return Intl.message(
'The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nLimited resources, please do not abuse.', 'The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nVersion info:$v0',
name: 'tools_action_info_p4k_download_repair_tip', name: 'tools_action_info_p4k_download_repair_tip',
desc: '', desc: '',
args: [], args: [v0],
); );
} }

View File

@ -543,7 +543,7 @@
"@tools_action_info_view_critical_system_info": {}, "@tools_action_info_view_critical_system_info": {},
"tools_action_p4k_download_repair": "P4k diversion download / repair", "tools_action_p4k_download_repair": "P4k diversion download / repair",
"@tools_action_p4k_download_repair": {}, "@tools_action_p4k_download_repair": {},
"tools_action_info_p4k_download_repair_tip": "The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nLimited resources, please do not abuse.", "tools_action_info_p4k_download_repair_tip": "The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nVersion info:{v0}",
"@tools_action_info_p4k_download_repair_tip": {}, "@tools_action_info_p4k_download_repair_tip": {},
"tools_action_hosts_acceleration_experimental": "Hosts acceleration (experimental)", "tools_action_hosts_acceleration_experimental": "Hosts acceleration (experimental)",
"@tools_action_hosts_acceleration_experimental": {}, "@tools_action_hosts_acceleration_experimental": {},

View File

@ -542,7 +542,7 @@
"@tools_action_info_view_critical_system_info": {}, "@tools_action_info_view_critical_system_info": {},
"tools_action_p4k_download_repair": "P4K 分流下载 / 修复", "tools_action_p4k_download_repair": "P4K 分流下载 / 修复",
"@tools_action_p4k_download_repair": {}, "@tools_action_p4k_download_repair": {},
"tools_action_info_p4k_download_repair_tip": "使用星际公民中文百科提供的分流下载服务,可用于下载或修复 p4k。 \n资源有限,请勿滥用。", "tools_action_info_p4k_download_repair_tip": "使用星际公民中文百科提供的分流下载服务,可用于下载或修复 p4k。 \n版本信息:{v0}",
"@tools_action_info_p4k_download_repair_tip": {}, "@tools_action_info_p4k_download_repair_tip": {},
"tools_action_hosts_acceleration_experimental": "Hosts 加速(实验性)", "tools_action_hosts_acceleration_experimental": "Hosts 加速(实验性)",
"@tools_action_hosts_acceleration_experimental": {}, "@tools_action_hosts_acceleration_experimental": {},

View File

@ -542,7 +542,7 @@
"@tools_action_info_view_critical_system_info": {}, "@tools_action_info_view_critical_system_info": {},
"tools_action_p4k_download_repair": "P4K 分流下載 / 修復", "tools_action_p4k_download_repair": "P4K 分流下載 / 修復",
"@tools_action_p4k_download_repair": {}, "@tools_action_p4k_download_repair": {},
"tools_action_info_p4k_download_repair_tip": "使用星際公民中文百科提供的分流下載服務,可用於下載或修復 p4k。 \n資源有限,請勿濫用。", "tools_action_info_p4k_download_repair_tip": "使用星際公民中文百科提供的分流下載服務,可用於下載或修復 p4k。 \n版本資訊:{v0}",
"@tools_action_info_p4k_download_repair_tip": {}, "@tools_action_info_p4k_download_repair_tip": {},
"tools_action_hosts_acceleration_experimental": "Hosts 加速Beta", "tools_action_hosts_acceleration_experimental": "Hosts 加速Beta",
"@tools_action_hosts_acceleration_experimental": {}, "@tools_action_hosts_acceleration_experimental": {},

View File

@ -11,6 +11,7 @@ import 'package:go_router/go_router.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:starcitizen_doctor/api/analytics.dart'; import 'package:starcitizen_doctor/api/analytics.dart';
import 'package:starcitizen_doctor/api/api.dart'; import 'package:starcitizen_doctor/api/api.dart';
import 'package:starcitizen_doctor/common/conf/url_conf.dart';
import 'package:starcitizen_doctor/common/helper/log_helper.dart'; import 'package:starcitizen_doctor/common/helper/log_helper.dart';
import 'package:starcitizen_doctor/common/helper/system_helper.dart'; import 'package:starcitizen_doctor/common/helper/system_helper.dart';
import 'package:starcitizen_doctor/common/io/rs_http.dart'; import 'package:starcitizen_doctor/common/io/rs_http.dart';
@ -77,13 +78,11 @@ class ToolsUIModel extends _$ToolsUIModel {
const Icon(FluentIcons.system, size: 24), const Icon(FluentIcons.system, size: 24),
onTap: () => _showSystemInfo(context), onTap: () => _showSystemInfo(context),
), ),
ToolsItemData( ];
"p4k_downloader",
S.current.tools_action_p4k_download_repair, if (!context.mounted) return;
S.current.tools_action_info_p4k_download_repair_tip, items.add(await _addP4kCard(context));
const Icon(FontAwesomeIcons.download, size: 24), items.addAll([
onTap: () => _downloadP4k(context),
),
ToolsItemData( ToolsItemData(
"hosts_booster", "hosts_booster",
S.current.tools_action_hosts_acceleration_experimental, S.current.tools_action_hosts_acceleration_experimental,
@ -119,7 +118,7 @@ class ToolsUIModel extends _$ToolsUIModel {
const Icon(FontAwesomeIcons.fileZipper, size: 24), const Icon(FontAwesomeIcons.fileZipper, size: 24),
onTap: () => _unp4kc(context), onTap: () => _unp4kc(context),
), ),
]; ]);
state = state.copyWith(items: items); state = state.copyWith(items: items);
if (!context.mounted) return; if (!context.mounted) return;
@ -137,6 +136,30 @@ class ToolsUIModel extends _$ToolsUIModel {
} }
} }
Future<ToolsItemData> _addP4kCard(BuildContext context) async {
var torrentUrl = "";
var versionInfo = "";
try {
final l = await Api.getAppTorrentDataList();
for (var torrent in l) {
if (torrent.name == "Data.p4k") {
torrentUrl = torrent.url ?? "";
versionInfo = torrent.info ?? "";
}
}
} catch (e) {
dPrint("get torrent url failed: $e");
}
return ToolsItemData(
"p4k_downloader",
S.current.tools_action_p4k_download_repair,
S.current.tools_action_info_p4k_download_repair_tip(versionInfo),
const Icon(FontAwesomeIcons.download, size: 24),
onTap: () => _downloadP4k(context, torrentUrl),
);
}
Future<List<ToolsItemData>> _addNvmePatchCard(BuildContext context) async { Future<List<ToolsItemData>> _addNvmePatchCard(BuildContext context) async {
final nvmePatchStatus = await SystemHelper.checkNvmePatchStatus(); final nvmePatchStatus = await SystemHelper.checkNvmePatchStatus();
return [ return [
@ -378,7 +401,7 @@ class ToolsUIModel extends _$ToolsUIModel {
state = state.copyWith(working: false); state = state.copyWith(working: false);
} }
Future<void> _downloadP4k(BuildContext context) async { Future<void> _downloadP4k(BuildContext context, String torrentUrl) async {
String savePath = state.scInstalledPath; String savePath = state.scInstalledPath;
String fileName = "Data.p4k"; String fileName = "Data.p4k";
@ -392,7 +415,12 @@ class ToolsUIModel extends _$ToolsUIModel {
} }
if (!context.mounted) return; if (!context.mounted) return;
await showToast(context, S.current.tools_action_info_p4k_file_description); final ok = await showConfirmDialogs(
context,
S.current.tools_action_p4k_download_repair,
Text(S.current.tools_action_info_p4k_file_description),
);
if (!ok) return;
try { try {
state = state.copyWith(working: true); state = state.copyWith(working: true);
final aria2cManager = ref.read(aria2cModelProvider.notifier); final aria2cManager = ref.read(aria2cModelProvider.notifier);
@ -415,13 +443,6 @@ class ToolsUIModel extends _$ToolsUIModel {
} }
} }
var torrentUrl = "";
final l = await Api.getAppTorrentDataList();
for (var torrent in l) {
if (torrent.name == "Data.p4k") {
torrentUrl = torrent.url!;
}
}
if (torrentUrl == "") { if (torrentUrl == "") {
state = state.copyWith(working: false); state = state.copyWith(working: false);
if (!context.mounted) return; if (!context.mounted) return;
@ -469,7 +490,7 @@ class ToolsUIModel extends _$ToolsUIModel {
} }
await Future.delayed(const Duration(seconds: 3)); await Future.delayed(const Duration(seconds: 3));
launchUrlString( launchUrlString(
"https://citizenwiki.cn/SC%E6%B1%89%E5%8C%96%E7%9B%92%E5%AD%90#%E5%88%86%E6%B5%81%E4%B8%8B%E8%BD%BD%E6%95%99%E7%A8%8B"); "${URLConf.gitApiHome}/SCToolBox/Doc/src/branch/main/Tools/Pk4k_Downloads.md");
} }
Future<bool> _checkPhotographyStatus(BuildContext context, Future<bool> _checkPhotographyStatus(BuildContext context,