1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

'v3.6.3.1'

This commit is contained in:
gnosygnu
2016-06-19 23:58:10 -04:00
parent 96636f3161
commit d4e8590345
1960 changed files with 20790 additions and 9272 deletions

View File

@@ -27,7 +27,7 @@ public class Pf_func_ {
public static byte[] Eval_arg_or(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, int self_args_len, int i, byte[] or) {
if (i >= self_args_len) return or;
Arg_nde_tkn nde = self.Args_get_by_idx(i);
Bry_bfr bfr = Bry_bfr.new_();
Bry_bfr bfr = Bry_bfr_.New();
Eval_arg_or(bfr, ctx, src, caller, self, nde, or);
return bfr.To_bry_and_clear_and_trim();
}
@@ -38,7 +38,7 @@ public class Pf_func_ {
}
public static byte[] Eval_val_or(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, int self_args_len, int i, byte[] or) {
if (i >= self_args_len) return or;
Bry_bfr bfr = Bry_bfr.new_();
Bry_bfr bfr = Bry_bfr_.New();
Arg_nde_tkn nde = self.Args_get_by_idx(i);
nde.Val_tkn().Tmpl_evaluate(ctx, src, caller, bfr);
return bfr.To_bry_and_clear_and_trim();
@@ -76,7 +76,7 @@ public class Pf_func_ {
public static int[] Ary_get(Xow_domain_itm domain_itm, boolean wmf) {
if (wmf && domain_itm != null && domain_itm.Domain_type().Tid() != Xow_domain_tid_.Int__home) return Ary_wmf;
if (Ary_nonwmf == null) {
List_adp list = List_adp_.new_();
List_adp list = List_adp_.New();
int len = Ary_wmf.length;
for (int i = 0; i < len; ++i) {
list.Add(Ary_wmf[i]);

View File

@@ -34,7 +34,7 @@ public abstract class Pf_func_base implements Pf_func {
Arg_itm_tkn name_val_tkn = self.Name_tkn().Val_tkn();
int subs_len = name_val_tkn.Subs_len();
if (subs_len > 0) {
Bry_bfr tmp = Bry_bfr.new_();
Bry_bfr tmp = Bry_bfr_.New();
for (int i = 0; i < subs_len; i++)
name_val_tkn.Subs_get(i).Tmpl_evaluate(ctx, src, caller, tmp);
argx_dat = tmp.To_bry_and_clear_and_trim();
@@ -60,7 +60,7 @@ public abstract class Pf_func_base implements Pf_func {
}
}
else {
Bry_bfr tmp = Bry_bfr.new_();
Bry_bfr tmp = Bry_bfr_.New();
for (int i = 0; i < subs_len; i++)
name_val_tkn.Subs_get(i).Tmpl_evaluate(ctx, src, caller, tmp);
argx_dat = tmp.To_bry_and_clear_and_trim();
@@ -68,5 +68,5 @@ public abstract class Pf_func_base implements Pf_func {
}
return argx_dat;
}
public static final byte[] Eval_arg_or_null_is_null = null, Eval_arg_or_null_is_empty = Bry_.Empty;
public static final byte[] Eval_arg_or_null_is_null = null, Eval_arg_or_null_is_empty = Bry_.Empty;
}

View File

@@ -23,8 +23,8 @@ public class Pfunc_expr_shunter {
Btrie_fast_mgr trie = expression_();
Val_stack val_stack = new Val_stack();
Func_tkn_stack prc_stack = new Func_tkn_stack();
public static final Decimal_adp Null_rslt = null;
public Bry_bfr Err() {return err_bfr;} Bry_bfr err_bfr = Bry_bfr.new_();
public static final Decimal_adp Null_rslt = null;
public Bry_bfr Err() {return err_bfr;} Bry_bfr err_bfr = Bry_bfr_.New();
public Decimal_adp Err_set(Xop_ctx ctx, int msgId) {return Err_set(ctx, msgId, Bry_.Empty);}
public Decimal_adp Err_set(Xop_ctx ctx, int msg_id, byte[] arg) {
byte[] msg_val = ctx.Wiki().Msg_mgr().Val_by_id(msg_id);
@@ -32,7 +32,7 @@ public class Pfunc_expr_shunter {
tmp_fmtr.Fmt_(msg_val).Bld_bfr_one(err_bfr, arg);
err_bfr.Add(Err_end_ary);
return Null_rslt;
} static final byte[] Err_bgn_ary = Bry_.new_a7("<strong class=\"error\">"), Err_end_ary = Bry_.new_a7("</strong>"); Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_();
} static final byte[] Err_bgn_ary = Bry_.new_a7("<strong class=\"error\">"), Err_end_ary = Bry_.new_a7("</strong>"); Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_();
public void Rslt_set(byte[] bry) {
err_bfr.Add(bry);
}
@@ -218,5 +218,5 @@ public class Pfunc_expr_shunter {
return rv;
}
private static void Trie_add(Btrie_fast_mgr trie, Expr_tkn tkn) {trie.Add(tkn.Val_ary(), tkn);}
public static final Pfunc_expr_shunter Instance = new Pfunc_expr_shunter(); Pfunc_expr_shunter() {}
public static final Pfunc_expr_shunter Instance = new Pfunc_expr_shunter(); Pfunc_expr_shunter() {}
}

View File

@@ -24,7 +24,7 @@ public class Xop_xowa_dbg extends Pf_func_base {
bfr.Add(argx);
Argx_list.Add(argx);
}
public static final List_adp Argx_list = List_adp_.new_();
public static final List_adp Argx_list = List_adp_.New();
@Override public int Id() {return Xol_kwd_grp_.Id_xowa_dbg;}
@Override public Pf_func New(int id, byte[] name) {return new Xop_xowa_dbg().Name_(name);}
}

View File

@@ -48,12 +48,12 @@ public class Pfunc_gender extends Pf_func_base {
int user_name_len = user_name.length;
switch (user_name_len) {
case 0: return Xol_gender_.Tid_unknown; // EX: {{gender:|m|f}}
case 1: if (user_name[0] == Byte_ascii.Dot) return Xol_gender_.Tid_unknown; break; // EX: {{gender:.|m|f}}; TODO: should define default gender for wiki
case 1: if (user_name[0] == Byte_ascii.Dot) return Xol_gender_.Tid_unknown; break; // EX: {{gender:.|m|f}}; TODO_OLD: should define default gender for wiki
}
Object o = gender_cache.Get_by_bry(user_name);
return o == null ? user.Gender() : ((Int_obj_val)o).Val();
}
private static final Hash_adp_bry gender_cache = Hash_adp_bry.cs() // for tests
private static final Hash_adp_bry gender_cache = Hash_adp_bry.cs() // for tests
.Add_str_int("xowa_male" , Xol_gender_.Tid_male)
.Add_str_int("xowa_female" , Xol_gender_.Tid_female)
;

View File

@@ -20,7 +20,7 @@ import gplx.xowa.langs.*; import gplx.xowa.langs.kwds.*;
import gplx.xowa.wikis.pages.*; import gplx.xowa.parsers.*; import gplx.xowa.parsers.tmpls.*;
public class Pfunc_rev_props extends Pf_func_base {
public Pfunc_rev_props(int id) {this.id = id;}
@Override public int Id() {return id;} private final int id;
@Override public int Id() {return id;} private final int id;
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_rev_props(id).Name_(name);}
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] argx = Eval_argx(ctx, src, caller, self);
@@ -41,7 +41,7 @@ public class Pfunc_rev_props extends Pf_func_base {
bfr.Add_byte(Byte_ascii.Num_0);
return;
}
Xoae_page argx_page = ctx.Wiki().Data_mgr().Get_page(argx_ttl, false);
Xoae_page argx_page = ctx.Wiki().Data_mgr().Load_page_by_ttl(argx_ttl);
if (!argx_page.Missing()) {
bfr.Add_int_variable(argx_page.Data_raw().length);
return;
@@ -52,5 +52,5 @@ public class Pfunc_rev_props extends Pf_func_base {
default: throw Err_.new_unhandled(id);
}
}
public static final Pfunc_rev_props Instance = new Pfunc_rev_props(-1);
public static final Pfunc_rev_props Instance = new Pfunc_rev_props(-1);
}

View File

@@ -18,10 +18,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.xtns.pfuncs.scribunto; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
import gplx.xowa.xtns.scribunto.*;
public class Pfunc_xtn_mgr extends Xox_mgr_base {
@Override public byte[] Xtn_key() {return XTN_KEY;} public static final byte[] XTN_KEY = Bry_.new_a7("ParserFunctions");
@Override public byte[] Xtn_key() {return XTN_KEY;} public static final byte[] XTN_KEY = Bry_.new_a7("ParserFunctions");
@Override public void Xtn_init_by_app(Xoae_app app) {
Scrib_xtn_mgr scrib_xtn = (Scrib_xtn_mgr)app.Xtn_mgr().Get_or_fail(Scrib_xtn_mgr.XTN_KEY);
scrib_xtn.Lib_mgr().Add(new Pfunc_scrib_lib());
}
@Override public Xox_mgr Clone_new() {return new Pfunc_xtn_mgr();}
@Override public Xox_mgr Xtn_clone_new() {return new Pfunc_xtn_mgr();}
}

View File

@@ -44,7 +44,7 @@ public class Pfunc_tag extends Pf_func_base {
}
}
tmp.Add_byte(Byte_ascii.Gt);
if (args_len > 0) // TODO: trim should not be called on content; WHEN: adding src[] back to tmpl_eval
if (args_len > 0) // TODO_OLD: trim should not be called on content; WHEN: adding src[] back to tmpl_eval
tmp.Add(Pf_func_.Eval_arg_or_empty(ctx, src, caller, self, args_len, 0));
tmp.Add_byte(Byte_ascii.Lt).Add_byte(Byte_ascii.Slash).Add(tag_name).Add_byte(Byte_ascii.Gt);
if (tag_is_ref) // <ref>; add <xtag_end> to handle nested refs; PAGE:en.w:Battle_of_Midway; DATE:2014-06-27
@@ -58,7 +58,7 @@ public class Pfunc_tag extends Pf_func_base {
, Xtag_bgn = 14 // <xtag_bgn id='
, Id_len = 10
;
public static final byte[]
public static final byte[]
Xtag_bgn_lhs = Bry_.new_a7("<xtag_bgn id='")
, Xtag_end_lhs = Bry_.new_a7("<xtag_end id='")
, Xtag_rhs = Bry_.new_a7("'/>")

View File

@@ -56,7 +56,7 @@ public class Pft_fmt_itm_ {
, Tid_hijiri_month_name = 33
;
public static final Pft_fmt_itm
public static final Pft_fmt_itm
Year_len4 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_year , 4, Bool_.Y)
, Year_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_year , 2, Bool_.Y)
, Month_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_month , 2, Bool_.Y)
@@ -110,7 +110,7 @@ public class Pft_fmt_itm_ {
, Hijiri_day_idx = new Pft_fmt_itm_hijiri_day_idx()
, Hijiri_month_name = new Pft_fmt_itm_hijiri_month_name()
;
public static final Btrie_fast_mgr Regy = Btrie_fast_mgr.cs()
public static final Btrie_fast_mgr Regy = Btrie_fast_mgr.cs()
.Add(Byte_ascii.Ltr_Y , Pft_fmt_itm_.Year_len4) // 2012
.Add(Byte_ascii.Ltr_y , Pft_fmt_itm_.Year_len2) // 12
.Add(Byte_ascii.Ltr_L , Pft_fmt_itm_.Year_isLeap) // 1,0
@@ -161,7 +161,7 @@ public class Pft_fmt_itm_ {
.Add("xmF" , Pft_fmt_itm_.Hijiri_month_name)
.Add("xmn" , Pft_fmt_itm_.Hijiri_month_idx)
.Add("xmY" , Pft_fmt_itm_.Hijiri_year_idx)
// TODO: space; "
// TODO_OLD: space; "
;
public static Pft_fmt_itm[] Parse(Xop_ctx ctx, byte[] fmt) {
Btrie_fast_mgr trie = Pft_fmt_itm_.Regy;
@@ -211,5 +211,5 @@ public class Pft_fmt_itm_ {
}
if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(fmt_len - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(fmt[fmt_len - 1]) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, fmt_len)); raw_bgn = String_.Pos_neg1;}
return (Pft_fmt_itm[])fmt_itms.To_ary(Pft_fmt_itm.class);
} private static List_adp fmt_itms = List_adp_.new_();
} private static List_adp fmt_itms = List_adp_.New();
}

