Skip to content

Commit

Permalink
fix #128
Browse files Browse the repository at this point in the history
  • Loading branch information
wgh136 committed Jan 6, 2025
1 parent a747179 commit 99a3788
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 9 deletions.
10 changes: 8 additions & 2 deletions assets/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,10 @@
"Enable DNS Overrides": "启用DNS覆写",
"DNS Overrides": "DNS覆写",
"Custom Image Processing": "自定义图片处理",
"Enable": "启用"
"Enable": "启用",
"Aggregated": "聚合",
"Default Search Target": "默认搜索目标",
"Auto Language Filters": "自动语言筛选"
},
"zh_TW": {
"Home": "首頁",
Expand Down Expand Up @@ -525,6 +528,9 @@
"Enable DNS Overrides": "啟用DNS覆寫",
"DNS Overrides": "DNS覆寫",
"Custom Image Processing": "自定義圖片處理",
"Enable": "啟用"
"Enable": "啟用",
"Aggregated": "聚合",
"Default Search Target": "默認搜索目標",
"Auto Language Filters": "自動語言篩選"
}
}
1 change: 1 addition & 0 deletions lib/foundation/appdata.dart
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ class _Settings with ChangeNotifier {
'enableCustomImageProcessing': false,
'customImageProcessing': _defaultCustomImageProcessing,
'sni': true,
'autoAddLanguageFilter': 'none', // none, chinese, english, japanese
};

operator [](String key) {
Expand Down
4 changes: 3 additions & 1 deletion lib/pages/search_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,9 @@ class _SearchPageState extends State<SearchPage> {
@override
void initState() {
var defaultSearchTarget = appdata.settings['defaultSearchTarget'];
if (defaultSearchTarget != null &&
if (defaultSearchTarget == "_aggregated_") {
aggregatedSearch = true;
} else if (defaultSearchTarget != null &&
ComicSource.find(defaultSearchTarget) != null) {
searchTarget = defaultSearchTarget;
} else {
Expand Down
39 changes: 35 additions & 4 deletions lib/pages/search_result_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,9 @@ class _SearchResultPageState extends State<SearchResultPage> {
if (suggestionsController.entry != null) {
suggestionsController.remove();
}
text = checkAutoLanguage(text);
setState(() {
this.text = text;
this.text = text!;
});
appdata.addSearchHistory(text);
controller.currentText = text;
Expand Down Expand Up @@ -92,13 +93,33 @@ class _SearchResultPageState extends State<SearchResultPage> {
super.dispose();
}

String checkAutoLanguage(String text) {
var setting = appdata.settings["autoAddLanguageFilter"] ?? 'none';
if (setting == 'none') {
return text;
}
var searchSource = sourceKey;
// TODO: Move it to a better place
const enabledSources = [
'nhentai',
'ehentai',
];
if (!enabledSources.contains(searchSource)) {
return text;
}
if (!text.contains('language:')) {
return '$text language:$setting';
}
return text;
}

@override
void initState() {
sourceKey = widget.sourceKey;
controller = SearchBarController(
currentText: widget.text,
currentText: checkAutoLanguage(widget.text),
onSearch: search,
);
sourceKey = widget.sourceKey;
options = widget.options ?? const [];
validateOptions();
text = widget.text;
Expand Down Expand Up @@ -162,14 +183,24 @@ class _SearchResultPageState extends State<SearchResultPage> {
child: IconButton(
icon: const Icon(Icons.tune),
onPressed: () async {
if (suggestionOverlay != null) {
suggestionsController.remove();
}

var previousOptions = options;
var previousSourceKey = sourceKey;
await showDialog(
context: context,
useRootNavigator: true,
builder: (context) {
return _SearchSettingsDialog(state: this);
},
);
setState(() {});
if (previousOptions != options || previousSourceKey != sourceKey) {
text = checkAutoLanguage(controller.text);
controller.currentText = text;
setState(() {});
}
},
),
);
Expand Down
29 changes: 27 additions & 2 deletions lib/pages/settings/explore_settings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,30 @@ class _ExploreSettingsState extends State<ExploreSettings> {
title: "Keyword blocking".tl,
builder: () => const _ManageBlockingWordView(),
).toSliver(),
SelectSetting(
title: "Default Search Target".tl,
settingKey: "defaultSearchTarget",
optionTranslation: {
'_aggregated_': "Aggregated".tl,
...((){
var map = <String, String>{};
for (var c in ComicSource.all()) {
map[c.key] = c.name;
}
return map;
}()),
},
).toSliver(),
SelectSetting(
title: "Auto Language Filters".tl,
settingKey: "autoAddLanguageFilter",
optionTranslation: {
'none': "None".tl,
'chinese': "Chinese",
'english': "English",
'japanese': "Japanese",
},
).toSliver(),
],
);
}
Expand Down Expand Up @@ -150,7 +174,7 @@ class _ManageBlockingWordViewState extends State<_ManageBlockingWordView> {
errorText: error,
),
onChanged: (s) {
if(error != null){
if (error != null) {
setState(() {
error = null;
});
Expand All @@ -160,7 +184,8 @@ class _ManageBlockingWordViewState extends State<_ManageBlockingWordView> {
actions: [
Button.filled(
onPressed: () {
if(appdata.settings["blockedWords"].contains(controller.text)){
if (appdata.settings["blockedWords"]
.contains(controller.text)) {
setState(() {
error = "Keyword already exists".tl;
});
Expand Down

0 comments on commit 99a3788

Please sign in to comment.