diff --git a/400_xowa/src/gplx/core/net/qargs/Gfo_qarg_mgr.java b/400_xowa/src/gplx/core/net/qargs/Gfo_qarg_mgr.java index eb5541741..5806e83d8 100644 --- a/400_xowa/src/gplx/core/net/qargs/Gfo_qarg_mgr.java +++ b/400_xowa/src/gplx/core/net/qargs/Gfo_qarg_mgr.java @@ -30,6 +30,7 @@ public class Gfo_qarg_mgr { public byte[] Read_bry_or_empty(byte[] key) {return Read_bry_or(key, Bry_.Empty);} public byte[] Read_bry_or_null(String key) {return Read_bry_or(Bry_.new_u8(key), null);} public byte[] Read_bry_or_null(byte[] key) {return Read_bry_or(key, null);} + public byte[] Read_bry_or(String key, byte[] or) {return Read_bry_or(Bry_.new_u8(key), or);} public byte[] Read_bry_or(byte[] key, byte[] or) { Gfo_qarg_itm arg = (Gfo_qarg_itm)hash.Get_by_bry(key); return arg == null ? or : arg.Val_bry(); diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/cbks/Xosearch_fulltext_svc.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/cbks/Xosearch_fulltext_svc.java index 9d897704d..2d7347ef5 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/cbks/Xosearch_fulltext_svc.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/cbks/Xosearch_fulltext_svc.java @@ -39,14 +39,16 @@ class Xosearch_fulltext_svc implements Gfo_invk { Xocfg_mgr cfg_mgr = app.Cfg(); Xosearch_search_args thread_args = Xosearch_search_args.New_by_json(args); - - cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.case_match", thread_args.case_match); - cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.auto_wildcard_bgn", thread_args.auto_wildcard_bgn); - cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.auto_wildcard_end", thread_args.auto_wildcard_end); - cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.expand_matches_section", thread_args.expand_matches_section); - cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.show_all_matches", thread_args.show_all_matches); - cfg_mgr.Get_int_app_or ("xowa.addon.search.fulltext.special.max_pages_per_wiki", thread_args.max_pages_per_wiki); - cfg_mgr.Get_str_app_or ("xowa.addon.search.fulltext.special.namespaces", thread_args.namespaces); + + if (cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.options.autosave_enabled", true)) { + cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.case_match", thread_args.case_match); + cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.auto_wildcard_bgn", thread_args.auto_wildcard_bgn); + cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.auto_wildcard_end", thread_args.auto_wildcard_end); + cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.expand_matches_section", thread_args.expand_matches_section); + cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.show_all_matches", thread_args.show_all_matches); + cfg_mgr.Get_int_app_or ("xowa.addon.search.fulltext.special.max_pages_per_wiki", thread_args.max_pages_per_wiki); + cfg_mgr.Get_str_app_or ("xowa.addon.search.fulltext.special.namespaces", thread_args.namespaces); + } gplx.core.threads.Thread_adp_.Start_by_val("search", Cancelable_.Never, this, Invk__search, thread_args); } diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_doc.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_doc.java index 2f596457f..a8d981e65 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_doc.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_doc.java @@ -16,14 +16,16 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt package gplx.xowa.addons.wikis.searchs.fulltexts.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.searchs.*; import gplx.xowa.addons.wikis.searchs.fulltexts.*; import gplx.langs.mustaches.*; public class Xosearch_fulltext_doc implements Mustache_doc_itm { + private final byte[] query; private final boolean case_match, auto_wildcard_bgn, auto_wildcard_end, expand_matches_section, show_all_matches; private final int max_pages_per_wiki; private final String wikis, namespaces; public Xosearch_fulltext_doc - ( boolean case_match, boolean auto_wildcard_bgn, boolean auto_wildcard_end + ( byte[] query, boolean case_match, boolean auto_wildcard_bgn, boolean auto_wildcard_end , boolean expand_matches_section, boolean show_all_matches , int max_pages_per_wiki , String wikis, String namespaces) { + this.query = query; this.case_match = case_match; this.auto_wildcard_bgn = auto_wildcard_bgn; this.auto_wildcard_end = auto_wildcard_end; @@ -40,6 +42,8 @@ public class Xosearch_fulltext_doc implements Mustache_doc_itm { bfr.Add_str_u8(namespaces); else if (String_.Eq(key, "max_pages_per_wiki")) bfr.Add_int(max_pages_per_wiki); + else if (String_.Eq(key, "query")) + bfr.Add_bry(query); else return false; return true; diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_html.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_html.java index 035e0bdcf..b6b16c6ef 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_html.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_html.java @@ -17,14 +17,16 @@ package gplx.xowa.addons.wikis.searchs.fulltexts.specials; import gplx.*; import import gplx.xowa.specials.*; import gplx.langs.mustaches.*; import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.pages.tags.*; import gplx.dbs.*; class Xosearch_fulltext_html extends Xow_special_wtr__base { + private final byte[] query; private final boolean case_match, auto_wildcard_bgn, auto_wildcard_end, expand_matches_section, show_all_matches; private final int max_pages_per_wiki; private final String wikis, namespaces; public Xosearch_fulltext_html - ( boolean case_match, boolean auto_wildcard_bgn, boolean auto_wildcard_end + ( byte[] query, boolean case_match, boolean auto_wildcard_bgn, boolean auto_wildcard_end , boolean expand_matches_section, boolean show_all_matches , int max_pages_per_wiki , String wikis, String namespaces) { + this.query = query; this.case_match = case_match; this.auto_wildcard_bgn = auto_wildcard_bgn; this.auto_wildcard_end = auto_wildcard_end; @@ -38,7 +40,7 @@ class Xosearch_fulltext_html extends Xow_special_wtr__base { @Override protected Io_url Get_mustache_fil(Io_url addon_dir) {return addon_dir.GenSubFil_nest("bin", "xosearch_fulltext.template.html");} @Override protected Mustache_doc_itm Bld_mustache_root(Xoa_app app) { return new Xosearch_fulltext_doc - ( case_match, auto_wildcard_bgn, auto_wildcard_end + ( query, case_match, auto_wildcard_bgn, auto_wildcard_end , expand_matches_section, show_all_matches , max_pages_per_wiki, wikis, namespaces); } diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_special.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_special.java index 18bcca991..5bcc7c283 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_special.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/fulltexts/specials/Xosearch_fulltext_special.java @@ -18,11 +18,15 @@ import gplx.xowa.specials.*; import gplx.core.net.qargs.*; import gplx.xowa.addons.apps.cfgs.*; public class Xosearch_fulltext_special implements Xow_special_page { public void Special__gen(Xow_wiki wiki, Xoa_page page, Xoa_url url, Xoa_ttl ttl) { -// Gfo_qarg_mgr url_args = new Gfo_qarg_mgr().Init(url.Qargs_ary()); + // get qry if any + Gfo_qarg_mgr url_args = new Gfo_qarg_mgr().Init(url.Qargs_ary()); + byte[] query = url_args.Read_bry_or("query", Bry_.Empty); + // get options and create page Xocfg_mgr cfg_mgr = wiki.App().Cfg(); new Xosearch_fulltext_html - ( cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.case_match", false) + ( query + , cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.case_match", false) , cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.auto_wildcard_bgn", false) , cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.auto_wildcard_end", false) , cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.expand_matches_section", false)