mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.6.3.3'
This commit is contained in:
@@ -40,6 +40,7 @@ public class Xowv_wiki implements Xow_wiki, Xow_ttl_parser, Gfo_invk {
|
||||
this.domain_tid = domain_itm.Domain_type_id();
|
||||
this.domain_abrv = Xow_abrv_wm_.To_abrv(Xow_domain_itm_.parse(domain_bry));
|
||||
this.ns_mgr = Xow_ns_mgr_.default_(app.Utl_case_mgr());
|
||||
this.lang = app.Lang_mgr().Get_by(domain_itm.Lang_actl_key());
|
||||
this.html__hdump_mgr = new Xow_hdump_mgr(this);
|
||||
this.special_mgr = new Xosp_special_mgr(this);
|
||||
this.fsys_mgr = new Xow_fsys_mgr(wiki_root_dir, app.Fsys_mgr().File_dir().GenSubDir(domain_str));
|
||||
@@ -70,14 +71,14 @@ public class Xowv_wiki implements Xow_wiki, Xow_ttl_parser, Gfo_invk {
|
||||
public Xoh_page_wtr_mgr Html__wtr_mgr() {return html__wtr_mgr;} private final Xoh_page_wtr_mgr html__wtr_mgr = new Xoh_page_wtr_mgr(Bool_.Y);
|
||||
public Xow_mw_parser_mgr Mw_parser_mgr() {return mw_parser_mgr;} private final Xow_mw_parser_mgr mw_parser_mgr = new Xow_mw_parser_mgr();
|
||||
public Xow_wiki_props Props() {return props;} private final Xow_wiki_props props = new Xow_wiki_props();
|
||||
public Xol_lang_itm Lang() {throw Err_.new_unimplemented();}
|
||||
public Xol_lang_itm Lang() {return lang;} private final Xol_lang_itm lang;
|
||||
public Xol_case_mgr Case_mgr() {if (case_mgr == null) case_mgr = Xol_case_mgr_.U8(); return case_mgr;} private Xol_case_mgr case_mgr;
|
||||
public Xow_site_stats_mgr Stats() {return stats;} private final Xow_site_stats_mgr stats;
|
||||
public Xow_url_parser Utl__url_parser() {return url__parser;} private final Xow_url_parser url__parser;
|
||||
public Xoax_addon_mgr Addon_mgr() {return addon_mgr;} private final Xoax_addon_mgr addon_mgr = new Xoax_addon_mgr();
|
||||
public Xosp_special_mgr Special_mgr() {return special_mgr;} private Xosp_special_mgr special_mgr;
|
||||
public Xow_xwiki_mgr Xwiki_mgr() {return xwiki_mgr;} private final Xow_xwiki_mgr xwiki_mgr;
|
||||
public Xoav_app Appv() {return app;} private final Xoav_app app;
|
||||
public Xow_xwiki_mgr Xwiki_mgr() {return xwiki_mgr;} private final Xow_xwiki_mgr xwiki_mgr;
|
||||
public Xoav_app Appv() {return app;} private final Xoav_app app;
|
||||
public void Init_by_wiki() {
|
||||
if (!init_needed) return;
|
||||
init_needed = false;
|
||||
|
||||
@@ -150,7 +150,7 @@ public class Xowd_page_tbl implements Rls_able {
|
||||
Xowd_page_tbl__ttl_ns wkr = new Xowd_page_tbl__ttl_ns();
|
||||
wkr.Fill_idx_fields_only_(fill_idx_fields_only);
|
||||
wkr.Ctor(this, tbl_name, fld_title);
|
||||
wkr.Init(ns_mgr, rv);
|
||||
wkr.Init(this, ns_mgr, rv);
|
||||
wkr.Select_in(cancelable, conn, bgn, end);
|
||||
}
|
||||
public boolean Select_in__id(Cancelable cancelable, List_adp rv) {return Select_in__id(cancelable, false, rv, 0, rv.Count());}
|
||||
|
||||
@@ -20,9 +20,13 @@ import gplx.core.criterias.*;
|
||||
import gplx.dbs.*; import gplx.dbs.utls.*;
|
||||
import gplx.xowa.wikis.nss.*;
|
||||
class Xowd_page_tbl__ttl_ns extends Xowd_page_tbl__in_wkr__base {
|
||||
private Xowd_page_tbl page_tbl;
|
||||
private Xow_ns_mgr ns_mgr; private Ordered_hash hash;
|
||||
@Override protected int Interval() {return 64;} // NOTE: 96+ overflows; PAGE:en.w:Space_Liability_Convention; DATE:2013-10-24
|
||||
public void Init(Xow_ns_mgr ns_mgr, Ordered_hash hash) {this.ns_mgr = ns_mgr; this.hash = hash;}
|
||||
public void Init(Xowd_page_tbl page_tbl, Xow_ns_mgr ns_mgr, Ordered_hash hash) {
|
||||
this.page_tbl = page_tbl;
|
||||
this.ns_mgr = ns_mgr; this.hash = hash;
|
||||
}
|
||||
@Override protected Criteria In_filter(Object[] part_ary) {
|
||||
int len = part_ary.length;
|
||||
Criteria[] crt_ary = new Criteria[len];
|
||||
@@ -34,8 +38,8 @@ class Xowd_page_tbl__ttl_ns extends Xowd_page_tbl__in_wkr__base {
|
||||
@Override protected void Fill_stmt(Db_stmt stmt, int bgn, int end) {
|
||||
for (int i = bgn; i < end; i++) {
|
||||
Xowd_page_itm page = (Xowd_page_itm)hash.Get_at(i);
|
||||
stmt.Val_int(page.Ns_id());
|
||||
stmt.Val_bry_as_str(page.Ttl_page_db());
|
||||
stmt.Crt_int(page_tbl.Fld_page_ns(), page.Ns_id());
|
||||
stmt.Crt_bry_as_str(page_tbl.Fld_page_title(), page.Ttl_page_db());
|
||||
}
|
||||
}
|
||||
@Override public Xowd_page_itm Read_data_to_page(Xowd_page_itm rdr_page) {
|
||||
|
||||
@@ -44,7 +44,7 @@ public class Xowd_text_tbl implements Rls_able {
|
||||
}
|
||||
public byte[] Select(int page_id) {
|
||||
if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, flds, fld_page_id);
|
||||
Db_rdr rdr = stmt_select.Clear().Val_int(fld_page_id, page_id).Exec_select__rls_manual();
|
||||
Db_rdr rdr = stmt_select.Clear().Crt_int(fld_page_id, page_id).Exec_select__rls_manual();
|
||||
try {
|
||||
byte[] rv = Bry_.Empty;
|
||||
if (rdr.Move_next()) {
|
||||
|
||||
@@ -26,7 +26,8 @@ public class Xopg_lnki_list {
|
||||
}
|
||||
public boolean Disabled() {return disabled;} private final boolean disabled;
|
||||
public int Len() {return list.Len();}
|
||||
public Xopg_lnki_itm Get_at(int i) {return (Xop_lnki_tkn)list.Get_at(i);}
|
||||
public Xopg_lnki_itm Get_at(int i) {return (Xopg_lnki_itm)list.Get_at(i);}
|
||||
public void Add_direct(Xopg_lnki_itm lnki) {list.Add(lnki);} // add lnki directly to list without changing html_uid; needed for hdumps which call "Fill_page" to transfer from Xoh_page to Xoae_page
|
||||
public void Add(Xopg_lnki_itm lnki) {
|
||||
if (disabled) return;
|
||||
Xoa_ttl ttl = lnki.Ttl(); if (ttl == null) return; // ttl is null for invalid links
|
||||
|
||||
@@ -23,6 +23,7 @@ public class Xopg_redlink_mgr implements Gfo_invk {
|
||||
private final Xoa_page page; private final Xog_js_wkr js_wkr;
|
||||
public Xopg_redlink_mgr(Xoa_page page, Xog_js_wkr js_wkr) {this.page = page; this.js_wkr = js_wkr; }
|
||||
private void Redlink() {
|
||||
// init; exit if redlink disabled (on Module pages)
|
||||
Xopg_lnki_list lnki_list = page.Redlink_list(); if (lnki_list.Disabled()) return;
|
||||
Gfo_usr_dlg usr_dlg = Gfo_usr_dlg_.Instance;
|
||||
Xow_wiki wiki = page.Wiki();
|
||||
@@ -84,4 +85,11 @@ public class Xopg_redlink_mgr implements Gfo_invk {
|
||||
return this;
|
||||
} public static final String Invk_run = "run";
|
||||
private static final int Batch_size = 32;
|
||||
|
||||
public static void Run_async(Xoa_page pg, Xog_js_wkr js_wkr) {
|
||||
try {
|
||||
Xopg_redlink_mgr mgr = new Xopg_redlink_mgr(pg, js_wkr);
|
||||
gplx.core.threads.Thread_adp_.Start_by_key(gplx.xowa.apps.Xoa_thread_.Key_page_redlink, mgr, gplx.xowa.wikis.pages.lnkis.Xopg_redlink_mgr.Invk_run);
|
||||
} catch (Exception e) {Gfo_usr_dlg_.Instance.Warn_many("", "", "page.thread.redlinks: page=~{0} err=~{1}", pg.Ttl().Raw(), Err_.Message_gplx_full(e));}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user