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

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.drds.pages; import gplx.*; import gplx.xowa.*; import gplx.xowa.drds.*;
import gplx.xowa.htmls.*; import gplx.xowa.htmls.sections.*;
import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.wikis.pages.*;
import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.pages.tags.*;
public class Xod_page_itm {
public int Page_id() {return page_id;} private int page_id;
public long Rev_id() {return rev_id;} private long rev_id;
@@ -35,10 +35,10 @@ public class Xod_page_itm {
public String Head_url() {return head_url;} private String head_url;
public String Head_name() {return head_ttl;} private String head_ttl;
public String First_allowed_editor_role() {return first_allowed_editor_role;} private String first_allowed_editor_role;
public List_adp Section_list() {return section_list;} private List_adp section_list = List_adp_.new_();
public List_adp Section_list() {return section_list;} private List_adp section_list = List_adp_.New();
public Xoh_page Hpg() {return hpg;} private Xoh_page hpg;
public Xopg_tag_mgr Head_tags() {return head_tags;} private final Xopg_tag_mgr head_tags = new Xopg_tag_mgr();
public Xopg_tag_mgr Tail_tags() {return tail_tags;} private final Xopg_tag_mgr tail_tags = new Xopg_tag_mgr();
public Xopg_tag_mgr Head_tags() {return head_tags;} private final Xopg_tag_mgr head_tags = new Xopg_tag_mgr(Bool_.Y);
public Xopg_tag_mgr Tail_tags() {return tail_tags;} private final Xopg_tag_mgr tail_tags = new Xopg_tag_mgr(Bool_.N);
public void Init(int page_id, int rev_id
, String ttl_text, String ttl_db, String redirected, String description, String modified_on
, boolean is_editable, boolean is_main_page, boolean is_disambiguation, int lang_count
@@ -70,7 +70,7 @@ public class Xod_page_itm {
this.hpg = hpg;
}
public String To_str() {
Bry_bfr bfr = Bry_bfr.new_();
Bry_bfr bfr = Bry_bfr_.New();
bfr .Add_int_variable(page_id).Add_byte_pipe()
.Add_long_variable(rev_id).Add_byte_pipe()
.Add_str_u8(ttl_text).Add_byte_pipe()

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.drds.pages; import gplx.*; import gplx.xowa.*; import gplx.xowa.drds.*;
import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.htmls.*; import gplx.xowa.htmls.sections.*;
import gplx.core.net.*; import gplx.xowa.addons.apps.file_browsers.*;
import gplx.core.net.*; import gplx.xowa.addons.wikis.imports.*;
public class Xod_page_mgr {
public Xod_page_itm Get_page(Xow_wiki wiki, Xoa_url page_url) {
Xod_page_itm rv = new Xod_page_itm();
@@ -27,7 +27,10 @@ public class Xod_page_mgr {
Xoa_ttl ttl = wiki.Ttl_parse(page_url.Page_bry());
if (ttl.Ns().Id_is_special()) return Load_special(rv, wiki, page_url, ttl);
Xowd_page_itm dbpg = new Xowd_page_itm();
wiki.Data__core_mgr().Tbl__page().Select_by_ttl(dbpg, ttl.Ns(), ttl.Page_db());
try {wiki.Data__core_mgr().Tbl__page().Select_by_ttl(dbpg, ttl.Ns(), ttl.Page_db());}
catch (Exception e) {// throw detailed exception to track down page_score exception
throw Err_.new_("", "failed to retrieve page", "wiki", wiki.Domain_str(), "page_url", page_url.Page_bry(), "err", Err_.Message_lang(e));
}
rv.Init_by_dbpg(ttl, dbpg);
// load page data
@@ -47,10 +50,23 @@ public class Xod_page_mgr {
}
}
private Xod_page_itm Load_special(Xod_page_itm rv, Xow_wiki wiki, Xoa_url url, Xoa_ttl ttl) {
gplx.xowa.specials.Xows_page prime = wiki.App().Special_regy().Get_by_or_null(ttl.Page_txt());
if (prime == null) return rv;
// get prototype
gplx.xowa.specials.Xow_special_page proto = wiki.App().Special_regy().Get_by_or_null(ttl.Page_txt_wo_qargs());
if (proto == null) return rv; // invalid url
// generate special
Xoh_page page = new Xoh_page();
prime.Special__clone().Special__gen(wiki, page, url, ttl);
try {proto.Special__clone().Special__gen(wiki, page, url, ttl);}
catch (Exception e) {Gfo_log_.Instance.Warn("failed to generate special page", "url", url.To_str(), "err", Err_.Message_gplx_log(e)); return rv;}
// handle redirects; EX: Special:XowaWikiInfo
byte[] redirect_to_ttl = page.Redirect_to_ttl();
if (redirect_to_ttl != null) {
ttl = wiki.Ttl_parse(redirect_to_ttl);
url = Xoa_url.new_(wiki.Domain_bry(), redirect_to_ttl);
return Get_page(wiki, url);
}
rv.Init(-1, -1, String_.new_u8(ttl.Page_txt()), String_.new_u8(ttl.Page_db()), null, null, DateAdp_.Now().XtoStr_fmt_iso_8561(), false, false, false, 0, "", "", "");
rv.Init_by_hpg(page);
Xoh_section_itm section = new Xoh_section_itm(1, 1, Bry_.Empty, Bry_.Empty);