mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Full-text search: Add autosave options; read query from url args
This commit is contained in:
parent
37b78543af
commit
062d958ead
@ -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_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(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_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) {
|
public byte[] Read_bry_or(byte[] key, byte[] or) {
|
||||||
Gfo_qarg_itm arg = (Gfo_qarg_itm)hash.Get_by_bry(key);
|
Gfo_qarg_itm arg = (Gfo_qarg_itm)hash.Get_by_bry(key);
|
||||||
return arg == null ? or : arg.Val_bry();
|
return arg == null ? or : arg.Val_bry();
|
||||||
|
@ -39,14 +39,16 @@ class Xosearch_fulltext_svc implements Gfo_invk {
|
|||||||
|
|
||||||
Xocfg_mgr cfg_mgr = app.Cfg();
|
Xocfg_mgr cfg_mgr = app.Cfg();
|
||||||
Xosearch_search_args thread_args = Xosearch_search_args.New_by_json(args);
|
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);
|
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.auto_wildcard_bgn", thread_args.auto_wildcard_bgn);
|
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_end", thread_args.auto_wildcard_end);
|
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.expand_matches_section", thread_args.expand_matches_section);
|
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.show_all_matches", thread_args.show_all_matches);
|
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.expand_matches_section", thread_args.expand_matches_section);
|
||||||
cfg_mgr.Get_int_app_or ("xowa.addon.search.fulltext.special.max_pages_per_wiki", thread_args.max_pages_per_wiki);
|
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.show_all_matches", thread_args.show_all_matches);
|
||||||
cfg_mgr.Get_str_app_or ("xowa.addon.search.fulltext.special.namespaces", thread_args.namespaces);
|
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);
|
gplx.core.threads.Thread_adp_.Start_by_val("search", Cancelable_.Never, this, Invk__search, thread_args);
|
||||||
}
|
}
|
||||||
|
@ -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.*;
|
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.*;
|
import gplx.langs.mustaches.*;
|
||||||
public class Xosearch_fulltext_doc implements Mustache_doc_itm {
|
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 boolean case_match, auto_wildcard_bgn, auto_wildcard_end, expand_matches_section, show_all_matches;
|
||||||
private final int max_pages_per_wiki;
|
private final int max_pages_per_wiki;
|
||||||
private final String wikis, namespaces;
|
private final String wikis, namespaces;
|
||||||
public Xosearch_fulltext_doc
|
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
|
, boolean expand_matches_section, boolean show_all_matches
|
||||||
, int max_pages_per_wiki
|
, int max_pages_per_wiki
|
||||||
, String wikis, String namespaces) {
|
, String wikis, String namespaces) {
|
||||||
|
this.query = query;
|
||||||
this.case_match = case_match;
|
this.case_match = case_match;
|
||||||
this.auto_wildcard_bgn = auto_wildcard_bgn;
|
this.auto_wildcard_bgn = auto_wildcard_bgn;
|
||||||
this.auto_wildcard_end = auto_wildcard_end;
|
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);
|
bfr.Add_str_u8(namespaces);
|
||||||
else if (String_.Eq(key, "max_pages_per_wiki"))
|
else if (String_.Eq(key, "max_pages_per_wiki"))
|
||||||
bfr.Add_int(max_pages_per_wiki);
|
bfr.Add_int(max_pages_per_wiki);
|
||||||
|
else if (String_.Eq(key, "query"))
|
||||||
|
bfr.Add_bry(query);
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
|
@ -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.xowa.specials.*; import gplx.langs.mustaches.*; import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.pages.tags.*;
|
||||||
import gplx.dbs.*;
|
import gplx.dbs.*;
|
||||||
class Xosearch_fulltext_html extends Xow_special_wtr__base {
|
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 boolean case_match, auto_wildcard_bgn, auto_wildcard_end, expand_matches_section, show_all_matches;
|
||||||
private final int max_pages_per_wiki;
|
private final int max_pages_per_wiki;
|
||||||
private final String wikis, namespaces;
|
private final String wikis, namespaces;
|
||||||
public Xosearch_fulltext_html
|
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
|
, boolean expand_matches_section, boolean show_all_matches
|
||||||
, int max_pages_per_wiki
|
, int max_pages_per_wiki
|
||||||
, String wikis, String namespaces) {
|
, String wikis, String namespaces) {
|
||||||
|
this.query = query;
|
||||||
this.case_match = case_match;
|
this.case_match = case_match;
|
||||||
this.auto_wildcard_bgn = auto_wildcard_bgn;
|
this.auto_wildcard_bgn = auto_wildcard_bgn;
|
||||||
this.auto_wildcard_end = auto_wildcard_end;
|
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 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) {
|
@Override protected Mustache_doc_itm Bld_mustache_root(Xoa_app app) {
|
||||||
return new Xosearch_fulltext_doc
|
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
|
, expand_matches_section, show_all_matches
|
||||||
, max_pages_per_wiki, wikis, namespaces);
|
, max_pages_per_wiki, wikis, namespaces);
|
||||||
}
|
}
|
||||||
|
@ -18,11 +18,15 @@ import gplx.xowa.specials.*; import gplx.core.net.qargs.*;
|
|||||||
import gplx.xowa.addons.apps.cfgs.*;
|
import gplx.xowa.addons.apps.cfgs.*;
|
||||||
public class Xosearch_fulltext_special implements Xow_special_page {
|
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) {
|
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();
|
Xocfg_mgr cfg_mgr = wiki.App().Cfg();
|
||||||
new Xosearch_fulltext_html
|
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_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.auto_wildcard_end", false)
|
||||||
, cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.expand_matches_section", false)
|
, cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.expand_matches_section", false)
|
||||||
|
Loading…
Reference in New Issue
Block a user