View File

@@ -30,7 +30,7 @@ class Pft_fmt_itm_seg_int implements Pft_fmt_itm {
class Pft_fmt_itm_raw implements Pft_fmt_itm {
public int TypeId() {return Pft_fmt_itm_.Tid_raw;}
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
// TODO: should flag .Raw() on bldr to skip transliterating numerals in foreign languages; DATE:2013-12-31
// TODO_OLD: should flag .Raw() on bldr to skip transliterating numerals in foreign languages; DATE:2013-12-31
}
}
class Pft_fmt_itm_seg_str implements Pft_fmt_itm {
@@ -90,7 +90,7 @@ class Pft_fmt_itm_am_pm implements Pft_fmt_itm {
else if (!am && lower) val = Ary_pm_lower;
else if (!am && !lower) val = Ary_pm_upper;
bfr.Add(val);
} static final byte[] Ary_am_upper = Bry_.new_a7("AM"), Ary_pm_upper = Bry_.new_a7("PM"), Ary_am_lower = Bry_.new_a7("am"), Ary_pm_lower = Bry_.new_a7("pm");
} static final byte[] Ary_am_upper = Bry_.new_a7("AM"), Ary_pm_upper = Bry_.new_a7("PM"), Ary_am_lower = Bry_.new_a7("am"), Ary_pm_lower = Bry_.new_a7("pm");
public Pft_fmt_itm_am_pm(boolean lower) {this.lower = lower;} private boolean lower;
}
class Pft_fmt_itm_dow_base0 implements Pft_fmt_itm {
@@ -120,7 +120,7 @@ class Pft_fmt_itm_rfc_5322 implements Pft_fmt_itm {
bfr.Add_byte(Byte_ascii.Comma).Add_byte(Byte_ascii.Space);
bfr.Add_str_a7(date.XtoStr_fmt("dd MMM yyyy HH:mm:ss")); // NOTE: always UTC time
bfr.Add(CONST_timezone); // NOTE: always UTC time zone
} static final byte[] CONST_timezone = Bry_.new_a7(" +0000");
} static final byte[] CONST_timezone = Bry_.new_a7(" +0000");
}
class Pft_fmt_itm_timezone_offset implements Pft_fmt_itm {
public Pft_fmt_itm_timezone_offset() {}

View File

@@ -28,7 +28,7 @@ public class Pft_func_time extends Pf_func_base {
Pft_fmt_itm[] fmt_ary = Pft_fmt_itm_.Parse(ctx, arg_fmt);
byte[] arg_date = Pf_func_.Eval_arg_or_empty(ctx, src, caller, self, self_args_len, 0);
byte[] arg_lang = Pf_func_.Eval_arg_or_empty(ctx, src, caller, self, self_args_len, 1);
Bry_bfr error_bfr = Bry_bfr.new_();
Bry_bfr error_bfr = Bry_bfr_.New();
DateAdp date = ParseDate(arg_date, utc, error_bfr);
if (date == null || error_bfr.Len() > 0)
bfr.Add_str_a7("<strong class=\"error\">").Add_bfr_and_clear(error_bfr).Add_str_a7("</strong>");
@@ -56,7 +56,7 @@ public class Pft_func_time extends Pf_func_base {
return null;
}
}
public static final Pft_func_time _Lcl = new Pft_func_time(false), _Utc = new Pft_func_time(true);
public static final Pft_func_time _Lcl = new Pft_func_time(false), _Utc = new Pft_func_time(true);
}
class DateAdpTranslator_xapp {
public static void Translate(Xowe_wiki wiki, Xol_lang_itm lang, int type, int val, Bry_bfr bb) {

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*;
class Pft_func_time_foreign_fxt {
private final Xop_fxt fxt = new Xop_fxt();
private final Xop_fxt fxt = new Xop_fxt();
public void Clear() {
fxt.Reset();
Tfds.Now_set(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));
@@ -35,7 +35,7 @@ class Pft_func_time_foreign_fxt {
fxt.Test_parse_tmpl_str_test(raw, "{{test}}", expd);
}
public void Test_Roman(int v, String expd) {
Bry_bfr bfr = Bry_bfr.new_(16);
Bry_bfr bfr = Bry_bfr_.New_w_size(16);
Pfxtp_roman.ToRoman(v, bfr);
String actl = bfr.To_str_and_clear();
Tfds.Eq(expd, actl);

View File

@@ -267,7 +267,7 @@ class Pxd_itm_int_ {
Pxd_itm itm = tkns[i];
switch (itm.Tkn_tid()) {
case Pxd_itm_.Tid_dash:
dash_itm = itm; // TODO: throw error if "--"; {{#time:U|@--1}}
dash_itm = itm; // TODO_OLD: throw error if "--"; {{#time:U|@--1}}
break;
case Pxd_itm_.Tid_int:
case Pxd_itm_.Tid_int_dmy_14:

View File

@@ -41,7 +41,7 @@ class Pxd_parser {
if (itm == null) return;
Bry_fmtr fmtr = itm.Fmtr();
fmtr.Bld_bfr(error_bfr, args);
} private Bry_bfr error_bfr = Bry_bfr.new_(32);
} private Bry_bfr error_bfr = Bry_bfr_.New_w_size(32);
public DateAdp Parse(byte[] src, Bry_bfr error_bfr) {
Tokenize(src); // NOTE: should check if Tokenize failed, but want to be liberal as date parser is not fully implemented; this will always default to 1st day of year; DATE:2014-03-27
return Evaluate(src, error_bfr);
@@ -171,15 +171,15 @@ class Pxd_parser_ {
}
return trie;
} static Btrie_slim_mgr trie;
private static final String[] Names_month_full = {"january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"};
private static final String[] Names_month_abrv = {"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"};
private static final String[] Names_month_roman = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"};
private static final String[] Names_day_suffix = {"st", "nd", "rd", "th"};
private static final String[] Names_day_full = {"sunday", "monday", "tuesday", "wednesday" , "thursday", "friday", "saturday"};
private static final String[] Names_day_abrv = {"sun", "mon", "tue", "wed" , "thu", "fri", "sat"};
//TODO:
//private static final String[] Names_day_text = {"weekday", "weekdays"};
//private static final String[] Names_ordinal_num = {"first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth", "tenth", "eleventh", "twelfth"};
private static final String[] Names_month_full = {"january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"};
private static final String[] Names_month_abrv = {"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"};
private static final String[] Names_month_roman = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"};
private static final String[] Names_day_suffix = {"st", "nd", "rd", "th"};
private static final String[] Names_day_full = {"sunday", "monday", "tuesday", "wednesday" , "thursday", "friday", "saturday"};
private static final String[] Names_day_abrv = {"sun", "mon", "tue", "wed" , "thu", "fri", "sat"};
//TODO_OLD:
//private static final String[] Names_day_text = {"weekday", "weekdays"};
//private static final String[] Names_ordinal_num = {"first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth", "tenth", "eleventh", "twelfth"};
private static void Init_unit(int seg_idx, String... name_ary) {Init_unit(seg_idx, 1, name_ary);}
private static void Init_unit(int seg_idx, int seg_val, String... name_ary) {
@@ -189,7 +189,7 @@ class Pxd_parser_ {
trie.Add_obj(name_bry, new Pxd_itm_unit(-1, name_bry, seg_idx, seg_val));
}
}
public static final byte[]
public static final byte[]
Unit_name_month = Bry_.new_a7("month")
, Unit_name_day = Bry_.new_a7("day")
, Unit_name_hour = Bry_.new_a7("hour")

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
import org.junit.*;
public class Pxd_parser_tst {
Bry_bfr bfr = Bry_bfr.new_(16); Pxd_parser parser = new Pxd_parser();
Bry_bfr bfr = Bry_bfr_.New_w_size(16); Pxd_parser parser = new Pxd_parser();
@Before public void init() {Tfds.Now_enabled_y_(); Tfds.Now_set(test_date);} DateAdp test_date = DateAdp_.parse_fmt("2012-02-27", "yyyy-MM-dd");
@After public void teardown() {Tfds.Now_enabled_n_();}
@Test public void Month_name_0__day__year() {tst_date_("Mar 2 2001" , "2001-03-02");} // y:Mar-02-2001;Mar.02.2001;Mar 02, 2001 n:Mar/02/2001;Feb,05,2011

View File

@@ -46,15 +46,15 @@ public class Pfunc_filepath extends Pf_func_base {
byte[] url = url_bldr.Init_for_trg_html(Xof_repo_itm_.Mode_orig, trg_repo, ttl_bry, xfer_itm.Orig_ttl_md5(), xfer_itm.Orig_ext(), Xof_img_size.Size__neg1, Xof_lnki_time.Null, Xof_lnki_page.Null).Xto_bry();
bfr.Add(url);
}
private static final Xof_xfer_itm xfer_itm = new Xof_xfer_itm();
private static final Xof_url_bldr url_bldr = new Xof_url_bldr();
private static final Xof_xfer_itm xfer_itm = new Xof_xfer_itm();
private static final Xof_url_bldr url_bldr = new Xof_url_bldr();
private static Xoae_page Load_page(Xowe_wiki wiki, Xoa_ttl ttl) {
Xoae_page page = wiki.Data_mgr().Get_page(ttl, false);
Xoae_page page = wiki.Data_mgr().Load_page_by_ttl(ttl);
if (page.Missing()) { // file not found in current wiki; try commons;
Xowe_wiki commons_wiki = (Xowe_wiki)wiki.Appe().Wiki_mgr().Get_by_or_null(wiki.Commons_wiki_key());
if (commons_wiki != null) { // commons_wiki not installed; exit; DATE:2013-06-08
if (!Env_.Mode_testing()) commons_wiki.Init_assert();// must assert load else page_zip never detected; DATE:2013-03-10
page = commons_wiki.Data_mgr().Get_page(ttl, false);
page = commons_wiki.Data_mgr().Load_page_by_ttl(ttl);
}
}
return page;

View File

@@ -21,8 +21,8 @@ import gplx.xowa.wikis.tdbs.*;
import gplx.xowa.files.*; import gplx.xowa.files.exts.*; import gplx.xowa.files.origs.*; import gplx.xowa.files.repos.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.ttls.*;
public class Pfunc_filepath_tst {
private final Xop_fxt fxt = new Xop_fxt();
private final Xofw_wiki_wkr_mock mock_wkr = new Xofw_wiki_wkr_mock();
private final Xop_fxt fxt = new Xop_fxt();
private final Xofw_wiki_wkr_mock mock_wkr = new Xofw_wiki_wkr_mock();
private Xowe_wiki en_wiki, commons_wiki;
@Before public void init() {
fxt.Reset();
@@ -49,7 +49,7 @@ public class Pfunc_filepath_tst {
}
@Test public void Wiki_is_commons() {
fxt.Init_page_create(commons_wiki, "File:A.png", "");
commons_wiki.Tdb_fsys_mgr().Tdb_dir_regy()[Xotdb_dir_info_.Tid_page].Ext_tid_(gplx.core.ios.Io_stream_.Tid_raw);
commons_wiki.Tdb_fsys_mgr().Tdb_dir_regy()[Xotdb_dir_info_.Tid_page].Ext_tid_(gplx.core.ios.streams.Io_stream_.Tid_raw);
mock_wkr.Redirect_("A.png", "A.png").Repo_idx_(1);
fxt.Test_parse_tmpl_str_test("{{filepath:A.png}}", "{{test}}", "file:///mem/xowa/file/commons/trg/orig/7/0/1/c/A.png");
}

View File

@@ -24,11 +24,11 @@ public class Pfunc_rel2abs extends Pf_func_base {
private static final byte[] Ary_dot_slash = Bry_.new_a7("./"), Ary_dot_dot = Bry_.new_a7(".."), Ary_dot_dot_slash = Bry_.new_a7("../");
private static void qry_bgns_with_init() {
qry_bgns_with = Btrie_fast_mgr.cs();
qry_bgns_with.Add(Byte_ascii.Slash, Int_obj_ref.new_(Id_slash));
qry_bgns_with.Add(Byte_ascii.Dot, Int_obj_ref.new_(Id_dot));
qry_bgns_with.Add(Ary_dot_slash, Int_obj_ref.new_(Id_dot_slash));
qry_bgns_with.Add(Ary_dot_dot, Int_obj_ref.new_(Id_dot_dot));
qry_bgns_with.Add(Ary_dot_dot_slash, Int_obj_ref.new_(Id_dot_dot_slash));
qry_bgns_with.Add(Byte_ascii.Slash, Int_obj_ref.New(Id_slash));
qry_bgns_with.Add(Byte_ascii.Dot, Int_obj_ref.New(Id_dot));
qry_bgns_with.Add(Ary_dot_slash, Int_obj_ref.New(Id_dot_slash));
qry_bgns_with.Add(Ary_dot_dot, Int_obj_ref.New(Id_dot_dot));
qry_bgns_with.Add(Ary_dot_dot_slash, Int_obj_ref.New(Id_dot_dot_slash));
} static Btrie_fast_mgr qry_bgns_with;
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {// REF.MW:ParserFunctions_body.php
byte[] qry = Eval_argx(ctx, src, caller, self);
@@ -57,7 +57,7 @@ public class Pfunc_rel2abs extends Pf_func_base {
}
return rv;
}
private static final Int_obj_ref ignore_rel2abs_tid = Int_obj_ref.zero_();
private static final Int_obj_ref ignore_rel2abs_tid = Int_obj_ref.New_zero();
public static byte[] Rel2abs(Bry_bfr tmp_bfr, byte[] qry, byte[] src) {return Rel2abs(tmp_bfr, qry, src, ignore_rel2abs_tid);}
public static byte[] Rel2abs(Bry_bfr tmp_bfr, byte[] qry, byte[] src, Int_obj_ref rel2abs_tid) {
if (qry_bgns_with == null) qry_bgns_with_init();

View File

@@ -27,5 +27,5 @@ public class Pfunc_urlencode extends Pf_func_base { // EX: {{urlencode:a b}} ->
gplx.langs.htmls.encoders.Gfo_url_encoder_.Http_url.Encode(urlEncodeBfr, argx);
bfr.Add_bfr_and_preserve(urlEncodeBfr);
urlEncodeBfr.Clear();
} private Bry_bfr urlEncodeBfr = Bry_bfr.new_(128);
} private Bry_bfr urlEncodeBfr = Bry_bfr_.New_w_size(128);
}

View File

@@ -27,7 +27,7 @@ public class Pfunc_pagesincategory extends Pf_func_base {
byte[] ctg_ttl_bry = Eval_argx(ctx, src, caller, self);
if (Bry_.Len_eq_0(ctg_ttl_bry)) {bfr.Add_int_digits(1, 0); return;} // no title; EX: "{{PAGESINCATEGORY:}}"
Xowe_wiki wiki = ctx.Wiki();
Xowd_db_mgr core_data_mgr = wiki.Data__core_mgr();
Xow_db_mgr core_data_mgr = wiki.Data__core_mgr();
int ctg_id = core_data_mgr.Tbl__page().Select_id(Xow_ns_.Tid__category, Xoa_ttl.Replace_spaces(ctg_ttl_bry));
if (ctg_id == Xowd_page_itm.Id_null) {bfr.Add_int_digits(1, 0); return;} // category doesn't exist; EX: "{{PAGESINCATEGORY:Unknown_category}}"
Xowd_category_itm ctg_itm = core_data_mgr.Db__cat_core().Tbl__cat_core().Select(ctg_id);

View File

@@ -36,7 +36,7 @@ public class Pfunc_pagesincategory_tst {
class Pfunc_pagesincategory_tstr {
private final Xop_fxt parser_tstr;
private final Xoae_app app; private final Xowe_wiki wiki;
private final Xowd_db_mgr core_data_mgr;
private final Xow_db_mgr core_data_mgr;
private final Xowd_page_tbl page_tbl; private final Xowd_cat_core_tbl cat_core_tbl;
public Pfunc_pagesincategory_tstr() {
Xoa_test_.Inet__init();