From c9e22b69f7d5b52e20aca450eccfa20545a413e1 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Fri, 17 Feb 2017 17:57:17 -0500 Subject: [PATCH] Wiki.Dom: Refactor Wiki.Props --- 400_xowa/src/gplx/fsdb/Fsdb_db_mgr__v2.java | 4 +- 400_xowa/src/gplx/xowa/Xow_wiki_.java | 9 -- 400_xowa/src/gplx/xowa/Xowe_wiki.java | 5 +- .../directorys/dbs/Xowdir_wiki_cfg_.java | 25 ---- .../directorys/dbs/Xowdir_wiki_props.java | 7 +- .../directorys/dbs/Xowdir_wiki_props_mgr.java | 13 +- .../dbs/Xowdir_wiki_props_mgr__tst.java | 8 +- .../specials/items/bldrs/Xow_db_mkr.java | 6 +- .../wikis/htmls/css/bldrs/Xob_css_cmd.java | 2 +- .../wikis/htmls/css/mgrs/Xob_css_status.java | 2 +- .../src/gplx/xowa/bldrs/Xob_cmd_keys.java | 1 - 400_xowa/src/gplx/xowa/bldrs/Xob_cmd_mgr.java | 1 - .../xowa/bldrs/cmds/texts/Xob_term_base.java | 24 +++- .../bldrs/cmds/texts/sqls/Xob_page_cmd.java | 2 +- .../bldrs/cmds/texts/sqls/Xob_term_cmd.java | 16 +-- .../bldrs/cmds/texts/tdbs/Xob_term_txt.java | 26 ---- .../xowa/bldrs/css/Xoa_css_extractor.java | 2 +- .../gplx/xowa/bldrs/infos/Xob_info_file.java | 2 +- .../xowa/bldrs/infos/Xob_info_session.java | 2 +- .../bldrs/installs/Xow_cfg_wiki_core.java | 90 -------------- .../bldrs/installs/Xow_cfg_wiki_core_tst.java | 111 ----------------- .../setups/upgrades/Upgrader_v00_02_01.java | 56 --------- .../upgrades/Upgrader_v00_02_01_tst.java | 71 ----------- .../setups/upgrades/Xoa_upgrade_mgr.java | 9 -- .../src/gplx/xowa/wikis/Xoa_wiki_mgr_.java | 2 +- .../src/gplx/xowa/wikis/Xow_cfg_consts.java | 33 ----- .../wikis/data/Xow_db_file_schema_props.java | 2 +- .../gplx/xowa/wikis/data/Xowd_cfg_key_.java | 38 ++++++ .../gplx/xowa/wikis/data/Xowd_cfg_tbl_.java | 14 +++ .../xowa/wikis/data/Xowd_core_db_props.java | 2 +- .../xowa/wikis/dbs/Xodb_load_mgr_sql.java | 55 +++++---- .../src/gplx/xowa/wikis/dbs/Xodb_mgr_sql.java | 4 +- .../gplx/xowa/wikis/dbs/Xodb_upgrade_mgr.java | 68 ----------- .../gplx/xowa/wikis/metas/Xow_wiki_props.java | 113 ++++++++++-------- .../src/gplx/xowa/wikis/nss/Xow_ns_mgr.java | 6 +- .../xowa/xtns/pfuncs/ttls/Pfunc_urlfunc.java | 6 +- .../xtns/pfuncs/wikis/Pfunc_wiki_props.java | 8 +- .../xtns/scribunto/libs/Scrib_lib_site.java | 4 +- .../imports/json/Xowb_json_dump_db.java | 2 +- 39 files changed, 216 insertions(+), 635 deletions(-) delete mode 100644 400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_cfg_.java delete mode 100644 400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_term_txt.java delete mode 100644 400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core.java delete mode 100644 400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core_tst.java delete mode 100644 400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01.java delete mode 100644 400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01_tst.java delete mode 100644 400_xowa/src/gplx/xowa/wikis/Xow_cfg_consts.java create mode 100644 400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_key_.java delete mode 100644 400_xowa/src/gplx/xowa/wikis/dbs/Xodb_upgrade_mgr.java diff --git a/400_xowa/src/gplx/fsdb/Fsdb_db_mgr__v2.java b/400_xowa/src/gplx/fsdb/Fsdb_db_mgr__v2.java index dcb24b5e8..aeaafde23 100644 --- a/400_xowa/src/gplx/fsdb/Fsdb_db_mgr__v2.java +++ b/400_xowa/src/gplx/fsdb/Fsdb_db_mgr__v2.java @@ -57,10 +57,10 @@ public class Fsdb_db_mgr__v2 implements Fsdb_db_mgr { } public static Xow_db_layout Cfg__layout_file__get(Db_conn main_core_conn) { Db_cfg_tbl cfg_tbl = gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(main_core_conn); - return Xow_db_layout.Get_by_name(cfg_tbl.Select_str_or(gplx.xowa.wikis.Xow_cfg_consts.Grp__bldr_fsdb, Cfg_key__layout_file, Xow_db_layout.Key__few)); + return Xow_db_layout.Get_by_name(cfg_tbl.Select_str_or(gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__bldr_fsdb, Cfg_key__layout_file, Xow_db_layout.Key__few)); } public static void Cfg__layout_file__set(Db_cfg_tbl cfg_tbl, Xow_db_layout v) { - cfg_tbl.Insert_str(gplx.xowa.wikis.Xow_cfg_consts.Grp__bldr_fsdb, Cfg_key__layout_file, v.Key()); + cfg_tbl.Insert_str(gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__bldr_fsdb, Cfg_key__layout_file, v.Key()); } private static final String Cfg_key__layout_file = "layout_file"; } diff --git a/400_xowa/src/gplx/xowa/Xow_wiki_.java b/400_xowa/src/gplx/xowa/Xow_wiki_.java index 82fc612fc..2904307d1 100644 --- a/400_xowa/src/gplx/xowa/Xow_wiki_.java +++ b/400_xowa/src/gplx/xowa/Xow_wiki_.java @@ -22,15 +22,6 @@ import gplx.xowa.wikis.*; import gplx.xowa.wikis.data.*; import gplx.xowa.wikis. import gplx.xowa.bldrs.infos.*; import gplx.xowa.langs.*; public class Xow_wiki_ { - public static void Create(String user_key, Xow_ns_mgr ns_mgr, String domain, Io_url core_url) { - Xowd_core_db_props props = new Xowd_core_db_props(1, 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); - Xow_db_file core_db = Xow_db_file__core_.Make_core_db(props, Xob_info_session.new_(user_key, domain, domain), core_url, domain); - core_db.Tbl__text().Create_tbl(); - core_db.Tbl__site_stats().Update(0, 0, 0); // save page stats - core_db.Tbl__ns().Insert(ns_mgr); // save ns - core_db.Tbl__cfg().Insert_str(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__main_page, "Main_Page"); - core_db.Tbl__cfg().Insert_str(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__modified_latest, Datetime_now.Get().XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time)); - } public static void Create_sql_backend(Xow_wiki wiki, gplx.xowa.wikis.data.Xowd_core_db_props core_db_props, gplx.xowa.bldrs.infos.Xob_info_session session) { if (wiki.Type_is_edit()) { Xowe_wiki wikie = (Xowe_wiki)wiki; diff --git a/400_xowa/src/gplx/xowa/Xowe_wiki.java b/400_xowa/src/gplx/xowa/Xowe_wiki.java index d6139087c..f12a7dc47 100644 --- a/400_xowa/src/gplx/xowa/Xowe_wiki.java +++ b/400_xowa/src/gplx/xowa/Xowe_wiki.java @@ -50,7 +50,7 @@ public class Xowe_wiki implements Xow_wiki, Gfo_invk, Gfo_evt_itm { file_mgr = new Xow_file_mgr(this); parser_mgr = new Xow_parser_mgr(this); cfg_parser = new Xowc_parser(this); - props.Init_props(domain_tid, domain_bry); + props.Init_by_ctor(domain_tid, domain_bry); props.ContentLanguage_(lang.Key_bry()); stats = new Xowd_site_stats_mgr(this); Pf_func_.Reg(domain_itm, lang.Func_regy(), lang); @@ -58,7 +58,6 @@ public class Xowe_wiki implements Xow_wiki, Gfo_invk, Gfo_evt_itm { sys_cfg = new Xow_sys_cfg(this); hive_mgr = new Xob_hive_mgr(this); util = new Xow_html_util(this); - cfg_wiki_core = new Xow_cfg_wiki_core(this); import_cfg = new Xob_import_cfg(this); msg_mgr = new Xow_msg_mgr(this, lang); eval_mgr = new Bfmtr_eval_wiki(this); @@ -154,7 +153,6 @@ public class Xowe_wiki implements Xow_wiki, Gfo_invk, Gfo_evt_itm { public Xop_redirect_mgr Redirect_mgr() {return redirect_mgr;} private Xop_redirect_mgr redirect_mgr; public List_adp Rls_list() {if (rls_list == null) rls_list = List_adp_.New(); return rls_list;} private List_adp rls_list; public Xow_file_mgr File_mgr() {return file_mgr;} private Xow_file_mgr file_mgr; - public Xow_cfg_wiki_core Cfg_wiki_core() {return cfg_wiki_core;} private Xow_cfg_wiki_core cfg_wiki_core; public Xob_import_cfg Import_cfg() {return import_cfg;} private Xob_import_cfg import_cfg; public Xotdb_fsys_mgr Tdb_fsys_mgr() {return tdb_fsys_mgr;} private final Xotdb_fsys_mgr tdb_fsys_mgr; public Xou_history_cfg Cfg_history() {return cfg_history;} private Xou_history_cfg cfg_history = new Xou_history_cfg(); @@ -222,7 +220,6 @@ public class Xowe_wiki implements Xow_wiki, Gfo_invk, Gfo_evt_itm { if (!app.Bldr().Import_marker().Chk(this)) {app.Wiki_mgr().Del(domain_bry); init_needed = false; return;} // NOTE: must call after Db_mgr_create_as_sql(); also, must delete wiki from mgr; DATE:2014-08-24 db_mgr.Load_mgr().Load_init(this); app.Gfs_mgr().Run_url_for(this, tdb_fsys_mgr.Cfg_wiki_core_fil()); - gplx.xowa.bldrs.setups.upgrades.Xoa_upgrade_mgr.Check(this); parser_mgr.Init_by_wiki(); // init ns_mgr diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_cfg_.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_cfg_.java deleted file mode 100644 index 18c43996f..000000000 --- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_cfg_.java +++ /dev/null @@ -1,25 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.addons.wikis.directorys.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.directorys.*; -public class Xowdir_wiki_cfg_ { - public static final String - Key__domain = "xowa.wiki.core.domain" - , Key__name = "xowa.wiki.core.name" - , Key__main_page = "props.main_page" - ; -} diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props.java index 99a2e67a3..5df0027b6 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props.java @@ -16,6 +16,7 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package gplx.xowa.addons.wikis.directorys.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.directorys.*; +import gplx.xowa.wikis.data.*; public class Xowdir_wiki_props { public Xowdir_wiki_props() {} public Xowdir_wiki_props(String domain, String name, String main_page) { @@ -33,9 +34,9 @@ public class Xowdir_wiki_props { } public void Set(String key, String val) { - if (String_.Eq(key, Xowdir_wiki_cfg_.Key__domain)) this.domain = val; - else if (String_.Eq(key, Xowdir_wiki_cfg_.Key__name)) this.name = val; - else if (String_.Eq(key, Xowdir_wiki_cfg_.Key__main_page)) this.main_page = val; + if (String_.Eq(key, Xowd_cfg_key_.Key__wiki_core__domain)) this.domain = val; + else if (String_.Eq(key, Xowd_cfg_key_.Key__wiki_core__name)) this.name = val; + else if (String_.Eq(key, Xowd_cfg_key_.Key__init__main_page)) this.main_page = val; else throw Err_.new_unhandled_default(key); } diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr.java index e338f22fd..76bdc6aa9 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr.java @@ -17,6 +17,7 @@ along with this program. If not, see . */ package gplx.xowa.addons.wikis.directorys.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.directorys.*; import gplx.langs.jsons.*; +import gplx.xowa.wikis.data.*; public interface Xowdir_wiki_props_mgr { void Wiki_cfg__upsert(String key, String val); String Wiki_cfg__select_or(String key, String or); @@ -36,9 +37,9 @@ abstract class Xowdir_wiki_props_mgr__base implements Xowdir_wiki_props_mgr { public Xowdir_wiki_props Verify(boolean mode_is_import, String domain_str, Io_url core_db_url) { Xowdir_wiki_props rv = new Xowdir_wiki_props(); - Verify_or_fix(rv, core_db_url, Xowdir_wiki_cfg_.Key__domain); - Verify_or_fix(rv, core_db_url, Xowdir_wiki_cfg_.Key__main_page); - Verify_or_fix(rv, core_db_url, Xowdir_wiki_cfg_.Key__name); + Verify_or_fix(rv, core_db_url, Xowd_cfg_key_.Key__wiki_core__domain); + Verify_or_fix(rv, core_db_url, Xowd_cfg_key_.Key__init__main_page); + Verify_or_fix(rv, core_db_url, Xowd_cfg_key_.Key__wiki_core__name); return rv; } @@ -54,16 +55,16 @@ abstract class Xowdir_wiki_props_mgr__base implements Xowdir_wiki_props_mgr { return val; } private static String Fix(Xowdir_wiki_props props, Io_url core_db_url, String key) { - if (String_.Eq(key, Xowdir_wiki_cfg_.Key__domain)) { + if (String_.Eq(key, Xowd_cfg_key_.Key__wiki_core__domain)) { String rv = core_db_url.NameOnly(); if (String_.Has_at_end(rv, "-core")) rv = String_.Mid(rv, 0, String_.Len(rv) - 5); return rv; } - else if (String_.Eq(key, Xowdir_wiki_cfg_.Key__name)) { + else if (String_.Eq(key, Xowd_cfg_key_.Key__wiki_core__name)) { return props.Domain(); // NOTE: must be called after domain } - else if (String_.Eq(key, Xowdir_wiki_cfg_.Key__main_page)) { + else if (String_.Eq(key, Xowd_cfg_key_.Key__init__main_page)) { return Xoa_page_.Main_page_str; } else throw Err_.new_unhandled_default(key); diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr__tst.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr__tst.java index 48c938a32..d32ce3089 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr__tst.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr__tst.java @@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package gplx.xowa.addons.wikis.directorys.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.directorys.*; -import org.junit.*; import gplx.core.tests.*; +import org.junit.*; import gplx.core.tests.*; import gplx.xowa.wikis.data.*; public class Xowdir_wiki_props_mgr__tst { private final Xowdir_wiki_props_mgr__fxt fxt = new Xowdir_wiki_props_mgr__fxt(); @@ -47,9 +47,9 @@ class Xowdir_wiki_props_mgr__fxt { return new Xowdir_wiki_props(domain, name, main_page); } public void Init__props(String domain, String name, String main_page) { - mgr.Wiki_cfg__upsert(Xowdir_wiki_cfg_.Key__domain, domain); - mgr.Wiki_cfg__upsert(Xowdir_wiki_cfg_.Key__name, name); - mgr.Wiki_cfg__upsert(Xowdir_wiki_cfg_.Key__main_page, main_page); + mgr.Wiki_cfg__upsert(Xowd_cfg_key_.Key__wiki_core__domain, domain); + mgr.Wiki_cfg__upsert(Xowd_cfg_key_.Key__wiki_core__name, name); + mgr.Wiki_cfg__upsert(Xowd_cfg_key_.Key__init__main_page, main_page); } public void Test__verify(boolean mode_is_import, String url, boolean expd_dirty, Xowdir_wiki_props expd) { Xowdir_wiki_props actl = mgr.Verify(mode_is_import, "", Io_url_.new_any_(url)); diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_db_mkr.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_db_mkr.java index bf91838f7..b1560e34d 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_db_mkr.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_db_mkr.java @@ -55,10 +55,8 @@ public class Xow_db_mkr { Db_cfg_tbl cfg_tbl = Db_cfg_tbl.Get_by_key(core_db, Xowd_cfg_tbl_.Tbl_name); 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); - cfg_tbl.Insert_str(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__modified_latest, Datetime_now.Get().XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time)); - cfg_tbl.Insert_bry(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__main_page, mainpage_name); - cfg_tbl.Insert_str(Xow_cfg_consts.Grp__empty, Xowdir_wiki_cfg_.Key__domain , data.Domain()); - cfg_tbl.Insert_str(Xow_cfg_consts.Grp__empty, Xowdir_wiki_cfg_.Key__name , wiki_name); + + Xowd_cfg_tbl_.Insert__create(cfg_tbl, data.Domain(), wiki_name, mainpage_name); // insert data: page Xopg_db_mgr.Create diff --git a/400_xowa/src/gplx/xowa/addons/wikis/htmls/css/bldrs/Xob_css_cmd.java b/400_xowa/src/gplx/xowa/addons/wikis/htmls/css/bldrs/Xob_css_cmd.java index 789bb56ab..fbfee640e 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/htmls/css/bldrs/Xob_css_cmd.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/htmls/css/bldrs/Xob_css_cmd.java @@ -38,7 +38,7 @@ public class Xob_css_cmd implements Xob_cmd { core_db.Tbl__css_core().Create_tbl(); core_db.Tbl__css_file().Create_tbl(); gplx.xowa.addons.wikis.htmls.css.mgrs.Xowd_css_core_mgr.Set(core_db.Tbl__css_core(), core_db.Tbl__css_file(), css_dir, css_key); - core_db.Tbl__cfg().Upsert_yn(Xow_cfg_consts.Grp__wiki_schema, Xow_db_file_schema_props.Key__tbl_css_core, Bool_.Y); + core_db.Tbl__cfg().Upsert_yn(Xowd_cfg_key_.Grp__wiki_schema, Xow_db_file_schema_props.Key__tbl_css_core, Bool_.Y); core_db.Conn().Txn_end(); usr_dlg.Plog_many("", "", Cmd_key() + ":end;"); } diff --git a/400_xowa/src/gplx/xowa/addons/wikis/htmls/css/mgrs/Xob_css_status.java b/400_xowa/src/gplx/xowa/addons/wikis/htmls/css/mgrs/Xob_css_status.java index 0b855e46f..35b25acd6 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/htmls/css/mgrs/Xob_css_status.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/htmls/css/mgrs/Xob_css_status.java @@ -51,7 +51,7 @@ public class Xob_css_status { if ( core_db_mgr == null || core_db_mgr.Props() != null || !core_db_mgr.Props().Schema_is_1() - || core_db_mgr.Tbl__cfg().Select_yn_or(Xow_cfg_consts.Grp__wiki_schema, Xow_db_file_schema_props.Key__tbl_css_core, Bool_.N) + || core_db_mgr.Tbl__cfg().Select_yn_or(Xowd_cfg_key_.Grp__wiki_schema, Xow_db_file_schema_props.Key__tbl_css_core, Bool_.N) ) { rv.Db_exists_(false); if (rv.Fs_exists()) diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java index 0add56fdd..cbdb30e51 100644 --- a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java +++ b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java @@ -42,7 +42,6 @@ public class Xob_cmd_keys { , Key_tdb_make_page = "tdb.text.page" // "core.make_page" , Key_tdb_make_id = "core.make_id" , Key_tdb_calc_stats = "core.calc_stats" - , Key_tdb_core_term = "tdb.text.term" // "core.term" , Key_tdb_text_wdata_qid = "tdb.text.wdata.qid" , Key_tdb_text_wdata_pid = "tdb.text.wdata.pid" , Key_exec_sql = "import.sql.exec_sql" diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_mgr.java b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_mgr.java index 37e74c17b..1b7bd0a73 100644 --- a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_mgr.java +++ b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_mgr.java @@ -58,7 +58,6 @@ public class Xob_cmd_mgr implements Gfo_invk { else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_tdb_text_init)) return Add(new Xob_init_tdb(bldr, wiki)); else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_tdb_make_id)) return Xml_rdr_direct_add(wiki, new Xob_make_id_wkr(bldr, wiki)); else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_tdb_calc_stats)) return Add(new Xob_calc_stats_cmd(bldr, wiki)); - else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_tdb_core_term)) return Add(new Xob_term_txt(bldr, wiki)); else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_tdb_text_wdata_qid)) return Xml_rdr_direct_add(wiki, new Xob_wdata_qid_txt().Ctor(bldr, wiki)); else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_tdb_text_wdata_pid)) return Xml_rdr_direct_add(wiki, new Xob_wdata_pid_txt().Ctor(bldr, wiki)); else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_diff_build)) return Add(new Xob_diff_build_cmd(bldr, wiki)); diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_term_base.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_term_base.java index 4ba781762..34ae45b79 100644 --- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_term_base.java +++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_term_base.java @@ -26,12 +26,26 @@ public abstract class Xob_term_base implements Xob_cmd, Gfo_invk { public void Cmd_run() {} public void Cmd_end() { Xoae_app app = wiki.Appe(); - app.Gui_mgr().Html_mgr().Portal_mgr().Wikis().Itms_reset(); // NOTE: dirty wiki list so that next refresh will load itm - app.Free_mem(false); // clear cache, else import will load new page with old items from cache; DATE:2013-11-21 - wiki.Props().Main_page_update(wiki); + + // dirty wiki list so that next refresh will load wiki + app.Gui_mgr().Html_mgr().Portal_mgr().Wikis().Itms_reset(); + + // clear cache, else import will load new page with old items from cache; DATE:2013-11-21 + app.Free_mem(false); + + // 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); + + // remove import marker app.Bldr().Import_marker().End(wiki); - wiki.Init_needed_(true);// flag init_needed prior to show; dir_info will show page_txt instead of page_gz; - wiki.Init_assert(); // force load; needed to pick up MediaWiki ns for MediaWiki:mainpage + + // flag init_needed prior to show; dir_info will show page_txt instead of page_gz; + wiki.Init_needed_(true); + + // force load; needed to pick up MediaWiki ns for MediaWiki:mainpage + wiki.Init_assert(); + Cmd_end_hook(); } public abstract void Cmd_end_hook(); diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd.java index d9a694763..da6b0333b 100644 --- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd.java +++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd.java @@ -89,7 +89,7 @@ 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(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__modified_latest, modified_latest.XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time)); + 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(); diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_term_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_term_cmd.java index 8b420de08..9ce7d8124 100644 --- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_term_cmd.java +++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_term_cmd.java @@ -17,23 +17,25 @@ along with this program. If not, see . */ package gplx.xowa.bldrs.cmds.texts.sqls; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*; import gplx.dbs.cfgs.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.*; +import gplx.xowa.wikis.data.*; public class Xob_term_cmd extends Xob_term_base { public Xob_term_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.Ctor(bldr, wiki); this.wiki = wiki;} private Xowe_wiki wiki; @Override public String Cmd_key() {return KEY;} public static final String KEY = "text.term"; @Override public void Cmd_end_hook() { + // delete wiki's temp dir Io_mgr.Instance.DeleteDirDeep(wiki.Fsys_mgr().Tmp_dir()); - Db_cfg_tbl cfg_tbl = wiki.Data__core_mgr().Tbl__cfg(); - cfg_tbl.Insert_bry(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__bldr_version, wiki.Props().Bldr_version()); - cfg_tbl.Insert_bry(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__main_page, wiki.Props().Main_page()); - cfg_tbl.Insert_bry(Xow_cfg_consts.Grp__wiki_init, "props.siteinfo_misc", wiki.Props().Siteinfo_misc()); - cfg_tbl.Insert_bry(Xow_cfg_consts.Grp__wiki_init, "props.siteinfo_mainpage", wiki.Props().Siteinfo_mainpage()); - cfg_tbl.Insert_str(Xow_cfg_consts.Grp__empty, gplx.xowa.addons.wikis.directorys.dbs.Xowdir_wiki_cfg_.Key__domain , wiki.Domain_str()); - cfg_tbl.Insert_str(Xow_cfg_consts.Grp__empty, gplx.xowa.addons.wikis.directorys.dbs.Xowdir_wiki_cfg_.Key__name , wiki.Domain_str()); + // 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 + + // dansguardian if (wiki.App().Cfg().Get_bool_wiki_or(wiki, gplx.xowa.bldrs.filters.dansguardians.Dg_match_mgr.Cfg__enabled, false)) new Xob_page_delete_cmd(wiki.Appe().Bldr(), wiki).Cmd_run(); + wiki.Data__core_mgr().Rls(); } } diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_term_txt.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_term_txt.java deleted file mode 100644 index a601981c7..000000000 --- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_term_txt.java +++ /dev/null @@ -1,26 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.bldrs.cmds.texts.tdbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*; -import gplx.xowa.bldrs.cmds.texts.*; -public class Xob_term_txt extends Xob_term_base { - public Xob_term_txt(Xob_bldr bldr, Xowe_wiki wiki) {this.Ctor(bldr, wiki); this.wiki = wiki;} private Xowe_wiki wiki; - @Override public String Cmd_key() {return Xob_cmd_keys.Key_tdb_core_term;} - @Override public void Cmd_end_hook() { - Io_mgr.Instance.SaveFilBry(wiki.Tdb_fsys_mgr().Cfg_wiki_core_fil(), wiki.Cfg_wiki_core().Build_gfs()); - } -} diff --git a/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_extractor.java b/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_extractor.java index 93548d331..85dab430b 100644 --- a/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_extractor.java +++ b/400_xowa/src/gplx/xowa/bldrs/css/Xoa_css_extractor.java @@ -91,7 +91,7 @@ public class Xoa_css_extractor { if ( core_db_mgr == null || core_db_mgr.Props() == null || core_db_mgr.Props().Schema_is_1() - || !core_db_mgr.Tbl__cfg().Select_yn_or(Xow_cfg_consts.Grp__wiki_schema, Xow_db_file_schema_props.Key__tbl_css_core, Bool_.N) + || !core_db_mgr.Tbl__cfg().Select_yn_or(Xowd_cfg_key_.Grp__wiki_schema, Xow_db_file_schema_props.Key__tbl_css_core, Bool_.N) ) { Xoa_app_.Usr_dlg().Warn_many("", "", "css.db not found; wiki=~{0} css_dir=~{1}", wiki.Domain_str(), wiki_html_dir.Raw()); return false; diff --git a/400_xowa/src/gplx/xowa/bldrs/infos/Xob_info_file.java b/400_xowa/src/gplx/xowa/bldrs/infos/Xob_info_file.java index 5024bd5c0..403d58cfd 100644 --- a/400_xowa/src/gplx/xowa/bldrs/infos/Xob_info_file.java +++ b/400_xowa/src/gplx/xowa/bldrs/infos/Xob_info_file.java @@ -55,7 +55,7 @@ public class Xob_info_file { , hash.Get_by(Cfg_key__orig_file_name ).To_str_or("") ); } - private static final String Cfg_grp = gplx.xowa.wikis.Xow_cfg_consts.Grp__bldr_db + private static final String Cfg_grp = gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__bldr_db , Cfg_key__id = "id" // EX: 1 , Cfg_key__type = "type" // EX: core , Cfg_key__ns_ids = "ns_ids" // EX: 0 diff --git a/400_xowa/src/gplx/xowa/bldrs/infos/Xob_info_session.java b/400_xowa/src/gplx/xowa/bldrs/infos/Xob_info_session.java index 7eee99622..698b6af8d 100644 --- a/400_xowa/src/gplx/xowa/bldrs/infos/Xob_info_session.java +++ b/400_xowa/src/gplx/xowa/bldrs/infos/Xob_info_session.java @@ -48,7 +48,7 @@ public class Xob_info_session { , hash.Get_by(Cfg_key__guid).To_guid_or(Guid_adp_.Empty) ); } - public static final String Cfg_grp = gplx.xowa.wikis.Xow_cfg_consts.Grp__bldr_session + public static final String Cfg_grp = gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__bldr_session , Cfg_key__user = "user" // EX: anonymous , Cfg_key__version = "version" // EX: 2.3.1.4 , Cfg_key__wiki_domain = "wiki_domain" // EX: en.wikipedia.org diff --git a/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core.java b/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core.java deleted file mode 100644 index 341465c6e..000000000 --- a/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core.java +++ /dev/null @@ -1,90 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.bldrs.installs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; -import gplx.xowa.apps.gfs.*; -import gplx.xowa.langs.*; import gplx.xowa.langs.parsers.*; -import gplx.xowa.wikis.nss.*; -import gplx.xowa.wikis.metas.*; -public class Xow_cfg_wiki_core { - public Xow_cfg_wiki_core(Xowe_wiki wiki) {this.wiki = wiki;} private Xowe_wiki wiki; - public void Save() { - } - public byte[] Build_gfs() { - Xoa_gfs_bldr wtr = new Xoa_gfs_bldr(); - Xow_wiki_props props = wiki.Props(); - wtr.Add_proc_init_many(Xowe_wiki.Invk_props).Add_nl(); - wtr.Add_proc_cont_one(Xow_wiki_props.Invk_bldr_version_).Add_parens_str(props.Bldr_version()).Add_nl(); - wtr.Add_proc_cont_one(Xow_wiki_props.Invk_main_page_).Add_parens_str(props.Main_page()).Add_nl(); - wtr.Add_proc_cont_one(Xow_wiki_props.Invk_siteinfo_misc_).Add_parens_str(props.Siteinfo_misc()).Add_nl(); - wtr.Add_proc_cont_one(Xow_wiki_props.Invk_siteinfo_mainpage_).Add_parens_str(props.Siteinfo_mainpage()).Add_nl(); - wtr.Add_term_nl(); - wtr.Add_proc_init_many(Xowe_wiki.Invk_ns_mgr).Add_nl(); - wtr.Add_proc_cont_one(Xow_ns_mgr.Invk_clear).Add_nl(); - wtr.Add_proc_cont_one(Xow_ns_mgr.Invk_load).Add_paren_bgn().Add_nl(); - wtr.Add_quote_xtn_bgn(); - Xol_csv_parser csv_parser = Xol_csv_parser.Instance; - int nms_len = wiki.Ns_mgr().Count(); - for (int i = 0; i < nms_len; i++) { - Xow_ns ns = wiki.Ns_mgr().Ords_get_at(i); - wtr.Bfr().Add_int_variable(ns.Id()).Add_byte_pipe().Add_int_fixed(ns.Case_match(), 1).Add_byte_pipe(); - csv_parser.Save(wtr.Bfr(), ns.Name_ui()); - wtr.Add_nl(); - } - wtr.Add_quote_xtn_end(); - wtr.Add_paren_end().Add_term_nl(); - return wtr.Xto_bry(); - } - public void Load(String raw) { - wiki.Appe().Gfs_mgr().Run_str_for(wiki, raw); - } - public static void Load_ns_(Xow_ns_mgr ns_mgr, byte[] src) {// 10|1|Template - int len = src.length; int pos = 0, fld_bgn = 0, fld_idx = 0, row_bgn = 0; - int cur_id = Int_.Min_value; byte cur_case_match = Byte_.Max_value_127; byte[] cur_name = Bry_.Empty; - Xol_csv_parser csv_parser = Xol_csv_parser.Instance; - while (true) { - boolean last = pos == len; - byte b = last ? Byte_ascii.Nl : src[pos]; - switch (b) { - case Byte_ascii.Pipe: - switch (fld_idx) { - case 0: cur_id = Bry_.To_int_or(src, fld_bgn, pos, Int_.Min_value); if (cur_id == Int_.Min_value) throw Err_.new_wo_type("failed to load id", "id", String_.new_u8(src, fld_bgn, pos)); break; - case 1: cur_case_match = Bry_.To_int_as_byte(src, fld_bgn, pos, Byte_.Max_value_127); if (cur_id == Byte_.Max_value_127) throw Err_.new_wo_type("failed to load match", "id", String_.new_u8(src, fld_bgn, pos)); break; - default: throw Err_.new_unhandled(fld_idx); - } - fld_bgn = pos + 1; - ++fld_idx; - break; - case Byte_ascii.Nl: - if (pos > row_bgn) { // guard against blank lines - cur_name = csv_parser.Load(src, fld_bgn, pos); - ns_mgr.Add_new(cur_id, cur_name, cur_case_match, false); - } - cur_id = Int_.Min_value; cur_case_match = Byte_.Max_value_127; - fld_bgn = pos + 1; - fld_idx = 0; - row_bgn = fld_bgn; - break; - } - if (last) break; - ++pos; - } - ns_mgr.Init_w_defaults(); - } - static final String Url_wiki_core_gfs = "wiki_core.gfs"; - static final String GRP_KEY = "xowa.wiki.cfg.wiki_core"; -} diff --git a/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core_tst.java b/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core_tst.java deleted file mode 100644 index eac2fa11c..000000000 --- a/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core_tst.java +++ /dev/null @@ -1,111 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.bldrs.installs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; -import org.junit.*; import gplx.xowa.wikis.nss.*; -public class Xow_cfg_wiki_core_tst { - Xow_cfg_wiki_core_fxt fxt = new Xow_cfg_wiki_core_fxt(); - @Before public void init() {fxt.Clear();} - @Test public void Save() { - fxt.Save_tst(Xoa_app_.Version, "Main_Page", "Wikipedia|MediaWiki 1.21wmf5|first-letter|", 0, "User test", Const_wiki_core_cfg); - } - @Test public void Load_and_save() { - fxt.Load_and_save_tst(Const_wiki_core_cfg); - } - @Test public void Load() { - fxt.Load_tst(String_.Concat_lines_nl - ( "ns_mgr.clear.load(" - , "<:['" - , "0|0|" // DEFECT: test that 0 sets case_match to case-sensitive; empty name was causing it to "default" to 1; DATE:2013-01-30 - , "" // test to make sure blank line doesn't fail - , "4|1|Wikipedia" // test to make sure that values are updated after blank line - , "" - , "']:>" - , ");" - ) - , fxt.ns_(Xow_ns_.Tid__main , true, "") - , fxt.ns_(Xow_ns_.Tid__project , false, "Wikipedia") - ); - } - public static final String Const_wiki_core_cfg = String_.Concat_lines_nl - ( "props" - , ".bldr_version_('" + Xoa_app_.Version + "')" - , ".main_page_('Main_Page')" - , ".siteinfo_misc_('Wikipedia|MediaWiki 1.21wmf5|first-letter|')" - , ".siteinfo_mainpage_('')" - , ";" - , "ns_mgr" - , ".clear" - , ".load(" - , "<:['" - , "-2|1|Media" - , "-1|1|Special" - , "0|1|" - , "1|1|Talk" - , "2|0|User test" // NOTE: intentionally changing this to "0|User test" to differ from existing - , "3|1|User talk" - , "4|1|Wikipedia" - , "5|1|Wikipedia talk" - , "6|1|File" - , "7|1|File talk" - , "8|1|MediaWiki" - , "9|1|MediaWiki talk" - , "10|1|Template" - , "11|1|Template talk" - , "12|1|Help" - , "13|1|Help talk" - , "14|1|Category" - , "15|1|Category talk" - , "100|1|Portal" - , "101|1|Portal talk" - , "108|1|Book" - , "109|1|Book talk" - , "828|1|Module" - , "829|1|Module talk" - , "']:>" - , ");" - ); -} -class Xow_cfg_wiki_core_fxt { - Xoae_app app; Xowe_wiki wiki; - public Xowe_wiki Wiki() {return wiki;} - public void Clear() { - app = Xoa_app_fxt.Make__app__edit(); - wiki = Xoa_app_fxt.Make__wiki__edit(app); - } - public void Save_tst(String bldr_version, String main_page, String siteinfo_misc, int ns_user_case_match, String ns_user_name, String expd) { - wiki.Props().Bldr_version_(Bry_.new_a7(bldr_version)).Main_page_(Bry_.new_a7(main_page)).Siteinfo_misc_(Bry_.new_a7(siteinfo_misc)); - Xow_ns ns_user = wiki.Ns_mgr().Ids_get_or_null(Xow_ns_.Tid__user); - ns_user.Case_match_((byte)ns_user_case_match); ns_user.Name_bry_(Bry_.new_a7(ns_user_name)); - Tfds.Eq_str_lines(expd, String_.new_a7(wiki.Cfg_wiki_core().Build_gfs())); - } - public void Load_and_save_tst(String raw) { - wiki.Cfg_wiki_core().Load(raw); - Tfds.Eq_str_lines(raw, String_.new_a7(wiki.Cfg_wiki_core().Build_gfs())); - } - public Xow_ns ns_(int id, boolean case_match, String name) {return new Xow_ns(id, case_match ? Xow_ns_case_.Tid__all : Xow_ns_case_.Tid__1st, Bry_.new_u8(name), false);} - public void Load_tst(String raw, Xow_ns... expd_ary) { - wiki.Cfg_wiki_core().Load(raw); - int expd_len = expd_ary.length; - for (int i = 0; i < expd_len; i++) { - Xow_ns expd = expd_ary[i]; - Xow_ns actl = wiki.Ns_mgr().Ids_get_or_null(expd.Id()); - Tfds.Eq(expd.Case_match(), actl.Case_match(), Int_.To_str(expd.Id())); - Tfds.Eq(expd.Name_db_str(), actl.Name_db_str(), Int_.To_str(expd.Id())); - } - } -} diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01.java b/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01.java deleted file mode 100644 index 63801606b..000000000 --- a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01.java +++ /dev/null @@ -1,56 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.bldrs.setups.upgrades; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.setups.*; -import gplx.xowa.bldrs.*; -class Upgrader_v00_02_01 { - public void Run(Xowe_wiki wiki) { - Io_url cfg_dir = wiki.Fsys_mgr().Root_dir().GenSubDir("cfg"); - if (!Io_mgr.Instance.ExistsDir(cfg_dir)) return; // brand-new wiki; nothing to migrate - Gfo_usr_dlg usr_dlg = wiki.Appe().Usr_dlg(); - usr_dlg.Note_many(GRP_KEY, "run.bgn", "migrate.bgn for ~{0}", wiki.Domain_str()); - Io_url siteinfo_url = cfg_dir.GenSubFil_nest("siteInfo.xml"); - usr_dlg.Note_many(GRP_KEY, "siteinfo.bgn", "siteinfo.bgn for ~{0}", siteinfo_url.Raw()); - String siteinfo_str = Io_mgr.Instance.LoadFilStr_args(siteinfo_url).MissingIgnored_(true).Exec(); if (String_.Len_eq_0(siteinfo_str)) throw Err_.new_wo_type("could not find siteinfo.xml", "url", siteinfo_url.Raw()); - usr_dlg.Note_many(GRP_KEY, "siteinfo.parse", "parsing siteinfo"); - gplx.xowa.bldrs.cmds.texts.xmls.Xob_siteinfo_parser_.Parse(Bry_.new_u8(siteinfo_str), wiki); // NOTE: this also resets the namespaces on the wiki; not necessary, but is benign - usr_dlg.Note_many(GRP_KEY, "siteinfo.save", "saving siteinfo"); - byte[] wiki_core_bry = wiki.Cfg_wiki_core().Build_gfs(); - Io_mgr.Instance.SaveFilBry(wiki.Tdb_fsys_mgr().Cfg_wiki_core_fil(), wiki_core_bry); - usr_dlg.Note_many(GRP_KEY, "siteinfo.end", "siteinfo.end for ~{0}", wiki.Domain_str()); - - Io_url old_wikistats_url = wiki.Fsys_mgr().Root_dir().GenSubFil_nest("cfg", "wiki.gfs"); - Io_url new_wikistats_url = wiki.Tdb_fsys_mgr().Cfg_wiki_stats_fil(); - if (Io_mgr.Instance.ExistsFil(new_wikistats_url)) // noop; should not happen, but perhaps results from merging directories; - usr_dlg.Note_many(GRP_KEY, "wiki_stats.new_exists", "new wiki stats already exists for ~{0}", new_wikistats_url.Raw()); - else if (!Io_mgr.Instance.ExistsFil(old_wikistats_url)) // noop; should not happen; - usr_dlg.Note_many(GRP_KEY, "wiki_stats.old_missing", "old wiki stats missing ~{0}", old_wikistats_url.Raw()); - else { // rename "wiki.gfs" to "wiki_stats.gfs" - usr_dlg.Note_many(GRP_KEY, "wiki_stats.rename.bgn", "copying: src=~{0} trg=~{1}", old_wikistats_url.Raw(), new_wikistats_url.Raw()); - Io_mgr.Instance.CopyFil(old_wikistats_url, new_wikistats_url, false); - } - byte[] old_wikistats_bry = Io_mgr.Instance.LoadFilBry(new_wikistats_url); - byte[] new_wikistats_bry = Bry_.Replace_between(old_wikistats_bry, Bry_.new_a7("props.main_page_('"), Bry_.new_a7("');\n"), Bry_.Empty); - if (!Bry_.Eq(old_wikistats_bry, new_wikistats_bry)) { - usr_dlg.Note_many(GRP_KEY, "wiki_stats.remove_mainpage", "removing mainpages"); - Io_mgr.Instance.SaveFilBry(new_wikistats_url, new_wikistats_bry); - } - usr_dlg.Note_many(GRP_KEY, "run.end", "migrate.end for ~{0}", wiki.Domain_str()); - usr_dlg.Note_many("", "", ""); - } - static final String GRP_KEY = "xowa.wiki.upgrades.v00_02_01"; -} diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01_tst.java b/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01_tst.java deleted file mode 100644 index 9718c2891..000000000 --- a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01_tst.java +++ /dev/null @@ -1,71 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.bldrs.setups.upgrades; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.setups.*; -import org.junit.*; import gplx.xowa.bldrs.installs.*; -public class Upgrader_v00_02_01_tst { - @Test public void Run() { - Xoae_app app = Xoa_app_fxt.Make__app__edit(); - Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app); - Io_url cfg_dir = wiki.Fsys_mgr().Root_dir().GenSubDir("cfg"); - Io_mgr.Instance.SaveFilStr(cfg_dir.GenSubFil("siteInfo.xml"), Str_siteinfo_xml); - Io_mgr.Instance.SaveFilStr(cfg_dir.GenSubFil("wiki.gfs"), Str_wikistats_gfs); - Upgrader_v00_02_01 mgr = new Upgrader_v00_02_01(); - mgr.Run(wiki); - Tfds.Eq_str_lines(Xow_cfg_wiki_core_tst.Const_wiki_core_cfg, Io_mgr.Instance.LoadFilStr(wiki.Tdb_fsys_mgr().Cfg_wiki_core_fil())); - Tfds.Eq_str_lines("/* assume content ... */", Io_mgr.Instance.LoadFilStr(wiki.Tdb_fsys_mgr().Cfg_wiki_stats_fil())); - } - public static String Str_siteinfo_xml = String_.Concat_lines_nl - ( "" - , " Wikipedia" - , " http://en.wikipedia.org/wiki/Main_Page" - , " MediaWiki 1.21wmf5" - , " first-letter" - , " " - , " Media" - , " Special" - , " " - , " Talk" - , " User test" // NOTE: intentionally changing this to "0|User test" to differ from existing - , " User talk" - , " Wikipedia" - , " Wikipedia talk" - , " File" - , " File talk" - , " MediaWiki" - , " MediaWiki talk" - , " Template" - , " Template talk" - , " Help" - , " Help talk" - , " Category" - , " Category talk" - , " Portal" - , " Portal talk" - , " Book" - , " Book talk" - , " Module" - , " Module talk" - , " " - , " " - ); - private static String Str_wikistats_gfs = String_.Concat_lines_nl - ( "/* assume content ... */" - , "props.main_page_('Main Page');" - , "props.main_page_('Main Page');" // sometimes doubled - ); -} diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Xoa_upgrade_mgr.java b/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Xoa_upgrade_mgr.java index 92fefaf9d..94fb9b4a6 100644 --- a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Xoa_upgrade_mgr.java +++ b/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Xoa_upgrade_mgr.java @@ -21,15 +21,6 @@ public class Xoa_upgrade_mgr { public static void Check(Xoae_app app) { Upgrade_history(app); } - public static void Check(Xowe_wiki wiki) { - if (wiki.Domain_tid() == Xow_domain_tid_.Tid__home) return; // home wiki never needs to be migrated - try { - if (Bry_.Eq(wiki.Props().Bldr_version(), Bry_.Empty)) { // version is ""; wiki must be created prior to v0.2.1; create wiki_core.gfs - Upgrader_v00_02_01 mgr = new Upgrader_v00_02_01(); - mgr.Run(wiki); - } - } catch (Exception e) {wiki.Appe().Usr_dlg().Warn_many("", "", "unknown error during migrate; domain=~{0} err=~{1}", wiki.Domain_str(), Err_.Message_gplx_full(e));} - } private static void Upgrade_history(Xoae_app app) { Io_url old_history_dir = app.Usere().Fsys_mgr().App_data_dir(); Io_url new_history_dir = app.Usere().Fsys_mgr().App_data_dir().GenSubDir("history"); diff --git a/400_xowa/src/gplx/xowa/wikis/Xoa_wiki_mgr_.java b/400_xowa/src/gplx/xowa/wikis/Xoa_wiki_mgr_.java index 5f13864ba..3b07a0024 100644 --- a/400_xowa/src/gplx/xowa/wikis/Xoa_wiki_mgr_.java +++ b/400_xowa/src/gplx/xowa/wikis/Xoa_wiki_mgr_.java @@ -22,7 +22,7 @@ public class Xoa_wiki_mgr_ { public static Xow_wiki Import_by_url(Xoa_app app, Xoa_wiki_mgr wiki_mgr, Io_url url) { Db_conn conn = Db_conn_bldr.Instance.Get_or_noop(url); if (conn == Db_conn_.Noop) return null; // invalid url Db_cfg_tbl cfg_tbl = Xowd_cfg_tbl_.Get_or_null(conn); if (cfg_tbl == null) return null; // no xowa_cfg; - byte[] wiki_domain = cfg_tbl.Select_bry(Xow_cfg_consts.Grp__bldr_session, Xob_info_session.Cfg_key__wiki_domain); if (wiki_domain == null) return null; + byte[] wiki_domain = cfg_tbl.Select_bry(Xowd_cfg_key_.Grp__bldr_session, Xob_info_session.Cfg_key__wiki_domain); if (wiki_domain == null) return null; Io_url wiki_root_dir = url.OwnerDir(); Xow_wiki rv = wiki_mgr.Make(wiki_domain, wiki_root_dir); wiki_mgr.Add(rv); diff --git a/400_xowa/src/gplx/xowa/wikis/Xow_cfg_consts.java b/400_xowa/src/gplx/xowa/wikis/Xow_cfg_consts.java deleted file mode 100644 index 67a97eaba..000000000 --- a/400_xowa/src/gplx/xowa/wikis/Xow_cfg_consts.java +++ /dev/null @@ -1,33 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.wikis; import gplx.*; import gplx.xowa.*; -public class Xow_cfg_consts { - public static final String - Grp__wiki_core = "xowa.wiki.core" - , Grp__wiki_schema = "xowa.wiki.schema" - , Grp__bldr_session = "xowa.bldr.session" - , Grp__bldr_db = "xowa.bldr.db" - , Grp__bldr_fsdb = "xowa.bldr.fsdb" - , Grp__wiki_init = "wiki.init" - , Grp__empty = "" - , Key__init__main_page = "props.main_page" - , Key__init__bldr_version = "props.bldr_version" - , Key__init__modified_latest = "props.modified_latest" - , Key__init__domain = "props.domain" - ; -} diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xow_db_file_schema_props.java b/400_xowa/src/gplx/xowa/wikis/data/Xow_db_file_schema_props.java index f6b99c808..39fcc92e7 100644 --- a/400_xowa/src/gplx/xowa/wikis/data/Xow_db_file_schema_props.java +++ b/400_xowa/src/gplx/xowa/wikis/data/Xow_db_file_schema_props.java @@ -30,7 +30,7 @@ public class Xow_db_file_schema_props { boolean wbase__qid__src_ttl_has_spaces = String_.In(version, "2.4.2.1", "2.4.3.1", "2.4.3.2"); return new Xow_db_file_schema_props(search__word__page_count_exists, wbase__qid__src_ttl_has_spaces); } - public static final String Grp = Xow_cfg_consts.Grp__wiki_schema; + public static final String Grp = Xowd_cfg_key_.Grp__wiki_schema; public static final String Key__tbl_css_core = "tbl.css_core" // VERSION:2.4.1 , Key__col_search_word_page_count = "col.search_word.word_page_count" // VERSION:2.4.2 diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_key_.java b/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_key_.java new file mode 100644 index 000000000..7b639d962 --- /dev/null +++ b/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_key_.java @@ -0,0 +1,38 @@ +/* +XOWA: the XOWA Offline Wiki Application +Copyright (C) 2012 gnosygnu@gmail.com + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . +*/ +package gplx.xowa.wikis.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; +public class Xowd_cfg_key_ { + public static final String + Grp__empty = "" + , Grp__wiki_schema = "xowa.wiki.schema" + , Grp__bldr_session = "xowa.bldr.session" + , Grp__bldr_db = "xowa.bldr.db" + , Grp__bldr_fsdb = "xowa.bldr.fsdb" + + , Grp__wiki_init = "wiki.init" + , Key__init__main_page = "props.main_page" + , Key__init__bldr_version = "props.bldr_version" + , Key__init__modified_latest = "props.modified_latest" + , Key__init__siteinfo_misc = "props.siteinfo_misc" + , Key__init__siteinfo_mainpage = "props.siteinfo_mainpage" + + , Grp__wiki_core = "xowa.wiki.core" + , Key__wiki_core__domain = "xowa.wiki.core.domain" + , Key__wiki_core__name = "xowa.wiki.core.name" + ; +} diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_tbl_.java b/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_tbl_.java index 4e960f739..bfe67faf1 100644 --- a/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_tbl_.java +++ b/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_tbl_.java @@ -29,4 +29,18 @@ public class Xowd_cfg_tbl_ { if (rv == null) throw Err_.New("xowa_cfg tbl does not exist: file={0}", conn.Conn_info().Raw()); return rv; } + + public static void Insert__import(Xowe_wiki wiki) { + Db_cfg_tbl cfg_tbl = wiki.Data__core_mgr().Db__core().Tbl__cfg(); + cfg_tbl.Insert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__bldr_version, wiki.Props().Bldr_version()); + cfg_tbl.Insert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__siteinfo_misc, wiki.Props().Siteinfo_misc()); + cfg_tbl.Insert_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_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)); + } } diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xowd_core_db_props.java b/400_xowa/src/gplx/xowa/wikis/data/Xowd_core_db_props.java index 0ec36f816..00993807b 100644 --- a/400_xowa/src/gplx/xowa/wikis/data/Xowd_core_db_props.java +++ b/400_xowa/src/gplx/xowa/wikis/data/Xowd_core_db_props.java @@ -68,7 +68,7 @@ public class Xowd_core_db_props { , cfg_hash.Get_by(Cfg_key__hzip_mode_is_b256).To_yn_or(Bool_.N) ); } - private static final String Cfg_grp = Xow_cfg_consts.Grp__wiki_core + private static final String Cfg_grp = gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__wiki_core , Cfg_key__schema_version = "schema_version" , Cfg_key__layout_text = "layout_text" , Cfg_key__layout_html = "layout_html" diff --git a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_sql.java b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_sql.java index 6cecc0e3f..7c335675b 100644 --- a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_sql.java +++ b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_sql.java @@ -16,38 +16,45 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package gplx.xowa.wikis.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; -import gplx.core.primitives.*; import gplx.dbs.*; import gplx.dbs.cfgs.*; -import gplx.xowa.apps.gfs.*; import gplx.xowa.addons.wikis.ctgs.bldrs.*; import gplx.xowa.addons.wikis.ctgs.*; import gplx.xowa.wikis.data.tbls.*; -import gplx.xowa.wikis.nss.*; -import gplx.xowa.wikis.*; import gplx.xowa.wikis.metas.*; import gplx.xowa.wikis.data.*; -import gplx.xowa.addons.wikis.searchs.*; -import gplx.xowa.addons.wikis.ctgs.htmls.catpages.*; import gplx.xowa.addons.wikis.ctgs.htmls.catpages.doms.*; import gplx.xowa.addons.wikis.ctgs.htmls.catpages.urls.*; +import gplx.core.primitives.*; +import gplx.dbs.*; import gplx.dbs.cfgs.*; import gplx.xowa.wikis.data.tbls.*; +import gplx.xowa.apps.gfs.*; +import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.metas.*; import gplx.xowa.wikis.data.*; public class Xodb_load_mgr_sql implements Xodb_load_mgr { - private Xodb_mgr_sql db_mgr; Xow_db_mgr fsys_mgr; - public Xodb_load_mgr_sql(Xow_wiki wiki, Xodb_mgr_sql db_mgr, Xow_db_mgr fsys_mgr) {this.db_mgr = db_mgr; this.fsys_mgr = fsys_mgr;} + private final Xodb_mgr_sql db_mgr; + public Xodb_load_mgr_sql(Xodb_mgr_sql db_mgr) {this.db_mgr = db_mgr;} public void Load_init(Xowe_wiki wiki) { - Load_init_cfg(wiki); Xow_db_file db_core = wiki.Data__core_mgr().Db__core(); + Load_cfg(wiki); db_core.Tbl__site_stats().Select(wiki.Stats()); db_core.Tbl__ns().Select_all(wiki.Ns_mgr()); } - private void Load_init_cfg(Xowe_wiki wiki) { - String version_key = Xoa_gfs_wtr_.Write_func_chain(Xowe_wiki.Invk_props, Xow_wiki_props.Invk_bldr_version); - Db_cfg_hash cfg_hash = db_mgr.Core_data_mgr().Tbl__cfg().Select_as_hash(Xow_cfg_consts.Grp__wiki_init); - String version_val = cfg_hash.Get_by(version_key).To_str_or(""); - Xodb_upgrade_mgr.Upgrade(db_mgr, cfg_hash, version_key, version_val); - Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_k004(); - Xoa_gfs_mgr gfs_mgr = wiki.Appe().Gfs_mgr(); - try { - int len = cfg_hash.Len(); - for (int i = 0; i < len; ++i) { - Db_cfg_itm cfg_itm = cfg_hash.Get_at(i); - Xoa_gfs_wtr_.Write_prop(bfr, Bry_.new_u8(cfg_itm.Key()), Bry_.new_u8(cfg_itm.To_str_or(""))); + private void Load_cfg(Xowe_wiki wiki) { + byte[] main_page = null, bldr_version = null, siteinfo_misc = null, siteinfo_mainpage = null; + DateAdp modified_latest = null; + + // load from xowa_cfg + gplx.dbs.cfgs.Db_cfg_hash prop_hash = wiki.Data__core_mgr().Db__core().Tbl__cfg().Select_as_hash(Xowd_cfg_key_.Grp__wiki_init); + int len = prop_hash.Len(); + for (int i = 0; i < len; i++) { + gplx.dbs.cfgs.Db_cfg_itm prop = prop_hash.Get_at(i); + String prop_key = prop.Key(); + try { + if (String_.Eq(prop_key, Xowd_cfg_key_.Key__init__main_page)) main_page = Bry_.new_u8(prop.Val()); + else if (String_.Eq(prop_key, Xowd_cfg_key_.Key__init__bldr_version)) bldr_version = Bry_.new_u8(prop.Val()); + else if (String_.Eq(prop_key, Xowd_cfg_key_.Key__init__siteinfo_misc)) siteinfo_misc = Bry_.new_u8(prop.Val()); + else if (String_.Eq(prop_key, Xowd_cfg_key_.Key__init__siteinfo_mainpage)) siteinfo_mainpage = Bry_.new_u8(prop.Val()); + else if (String_.Eq(prop_key, Xowd_cfg_key_.Key__init__modified_latest)) modified_latest = DateAdp_.parse_gplx(prop.Val()); + } catch (Exception exc) { + Gfo_usr_dlg_.Instance.Warn_many("", "", "failed to set prop; key=~{0} val=~{1} err=~{2}", prop_key, prop.Val(), Err_.Message_gplx_log(exc)); } - gfs_mgr.Run_str_for(wiki, bfr.To_str_and_clear()); - } finally {bfr.Mkr_rls();} + } + + wiki.Props().Init_by_load_2(main_page, bldr_version, siteinfo_misc, siteinfo_mainpage, modified_latest); + } + public boolean Load_by_ttl(Xowd_page_itm rv, Xow_ns ns, byte[] ttl) { + return db_mgr.Core_data_mgr().Tbl__page().Select_by_ttl(rv, ns, ttl); } - public boolean Load_by_ttl(Xowd_page_itm rv, Xow_ns ns, byte[] ttl) {return db_mgr.Core_data_mgr().Tbl__page().Select_by_ttl(rv, ns, ttl);} public void Load_by_ttls(Cancelable cancelable, Ordered_hash rv, boolean fill_idx_fields_only, int bgn, int end) { db_mgr.Core_data_mgr().Tbl__page().Select_in__ns_ttl(cancelable, rv, db_mgr.Wiki().Ns_mgr(), fill_idx_fields_only, bgn, end); } diff --git a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_mgr_sql.java b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_mgr_sql.java index 00db5fe77..7a09cbcee 100644 --- a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_mgr_sql.java +++ b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_mgr_sql.java @@ -23,7 +23,7 @@ public class Xodb_mgr_sql implements Xodb_mgr, Gfo_invk { public Xodb_mgr_sql(Xowe_wiki wiki) { this.wiki = wiki; this.core_data_mgr = new Xow_db_mgr(wiki, wiki.Fsys_mgr().Root_dir()); - this.load_mgr = new Xodb_load_mgr_sql(wiki, this, core_data_mgr); + this.load_mgr = new Xodb_load_mgr_sql(this); this.save_mgr = new Xodb_save_mgr_sql(this); } public byte Tid() {return Tid_sql;} public String Tid_name() {return "sqlite3";} public static final byte Tid_sql = 1; @@ -38,7 +38,7 @@ public class Xodb_mgr_sql implements Xodb_mgr, Gfo_invk { return Io_mgr.Instance.QueryFil(url).ModifiedTime(); } public void Category_version_update(boolean version_is_1) { - String grp = Xow_cfg_consts.Grp__wiki_init; + String grp = Xowd_cfg_key_.Grp__wiki_init; String key = Xoa_gfs_wtr_.Write_func_chain(Xowe_wiki.Invk_db_mgr, Xodb_mgr_sql.Invk_category_version); core_data_mgr.Tbl__cfg().Delete_val(grp, key);// always delete ctg version category_version = version_is_1 ? Xoa_ctg_mgr.Version_1 : Xoa_ctg_mgr.Version_2; diff --git a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_upgrade_mgr.java b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_upgrade_mgr.java deleted file mode 100644 index f0c344119..000000000 --- a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_upgrade_mgr.java +++ /dev/null @@ -1,68 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012 gnosygnu@gmail.com - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . -*/ -package gplx.xowa.wikis.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; -import gplx.dbs.*; import gplx.dbs.cfgs.*; import gplx.xowa.wikis.data.tbls.*; -class Xodb_upgrade_mgr { - public static void Upgrade(Xodb_mgr_sql db_mgr, Db_cfg_hash cfg_hash, String version_key, String version_val) { -// String version_new = null; -// if (String_.Eq(version_val, "0.6.2.0")) { -// Xodb_upgrade_mgr_v0_6_2_0.Upgrade(db_mgr, kv_ary); -// version_new = "0.6.2.1"; -// } -// if (version_new != null) { -// db_mgr.Tbl_xowa_cfg().Update(Xodb_mgr_sql.Grp__wiki_init, version_key, version_new); -// } - } -} -// class Xodb_upgrade_mgr_v0_6_2_0 { -// public static void Upgrade(Xodb_mgr_sql db_mgr, Keyval[] kv_ary) { -// Db_conn p = db_mgr.Fsys_mgr().Core_provider(); -// Fix_storage_format(p, db_mgr, kv_ary); -// Fix_category_version(p, db_mgr); -// } -// private static void Fix_storage_format(Db_conn p, Xodb_mgr_sql db_mgr, Keyval[] kv_ary) { // storage_format saved incorrectly as int -// int len = kv_ary.length; -// String gfs_data_storage_format = Xoa_gfs_mgr.Build_code(Xowe_wiki.Invk_db_mgr, Xodb_mgr_sql.Invk_data_storage_format); -// for (int i = 0; i < len; i++) { -// Keyval kv = kv_ary[i]; -// String kv_key = kv.Key(); -// if (String_.Eq(kv_key, gfs_data_storage_format)) { -// byte data_storage_format_byte = Byte_.parse(kv.Val_to_str_or_empty()); -// String data_storage_format_name = Xoi_dump_mgr.Wtr_tid_to_str(data_storage_format_byte); -// kv.Val_(data_storage_format_name); // update memory -// db_mgr.Tbl_xowa_cfg().Update(Xodb_mgr_sql.Grp__wiki_init, gfs_data_storage_format, data_storage_format_name); // update_database -// break; -// } -// } -// } -// private static void Fix_category_version(Db_conn p, Xodb_mgr_sql db_mgr) { -// Db_qry qry = Db_qry_.select_().From_(Xodb_categorylinks_tbl.Tbl_name).Cols_(Xodb_categorylinks_tbl.Fld_cl_type_id).Where_(Db_crt_.New_eq(Xodb_categorylinks_tbl.Fld_cl_type_id, )); -// Db_stmt stmt = Db_stmt_.Null; -// DataRdr rdr = DataRdr_.Null; -// int types = 0; -// try { -// stmt = db_mgr.Fsys_mgr().Category_provider().Prepare(qry); -// rdr = stmt.Exec_select(); -// while (rdr.MoveNextPeer()) { -// ++types; -// } -// } finally {rdr.Rls(); stmt.Rls();} -// boolean schema_is_1 = types <= 1; // if 0 or 1 types assume version_1 (1=page only; 0=not set up) -// db_mgr.Category_version_update(true); // assume version_1; will be wrong if user actually did version_2, but currently version_1 vs version_2 has no -// } -// } diff --git a/400_xowa/src/gplx/xowa/wikis/metas/Xow_wiki_props.java b/400_xowa/src/gplx/xowa/wikis/metas/Xow_wiki_props.java index bc90dc120..08b4f1e5f 100644 --- a/400_xowa/src/gplx/xowa/wikis/metas/Xow_wiki_props.java +++ b/400_xowa/src/gplx/xowa/wikis/metas/Xow_wiki_props.java @@ -16,69 +16,78 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package gplx.xowa.wikis.metas; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; -import gplx.xowa.langs.msgs.*; -import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; +import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.data.*; import gplx.xowa.htmls.hrefs.*; -public class Xow_wiki_props implements Gfo_invk { - public byte[] Main_page() {return main_page;} private byte[] main_page = Xoa_page_.Main_page_bry; // HACK: default to Main_Page b/c some code tries to do Xoa_ttl.Parse() which will not work with ""; DATE:2014-02-16 - public Xow_wiki_props Main_page_(byte[] v) {main_page = v; return this;} - public void Main_page_update(Xowe_wiki wiki) { - siteinfo_mainpage = main_page; // note that main_page came from ; store old value for record's sake - main_page = Xow_mainpage_finder.Find_or(wiki, siteinfo_mainpage); // get new main_page from mainpage_finder - } - public byte Protocol_tid() {return protocol_tid;} private final byte protocol_tid = gplx.core.net.Gfo_protocol_itm.Tid_https; // NOTE: default protocol to https; handles external links like [//a.org]; may need to be changed for wikia or other non-WMF wikis; DATE:2015-07-27 +public class Xow_wiki_props { + // MW props for Pfunc_wiki_props and Scrib_lib; EX: {{SITENAME}} + public byte[] Site_name() {return site_name;} private byte[] site_name = Bry_.Empty; + public byte[] Server_name() {return server_name;} private byte[] server_name = Bry_.new_a7("localhost"); + public byte[] Server() {return server;} private byte[] server = Bry_.new_a7("http://localhost"); + public byte[] Article_path() {return article_path;} private byte[] article_path = Xoh_href_.Bry__wiki; + public byte[] Script_path() {return script_path;} private byte[] script_path = Bry_.new_a7("/wiki"); + public byte[] Style_path() {return style_path;} private byte[] style_path = Bry_.new_a7("/wiki/skins"); + public byte[] Content_language() {return content_language;} private byte[] content_language = Bry_.Empty; + public byte[] Direction_mark() {return direction_mark;} private byte[] direction_mark = Bry_.Empty; + public byte[] Current_version() {return CURRENT_VERSION;} private static final byte[] CURRENT_VERSION = Bry_.new_a7("1.21wmf11"); // approximate level of compatibility - public byte[] Site_name() {return site_name;} private byte[] site_name = Bry_.Empty; - public byte[] Server_name() {return server_name;} private byte[] server_name = Bry_.new_a7("localhost"); - public byte[] Server() {return server;} private byte[] server = Bry_.new_a7("http://localhost"); - public byte[] ArticlePath() {return articlePath;} public Xow_wiki_props ArticlePath_(byte[] v) {articlePath = v; return this;} private byte[] articlePath = Xoh_href_.Bry__wiki; - public byte[] ScriptPath() {return scriptPath;} public Xow_wiki_props ScriptPath_(byte[] v) {scriptPath = v; return this;} private byte[] scriptPath = Bry_.new_a7("/wiki"); - public byte[] StylePath() {return stylePath;} public Xow_wiki_props StylePath_(byte[] v) {stylePath = v; return this;} private byte[] stylePath = Bry_.new_a7("/wiki/skins"); - public byte[] ContentLanguage() {return contentLanguage;} public Xow_wiki_props ContentLanguage_(byte[] v) {contentLanguage = v; return this;} private byte[] contentLanguage = Bry_.Empty; - public byte[] DirectionMark() {return directionMark;} public Xow_wiki_props DirectionMark_(byte[] v) {directionMark = v; return this;} private byte[] directionMark = Bry_.Empty; - public byte[] Current_version() {return Current_version_const;} - public byte[] Bldr_version() {return bldr_version;} public Xow_wiki_props Bldr_version_(byte[] v) {bldr_version = v; return this;} private byte[] bldr_version = Bry_.Empty; - public int Css_version() {return css_version;} public Xow_wiki_props Css_version_(int v) {css_version = v; return this;} private int css_version = 1; - public byte[] Siteinfo_misc() {return siteinfo_misc;} - public byte[] Siteinfo_mainpage() {return siteinfo_mainpage;} private byte[] siteinfo_mainpage = Bry_.Empty; - public DateAdp Modified_latest() {return modified_latest;} private DateAdp modified_latest; - public String Modified_latest__yyyy_MM_dd() {return modified_latest == null ? "" : modified_latest.XtoStr_fmt_yyyy_MM_dd();} - public Xow_wiki_props Init_props(int domain_tid, byte[] domain_bry) { - this.site_name = Bry_.new_a7(String_.UpperFirst(String_.new_a7(Xow_domain_tid_.Get_type_as_bry(domain_tid)))); // EX: "Wikipedia" - this.server_name = domain_bry; // EX: "en.wikipedia.org" - this.server = Bry_.Add(gplx.core.net.Gfo_protocol_itm.Itm_https.Text_bry(), domain_bry); // EX: "https://en.wikipedia.org" - return this; + // XO props + public byte Protocol_tid() {return protocol_tid;} private final byte protocol_tid = gplx.core.net.Gfo_protocol_itm.Tid_https; // NOTE: default protocol to https; handles external links like [//a.org]; may need to be changed for wikia or other non-WMF wikis; DATE:2015-07-27 + public byte[] Main_page() {return main_page;} private byte[] main_page = Xoa_page_.Main_page_bry; // HACK: default to Main_Page b/c some code tries to do Xoa_ttl.Parse() which will not work with ""; DATE:2014-02-16 + public byte[] Bldr_version() {return bldr_version;} private byte[] bldr_version = Bry_.Empty; + public int Css_version() {return css_version;} private int css_version = 1; + public byte[] Siteinfo_misc() {return siteinfo_misc;} private byte[] siteinfo_misc = Bry_.Empty; + public byte[] Siteinfo_mainpage() {return siteinfo_mainpage;} private byte[] siteinfo_mainpage = Bry_.Empty; + public DateAdp Modified_latest() {return modified_latest;} private DateAdp modified_latest; + public String Modified_latest__yyyy_MM_dd() {return modified_latest == null ? "" : modified_latest.XtoStr_fmt_yyyy_MM_dd();} + + // setters + 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 ; 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 Xow_wiki_props Siteinfo_misc_(byte[] v) { - siteinfo_misc = v; + public void Siteinfo_misc_(byte[] v) { + this.siteinfo_misc = v; int pipe_0 = Bry_find_.Find_fwd(v, Byte_ascii.Pipe); if (pipe_0 != Bry_find_.Not_found) - site_name = Bry_.Mid(siteinfo_misc, 0, pipe_0); - return this; - } private byte[] siteinfo_misc = Bry_.Empty; + this.site_name = Bry_.Mid(siteinfo_misc, 0, pipe_0); + } + + // inits + public void Init_by_ctor(int domain_tid, byte[] domain_bry) { + // site_name is based on domain_tid; EX: "Wikipedia" + this.site_name = Bry_.new_a7(String_.UpperFirst(String_.new_a7(Xow_domain_tid_.Get_type_as_bry(domain_tid)))); + + // server_name is domain; EX: "en.wikipedia.org" + this.server_name = domain_bry; + + // server_name is https: + domain EX: "https://en.wikipedia.org" + this.server = Bry_.Add(gplx.core.net.Gfo_protocol_itm.Itm_https.Text_bry(), domain_bry); + } + // called by wiki.Init_by_load; leaving as separate proc b/c of "if (app.Bldr__running())"; DATE:2017-02-17 public void Init_by_load(Xoa_app app, gplx.dbs.cfgs.Db_cfg_tbl cfg_tbl) { if (app.Bldr__running()) return; // never load main_page during bldr; note that Init_by_load is called by bldr cmds like css; DATE:2015-07-24 - this.main_page = cfg_tbl.Select_bry_or(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__main_page, null); - this.modified_latest = cfg_tbl.Select_date_or(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__modified_latest, null); + + // load from xowa_cfg + this.main_page = cfg_tbl.Select_bry_or (Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__main_page, null); if (main_page == null) { // main_page not found Xoa_app_.Usr_dlg().Warn_many("", "", "mw_props.load; main_page not found; conn=~{0}", cfg_tbl.Conn().Conn_info().Db_api()); this.main_page = Xoa_page_.Main_page_bry; } + + this.modified_latest = cfg_tbl.Select_date_or(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest, null); } - public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { - if (ctx.Match(k, Invk_main_page_)) main_page = m.ReadBry("v"); - else if (ctx.Match(k, Invk_bldr_version_)) bldr_version = m.ReadBry("v"); - else if (ctx.Match(k, Invk_siteinfo_misc_)) Siteinfo_misc_(m.ReadBry("v")); - else if (ctx.Match(k, Invk_siteinfo_mainpage_)) siteinfo_mainpage = m.ReadBry("v"); - else if (ctx.Match(k, Invk_css_version_)) css_version = m.ReadInt("v"); - else if (ctx.Match(k, Invk_modified_latest_)) modified_latest = m.ReadDate("v"); - else return Gfo_invk_.Rv_unhandled; - return this; + // called by Xodb_load_mgr_sql; note that it might be called during bldr; DATE:2017-02-17 + public void Init_by_load_2(byte[] main_page, byte[] bldr_version, byte[] siteinfo_misc, byte[] siteinfo_mainpage, DateAdp modified_latest) { + this.main_page = main_page; + this.bldr_version = bldr_version; + this.siteinfo_misc = siteinfo_misc; + this.siteinfo_mainpage = siteinfo_mainpage; + this.modified_latest = modified_latest; } - public static final String Invk_main_page_ = "main_page_" - , Invk_bldr_version = "bldr_version", Invk_bldr_version_ = "bldr_version_", Invk_siteinfo_misc_ = "siteinfo_misc_", Invk_siteinfo_mainpage_ = "siteinfo_mainpage_" - , Invk_css_version_ = "css_version_" - , Invk_modified_latest_ = "modified_latest_" - ; - private static final byte[] Current_version_const = Bry_.new_a7("1.21wmf11"); // approximate level of compatibility } diff --git a/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_mgr.java b/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_mgr.java index bec50e5cd..6a3bd742e 100644 --- a/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_mgr.java +++ b/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_mgr.java @@ -244,10 +244,10 @@ public class Xow_ns_mgr implements Gfo_invk, gplx.core.lists.ComparerAble { public Xow_ns Ns() {return ns;} private Xow_ns ns; } public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { - if (ctx.Match(k, Invk_load)) Xow_cfg_wiki_core.Load_ns_(this, m.ReadBry("v")); - else if (ctx.Match(k, Invk_clear)) this.Clear(); + if (ctx.Match(k, Invk_clear)) this.Clear(); + // NOTE: called by /xowa/bin/any/xowa/cfg/wiki/core/*.gfs for (a) aliases; (b) Subpages_enabled else if (ctx.Match(k, Invk_add_alias_bulk)) Exec_add_alias_bulk(m.ReadBry("v")); - else if (ctx.Match(k, Invk_get_by_id_or_new)) return this.Ids_get_or_empty(m.ReadInt("v")); // NOTE: called by #cfg files for setting Subpages_enabled; if ns doesn't exist, returning empty is fine; DATE:2014-02-15 + else if (ctx.Match(k, Invk_get_by_id_or_new)) return this.Ids_get_or_empty(m.ReadInt("v")); // NOTE: if ns doesn't exist, returning empty is fine; DATE:2014-02-15 else return Gfo_invk_.Rv_unhandled; return this; } private static final String Invk_add_alias_bulk = "add_alias_bulk", Invk_get_by_id_or_new = "get_by_id_or_new"; diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_urlfunc.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_urlfunc.java index 880b64994..e94a72bd2 100644 --- a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_urlfunc.java +++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_urlfunc.java @@ -45,9 +45,9 @@ public class Pfunc_urlfunc extends Pf_func_base { // EX: {{lc:A}} -> a Bry_bfr tmp_bfr = ctx.Wiki().Utl__bfr_mkr().Get_b512(); try { switch (tid) { - case Tid_local: tmp_bfr.Add(ctx.Wiki().Props().ArticlePath());break; - case Tid_full: tmp_bfr.Add(Bry_relative_url).Add(ctx.Wiki().Props().Server_name()).Add(ctx.Wiki().Props().ArticlePath()); break; - case Tid_canonical: tmp_bfr.Add(ctx.Wiki().Props().Server()).Add(ctx.Wiki().Props().ArticlePath()); break; + case Tid_local: tmp_bfr.Add(ctx.Wiki().Props().Article_path());break; + case Tid_full: tmp_bfr.Add(Bry_relative_url).Add(ctx.Wiki().Props().Server_name()).Add(ctx.Wiki().Props().Article_path()); break; + case Tid_canonical: tmp_bfr.Add(ctx.Wiki().Props().Server()).Add(ctx.Wiki().Props().Article_path()); break; default: throw Err_.new_unhandled(tid); } tmp_bfr.Add(ttl_ary); diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/wikis/Pfunc_wiki_props.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/wikis/Pfunc_wiki_props.java index 6579a1406..cb96fc311 100644 --- a/400_xowa/src/gplx/xowa/xtns/pfuncs/wikis/Pfunc_wiki_props.java +++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/wikis/Pfunc_wiki_props.java @@ -28,10 +28,10 @@ public class Pfunc_wiki_props extends Pf_func_base { case Xol_kwd_grp_.Id_site_sitename: bfr.Add(props.Site_name()); break; case Xol_kwd_grp_.Id_site_server: bfr.Add(props.Server()); break; case Xol_kwd_grp_.Id_site_servername: bfr.Add(props.Server_name()); break; - case Xol_kwd_grp_.Id_site_articlepath: bfr.Add(props.ArticlePath()); break; - case Xol_kwd_grp_.Id_site_scriptpath: bfr.Add(props.ScriptPath()); break; - 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_articlepath: bfr.Add(props.Article_path()); break; + case Xol_kwd_grp_.Id_site_scriptpath: bfr.Add(props.Script_path()); break; + case Xol_kwd_grp_.Id_site_stylepath: bfr.Add(props.Style_path()); break; + case Xol_kwd_grp_.Id_site_directionmark: bfr.Add(props.Direction_mark()); break; case Xol_kwd_grp_.Id_site_currentversion: bfr.Add(props.Current_version()); break; case Xol_kwd_grp_.Id_site_contentlanguage: bfr.Add(ctx.Page().Lang().Key_bry()); break; default: throw Err_.new_unhandled(id); diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_site.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_site.java index 5577a3a9b..fb4759df5 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_site.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_site.java @@ -152,8 +152,8 @@ public class Scrib_lib_site implements Scrib_lib { Xow_wiki_props props = core.Wiki().Props(); rv[0] = Keyval_.new_("siteName" , props.Site_name()); rv[1] = Keyval_.new_("server" , Bry_.Add(gplx.core.net.Gfo_protocol_itm.Bry_relative, props.Server_name())); // NOTE: should generate "//en.wikipedia.org", not "de.wikipedia.org"; PAGE:de.w:Giro_d�Italia_1996 DATE:2016-04-17 - rv[2] = Keyval_.new_("scriptPath" , props.ScriptPath()); - rv[3] = Keyval_.new_("stylePath" , props.StylePath()); + rv[2] = Keyval_.new_("scriptPath" , props.Script_path()); + rv[3] = Keyval_.new_("stylePath" , props.Style_path()); rv[4] = Keyval_.new_("currentVersion" , props.Current_version()); } private Keyval[] Bld_ns_ary(Xowe_wiki wiki) { diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/imports/json/Xowb_json_dump_db.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/json/Xowb_json_dump_db.java index 3327339bc..657034159 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/imports/json/Xowb_json_dump_db.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/json/Xowb_json_dump_db.java @@ -96,7 +96,7 @@ class Xowb_json_dump_db { Xow_db_file db_core = db_mgr.Db__core(); db_core.Tbl__site_stats().Update(page_count_main, page_id, ns_mgr.Ns_file().Count()); // save page stats db_core.Tbl__ns().Insert(ns_mgr); // save ns - db_mgr.Tbl__cfg().Insert_str(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__modified_latest, page_modified_on.XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time)); + db_mgr.Tbl__cfg().Insert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest, page_modified_on.XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time)); } private static final byte[] Bry__id_key = Bry_.new_a7("id"); }