1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2024-09-28 14:30:51 +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

@ -60,7 +60,7 @@ public class Xow_db_mkr {
Xowd_core_db_props props = new Xowd_core_db_props(2, Xow_db_layout.Itm_all, Xow_db_layout.Itm_all, Xow_db_layout.Itm_all, Io_stream_tid_.Tid__raw, Io_stream_tid_.Tid__raw, Bool_.N, Bool_.N);
props.Cfg_save(cfg_tbl);
Xowd_cfg_tbl_.Insert__create(cfg_tbl, data.Domain(), wiki_name, mainpage_name);
Xowd_cfg_tbl_.Upsert__create(cfg_tbl, data.Domain(), wiki_name, mainpage_name);
// insert data: page
Xopg_db_mgr.Create

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());
}

View File

@ -30,18 +30,18 @@ public class Xowd_cfg_tbl_ {
return rv;
}
public static void Insert__import(Xowe_wiki wiki) {
public static void Upsert__import(Xowe_wiki wiki) {
Db_cfg_tbl cfg_tbl = wiki.Data__core_mgr().Db__core().Tbl__cfg();
cfg_tbl.Upsert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__bldr_version, wiki.Props().Bldr_version());
cfg_tbl.Upsert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__siteinfo_misc, wiki.Props().Siteinfo_misc());
cfg_tbl.Upsert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__siteinfo_mainpage, wiki.Props().Siteinfo_mainpage());
}
public static void Insert__create(Xowe_wiki wiki) {Insert__create(wiki.Data__core_mgr().Db__core().Tbl__cfg(), wiki.Domain_str(), wiki.Domain_str(), wiki.Props().Main_page());}
public static void Insert__create(Db_cfg_tbl cfg_tbl, String domain, String name, byte[] main_page) {
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__domain , domain);
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__name , name);
cfg_tbl.Insert_int(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__upgrade__version , gplx.xowa.addons.wikis.directorys.specials.items.bldrs.Xow_wiki_upgrade_.Upgrade_version__cur);
cfg_tbl.Insert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__main_page , main_page);
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest , Datetime_now.Get().XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
public static void Upsert__create(Xowe_wiki wiki) {Upsert__create(wiki.Data__core_mgr().Db__core().Tbl__cfg(), wiki.Domain_str(), wiki.Domain_str(), wiki.Props().Main_page());}
public static void Upsert__create(Db_cfg_tbl cfg_tbl, String domain, String name, byte[] main_page) {
cfg_tbl.Upsert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__domain , domain);
cfg_tbl.Upsert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__name , name);
cfg_tbl.Upsert_int(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__upgrade__version , gplx.xowa.addons.wikis.directorys.specials.items.bldrs.Xow_wiki_upgrade_.Upgrade_version__cur);
cfg_tbl.Upsert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__main_page , main_page);
cfg_tbl.Upsert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest , Datetime_now.Get().XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
}
}

View File

@ -29,7 +29,7 @@ public class Xodb_load_mgr_sql implements Xodb_load_mgr {
db_core.Tbl__site_stats().Select(wiki.Stats());
db_core.Tbl__ns().Select_all(wiki.Ns_mgr());
}
private void Load_cfg(Xowe_wiki wiki) {
private static void Load_cfg(Xow_wiki wiki) {
byte[] main_page = null, bldr_version = null, siteinfo_misc = null, siteinfo_mainpage = null;
DateAdp modified_latest = null;

View File

@ -44,13 +44,7 @@ public class Xow_wiki_props {
public void ContentLanguage_ (byte[] v) {content_language = v;}
public void Bldr_version_ (byte[] v) {bldr_version = v;}
public void Main_page_ (byte[] v) {main_page = v;}
public void Main_page_update_(byte[] v) {
// old main_page comes directly from <siteinfo>; store it in siteinfo_mainpage for record's sake
this.siteinfo_mainpage = main_page;
// update main_page to new_main_page
this.main_page = v;
}
public void Siteinfo_mainpage_(byte[] v) {siteinfo_mainpage = v;}
public void Siteinfo_misc_(byte[] v) {
this.siteinfo_misc = v;
int pipe_0 = Bry_find_.Find_fwd(v, Byte_ascii.Pipe);