1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2016-01-28 11:29:27 -05:00
parent 686d56fdab
commit 52c36aa4f8
138 changed files with 1415 additions and 646 deletions

View File

@@ -239,6 +239,7 @@ public class Pf_func_ {
, Xol_kwd_grp_.Id_bang
, Xol_kwd_grp_.Id_rev_revisionsize
, Xol_kwd_grp_.Id_pagebanner
, Xol_kwd_grp_.Id_rev_protectionexpiry
};
public static Xot_defn Get_prototype(int id) {
switch (id) {
@@ -323,6 +324,7 @@ public class Pf_func_ {
case Xol_kwd_grp_.Id_rev_pagesize:
case Xol_kwd_grp_.Id_rev_revisionsize:
case Xol_kwd_grp_.Id_rev_user:
case Xol_kwd_grp_.Id_rev_protectionexpiry:
case Xol_kwd_grp_.Id_rev_protectionlevel: return Pfunc_rev_props.Instance;
case Xol_kwd_grp_.Id_page_displaytitle: return Pfunc_displaytitle.Instance;
case Xol_kwd_grp_.Id_page_defaultsort: return Pfunc_defaultsort.Instance;

View File

@@ -41,7 +41,7 @@ public class Pfunc_gender extends Pf_func_base {
}
if (self_args_len == 1) {bfr.Add(when_m); return;} // per MW: EX: {{gender:name|a}} -> "a"
int gender = Get_gender(ctx.App().User(), user_name);
Xol_lang_itm lang = ctx.Cur_page().Lang();
Xol_lang_itm lang = ctx.Page().Lang();
bfr.Add(lang.Gender().Gender_eval(gender, when_m, when_f, when_u));
}
private static int Get_gender(Xou_user user, byte[] user_name) {

View File

@@ -25,7 +25,7 @@ public class Pfunc_grammar extends Pf_func_base {
@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);
byte[] word = Pf_func_.Eval_arg_or_empty(ctx, src, caller, self, self.Args_len(), 0);
Xol_lang_itm lang = ctx.Cur_page().Lang();
Xol_lang_itm lang = ctx.Page().Lang();
boolean pass = false;
try {pass = lang.Grammar().Grammar_eval(bfr, lang, word, argx);}
catch (Exception e) {Err_.Noop(e);}

View File

@@ -25,7 +25,7 @@ public class Pfunc_int extends Pf_func_base {
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] msg_key = Eval_argx(ctx, src, caller, self);
Xowe_wiki wiki = ctx.Wiki();
Xol_lang_itm page_lang = ctx.Cur_page().Lang();
Xol_lang_itm page_lang = ctx.Page().Lang();
byte[][] args_ary = Bry_.Ary_empty;
int args_len = self.Args_len();
if (args_len > 0) {

View File

@@ -33,7 +33,7 @@ public class Pfunc_displaytitle extends Pf_func_base {
wiki.Html_mgr().Html_wtr().Write_tkn(tmp_bfr, display_ttl_ctx, hctx, display_ttl_root.Data_mid(), display_ttl_root, 0, display_ttl_root);
byte[] val_html = tmp_bfr.To_bry_and_clear();
if (restrict) { // restrict only allows displayTitles which have text similar to the pageTitle; PAGE:de.b:Kochbuch/_Druckversion; DATE:2014-08-18
Xoae_page page = ctx.Cur_page();
Xoae_page page = ctx.Page();
wiki.Html_mgr().Html_wtr().Write_tkn(tmp_bfr, display_ttl_ctx, Xoh_wtr_ctx.Alt, display_ttl_root.Data_mid(), display_ttl_root, 0, display_ttl_root);
byte[] val_html_lc = tmp_bfr.To_bry_and_clear();
Xol_case_mgr case_mgr = wiki.Lang().Case_mgr();
@@ -42,7 +42,7 @@ public class Pfunc_displaytitle extends Pf_func_base {
if (!Bry_.Eq(val_html_lc, page_ttl_lc))
val_html = null;
}
ctx.Cur_page().Html_data().Display_ttl_(val_html);
ctx.Page().Html_data().Display_ttl_(val_html);
tmp_bfr.Mkr_rls();
}
private static byte[] Standardize_displaytitle_text(Xol_case_mgr case_mgr, byte[] val) {

View File

@@ -24,14 +24,15 @@ public class Pfunc_rev_props extends Pf_func_base {
@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);
Xopg_revision_data rev_data = ctx.Cur_page().Revision_data();
Xopg_revision_data rev_data = ctx.Page().Revision_data();
switch (id) {
case Xol_kwd_grp_.Id_page_id:
case Xol_kwd_grp_.Id_rev_id: bfr.Add_int_variable(ctx.Cur_page().Revision_data().Id()); break; // NOTE: making rev_id and page_id interchangeable; XOWA does not store rev_id
case Xol_kwd_grp_.Id_rev_id: bfr.Add_int_variable(ctx.Page().Revision_data().Id()); break; // NOTE: making rev_id and page_id interchangeable; XOWA does not store rev_id
case Xol_kwd_grp_.Id_rev_user: bfr.Add(rev_data.User()); break;
case Xol_kwd_grp_.Id_rev_protectionlevel: bfr.Add(rev_data.Protection_level()); break;
case Xol_kwd_grp_.Id_rev_protectionexpiry: bfr.Add(rev_data.Protection_expiry()); break;
case Xol_kwd_grp_.Id_rev_revisionsize: // default revsize to pagesize; MW has additional logic for subst which should not apply to XO; https://gerrit.wikimedia.org/r/#/c/82650/
bfr.Add_int_variable(ctx.Cur_page().Data_raw().length);
bfr.Add_int_variable(ctx.Page().Data_raw().length);
break;
case Xol_kwd_grp_.Id_rev_pagesize:
if (argx.length > 0) {

View File

@@ -26,6 +26,7 @@ public class Pfunc_rev_props_tst {
@Test public void Page_size() {fxt.Test_parse_tmpl_str_test("{{PAGESIZE:Test page}}" , "{{test}}", "0");}
@Test public void Revision_size() {fxt.Test_parse_tmpl_str_test("{{REVISIONSIZE}}" , "{{test}}", "8");}
@Test public void Protection_level() {fxt.Test_parse_tmpl_str_test("{{PROTECTIONLEVEL}}" , "{{test}}", "normal");}
@Test public void Protection_expiry() {fxt.Test_parse_tmpl_str_test("{{PROTECTIONEXPIRY}}" , "{{test}}", "infinite");}
@Test public void PageSize_invalid_ttl() {
fxt.Init_log_(Xop_ttl_log.Invalid_char);
fxt.Test_parse_tmpl_str_test("{{PAGESIZE:{{{100}}}|R}}" , "{{test}}", "0");

View File

@@ -28,7 +28,7 @@ public class Pft_func_date_int extends Pf_func_base {
switch (date_tid) {
case Date_tid_lcl: date = DateAdp_.Now(); break;
case Date_tid_utc: date = DateAdp_.Now().XtoUtc(); break;
case Date_tid_rev: date = ctx.Cur_page().Revision_data().Modified_on(); break;
case Date_tid_rev: date = ctx.Page().Revision_data().Modified_on(); break;
default: throw Err_.new_unhandled(date_tid);
}
switch (id) {

View File

@@ -26,7 +26,7 @@ public class Pft_func_date_name extends Pf_func_base {
switch (date_tid) {
case Pft_func_date_int.Date_tid_lcl: date = DateAdp_.Now(); break;
case Pft_func_date_int.Date_tid_utc: date = DateAdp_.Now().XtoUtc(); break;
case Pft_func_date_int.Date_tid_rev: date = ctx.Cur_page().Revision_data().Modified_on(); break;
case Pft_func_date_int.Date_tid_rev: date = ctx.Page().Revision_data().Modified_on(); break;
default: throw Err_.new_unhandled(date_tid);
}
byte[] val = ctx.Wiki().Msg_mgr().Val_by_id(base_idx + date.Segment(seg_idx));

View File

@@ -33,7 +33,7 @@ public class Pfunc_rel2abs extends Pf_func_base {
@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);
byte[] orig = Pf_func_.Eval_arg_or_empty(ctx, src, caller, self, self.Args_len(), 0);
if (orig.length == 0) orig = ctx.Cur_page().Ttl().Full_txt();
if (orig.length == 0) orig = ctx.Page().Ttl().Full_txt();
bfr.Add(Rel2abs(ctx.App().Utl__bfr_mkr().Get_b512().Mkr_rls(), qry, orig));
}
public static boolean Rel2abs_ttl(byte[] ttl, int bgn, int end) {

View File

@@ -22,7 +22,7 @@ public class Pfunc_ttl extends Pf_func_base {
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] val_dat_ary = Eval_argx_or_null(ctx, src, caller, self, this.Name());
if (val_dat_ary == Bry_.Empty) return; // if argx is empty, return EX: {{PAGENAME:}}; DATE:2013-02-20
Xoa_ttl ttl = val_dat_ary == null ? ctx.Cur_page().Ttl() : Xoa_ttl.parse(ctx.Wiki(), val_dat_ary);
Xoa_ttl ttl = val_dat_ary == null ? ctx.Page().Ttl() : Xoa_ttl.parse(ctx.Wiki(), val_dat_ary);
if (ttl == null) return;
switch (id) {
case Xol_kwd_grp_.Id_ttl_page_txt: bfr.Add(ttl.Page_txt()); break;

View File

@@ -33,7 +33,7 @@ public class Pfunc_wiki_props extends Pf_func_base {
case Xol_kwd_grp_.Id_site_stylepath: bfr.Add(props.StylePath()); break;
case Xol_kwd_grp_.Id_site_directionmark: bfr.Add(props.DirectionMark()); break;
case Xol_kwd_grp_.Id_site_currentversion: bfr.Add(props.Current_version()); break;
case Xol_kwd_grp_.Id_site_contentlanguage: bfr.Add(ctx.Cur_page().Lang().Key_bry()); break;
case Xol_kwd_grp_.Id_site_contentlanguage: bfr.Add(ctx.Page().Lang().Key_bry()); break;
default: throw Err_.new_unhandled(id);
}
}

View File

@@ -43,7 +43,7 @@ public class Pfunc_wiki_stats extends Pf_func_base {
if (raw)
bfr.Add_int_variable(v);
else
bfr.Add(ctx.Cur_page().Lang().Num_mgr().Format_num(v));
bfr.Add(ctx.Page().Lang().Num_mgr().Format_num(v));
}
public Pfunc_wiki_stats(int id) {this.id = id;}
@Override public int Id() {return id;} private int id;