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

Import: Fix wrong main_page for non-English wikis

This commit is contained in:
gnosygnu
2017-02-20 22:11:02 -05:00
parent 94a755124e
commit 17f3de3124
9 changed files with 20 additions and 25 deletions

View File

@@ -19,6 +19,7 @@ package gplx.xowa.bldrs.cmds.texts; import gplx.*; import gplx.xowa.*; import gp
import gplx.xowa.xtns.wbases.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.xmls.*; import gplx.xowa.bldrs.cmds.texts.xmls.*;
import gplx.xowa.bldrs.css.*; import gplx.xowa.wikis.domains.*;
import gplx.xowa.wikis.data.*;
public abstract class Xob_init_base implements Xob_cmd, Gfo_invk {
private Xob_bldr bldr; private Xowe_wiki wiki; private Gfo_usr_dlg usr_dlg;
private byte wbase_enabled = Bool_.__byte;
@@ -48,8 +49,11 @@ public abstract class Xob_init_base implements Xob_cmd, Gfo_invk {
Io_mgr.Instance.DeleteFil_args(url).MissingFails_off().Exec();
// }
// always save xowa_cfg import data now; note that other builder commands will load cfg and overwrite data with null; DATE:2017-02-20
gplx.xowa.wikis.data.Xowd_cfg_tbl_.Insert__import(wiki);
// always save xowa_cfg data at end of init step, not term step; else, other builder commands will load empty cfg and import data will be null; DATE:2017-02-20
if (!gplx.core.envs.Env_.Mode_testing()) { // need else Xob_init_base_tst fails; DATE:2017-02-20
Xowd_cfg_tbl_.Upsert__import(wiki);
Xowd_cfg_tbl_.Upsert__create(wiki);
}
}
@gplx.Virtual public void Cmd_term() {}
@gplx.Virtual public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {

View File

@@ -35,7 +35,8 @@ public abstract class Xob_term_base implements Xob_cmd, Gfo_invk {
// update main page
byte[] new_main_page = gplx.xowa.langs.msgs.Xow_mainpage_finder.Find_or(wiki, wiki.Props().Siteinfo_mainpage()); // get new main_page from mainpage_finder
wiki.Props().Main_page_update_(new_main_page);
wiki.Props().Main_page_(new_main_page);
wiki.Data__core_mgr().Db__core().Tbl__cfg().Upsert_bry(gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__wiki_init, gplx.xowa.wikis.data.Xowd_cfg_key_.Key__init__main_page , new_main_page);
// remove import marker
app.Bldr().Import_marker().End(wiki);

View File

@@ -93,7 +93,6 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xob_page_wkr, Gf
Xow_db_file db_core = db_mgr.Db__core();
db_core.Tbl__site_stats().Update(page_count_main, page_count_all, ns_mgr.Ns_file().Count()); // save page stats
db_core.Tbl__ns().Insert(ns_mgr); // save ns
db_mgr.Tbl__cfg().Insert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest, modified_latest.XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
if (idx_mode.Tid_is_end()) page_core_tbl.Create_idx();
if (redirect_id_enabled) {
redirect_tbl.Conn().Txn_end();

View File

@@ -25,10 +25,6 @@ public class Xob_term_cmd extends Xob_term_base {
// delete wiki's temp dir
Io_mgr.Instance.DeleteDirDeep(wiki.Fsys_mgr().Tmp_dir());
// insert cfg defaults
Xowd_cfg_tbl_.Insert__import(wiki);
Xowd_cfg_tbl_.Insert__create(wiki);
// build fsdb
gplx.fsdb.Fsdb_db_mgr__v2_bldr.Get_or_make(wiki, false);// always build file.user db; DATE:2015-05-12

View File

@@ -34,6 +34,7 @@ public class Xob_siteinfo_parser_ {
Xob_siteinfo_nde nde = Parse(String_.new_u8(siteinfo_bry), wiki.Ns_mgr());
wiki.Props().Bldr_version_(Bry_.new_a7(Xoa_app_.Version));
wiki.Props().Main_page_(nde.Main_page());
wiki.Props().Siteinfo_mainpage_(nde.Main_page());
Bry_bfr bfr = Bry_bfr_.New().Add_str_u8(nde.Site_name()).Add_byte_pipe().Add_str_u8(nde.Generator()).Add_byte_pipe().Add_str_u8(nde.Case_dflt()).Add_byte_pipe();
wiki.Props().Siteinfo_misc_(bfr.To_bry_and_clear());
}