From 702fbf42b8784e27d5dc2de5a87ebe9f722de68a Mon Sep 17 00:00:00 2001 From: wgh19 Date: Wed, 15 May 2024 20:05:48 +0800 Subject: [PATCH] fix download path settings --- lib/network/download.dart | 8 +++++++- lib/network/models.dart | 5 +++++ lib/pages/settings_page.dart | 9 +++++---- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/network/download.dart b/lib/network/download.dart index 4bb2824..ce18c7e 100644 --- a/lib/network/download.dart +++ b/lib/network/download.dart @@ -129,9 +129,15 @@ class DownloadingTask { String subPathPatten = appdata.settings["downloadSubPath"]; final tagsWeight = (appdata.settings["tagsWeight"] as String).split(' '); final originalTags = List.from(illust.tags); + print(originalTags); originalTags.sort((a, b){ - return tagsWeight.indexOf(a.name) - tagsWeight.indexOf(b.name); + var aWeight = tagsWeight.indexOf(a.name); + if(aWeight == -1) aWeight = tagsWeight.length; + var bWeight = tagsWeight.indexOf(b.name); + if(bWeight == -1) bWeight = tagsWeight.length; + return aWeight - bWeight; }); + print(originalTags); final tags = appdata.settings["useTranslatedNameForDownload"] == false ? originalTags.map((e) => e.name).toList() : originalTags.map((e) => e.translatedName ?? e.name).toList(); diff --git a/lib/network/models.dart b/lib/network/models.dart index fd3cdd2..7369489 100644 --- a/lib/network/models.dart +++ b/lib/network/models.dart @@ -137,6 +137,11 @@ class Tag { final String? translatedName; const Tag(this.name, this.translatedName); + + @override + String toString() { + return "$name${translatedName == null ? "" : "($translatedName)"}"; + } } class IllustImage { diff --git a/lib/pages/settings_page.dart b/lib/pages/settings_page.dart index 6c34852..311f852 100644 --- a/lib/pages/settings_page.dart +++ b/lib/pages/settings_page.dart @@ -279,10 +279,11 @@ class __SetDownloadSubPathPageState extends State<_SetDownloadSubPathPage> { var text = controller.text; if (check(text)) { appdata.settings["downloadSubPath"] = text; + appdata.settings["tagsWeight"] = controller2.text; appdata.writeData(); context.pop(); } else { - showToast(context, message: "No Permission".tl); + showToast(context, message: "Invalid".tl); } }, ).toAlign(Alignment.centerRight).paddingRight(16), @@ -296,10 +297,10 @@ class __SetDownloadSubPathPageState extends State<_SetDownloadSubPathPage> { } bool check(String text) { - if (!text.startsWith('/') || !text.startsWith('\\')) { - return false; + if (text.startsWith('/') || text.startsWith('\\')) { + return true; } - return true; + return false; } String get _instruction => """