mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v2.7.3.1
This commit is contained in:
@@ -17,16 +17,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import gplx.ios.*;
|
||||
import gplx.xowa.apps.*; import gplx.xowa.apps.fsys.*;
|
||||
import gplx.xowa.apps.*; import gplx.xowa.apps.fsys.*; import gplx.xowa.apis.*;
|
||||
import gplx.xowa.bldrs.css.*;
|
||||
import gplx.xowa.files.caches.*; import gplx.xowa.files.imgs.*;
|
||||
import gplx.xowa.urls.encoders.*;
|
||||
import gplx.xowa.wikis.*;
|
||||
import gplx.xowa.wmfs.*;
|
||||
import gplx.xowa.html.hrefs.*; import gplx.xowa.html.wtrs.*; import gplx.xowa.html.js.*;
|
||||
import gplx.xowa.html.hrefs.*; import gplx.xowa.html.wtrs.*; import gplx.xowa.html.js.*; import gplx.xowa.html.bridges.*;
|
||||
import gplx.xowa.users.*;
|
||||
public interface Xoa_app {
|
||||
Xoa_app_type App_type();
|
||||
Xoapi_root Api_root();
|
||||
Xoa_fsys_mgr Fsys_mgr();
|
||||
Xoa_wiki_mgr Wiki_mgri();
|
||||
Xof_cache_mgr File__cache_mgr();
|
||||
@@ -35,12 +36,13 @@ public interface Xoa_app {
|
||||
Xoh_href_parser Html__href_parser();
|
||||
Xoh_lnki_bldr Html__lnki_bldr();
|
||||
Xoa_css_extractor Html__css_installer();
|
||||
Xoh_json_exec Html__json_exec();
|
||||
Xoh_bridge_mgr Html__bridge_mgr();
|
||||
Xou_user User();
|
||||
Xowmf_mgr Wmf_mgr();
|
||||
boolean Xwiki_mgr__missing(byte[] domain);
|
||||
boolean Bldr__running(); void Bldr__running_(boolean v);
|
||||
Gfo_usr_dlg Usr_dlg();
|
||||
Bry_bfr_mkr Utl__bfr_mkr();
|
||||
Url_encoder_mgr Utl__encoder_mgr();
|
||||
Xoa_url_parser Utl__url_parser();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import gplx.dbs.*; import gplx.ios.*; import gplx.gfui.*;
|
||||
import gplx.core.consoles.*; import gplx.dbs.*; import gplx.ios.*; import gplx.gfui.*;
|
||||
import gplx.xowa.apps.*; import gplx.xowa.langs.*; import gplx.xowa.users.*;
|
||||
import gplx.xowa.files.*; import gplx.xowa.html.hdumps.*; import gplx.xowa.html.hdumps.core.*;
|
||||
import gplx.xowa.urls.encoders.*;
|
||||
@@ -26,7 +26,7 @@ public class Xoa_app_ {
|
||||
boot_mgr.Run(args);
|
||||
}
|
||||
public static final String Name = "xowa";
|
||||
public static final String Version = "2.7.1.2";
|
||||
public static final String Version = "2.7.3.1";
|
||||
public static String Build_date = "2012-12-30 00:00:00";
|
||||
public static String Op_sys;
|
||||
public static String User_agent = "";
|
||||
@@ -51,9 +51,9 @@ class Xoa_app_boot_mgr {
|
||||
Run_app(args_mgr);
|
||||
}
|
||||
catch (Exception e) {
|
||||
String err_str = Err_.Message_gplx(e);
|
||||
String err_str = Err_.Message_gplx_full(e);
|
||||
log_wtr.Log_to_err(err_str);
|
||||
ConsoleAdp._.WriteLine(err_str);
|
||||
Console_adp__sys.I.Write_str_w_nl(err_str);
|
||||
if (log_wtr.Log_dir() == null) log_wtr.Log_dir_(Env_.AppUrl().OwnerDir().GenSubFil("xowa.log"));
|
||||
log_wtr.Queue_enabled_(false);
|
||||
}
|
||||
@@ -112,7 +112,7 @@ class Xoa_app_boot_mgr {
|
||||
}
|
||||
if (rv.Args_get("show_args").Val_as_bool())
|
||||
rv.Print_args(usr_dlg);
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "args failed: ~{0} ~{1}", chkpoint, Err_.Message_gplx(e)); return null;}
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "args failed: ~{0} ~{1}", chkpoint, Err_.Message_gplx_full(e)); return null;}
|
||||
return rv;
|
||||
}
|
||||
private void Run_app(App_cmd_mgr args_mgr) {
|
||||
@@ -150,16 +150,16 @@ class Xoa_app_boot_mgr {
|
||||
app.Http_server().Home_(http_server_home);
|
||||
app.Init_by_app(); chkpoint = "init_gfs";
|
||||
}
|
||||
catch (Exception e) {usr_dlg.Warn_many("", "", "app init failed: ~{0} ~{1}", chkpoint, Err_.Message_gplx(e));}
|
||||
catch (Exception e) {usr_dlg.Warn_many("", "", "app init failed: ~{0} ~{1}", chkpoint, Err_.Message_gplx_full(e));}
|
||||
app.Usr_dlg().Log_wkr_(app.Log_wtr()); // NOTE: log_wtr must be set for cmd-line (else process will fail);
|
||||
|
||||
// run gfs
|
||||
gplx.xowa.users.prefs.Prefs_rename_mgr._.Check(app.Usere().Fsys_mgr().App_data_cfg_user_fil());
|
||||
try {app.Gfs_mgr().Run_url(cmd_file); chkpoint = "run_url";}
|
||||
catch (Exception e) {
|
||||
usr_dlg.Warn_many("", "", "script file failed: ~{0} ~{1} ~{2}", chkpoint, cmd_file.Raw(), Err_.Message_gplx(e));
|
||||
usr_dlg.Warn_many("", "", "script file failed: ~{0} ~{1} ~{2}", chkpoint, cmd_file.Raw(), Err_.Message_gplx_full(e));
|
||||
if (app_type_is_gui)
|
||||
GfuiEnv_.ShowMsg(Err_.Message_gplx(e));
|
||||
GfuiEnv_.ShowMsg(Err_.Message_gplx_full(e));
|
||||
}
|
||||
gplx.xowa.apps.setups.Xoa_setup_mgr.Delete_old_files(app);
|
||||
|
||||
@@ -172,7 +172,7 @@ class Xoa_app_boot_mgr {
|
||||
else {
|
||||
if (cmd_text != null) {
|
||||
gplx.xowa.servers.Gxw_html_server.Init_gui_for_server(app, null); // NOTE: must init kit else "app.shell.fetch_page" will fail; DATE:2015-04-30
|
||||
ConsoleAdp._.WriteLine_utf8(Object_.Xto_str_strict_or_empty(app.Gfs_mgr().Run_str(cmd_text)));
|
||||
Console_adp__sys.I.Write_str_w_nl_utf8(Object_.Xto_str_strict_or_empty(app.Gfs_mgr().Run_str(cmd_text)));
|
||||
}
|
||||
if (app_type_is_gui) {
|
||||
app.Gui_mgr().Run(); chkpoint = "run";
|
||||
@@ -181,7 +181,7 @@ class Xoa_app_boot_mgr {
|
||||
if (gplx.xowa.xtns.scribunto.Scrib_core.Core() != null) gplx.xowa.xtns.scribunto.Scrib_core.Core().Term();
|
||||
}
|
||||
}
|
||||
catch (Exception e) {usr_dlg.Warn_many("", "", "app launch failed: ~{0} ~{1}", chkpoint, Err_.Message_gplx(e));}
|
||||
catch (Exception e) {usr_dlg.Warn_many("", "", "app launch failed: ~{0} ~{1}", chkpoint, Err_.Message_gplx_full(e));}
|
||||
finally {
|
||||
if (app != null && app_type_is_gui) // only cancel if app_type_is_gui is true; (force cmd_line to end process)
|
||||
app.Setup_mgr().Cmd_mgr().Canceled_y_();
|
||||
@@ -194,7 +194,7 @@ class Xoa_app_boot_mgr {
|
||||
case Op_sys.Tid_lnx: rv = "linux"; break;
|
||||
case Op_sys.Tid_wnt: rv = "windows"; break;
|
||||
case Op_sys.Tid_osx: rv = "macosx"; break;
|
||||
default: throw Exc_.new_unhandled("unknown platform " + Op_sys.Cur());
|
||||
default: throw Err_.new_unhandled("unknown platform " + Op_sys.Cur());
|
||||
}
|
||||
if (op_sys.Bitness() == Op_sys.Bitness_64) rv += "_64";
|
||||
return rv;
|
||||
|
||||
@@ -54,10 +54,10 @@ public class Xoa_app_fxt {
|
||||
public static void repo_(Xoae_app app, Xowe_wiki wiki) {
|
||||
app.File_mgr().Repo_mgr().Set("src:wiki", "mem/wiki/repo/src/", wiki.Domain_str()).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2);
|
||||
app.File_mgr().Repo_mgr().Set("trg:wiki", "mem/wiki/repo/trg/", wiki.Domain_str()).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2).Primary_(true);
|
||||
wiki.File_mgr().Repo_mgr().Add_repo(Bry_.new_u8("src:wiki"), Bry_.new_u8("trg:wiki"));
|
||||
wiki.File_mgr().Repo_mgr().Add_repo(Bry_.new_a7("src:wiki"), Bry_.new_a7("trg:wiki"));
|
||||
app.File_mgr().Repo_mgr().Set("src:c", "mem/wiki/repo/src/", "commons.wikimedia.org").Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2);
|
||||
app.File_mgr().Repo_mgr().Set("trg:c", "mem/wiki/repo/trg/", "commons.wikimedia.org").Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2).Primary_(true);
|
||||
wiki.File_mgr().Repo_mgr().Add_repo(Bry_.new_u8("src:c"), Bry_.new_u8("trg:c"));
|
||||
wiki.File_mgr().Repo_mgr().Add_repo(Bry_.new_a7("src:c"), Bry_.new_a7("trg:c"));
|
||||
}
|
||||
public static void Init_gui(Xoae_app app, Xowe_wiki wiki) {
|
||||
app.Gui_mgr().Browser_win().Init_by_kit(gplx.gfui.Mem_kit._);
|
||||
|
||||
@@ -22,7 +22,7 @@ import gplx.xowa.langs.*; import gplx.xowa.specials.*; import gplx.xowa.cfgs2.*;
|
||||
import gplx.xowa.bldrs.css.*;
|
||||
import gplx.xowa.files.caches.*; import gplx.xowa.files.imgs.*;
|
||||
import gplx.xowa.wikis.*; import gplx.xowa.users.*; import gplx.xowa.gui.*; import gplx.xowa.cfgs.*; import gplx.xowa.ctgs.*; import gplx.xowa.html.tocs.*; import gplx.xowa.fmtrs.*; import gplx.xowa.html.*;
|
||||
import gplx.xowa.html.hrefs.*; import gplx.xowa.html.wtrs.*; import gplx.xowa.html.ns_files.*; import gplx.xowa.html.js.*;
|
||||
import gplx.xowa.html.hrefs.*; import gplx.xowa.html.wtrs.*; import gplx.xowa.html.ns_files.*; import gplx.xowa.html.bridges.*;
|
||||
import gplx.xowa.parsers.*; import gplx.xowa.parsers.amps.*; import gplx.xowa.parsers.tblws.*;
|
||||
import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.math.*;
|
||||
import gplx.xowa.parsers.logs.*; import gplx.xowa.servers.tcp.*; import gplx.xowa.servers.http.*;
|
||||
@@ -62,7 +62,6 @@ public class Xoae_app implements Xoa_app, GfoInvkAble {
|
||||
cfg_regy = new Xocfg_regy(this);
|
||||
html_mgr = new Xoh_html_mgr(this);
|
||||
this.html__lnki_bldr = new Xoh_lnki_bldr(this, href_parser);
|
||||
this.html__json_exec = new Xoh_json_exec(this);
|
||||
}
|
||||
public Xoa_app_type App_type() {return app_type;} private final Xoa_app_type app_type;
|
||||
public Xoa_fsys_mgr Fsys_mgr() {return fsys_mgr;} private final Xoa_fsys_mgr fsys_mgr;
|
||||
@@ -72,11 +71,12 @@ public class Xoae_app implements Xoa_app, GfoInvkAble {
|
||||
public Xoh_href_parser Html__href_parser() {return href_parser;} private Xoh_href_parser href_parser;
|
||||
public Xoh_lnki_bldr Html__lnki_bldr() {return html__lnki_bldr;} private final Xoh_lnki_bldr html__lnki_bldr;
|
||||
public Xoa_css_extractor Html__css_installer() {return html__css_installer;} private final Xoa_css_extractor html__css_installer = new Xoa_css_extractor();
|
||||
public Xoh_json_exec Html__json_exec() {return html__json_exec;} private final Xoh_json_exec html__json_exec;
|
||||
public Xoh_bridge_mgr Html__bridge_mgr() {return html__bridge_mgr;} private final Xoh_bridge_mgr html__bridge_mgr = new Xoh_bridge_mgr();
|
||||
public Xowmf_mgr Wmf_mgr() {return wmf_mgr;} private final Xowmf_mgr wmf_mgr = new Xowmf_mgr();
|
||||
public Bry_bfr_mkr Utl__bfr_mkr() {return Xoa_app_.Utl__bfr_mkr();}
|
||||
public Url_encoder_mgr Utl__encoder_mgr() {return Xoa_app_.Utl__encoder_mgr();}
|
||||
public Xoa_url_parser Utl__url_parser() {return utl_url_parser;} private final Xoa_url_parser utl_url_parser = new Xoa_url_parser();
|
||||
public boolean Bldr__running() {return bldr__running;} public void Bldr__running_(boolean v) {this.bldr__running = v;} private boolean bldr__running;
|
||||
|
||||
public Xoae_wiki_mgr Wiki_mgr() {return wiki_mgr;} private Xoae_wiki_mgr wiki_mgr;
|
||||
public Xoa_wiki_mgr Wiki_mgri() {return wiki_mgr;}
|
||||
|
||||
@@ -66,6 +66,7 @@ public class Xoapi_import implements GfoInvkAble {
|
||||
else if (ctx.Match(k, Invk_ns_file_map_)) ns_file_map = m.ReadBry("v");
|
||||
else if (ctx.Match(k, Invk_zip_tid_text)) return Io_stream_.To_str(zip_tid_text);
|
||||
else if (ctx.Match(k, Invk_zip_tid_text_)) zip_tid_text = Io_stream_.To_tid(m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Invk_zip_tid_list)) return Options_zip_tid__list;
|
||||
else if (ctx.Match(k, Invk_zip_tid_html)) return Io_stream_.To_str(zip_tid_html);
|
||||
else if (ctx.Match(k, Invk_zip_tid_html_)) zip_tid_html = Io_stream_.To_tid(m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Invk_user_name)) return user_name;
|
||||
@@ -73,6 +74,7 @@ public class Xoapi_import implements GfoInvkAble {
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
private static KeyVal[] Options_zip_tid__list = KeyVal_.Ary(KeyVal_.new_("raw", "text"), KeyVal_.new_("gzip"), KeyVal_.new_("bzip2"));
|
||||
private static final String
|
||||
Invk_layout_all_max = "layout_all_max" , Invk_layout_all_max_ = "layout_all_max_"
|
||||
, Invk_layout_text_max = "layout_text_max" , Invk_layout_text_max_ = "layout_text_max_"
|
||||
@@ -83,7 +85,7 @@ public class Xoapi_import implements GfoInvkAble {
|
||||
, Invk_html_db_max = "html_db_max" , Invk_html_db_max_ = "html_db_max_"
|
||||
, Invk_file_db_max = "file_db_max" , Invk_file_db_max_ = "file_db_max_"
|
||||
, Invk_ns_file_map = "ns_file_map" , Invk_ns_file_map_ = "ns_file_map_"
|
||||
, Invk_zip_tid_text = "zip_tid_text" , Invk_zip_tid_text_ = "zip_tid_text_"
|
||||
, Invk_zip_tid_text = "zip_tid_text" , Invk_zip_tid_text_ = "zip_tid_text_", Invk_zip_tid_list = "zip_tid_list"
|
||||
, Invk_zip_tid_html = "zip_tid_html" , Invk_zip_tid_html_ = "zip_tid_html_"
|
||||
, Invk_user_name = "user_name" , Invk_user_name_ = "user_name_"
|
||||
;
|
||||
|
||||
@@ -53,11 +53,11 @@ public class Xoapi_popups implements GfoInvkAble, GfoEvMgrOwner {
|
||||
public byte[] Html_fmtr_next_sect_fmt_dflt() {return html_fmtr_next_sect_dflt;} private byte[] html_fmtr_next_sect_dflt = Dflt_html_fmtr_next_sect;
|
||||
public void Show_more(String popup_id) {
|
||||
Xowe_wiki wiki = app.Gui_mgr().Browser_win().Active_tab().Wiki();
|
||||
wiki.Html_mgr().Module_mgr().Popup_mgr().Show_more(popup_id);
|
||||
wiki.Html_mgr().Head_mgr().Popup_mgr().Show_more(popup_id);
|
||||
}
|
||||
public void Show_all(String popup_id) {
|
||||
Xowe_wiki wiki = app.Gui_mgr().Browser_win().Active_tab().Wiki();
|
||||
wiki.Html_mgr().Module_mgr().Popup_mgr().Show_all(popup_id);
|
||||
wiki.Html_mgr().Head_mgr().Popup_mgr().Show_all(popup_id);
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_enabled)) return Yn.Xto_str(enabled);
|
||||
|
||||
@@ -51,7 +51,7 @@ public class Xoapi_startup_tabs implements GfoInvkAble {
|
||||
case Xoapi_startup_tabs_tid_.Tid_xowa: rv.Add(xowa_home); break;
|
||||
case Xoapi_startup_tabs_tid_.Tid_custom: Add_ary(rv, custom); break;
|
||||
case Xoapi_startup_tabs_tid_.Tid_previous: Add_ary(rv, previous); break;
|
||||
default: throw Exc_.new_unhandled(type);
|
||||
default: throw Err_.new_unhandled(type);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -25,7 +25,7 @@ public class Xoapi_startup_tabs_tid_ {
|
||||
case Tid_xowa: return Key_xowa;
|
||||
case Tid_previous: return Key_previous;
|
||||
case Tid_custom: return Key_custom;
|
||||
default: throw Exc_.new_unimplemented();
|
||||
default: throw Err_.new_unimplemented();
|
||||
}
|
||||
}
|
||||
public static byte Xto_tid(String s) {
|
||||
@@ -33,7 +33,7 @@ public class Xoapi_startup_tabs_tid_ {
|
||||
else if (String_.Eq(s, Key_xowa)) return Tid_xowa;
|
||||
else if (String_.Eq(s, Key_previous)) return Tid_previous;
|
||||
else if (String_.Eq(s, Key_custom)) return Tid_custom;
|
||||
else throw Exc_.new_unimplemented();
|
||||
else throw Err_.new_unimplemented();
|
||||
}
|
||||
public static KeyVal[] Options__list = KeyVal_.Ary(KeyVal_.new_(Key_blank), KeyVal_.new_(Key_xowa), KeyVal_.new_(Key_previous), KeyVal_.new_(Key_custom));
|
||||
}
|
||||
|
||||
@@ -24,42 +24,44 @@ public class Xoapi_bookmarks implements GfoInvkAble {
|
||||
public void Init_by_kit(Xoae_app app) {this.win = app.Gui_mgr().Browser_win();}
|
||||
public boolean Enabled() {return enabled;} private boolean enabled = true;
|
||||
public void Enabled_(boolean v) {enabled = v;}
|
||||
public void Add(String url_str) {
|
||||
if (!enabled) return;
|
||||
Xog_tab_itm tab = win.Active_tab(); if (tab == Xog_tab_itm_.Null) return;
|
||||
Xowe_wiki wiki = tab.Wiki(); Xoae_page page = tab.Page();
|
||||
byte[] wiki_domain = null, ttl_full_txt = null;
|
||||
public boolean Delete_confirm() {return delete_confirm;} private boolean delete_confirm = true;
|
||||
public void Show() {win.Page__navigate_by_url_bar("home/wiki/Special:XowaBookmarks");}
|
||||
public String Add(String url_str) {
|
||||
if (!enabled) return app.Html__bridge_mgr().Msg_bldr().To_json_str__empty();
|
||||
Xoa_url url = null;
|
||||
if (url_str == null) {
|
||||
wiki_domain = wiki.Domain_bry();
|
||||
ttl_full_txt = page.Ttl().Full_txt();
|
||||
Xog_tab_itm tab = win.Active_tab(); if (tab == Xog_tab_itm_.Null) return app.Html__bridge_mgr().Msg_bldr().Clear().Notify_pass_("bookmark added").To_json_str();
|
||||
url = tab.Page().Url();
|
||||
if (url.Wiki_bry() == null) {
|
||||
url_str = "home/wiki/" + String_.new_u8(url.Page_bry());
|
||||
}
|
||||
else if (url.Page_bry() == null) {
|
||||
url_str = tab.Wiki().Domain_str() + "/wiki/" + String_.new_u8(url.Wiki_bry());
|
||||
}
|
||||
else
|
||||
url_str = String_.new_u8(url.Raw());
|
||||
url = app.Utl__url_parser().Parse(Bry_.new_u8(url_str));
|
||||
}
|
||||
else {
|
||||
Xoa_url url = Xoa_url_parser.Parse_from_url_bar(app, wiki, url_str);
|
||||
wiki_domain = url.Wiki_bry();
|
||||
ttl_full_txt = url.Page_bry();
|
||||
}
|
||||
app.Usere().Bookmarks_add(wiki_domain, ttl_full_txt);
|
||||
app.Usr_dlg().Prog_many("", "", "bookmark added: ~{0}", String_.new_u8(ttl_full_txt));
|
||||
else
|
||||
url = app.Utl__url_parser().Parse(Bry_.new_u8(url_str));
|
||||
app.User().User_db_mgr().Bmk_mgr().Itms__add(Xoud_bmk_mgr.Owner_root, url);
|
||||
String msg = "bookmark added: " + String_.new_u8(url.Page_bry());
|
||||
String rv = app.Html__bridge_mgr().Msg_bldr().Clear().Notify_pass_(msg).To_json_str();
|
||||
win.Active_tab().Html_box().Html_js_eval_proc_as_str("xowa.cmds.exec_by_str", "xowa.notify", "{\"text\":\"" + msg + "\",\"status\":\"success\"}");
|
||||
return rv;
|
||||
}
|
||||
public void Show() {win.Page__navigate_by_url_bar("home/wiki/Data:Bookmarks");}
|
||||
// public void Add(String url_str) {// bmk_v2
|
||||
// Xoa_url url = null;
|
||||
// if (url_str == null) {
|
||||
// Xog_tab_itm tab = win.Active_tab(); if (tab == Xog_tab_itm_.Null) return;
|
||||
// url = tab.Page().Url();
|
||||
// }
|
||||
// else
|
||||
// url = app.Utl__url_parser().Parse(Bry_.new_u8(url_str));
|
||||
// app.User().User_db_mgr().Bmk_mgr().Itms__add(Xoud_bmk_mgr.Owner_root, url);
|
||||
// }
|
||||
// public void Show() {win.Page__navigate_by_url_bar("home/wiki/Special:XowaBookmarks");}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_enabled)) return Yn.Xto_str(this.Enabled());
|
||||
else if (ctx.Match(k, Invk_enabled_)) Enabled_(m.ReadYn("v"));
|
||||
else if (ctx.Match(k, Invk_add)) this.Add(m.ReadStrOr("v", null));
|
||||
if (ctx.Match(k, Invk_enabled)) return Yn.Xto_str(enabled);
|
||||
else if (ctx.Match(k, Invk_enabled_)) enabled = m.ReadYn("v");
|
||||
else if (ctx.Match(k, Invk_delete_confirm)) return Yn.Xto_str(delete_confirm);
|
||||
else if (ctx.Match(k, Invk_delete_confirm_)) delete_confirm = m.ReadYn("v");
|
||||
else if (ctx.Match(k, Invk_add)) return this.Add(m.ReadStrOr("v", null));
|
||||
else if (ctx.Match(k, Invk_show)) this.Show();
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
private static final String Invk_enabled = "enabled", Invk_enabled_ = "enabled_", Invk_add = "add", Invk_show = "show";
|
||||
private static final String
|
||||
Invk_enabled = "enabled", Invk_enabled_ = "enabled_"
|
||||
, Invk_delete_confirm = "delete_confirm", Invk_delete_confirm_ = "delete_confirm_"
|
||||
, Invk_add = "add", Invk_show = "show";
|
||||
}
|
||||
|
||||
@@ -16,20 +16,43 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.apps; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.core.primitives.*;
|
||||
public class Xoa_app_type {
|
||||
Xoa_app_type(int uid) {this.uid = uid;}
|
||||
public int Uid() {return uid;} private final int uid;
|
||||
public boolean Uid_is_gui() {return uid == Uid_gui;}
|
||||
public boolean Uid_is_tcp() {return uid == Uid_tcp;}
|
||||
public boolean Uid_is_http() {return uid == Uid_http;}
|
||||
private static final int Uid_cmd = 1, Uid_gui = 2, Uid_tcp = 3, Uid_http = 4;
|
||||
private static final String Key_cmd = "cmd", Key_gui = "gui", Key_tcp = "server", Key_http = "http_server";
|
||||
public static final Xoa_app_type Itm_cmd = new Xoa_app_type(Uid_cmd), Itm_gui = new Xoa_app_type(Uid_gui), Itm_tcp = new Xoa_app_type(Uid_tcp), Itm_http = new Xoa_app_type(Uid_http);
|
||||
public byte[] Name() {
|
||||
switch (uid) {
|
||||
case Uid_cmd: return Key_cmd;
|
||||
case Uid_gui: return Key_gui;
|
||||
case Uid_http: return Key_http;
|
||||
case Uid_tcp: return Key_tcp;
|
||||
case Uid_file: return Key_file;
|
||||
default: return Key_cmd; // see parse
|
||||
}
|
||||
}
|
||||
private static final int Uid_cmd = 1, Uid_gui = 2, Uid_tcp = 3, Uid_http = 4, Uid_file = 5;
|
||||
private static final byte[] Key_cmd = Bry_.new_a7("cmd"), Key_gui = Bry_.new_a7("gui"), Key_tcp = Bry_.new_a7("server"), Key_http = Bry_.new_a7("http_server"), Key_file = Bry_.new_a7("file");
|
||||
private static final Hash_adp_bry type_hash = Hash_adp_bry.cs_()
|
||||
.Add_bry_int(Key_cmd , Uid_cmd)
|
||||
.Add_bry_int(Key_gui , Uid_gui)
|
||||
.Add_bry_int(Key_http , Uid_http)
|
||||
.Add_bry_int(Key_tcp , Uid_tcp)
|
||||
.Add_bry_int(Key_file , Uid_file)
|
||||
;
|
||||
public static final Xoa_app_type Itm_cmd = new Xoa_app_type(Uid_cmd), Itm_gui = new Xoa_app_type(Uid_gui), Itm_tcp = new Xoa_app_type(Uid_tcp), Itm_http = new Xoa_app_type(Uid_http), Itm_file = new Xoa_app_type(Uid_file);
|
||||
public static Xoa_app_type parse(String s) {
|
||||
if (String_.Eq(s, Key_cmd)) return Itm_cmd;
|
||||
else if (String_.Eq(s, Key_gui)) return Itm_gui;
|
||||
else if (String_.Eq(s, Key_tcp)) return Itm_tcp;
|
||||
else if (String_.Eq(s, Key_http)) return Itm_http;
|
||||
else return Itm_cmd; // default to cmd as per early behaviour; handles mistaken "--app_mode wrong"
|
||||
Object o = type_hash.Get_by(Bry_.new_u8(s)); if (o == null) return Itm_cmd; // default to cmd as per early behaviour; handles mistaken "--app_mode wrong"
|
||||
int uid = ((Int_obj_val)o).Val();
|
||||
switch (uid) {
|
||||
case Uid_cmd: return Itm_cmd;
|
||||
case Uid_gui: return Itm_gui;
|
||||
case Uid_http: return Itm_http;
|
||||
case Uid_tcp: return Itm_tcp;
|
||||
case Uid_file: return Itm_file;
|
||||
default: throw Err_.new_unhandled(uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,12 +36,12 @@ public class Xoa_gfs_mgr implements GfoInvkAble, GfoInvkRootWkr {
|
||||
else if (String_.Eq(type, "xowa_cfg_user")) url = usr_fsys_mgr.App_data_cfg_user_fil();
|
||||
else if (String_.Eq(type, "xowa_cfg_os")) {url = app_fsys_mgr.Bin_data_os_cfg_fil(); Xoa_gfs_mgr_.Cfg_os_assert(url);}
|
||||
else if (String_.Eq(type, "xowa_cfg_app")) url = app_fsys_mgr.Root_dir().GenSubFil("xowa.gfs");
|
||||
else throw Exc_.new_("invalid gfs type", "type", type);
|
||||
else throw Err_.new_wo_type("invalid gfs type", "type", type);
|
||||
try {Run_url(url);}
|
||||
catch (Exception e) { // gfs is corrupt; may happen if multiple XOWAs opened, and "Close all" chosen in OS; DATE:2014-07-01
|
||||
if (!String_.Eq(type, "xowa")) // check if user.gfs
|
||||
Io_mgr.I.MoveFil(url, url.GenNewNameOnly(url.NameOnly() + "-" + DateAdp_.Now().XtoStr_fmt_yyyyMMdd_HHmmss())); // move file
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "invalid gfs; obsoleting: src=~{0} err=~{1}", url.Raw(), Err_.Message_gplx(e));
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "invalid gfs; obsoleting: src=~{0} err=~{1}", url.Raw(), Err_.Message_gplx_full(e));
|
||||
}
|
||||
}
|
||||
public GfoMsg Parse_root_msg(String v) {return gplx.gfs.Gfs_msg_bldr._.ParseToMsg(v);}
|
||||
@@ -67,7 +67,7 @@ public class Xoa_gfs_mgr implements GfoInvkAble, GfoInvkRootWkr {
|
||||
}
|
||||
return rv;
|
||||
} catch (Exception e) {
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "error while executing script: err=~{0}", Err_.Message_gplx(e));
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "error while executing script: err=~{0}", Err_.Message_gplx_full(e));
|
||||
return GfoInvkAble_.Rv_error;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public class Xoa_gfs_php_mgr {
|
||||
return dirty ? bfr.Xto_bry_and_clear() : src;
|
||||
}
|
||||
private static int Xto_php_swap(Bry_bfr bfr, byte[] src, int len, int pos) {
|
||||
if (pos >= len) throw Exc_.new_("invalid gfs: tilde is last char", "src", String_.new_u8(src));
|
||||
if (pos >= len) throw Err_.new_wo_type("invalid gfs: tilde is last char", "src", String_.new_u8(src));
|
||||
byte b = src[pos];
|
||||
switch (b) {
|
||||
case Byte_ascii.Tilde: { // ~~ -> ~
|
||||
@@ -72,17 +72,17 @@ public class Xoa_gfs_php_mgr {
|
||||
|| num_end == len
|
||||
|| src[num_end] != Byte_ascii.Curly_end
|
||||
)
|
||||
throw Exc_.new_("invalid gfs; num_end not found", "src", String_.new_u8(src));
|
||||
throw Err_.new_wo_type("invalid gfs; num_end not found", "src", String_.new_u8(src));
|
||||
bfr.Add_byte(Byte_ascii.Dollar);
|
||||
int arg_idx = Bry_.Xto_int_or(src, num_bgn, num_end, -1);
|
||||
if (arg_idx == -1) {
|
||||
throw Exc_.new_("invalid int");
|
||||
throw Err_.new_wo_type("invalid int");
|
||||
}
|
||||
bfr.Add_int_variable(arg_idx + 1);
|
||||
return num_end + 1;
|
||||
}
|
||||
default: {
|
||||
throw Exc_.new_("invalid gfs; next char after tilde must be either tilde or open brace", "src", String_.new_u8(src));
|
||||
throw Err_.new_wo_type("invalid gfs; next char after tilde must be either tilde or open brace", "src", String_.new_u8(src));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,13 +16,14 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.apps; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.core.consoles.*;
|
||||
public class Xoa_shell implements GfoInvkAble {
|
||||
public Xoa_shell(Xoae_app app) {this.app = app;} private Xoae_app app;
|
||||
public boolean Fetch_page_exec_async() {return fetch_page_exec_async;} private boolean fetch_page_exec_async = true;
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_fetch_page)) return Fetch_page(m);
|
||||
else if (ctx.Match(k, Invk_chars_per_line_max_)) ConsoleAdp._.CharsPerLineMax_set(m.ReadInt("v"));
|
||||
else if (ctx.Match(k, Invk_backspace_by_bytes_)) ConsoleAdp._.Backspace_by_bytes_(m.ReadYn("v"));
|
||||
else if (ctx.Match(k, Invk_chars_per_line_max_)) Console_adp__sys.I.Chars_per_line_max_(m.ReadInt("v"));
|
||||
else if (ctx.Match(k, Invk_backspace_by_bytes_)) Console_adp__sys.I.Backspace_by_bytes_(m.ReadYn("v"));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class Xoa_fsys_eval implements Bry_fmtr_eval_mgr {
|
||||
case Tid_bin_plat_dir: return app_fsys_mgr.Bin_plat_dir().RawBry();
|
||||
case Tid_user_temp_dir: return usr_fsys_mgr.App_temp_dir().RawBry();
|
||||
case Tid_user_cfg_dir: return usr_fsys_mgr.App_data_cfg_dir().RawBry();
|
||||
default: throw Exc_.new_unhandled(val);
|
||||
default: throw Err_.new_unhandled(val);
|
||||
}
|
||||
}
|
||||
private static final byte Tid_bin_plat_dir = 0, Tid_user_temp_dir = 1, Tid_xowa_root_dir = 2, Tid_user_cfg_dir = 3;
|
||||
|
||||
@@ -33,6 +33,6 @@ public class Db_idx_mode {
|
||||
if (String_.Eq(key, Key_skip)) return Itm_skip;
|
||||
else if (String_.Eq(key, Key_bgn)) return Itm_bgn;
|
||||
else if (String_.Eq(key, Key_end)) return Itm_end;
|
||||
else throw Exc_.new_unhandled(key);
|
||||
else throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ public class Xob_cmd_mgr implements GfoInvkAble {
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_decompress_bz2)) return Add(new Xob_decompress_bz2_cmd(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_deploy_zip)) return Add(new Xob_deploy_zip_cmd(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_deploy_copy)) return Add(new Xob_deploy_copy_cmd(bldr, wiki));
|
||||
else throw Exc_.new_unhandled(cmd_key);
|
||||
else throw Err_.new_unhandled(cmd_key);
|
||||
}
|
||||
private Xobd_wkr Xml_rdr_direct_add(Xowe_wiki wiki, Xobd_wkr wkr) {
|
||||
Xobd_rdr dump_rdr = Xml_rdr_get(wiki);
|
||||
@@ -118,7 +118,7 @@ public class Xob_cmd_mgr implements GfoInvkAble {
|
||||
Xob_cmd cmd = (Xob_cmd)list.Get_at(i);
|
||||
if (String_.Eq(cmd.Cmd_key(), cmd_key)) return cmd;
|
||||
}
|
||||
throw Exc_.new_("cmd not found", "key", cmd_key);
|
||||
throw Err_.new_wo_type("cmd not found", "key", cmd_key);
|
||||
}
|
||||
private Object Add_many(GfoMsg m) {
|
||||
Xowe_wiki wiki = Wiki_get_or_make(m);
|
||||
@@ -132,7 +132,7 @@ public class Xob_cmd_mgr implements GfoInvkAble {
|
||||
return Add_many(wiki, cmds);
|
||||
}
|
||||
public Object Add_many(Xowe_wiki wiki, String... cmds) {
|
||||
int len = cmds.length; if (len == 0) throw Exc_.new_("add_many cannot have 0 cmds");
|
||||
int len = cmds.length; if (len == 0) throw Err_.new_wo_type("add_many cannot have 0 cmds");
|
||||
Object rv = null;
|
||||
for (int i = 0; i < len; i++)
|
||||
rv = Add_cmd(wiki, cmds[i]);
|
||||
|
||||
@@ -62,7 +62,7 @@ public class Xob_fxt {
|
||||
public Xob_fxt Run_ctg() {
|
||||
Xobd_parser parser = new Xobd_parser();
|
||||
gplx.xowa.bldrs.cmds.ctgs.Xob_ctg_v1_base ctg_wkr = new gplx.xowa.bldrs.cmds.ctgs.Xob_ctg_v1_txt().Ctor(bldr, wiki);
|
||||
byte[] bry = Bry_.new_u8("[[Category:");
|
||||
byte[] bry = Bry_.new_a7("[[Category:");
|
||||
ctg_wkr.Wkr_hooks().Add(bry, bry);
|
||||
parser.Wkr_add(ctg_wkr);
|
||||
return Run(parser);
|
||||
|
||||
@@ -142,7 +142,7 @@ public class Xob_wiki_cfg_bldr_tst {
|
||||
}
|
||||
sb.Add("\");');\n");
|
||||
}
|
||||
catch(Exception e) {sb.Add("// fail: " + wiki + " " + Err_.Message_gplx_brief(e)).Add_char_nl();}
|
||||
catch(Exception e) {sb.Add("// fail: " + wiki + " " + Err_.Message_gplx_full(e)).Add_char_nl();}
|
||||
}
|
||||
return sb.Xto_str_and_clear();
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ public class Xob_ns_file_itm_parser extends Dsv_wkr_base {
|
||||
}
|
||||
else
|
||||
ns_ids = Int_.Ary_parse(String_.new_u8(ns_ids_bry), ",");
|
||||
if (ns_ids.length == 0) throw Exc_.new_("map.invalid.ns_missing", "src", this.Src());
|
||||
if (ns_ids.length == 0) throw Err_.new_wo_type("map.invalid.ns_missing", "src", this.Src());
|
||||
if (String_.Len_eq_0(name)) { // no name; auto-generate
|
||||
int ns_id_1st = ns_ids[0]; // take 1st ns_id
|
||||
name = "ns." + Int_.Xto_str_pad_bgn_zero(ns_id_1st, 3); // EX: ns.000
|
||||
|
||||
@@ -71,7 +71,7 @@ class Xob_dump_src_id {
|
||||
case Bool_.Y_byte: return Sql_select__redirect_y;
|
||||
case Bool_.N_byte: return Sql_select__redirect_n;
|
||||
case Bool_.__byte: return Sql_select__redirect__;
|
||||
default: throw Exc_.new_unhandled(redirect);
|
||||
default: throw Err_.new_unhandled(redirect);
|
||||
}
|
||||
}
|
||||
private static final String Sql_select = String_.Concat_lines_nl
|
||||
|
||||
@@ -47,7 +47,7 @@ public abstract class Xob_categorylinks_base extends Xob_sql_dump_base implement
|
||||
case Byte_ascii.Ltr_f:
|
||||
case Byte_ascii.Ltr_p: cur_tid = char_0; break;
|
||||
case Byte_ascii.Ltr_s: cur_tid = Byte_ascii.Ltr_c; break;
|
||||
default: throw Exc_.new_unhandled(char_0);
|
||||
default: throw Err_.new_unhandled(char_0);
|
||||
}
|
||||
if (cur_collation_is_uca) {
|
||||
if (trie == null) {
|
||||
@@ -70,7 +70,7 @@ public abstract class Xob_categorylinks_base extends Xob_sql_dump_base implement
|
||||
wiki.Html_mgr().Importing_ctgs_(Bool_.N);
|
||||
}
|
||||
private static final byte[] Fld_cl_from = Bry_.new_a7("cl_from"), Fld_cl_to = Bry_.new_a7("cl_to"), Fld_cl_timestamp = Bry_.new_a7("cl_timestamp"), Fld_cl_collation = Bry_.new_a7("cl_collation"), Fld_cl_sortkey = Bry_.new_a7("cl_sortkey"), Fld_cl_type = Bry_.new_a7("cl_type");
|
||||
private static final byte[] Collation_uca = Bry_.new_u8("uca"), Sortkey_space = new byte[] {Byte_ascii.Space};
|
||||
private static final byte[] Collation_uca = Bry_.new_a7("uca"), Sortkey_space = new byte[] {Byte_ascii.Space};
|
||||
}
|
||||
class Xoctg_link_sql_sorter implements gplx.lists.ComparerAble {
|
||||
public int compare(Object lhsObj, Object rhsObj) {
|
||||
|
||||
@@ -59,7 +59,7 @@ public class Xob_categorylinks_sql_make implements Io_make_cmd {
|
||||
++cur_row_count;
|
||||
if (cur_row_count % 100000 == 0) usr_dlg.Prog_one("", "", "inserting category row: ~{0}", cur_row_count);
|
||||
if (cur_row_count % 1000000 == 0) {cat_core_tbl.Conn().Txn_sav(); cat_link_tbl.Conn().Txn_sav();}
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "ctg_links.insert failed: name=~{0} err=~{1}", String_.new_u8(new_cat_ttl), Err_.Message_gplx_brief(e));}
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "ctg_links.insert failed: name=~{0} err=~{1}", String_.new_u8(new_cat_ttl), Err_.Message_gplx_full(e));}
|
||||
}
|
||||
public void Sort_end() {
|
||||
Save_ctg(Ttl_last);
|
||||
@@ -110,7 +110,7 @@ public class Xob_categorylinks_sql_make implements Io_make_cmd {
|
||||
case Byte_ascii.Ltr_f: return Xoa_ctg_mgr.Tid_file;
|
||||
case Byte_ascii.Ltr_p: return Xoa_ctg_mgr.Tid_page;
|
||||
case Byte_ascii.Ltr_c: return Xoa_ctg_mgr.Tid_subc;
|
||||
default: throw Exc_.new_unhandled(ltr);
|
||||
default: throw Err_.new_unhandled(ltr);
|
||||
}
|
||||
}
|
||||
public Io_sort_cmd Make_dir_(Io_url v) {return this;}
|
||||
|
||||
@@ -71,7 +71,7 @@ class Db_tst_row {
|
||||
public static Db_tst_row kvs_(String[] cols, Object[] vals) {
|
||||
int cols_len = cols.length;
|
||||
int vals_len = vals.length;
|
||||
if (cols_len != vals_len) throw Exc_.new_("mismatch in cols / vals");
|
||||
if (cols_len != vals_len) throw Err_.new_wo_type("mismatch in cols / vals");
|
||||
Db_tst_row rv = new Db_tst_row();
|
||||
Db_tst_val[] vals_ary = new Db_tst_val[cols_len];
|
||||
for (int i = 0; i < cols_len; i++) {
|
||||
@@ -128,7 +128,7 @@ class Db_tst_qry {
|
||||
if (!pass) {
|
||||
bfr.Add(Lbl_row_hdr).Add_int_variable(expd_row_idx).Add_byte_nl();
|
||||
bfr.Add_str(qry.Xto_sql()).Add_byte(Byte_ascii.Semic);
|
||||
throw Exc_.new_(bfr.Xto_str_and_clear());
|
||||
throw Err_.new_wo_type(bfr.Xto_str_and_clear());
|
||||
}
|
||||
} static final byte[] Lbl_row_hdr = Bry_.new_a7("row: "), Lbl_eq_y = Bry_.new_a7(" == "), Lbl_eq_n = Bry_.new_a7(" != ");
|
||||
public static Db_tst_qry tbl_(String tbl_name, String order_by) {return new_(Db_qry_.select_tbl_(tbl_name).OrderBy_asc_(order_by));}
|
||||
|
||||
@@ -37,10 +37,10 @@ class Xowd_page_wkr_ctg_fxt {
|
||||
Xowe_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
|
||||
Xob_bldr bldr = Xoa_app_fxt.bldr_(app);
|
||||
Xobd_parser_wkr_ctg_tstr wkr = (Xobd_parser_wkr_ctg_tstr)new Xobd_parser_wkr_ctg_tstr().Ctor(bldr, wiki);
|
||||
byte[] bry = Bry_.new_u8("[[Category:");
|
||||
byte[] bry = Bry_.new_a7("[[Category:");
|
||||
wkr.Wkr_hooks().Add(bry, bry);
|
||||
mgr.Wkr_add(wkr);
|
||||
Xowd_page_itm page = new Xowd_page_itm().Text_(src);//.Ttl_(Bry_.new_u8("Test"), new Xow_ns_mgr());
|
||||
Xowd_page_itm page = new Xowd_page_itm().Text_(src);//.Ttl_(Bry_.new_a7("Test"), new Xow_ns_mgr());
|
||||
mgr.Wkr_bgn(bldr);
|
||||
mgr.Wkr_run(page);
|
||||
byte[][] ttl = (byte[][])wkr.Found().To_ary(byte[].class);
|
||||
|
||||
@@ -58,7 +58,7 @@ class Xob_sql_join_wkr_ctg_hidden implements Xob_sql_join_wkr {
|
||||
byte[] src = join.Bfr();
|
||||
int itm_end = join.Itm_pos_end();
|
||||
int pipe_pos = Bry_finder.Find_bwd(src, Byte_ascii.Pipe, itm_end);
|
||||
if (pipe_pos == Bry_.NotFound) throw Exc_.new_("failed to find pipe for name", "excerpt", String_.new_u8(src, join.Itm_pos_bgn(), join.Itm_pos_end()));
|
||||
if (pipe_pos == Bry_.NotFound) throw Err_.new_wo_type("failed to find pipe for name", "excerpt", String_.new_u8(src, join.Itm_pos_bgn(), join.Itm_pos_end()));
|
||||
file_bfr.Add_mid(src, pipe_pos + 1, itm_end - 1).Add_byte_pipe();
|
||||
file_bfr.Add(key_bry).Add_byte_nl();
|
||||
} private Bry_bfr file_bfr = Bry_bfr.new_();
|
||||
|
||||
@@ -91,7 +91,7 @@ class Xoctg_make_link_mgr {
|
||||
case Byte_ascii.Ltr_c: return subc_grp;
|
||||
case Byte_ascii.Ltr_f: return file_grp;
|
||||
case Byte_ascii.Ltr_p: return page_grp;
|
||||
default: throw Exc_.new_unhandled(tid);
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
}
|
||||
public int Grps_bfr_len() {return subc_grp.Bfr_len() + file_grp.Bfr_len() + page_grp.Bfr_len();}
|
||||
|
||||
@@ -38,20 +38,20 @@ class Xob_bin_db_itm {
|
||||
public static Xob_bin_db_itm new_v1(Fsm_bin_fil fil) {
|
||||
byte[] name = Bry_.new_u8(fil.Url_rel()); // EX: "fsdb.bin.0000.sqlite3"
|
||||
int ns_id = 0; // assume v1 dbs are all in main ns
|
||||
int pt_id = Bry_.Xto_int_or(name, 9 , 13, Int_.MinValue); if (pt_id == Int_.MinValue) throw Exc_.new_("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
int pt_id = Bry_.Xto_int_or(name, 9 , 13, Int_.MinValue); if (pt_id == Int_.MinValue) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
return new Xob_bin_db_itm(fil.Id(), fil.Url(), ns_id, pt_id);
|
||||
}
|
||||
public static Xob_bin_db_itm new_v2(Fsm_bin_fil fil) {
|
||||
byte[] ns_bgn_tkn = Bry_.new_a7("file-ns."), ns_end_tkn = Bry_.new_a7("-db."), pt_end_tkn = Bry_.new_a7(".xowa");
|
||||
int ns_bgn_tkn_len = ns_bgn_tkn.length, ns_end_tkn_len = ns_end_tkn.length;
|
||||
byte[] name = Bry_.new_u8(fil.Url_rel()); // EX: en.wikipedia.org-file-ns.000-db.001.xowa
|
||||
int ns_bgn = Bry_finder.Find_fwd(name, ns_bgn_tkn, 0); if (ns_bgn == Bry_finder.Not_found) throw Exc_.new_("bin_db_itm.parse: invalid ns_bgn", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
int ns_bgn = Bry_finder.Find_fwd(name, ns_bgn_tkn, 0); if (ns_bgn == Bry_finder.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_bgn", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
ns_bgn += ns_bgn_tkn_len;
|
||||
int ns_end = Bry_finder.Find_fwd(name, ns_end_tkn, ns_bgn); if (ns_end == Bry_finder.Not_found) throw Exc_.new_("bin_db_itm.parse: invalid ns_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
int ns_end = Bry_finder.Find_fwd(name, ns_end_tkn, ns_bgn); if (ns_end == Bry_finder.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
int pt_bgn = ns_end + ns_end_tkn_len;
|
||||
int pt_end = Bry_finder.Find_fwd(name, pt_end_tkn, pt_bgn); if (pt_end == Bry_finder.Not_found) throw Exc_.new_("bin_db_itm.parse: invalid pt_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
int ns_id = Bry_.Xto_int_or(name, ns_bgn, ns_end, Int_.MinValue); if (ns_id == Int_.MinValue) throw Exc_.new_("bin_db_itm.parse: invalid ns_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
int pt_id = Bry_.Xto_int_or(name, pt_bgn, pt_end, Int_.MinValue); if (pt_id == Int_.MinValue) throw Exc_.new_("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
int pt_end = Bry_finder.Find_fwd(name, pt_end_tkn, pt_bgn); if (pt_end == Bry_finder.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
int ns_id = Bry_.Xto_int_or(name, ns_bgn, ns_end, Int_.MinValue); if (ns_id == Int_.MinValue) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
int pt_id = Bry_.Xto_int_or(name, pt_bgn, pt_end, Int_.MinValue); if (pt_id == Int_.MinValue) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
|
||||
return new Xob_bin_db_itm(fil.Id(), fil.Url(), ns_id, pt_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ class Xob_bin_db_mgr {
|
||||
}
|
||||
public Xob_bin_db_itm Get_nth_by_tier(int tier_id) {
|
||||
if (schema_is_1) return (Xob_bin_db_itm)nth_hash.Get_by(tier_key.Val_(0)); // v1 is always in ns_0
|
||||
if (tier_id >= ns_ids_len) throw Exc_.new_("tier out of range", "tier_id", tier_id, "len", ns_ids_len);
|
||||
if (tier_id >= ns_ids_len) throw Err_.new_wo_type("tier out of range", "tier_id", tier_id, "len", ns_ids_len);
|
||||
int ns_id = ns_ids[tier_id];
|
||||
return (Xob_bin_db_itm)nth_hash.Get_by(tier_key.Val_(ns_id));
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ class Xob_diff_regy_sql_runner {
|
||||
else if (fsdb_db_tid == Fsdb_db_tid_.Tid_atr)
|
||||
return abc_mgr.Atr_mgr().Db__core().Conn();
|
||||
else
|
||||
throw Exc_.new_unhandled(fsdb_db_tid);
|
||||
throw Err_.new_unhandled(fsdb_db_tid);
|
||||
}
|
||||
public static String Build_url(String wiki_domain, int fsdb_db_id, String fsdb_db_type) {
|
||||
return String_.Format("{0}-{1}-{2}.sql", wiki_domain, Int_.Xto_str_pad_bgn_zero(fsdb_db_id, 3), fsdb_db_type);
|
||||
@@ -88,14 +88,14 @@ class Fsdb_db_tid_ {
|
||||
if (String_.Eq(s, Key_cfg)) return Tid_cfg;
|
||||
else if (String_.Eq(s, Key_atr)) return Tid_atr;
|
||||
else if (String_.Eq(s, Key_bin)) return Tid_bin;
|
||||
else throw Exc_.new_unhandled(s);
|
||||
else throw Err_.new_unhandled(s);
|
||||
}
|
||||
public static String Xto_key(byte v) {
|
||||
switch (v) {
|
||||
case Tid_cfg: return Key_cfg;
|
||||
case Tid_atr: return Key_atr;
|
||||
case Tid_bin: return Key_bin;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public class Xob_diff_regy_make_cmd extends Xob_itm_basic_base implements Xob_cm
|
||||
Sqlite_engine_.Idx_create(make_db_provider, Xob_diff_regy_tbl.Idx_xfer_regy__join);
|
||||
}
|
||||
catch (Exception exc) {
|
||||
app.Usr_dlg().Warn_many("", "", "error while making indexes: err=~{0}", Err_.Message_gplx(exc));
|
||||
app.Usr_dlg().Warn_many("", "", "error while making indexes: err=~{0}", Err_.Message_gplx_full(exc));
|
||||
}
|
||||
}
|
||||
private void Make_diff_regy(Db_conn make_db_provider) {
|
||||
|
||||
@@ -191,7 +191,7 @@ public class Xob_fsdb_make_cmd extends Xob_itm_basic_base implements Xob_cmd {
|
||||
}
|
||||
catch (Exception exc) {
|
||||
++exec_fail;
|
||||
usr_dlg.Warn_many("", "", "download error; ttl=~{0} w=~{1} err=~{2}", fsdb.Orig_ttl(), fsdb.Lnki_w(), Err_.Message_gplx(exc));
|
||||
usr_dlg.Warn_many("", "", "download error; ttl=~{0} w=~{1} err=~{2}", fsdb.Orig_ttl(), fsdb.Lnki_w(), Err_.Message_gplx_full(exc));
|
||||
}
|
||||
}
|
||||
private void Download_exec(Xodb_tbl_oimg_xfer_itm fsdb) {
|
||||
@@ -345,8 +345,8 @@ public class Xob_fsdb_make_cmd extends Xob_itm_basic_base implements Xob_cmd {
|
||||
url = wiki.Fsys_mgr().Root_dir().GenSubDir("prv"); // v2: EX: /xowa/wiki/en.wikipedia.org/prv/
|
||||
rv = Fsdb_db_mgr_.new_detect(wiki, url, url); // note that v2 is prioritized over v1
|
||||
}
|
||||
else throw Exc_.new_("fsdb.make:unknown fsdb_type", "version", version);
|
||||
if (rv == null) throw Exc_.new_("fsdb.make:source fsdb not found", "version", version, "url", url.Raw());
|
||||
else throw Err_.new_wo_type("fsdb.make:unknown fsdb_type", "version", version);
|
||||
if (rv == null) throw Err_.new_wo_type("fsdb.make:source fsdb not found", "version", version, "url", url.Raw());
|
||||
return rv;
|
||||
}
|
||||
private static final byte Select_rv_stop = 0, Select_rv_process = 1, Select_rv_next_page = 2;
|
||||
|
||||
@@ -192,7 +192,7 @@ class Xob_lnki_temp_wkr_ {
|
||||
int id = i < ids_len ? rv[i] : -1;
|
||||
wiki.Appe().Usr_dlg().Note_many("", "", "ns: ~{0} <- ~{1}", Int_.Xto_str_fmt(id, "0000"), alias);
|
||||
}
|
||||
if (aliases_len != ids_len) throw Exc_.new_("mismatch in aliases and ids", "aliases", aliases_len, "ids", ids_len);
|
||||
if (aliases_len != ids_len) throw Err_.new_wo_type("mismatch in aliases and ids", "aliases", aliases_len, "ids", ids_len);
|
||||
return rv;
|
||||
}
|
||||
private static int[] Ids_by_aliases(Xow_ns_mgr ns_mgr, String[] aliases) {
|
||||
|
||||
@@ -51,7 +51,7 @@ public abstract class Xob_search_base extends Xob_itm_dump_base implements Xobd_
|
||||
.Add_base85_len_5(page.Id()) .Add_byte(Byte_ascii.Semic)
|
||||
.Add_base85_len_5(page.Text().length) .Add_byte(Byte_ascii.Nl);
|
||||
}
|
||||
} catch (Exception e) {bldr.Usr_dlg().Warn_many("", "", "search_index:fatal error: err=~{0}", Err_.Message_gplx_brief(e));} // never let single page crash entire import
|
||||
} catch (Exception e) {bldr.Usr_dlg().Warn_many("", "", "search_index:fatal error: err=~{0}", Err_.Message_gplx_full(e));} // never let single page crash entire import
|
||||
}
|
||||
public void Wkr_end() {
|
||||
tmp_wtr_mgr.Flush_all(bldr.Usr_dlg());
|
||||
|
||||
@@ -61,7 +61,7 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xobd_wkr, GfoInv
|
||||
Xowd_db_file text_db = ns_to_db_mgr.Get_by_ns(ns.Bldr_data(), text_zip.length);
|
||||
try {page_mgr.Create(page_core_tbl, text_db.Tbl__text(), id, page.Ns_id(), page.Ttl_page_db(), redirect, modified, text_zip, text_raw_len, random_int, text_db.Id(), -1);}
|
||||
catch (Exception e) {
|
||||
throw Exc_.new_exc(e, "bldr", "create page in db failed", "id", id, "ns", page.Ns_id(), "name", page.Ttl_page_db(), "redirect", redirect, "modified", modified, "text_len", text_raw_len, "text_db_id", text_db.Id());
|
||||
throw Err_.new_exc(e, "bldr", "create page in db failed; skipping page", "id", id, "ns", page.Ns_id(), "name", page.Ttl_page_db(), "redirect", redirect, "modified", modified, "text_len", text_raw_len, "text_db_id", text_db.Id());
|
||||
}
|
||||
if (redirect && redirect_id_enabled)
|
||||
redirect_tbl.Insert(id, page.Ttl_page_db(), redirect_ttl);
|
||||
|
||||
@@ -78,7 +78,7 @@ class Xob_search_wkr extends Xob_itm_basic_base implements Xobd_wkr {
|
||||
byte[] word = words[i];
|
||||
search_temp_tbl.Insert_cmd_by_batch(page_id, word);
|
||||
}
|
||||
} catch (Exception e) {bldr.Usr_dlg().Warn_many("", "", "search_index:fatal error: err=~{0}", Err_.Message_gplx_brief(e));} // never let single page crash entire import
|
||||
} catch (Exception e) {bldr.Usr_dlg().Warn_many("", "", "search_index:fatal error: err=~{0}", Err_.Message_gplx_full(e));} // never let single page crash entire import
|
||||
}
|
||||
public void Wkr_end() {
|
||||
search_temp_tbl.Make_data(usr_dlg, search_db.Tbl__search_link(), search_db.Tbl__search_word());
|
||||
|
||||
@@ -23,7 +23,7 @@ public class Xob_term_cmd extends Xob_term_base {
|
||||
@Override public void Cmd_end_hook() {
|
||||
Io_mgr.I.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, "props.bldr_version", wiki.Props().Bldr_version());
|
||||
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());
|
||||
|
||||
@@ -174,7 +174,7 @@ public class Xob_tst {
|
||||
Io_mgr.I.SaveFilStr(url, raw);
|
||||
Xotdb_page_raw_parser parser = new Xotdb_page_raw_parser();
|
||||
Xowe_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
|
||||
parser.Load(Gfo_usr_dlg_.Test(), wiki, new Xow_ns(Xow_ns_.Id_template, Xow_ns_case_.Id_1st, Bry_.new_u8("Template"), false), new Io_url[] {url}, 1 * Io_mgr.Len_kb);
|
||||
parser.Load(Gfo_usr_dlg_.Test(), wiki, new Xow_ns(Xow_ns_.Id_template, Xow_ns_case_.Id_1st, Bry_.new_a7("Template"), false), new Io_url[] {url}, 1 * Io_mgr.Len_kb);
|
||||
List_adp actl = List_adp_.new_();
|
||||
Xowd_page_itm page = new Xowd_page_itm();
|
||||
while (parser.Read(page)) {
|
||||
|
||||
@@ -44,7 +44,7 @@ public class Xob_cleanup_cmd extends Xob_itm_basic_base implements Xob_cmd {
|
||||
Delete_wiki_sql(wiki);
|
||||
if (delete_all) {
|
||||
Io_mgr.I.DeleteDir_cmd(wiki_root_dir).Exec(); // do not delete subdirs; needed to support "/prv" for fsdb; DATE:2015-04-01
|
||||
Io_mgr.I.DeleteDirDeep(app.Usere().Fsys_mgr().Wiki_root_dir()); // delete css dir; DATE:2015-07-06
|
||||
Io_mgr.I.DeleteDirDeep(app.Usere().Fsys_mgr().Wiki_root_dir().GenSubDir(wiki.Domain_str())); // delete css dir; DATE:2015-07-06
|
||||
}
|
||||
if (delete_by_match_ary != null)
|
||||
Delete_by_match(wiki_root_dir, delete_by_match_ary);
|
||||
|
||||
@@ -28,7 +28,7 @@ public class Xob_deploy_zip_cmd extends Xob_itm_basic_base implements Xob_cmd {
|
||||
private void Exec(Xob_bldr bldr, String type_name) {
|
||||
Log("initing wiki");
|
||||
try {wiki.Init_assert();}
|
||||
catch (Exception exc) {Log("failed to init wiki: ~{0}", Err_.Message_gplx_brief(exc));}
|
||||
catch (Exception exc) {Log("failed to init wiki: ~{0}", Err_.Message_gplx_full(exc));}
|
||||
Log("probing ns_dirs: ~{0}", wiki.Tdb_fsys_mgr().Ns_dir().Raw());
|
||||
Io_url[] ns_dirs = Io_mgr.I.QueryDir_args(wiki.Tdb_fsys_mgr().Ns_dir()).DirOnly_().ExecAsUrlAry();
|
||||
for (Io_url ns_dir : ns_dirs) {
|
||||
|
||||
@@ -27,7 +27,7 @@ public class Xob_download_wkr extends Xob_itm_basic_base implements Xob_cmd {
|
||||
public String Cmd_key() {return Xob_cmd_keys.Key_util_download;}
|
||||
public void Cmd_init(Xob_bldr bldr) {}
|
||||
public void Cmd_bgn(Xob_bldr bldr) {
|
||||
if (dump_type == null) throw Exc_.new_("dump_type must be specified");
|
||||
if (dump_type == null) throw Err_.new_wo_type("dump_type must be specified");
|
||||
Xob_dump_file dump_file = Xob_dump_file.new_(wiki.Domain_str(), dump_date, dump_type);
|
||||
if (dump_src == null) {
|
||||
dump_file.Server_url_(app.Setup_mgr().Dump_mgr().Server_urls()[0]);
|
||||
@@ -43,7 +43,7 @@ public class Xob_download_wkr extends Xob_itm_basic_base implements Xob_cmd {
|
||||
IoEngine_xrg_downloadFil download_wkr = app.Wmf_mgr().Download_wkr().Download_xrg();
|
||||
download_wkr.Src_last_modified_query_(false).Init(dump_src, dump_trg_zip);
|
||||
if (!download_wkr.Exec())
|
||||
usr_dlg.Warn_many("", "", "download failed: src=~{0} trg=~{1} err=~{2}", dump_src, dump_trg_zip.Raw(), Err_.Message_gplx_brief(download_wkr.Rslt_err()));
|
||||
usr_dlg.Warn_many("", "", "download failed: src=~{0} trg=~{1} err=~{2}", dump_src, dump_trg_zip.Raw(), Err_.Message_gplx_full(download_wkr.Rslt_err()));
|
||||
if (unzip) {
|
||||
usr_dlg.Note_many("", "", "unzipping file: now=~{0} trg=~{1}", DateAdp_.Now().XtoStr_fmt_yyyyMMdd_HHmmss(), dump_trg_bin.Raw());
|
||||
Xob_unzip_wkr unzip_wkr = new Xob_unzip_wkr().Init(app).Process_run_mode_(ProcessAdp.Run_mode_sync_block);
|
||||
|
||||
@@ -32,7 +32,7 @@ public class Xob_unzip_wkr {
|
||||
if (String_.Eq(src_ext, gplx.ios.Io_stream_.Ext_bz2)) process = decompress_bz2;
|
||||
else if (String_.Eq(src_ext, gplx.ios.Io_stream_.Ext_zip)) process = decompress_zip;
|
||||
else if (String_.Eq(src_ext, gplx.ios.Io_stream_.Ext_gz)) process = decompress_gz;
|
||||
else throw Exc_.new_unhandled(src_ext);
|
||||
else throw Err_.new_unhandled(src_ext);
|
||||
Io_url trg_owner_dir = trg.OwnerDir();
|
||||
Io_mgr.I.CreateDirIfAbsent(trg_owner_dir);
|
||||
process.Run_mode_(process_run_mode);
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Xob_xml_dumper_cmd implements Xob_cmd {
|
||||
if ((++page_count % commit_interval) == 0) Commit();
|
||||
}
|
||||
}
|
||||
catch (Exception e) {throw Exc_.new_exc(e, "xo", "xml_dumper failed");}
|
||||
catch (Exception e) {throw Err_.new_exc(e, "xo", "xml_dumper failed");}
|
||||
finally {page_rdr.Rls();}
|
||||
xml_dumper.Write_root_end();
|
||||
this.Commit();
|
||||
|
||||
@@ -32,7 +32,7 @@ public class Xob_image_cmd extends Xob_itm_dump_base implements Xob_cmd, GfoInvk
|
||||
Init_dump(Xob_cmd_keys.Key_wiki_image);
|
||||
if (src_fil == null) {
|
||||
src_fil = Xobd_rdr.Find_fil_by(wiki.Fsys_mgr().Root_dir(), "*-image.sql");
|
||||
if (src_fil == null) throw Exc_.new_(".sql file not found in dir", "dir", wiki.Fsys_mgr().Root_dir());
|
||||
if (src_fil == null) throw Err_.new_wo_type(".sql file not found in dir", "dir", wiki.Fsys_mgr().Root_dir());
|
||||
}
|
||||
parser.Src_fil_(src_fil).Trg_fil_gen_(dump_url_gen).Fld_cmd_(this).Flds_req_idx_(20, Fld_img_name, Fld_img_size, Fld_img_width, Fld_img_height, Fld_img_bits, Fld_img_media_type, Fld_img_minor_mime, Fld_img_timestamp);
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ public class Xoa_css_extractor {
|
||||
wiki.Html__css_installing_(false);
|
||||
}
|
||||
catch (Exception e) { // if error, failover; paranoia catch for outliers like bad network connectivity fail, or MediaWiki: message not existing; DATE:2013-11-21
|
||||
wiki.App().Usr_dlg().Warn_many("", "", "failed to get css; failing over; wiki='~{0}' err=~{1}", wiki.Domain_str(), Err_.Message_gplx(e));
|
||||
wiki.App().Usr_dlg().Warn_many("", "", "failed to get css; failing over; wiki='~{0}' err=~{1}", wiki.Domain_str(), Err_.Message_gplx_full(e));
|
||||
Css_common_failover(); // only failover xowa_common.css; xowa_wiki.css comes from MediaWiki:Common.css / Vector.css
|
||||
wiki.Html__css_installing_(false);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Xoa_css_img_downloader {
|
||||
if (url_pos == Bry_.NotFound) {bfr.Add_mid(src, prv_pos, src_len); break;} // no more "url("; exit;
|
||||
int bgn_pos = url_pos + Bry_url_len; // set bgn_pos after "url("
|
||||
byte bgn_byte = src[bgn_pos];
|
||||
byte end_byte = Byte_ascii.Nil;
|
||||
byte end_byte = Byte_ascii.Null;
|
||||
boolean quoted = true;
|
||||
switch (bgn_byte) { // find end_byte
|
||||
case Byte_ascii.Quote: case Byte_ascii.Apos: // quoted; end_byte is ' or "
|
||||
@@ -99,7 +99,7 @@ public class Xoa_css_img_downloader {
|
||||
return bfr.Xto_bry_and_clear();
|
||||
}
|
||||
catch (Exception e) {
|
||||
usr_dlg.Warn_many("", "", "failed to convert local_urls: ~{0} ~{1}", String_.new_u8(rel_url_prefix), Err_.Message_gplx(e));
|
||||
usr_dlg.Warn_many("", "", "failed to convert local_urls: ~{0} ~{1}", String_.new_u8(rel_url_prefix), Err_.Message_gplx_full(e));
|
||||
return src;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ public class Xoa_css_img_downloader_tst {
|
||||
);
|
||||
}
|
||||
@Test public void Import_url_relative_skip() { // PURPOSE: if rel path, skip; "//site/a/b.css"; DATE:2014-02-03
|
||||
fxt.Downloader().Stylesheet_prefix_(Bry_.new_u8("mem")); // stylesheet prefix prefix defaults to ""; set to "mem", else test will try to retrieve "//url" which will fail
|
||||
fxt.Downloader().Stylesheet_prefix_(Bry_.new_a7("mem")); // stylesheet prefix prefix defaults to ""; set to "mem", else test will try to retrieve "//url" which will fail
|
||||
Io_mgr.I.InitEngine_mem();
|
||||
Io_mgr.I.SaveFilStr("mem//en.wikipedia.org/a/b.css", "imported_css");
|
||||
fxt.Test_css_convert
|
||||
@@ -144,7 +144,7 @@ public class Xoa_css_img_downloader_tst {
|
||||
);
|
||||
}
|
||||
@Test public void Wikisource_freedimg() { // PURPOSE: check that "wikimedia" is replaced for FreedImg hack; PAGE:en.s:Page:Notes_on_Osteology_of_Baptanodon._With_a_Description_of_a_New_Species.pdf/3 DATE:2014-09-06
|
||||
fxt.Downloader().Stylesheet_prefix_(Bry_.new_u8("mem")); // stylesheet prefix prefix defaults to ""; set to "mem", else test will try to retrieve "//url" which will fail
|
||||
fxt.Downloader().Stylesheet_prefix_(Bry_.new_a7("mem")); // stylesheet prefix prefix defaults to ""; set to "mem", else test will try to retrieve "//url" which will fail
|
||||
Io_mgr.I.InitEngine_mem();
|
||||
Io_mgr.I.SaveFilStr("mem//en.wikisource.org/w/index.php?title=MediaWiki:Dynimg.css", ".freedImg img[src*=\"wikipedia\"], .freedImg img[src*=\"wikisource\"], .freedImg img[src*=\"score\"], .freedImg img[src*=\"math\"] {");
|
||||
fxt.Test_css_convert
|
||||
|
||||
@@ -30,7 +30,7 @@ class Xob_css_parser__url {
|
||||
break;
|
||||
default: // not quoted; end byte is ")"; EX: ' url(a.png)'
|
||||
end_byte = Byte_ascii.Paren_end;
|
||||
quote_byte = Byte_ascii.Nil;
|
||||
quote_byte = Byte_ascii.Null;
|
||||
break;
|
||||
}
|
||||
int end_pos = Bry_finder.Find_fwd(src, end_byte, bgn_pos, src_len);
|
||||
|
||||
@@ -62,7 +62,7 @@ class Xob_css_tkn__url extends Xob_css_tkn__base {
|
||||
mgr.File_hash().Add_if_dupe_use_1st(src_url, new Xobc_download_itm(Xobc_download_itm.Tid_file, String_.new_u8(src_url), trg_url));
|
||||
}
|
||||
@Override public int Write(Bry_bfr bfr, byte[] src) {
|
||||
byte quote = quote_byte; if (quote == Byte_ascii.Nil) quote = Byte_ascii.Apos;
|
||||
byte quote = quote_byte; if (quote == Byte_ascii.Null) quote = Byte_ascii.Apos;
|
||||
bfr.Add_str_a7(" url("); // EX: ' url('
|
||||
bfr.Add_byte(quote).Add(trg_url).Add_byte(quote); // EX: '"a.png"'
|
||||
bfr.Add_byte(Byte_ascii.Paren_end); // EX: ')'
|
||||
@@ -102,7 +102,7 @@ class Xob_css_tkn__import extends Xob_css_tkn__base {
|
||||
mgr.Code_add(src_url);
|
||||
}
|
||||
@Override public int Write(Bry_bfr bfr, byte[] src) {
|
||||
byte quote = quote_byte; if (quote == Byte_ascii.Nil) quote = Byte_ascii.Apos;
|
||||
byte quote = quote_byte; if (quote == Byte_ascii.Null) quote = Byte_ascii.Apos;
|
||||
bfr.Add_str_a7(" @import url("); // EX: ' @import url('
|
||||
bfr.Add_byte(quote).Add(trg_url).Add_byte(quote); // EX: '"a.png"'
|
||||
bfr.Add_byte(Byte_ascii.Paren_end); // EX: ')'
|
||||
|
||||
@@ -41,7 +41,7 @@ class Crt__match_exact implements Criteria {
|
||||
ary_len = v.length;
|
||||
}
|
||||
public void Val_as_obj_(Object v) {Val_as_bry_ary_((byte[][])v);}
|
||||
public void Val_from_args(Hash_adp args) {throw Exc_.new_unimplemented();}
|
||||
public void Val_from_args(Hash_adp args) {throw Err_.new_unimplemented();}
|
||||
public String XtoStr() {return String_.Concat_any(this.To_str_name(), " ", String_.Ary(ary));}
|
||||
public byte Tid_match_exact = 12;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.bldrs.langs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
|
||||
import gplx.core.primitives.*; import gplx.json.*; import gplx.php.*; import gplx.gfs.*;
|
||||
import gplx.core.primitives.*; import gplx.core.json.*; import gplx.php.*; import gplx.gfs.*;
|
||||
interface Json_itm_wkr {
|
||||
void Read_kv_sub(byte[] key, byte[] val);
|
||||
}
|
||||
@@ -27,10 +27,10 @@ abstract class Json_itm_wkr__base implements Json_itm_wkr {
|
||||
List_adp tmp_list = List_adp_.new_(); Byte_obj_ref tmp_result = Byte_obj_ref.zero_(); Bry_bfr tmp_bfr = Bry_bfr.reset_(16);
|
||||
Json_doc jdoc = json_parser.Parse(src);
|
||||
this.Exec_bgn();
|
||||
Json_itm_nde root = jdoc.Root();
|
||||
int subs_len = root.Subs_len();
|
||||
Json_nde root = jdoc.Root();
|
||||
int subs_len = root.Len();
|
||||
for (int i = 0; i < subs_len; ++i) {
|
||||
Json_itm itm = root.Subs_get_at(i);
|
||||
Json_itm itm = root.Get_at(i);
|
||||
switch (itm.Tid()) {
|
||||
case Json_itm_.Tid_kv:
|
||||
Json_itm_kv kv = (Json_itm_kv)itm;
|
||||
|
||||
@@ -53,7 +53,7 @@ public class Xobc_utl_make_lang_kwds implements GfoInvkAble, Xol_lang_transform
|
||||
for (int j = 0; j < cfg_grp_len; j++) {
|
||||
Xobcl_kwd_row cfg_grp = cfg_lang.Grps()[j];
|
||||
int kwd_id = Xol_kwd_grp_.Id_by_bry(cfg_grp.Key());
|
||||
if (kwd_id == -1) throw Exc_.new_("could not find kwd for key", "key", String_.new_u8(cfg_grp.Key()));
|
||||
if (kwd_id == -1) throw Err_.new_wo_type("could not find kwd for key", "key", String_.new_u8(cfg_grp.Key()));
|
||||
Xol_kwd_grp kwd_grp = lang.Kwd_mgr().Get_at(kwd_id);
|
||||
tmp.Clear();
|
||||
if (kwd_grp == null) {
|
||||
|
||||
@@ -34,7 +34,7 @@ public class Xobc_utl_make_lang_tst {
|
||||
);
|
||||
}
|
||||
@Test public void Trailing_colon() {
|
||||
fxt.Kwd_mgr().Parse_keep_trailing_colon(Bry_.new_u8("fr"), Bry_.new_u8(String_.Concat_lines_nl
|
||||
fxt.Kwd_mgr().Parse_keep_trailing_colon(Bry_.new_a7("fr"), Bry_.new_u8(String_.Concat_lines_nl
|
||||
( "if|if:~si:~"
|
||||
, "ifeq|"
|
||||
)));
|
||||
@@ -61,7 +61,7 @@ public class Xobc_utl_make_lang_tst {
|
||||
));
|
||||
}
|
||||
@Test public void Prepend_hash() {
|
||||
fxt.Kwd_mgr().Parse_prepend_hash(Bry_.new_u8("fr"), Bry_.new_u8(String_.Concat_lines_nl
|
||||
fxt.Kwd_mgr().Parse_prepend_hash(Bry_.new_a7("fr"), Bry_.new_u8(String_.Concat_lines_nl
|
||||
( "if|if:~si:~"
|
||||
, "ifeq|"
|
||||
, "tag|tag~"
|
||||
@@ -91,7 +91,7 @@ public class Xobc_utl_make_lang_tst {
|
||||
));
|
||||
}
|
||||
@Test public void Add_words_hash() {
|
||||
fxt.Kwd_mgr().Parse_add_words(Bry_.new_u8("fr"), Bry_.new_u8(String_.Concat_lines_nl
|
||||
fxt.Kwd_mgr().Parse_add_words(Bry_.new_a7("fr"), Bry_.new_u8(String_.Concat_lines_nl
|
||||
( "if|if_new:~if~"
|
||||
, "ifeq|"
|
||||
)));
|
||||
@@ -116,7 +116,7 @@ public class Xobc_utl_make_lang_tst {
|
||||
));
|
||||
}
|
||||
@Test public void Manual_text() {
|
||||
fxt.Mgr().Parse_manual_text(Bry_.new_u8("fr"), Bry_.new_u8(String_.Concat_lines_nl
|
||||
fxt.Mgr().Parse_manual_text(Bry_.new_a7("fr"), Bry_.new_u8(String_.Concat_lines_nl
|
||||
( "app;"
|
||||
))
|
||||
, fxt.Mgr().Manual_text_end_hash());
|
||||
|
||||
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.bldrs.langs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
|
||||
import gplx.core.primitives.*; import gplx.core.btries.*; import gplx.intl.*; import gplx.php.*;
|
||||
import gplx.core.primitives.*; import gplx.core.btries.*; import gplx.core.consoles.*; import gplx.intl.*; import gplx.php.*;
|
||||
import gplx.xowa.apps.fsys.*; import gplx.xowa.langs.*; import gplx.xowa.langs.numbers.*;
|
||||
public class Xol_mw_lang_parser {
|
||||
private Php_parser parser = new Php_parser(); private Php_evaluator evaluator;
|
||||
@@ -76,7 +76,7 @@ public class Xol_mw_lang_parser {
|
||||
String text = Io_mgr.I.LoadFilStr(url);
|
||||
Xol_lang lang = lang_mgr.Get_by_key_or_new(Bry_.new_u8(lang_key));
|
||||
this.Parse_core(text, lang, bfr, lang_transform);
|
||||
} catch (Exception exc) {Exc_.Noop(exc); Tfds.WriteText("failed to parse " + url.NameOnly() + Err_.Message_gplx_brief(exc) + "\n");}
|
||||
} catch (Exception exc) {Err_.Noop(exc); Console_adp__sys.I.Write_str_w_nl("failed to parse " + url.NameOnly() + Err_.Message_gplx_full(exc));}
|
||||
}
|
||||
}
|
||||
private void Parse_file_xtns_php(Xoa_lang_mgr lang_mgr, Io_url mediawiki_root, Bry_bfr bfr, Xol_lang_transform lang_transform) {
|
||||
@@ -89,7 +89,7 @@ public class Xol_mw_lang_parser {
|
||||
String text = Io_mgr.I.LoadFilStr(url);
|
||||
boolean prepend_hash = String_.Eq("ParserFunctions.i18n.magic", url.NameOnly());
|
||||
this.Parse_xtn(text, url, lang_mgr, bfr, prepend_hash, lang_transform);
|
||||
} catch (Exception exc) {Exc_.Noop(exc); Tfds.WriteText("failed to parse " + url.NameOnly() + Err_.Message_gplx_brief(exc));}
|
||||
} catch (Exception exc) {Err_.Noop(exc); Console_adp__sys.I.Write_str_w_nl("failed to parse " + url.NameOnly() + Err_.Message_gplx_full(exc));}
|
||||
}
|
||||
}
|
||||
private void Parse_file_json(Xoa_lang_mgr lang_mgr, Bry_bfr bfr, Xol_lang_transform lang_transform, Io_url root_dir) {
|
||||
@@ -104,7 +104,7 @@ public class Xol_mw_lang_parser {
|
||||
try {
|
||||
Xol_lang lang = lang_mgr.Get_by_key_or_new(Bry_.new_u8(fil.NameOnly()));
|
||||
Xob_i18n_parser.Load_msgs(true, lang, fil);
|
||||
} catch (Exception exc) {Exc_.Noop(exc); Tfds.WriteText(String_.Format("failed to parse json file; url={0} err={1}\n", fil.Raw(), Err_.Message_gplx_brief(exc)));}
|
||||
} catch (Exception exc) {Err_.Noop(exc); Console_adp__sys.I.Write_str_w_nl(String_.Format("failed to parse json file; url={0} err={1}\n", fil.Raw(), Err_.Message_gplx_full(exc)));}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -191,14 +191,14 @@ public class Xol_mw_lang_parser {
|
||||
break;
|
||||
case Tid_magicwords:
|
||||
if (line.Key_subs().length == 0) continue; // ignore lines like $magicWords = array();
|
||||
if (line.Key_subs().length > 1) throw Exc_.new_("magicWords in xtn must have only 1 accessor", "len", line.Key_subs().length);
|
||||
if (line.Key_subs().length > 1) throw Err_.new_wo_type("magicWords in xtn must have only 1 accessor", "len", line.Key_subs().length);
|
||||
Php_key accessor = line.Key_subs()[0];
|
||||
byte[] accessor_bry = accessor.Val_obj_bry();
|
||||
if (Bry_.Eq(accessor_bry, lang_key)) // accessor must match lang_key
|
||||
Parse_magicwords(line, lang.Key_bry(), lang.Kwd_mgr(), prepend_hash, lang_transform);
|
||||
break;
|
||||
}
|
||||
} catch (Exception exc) {Exc_.Noop(exc); Tfds.WriteText("failed to parse " + url.NameOnly() + Err_.Message_gplx_brief(exc) + "\n");}
|
||||
} catch (Exception exc) {Err_.Noop(exc); Console_adp__sys.I.Write_str_w_nl("failed to parse " + url.NameOnly() + Err_.Message_gplx_full(exc));}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -292,7 +292,7 @@ public class Xol_mw_lang_parser {
|
||||
}
|
||||
private boolean Parse_int_as_bool(Php_itm itm) {
|
||||
int rv = Php_itm_.Parse_int_or(itm, Int_.MinValue);
|
||||
if (rv == Int_.MinValue) throw Exc_.new_("value must be 0 or 1", "val", String_.new_u8(itm.Val_obj_bry()));
|
||||
if (rv == Int_.MinValue) throw Err_.new_wo_type("value must be 0 or 1", "val", String_.new_u8(itm.Val_obj_bry()));
|
||||
return rv == 1;
|
||||
}
|
||||
private void Parse_separatorTransformTable(Php_line_assign line, Xol_num_mgr num_mgr) {
|
||||
@@ -310,7 +310,7 @@ public class Xol_mw_lang_parser {
|
||||
|| Bry_.Eq(key_bry, Bry_separatorTransformTable_comma)
|
||||
)
|
||||
num_mgr.Separators_mgr().Set(key_bry, val_bry);
|
||||
else throw Exc_.new_unhandled(String_.new_u8(key_bry)); // NOTE: as of v1.22.2, all Messages only have a key of "." or "," DATE:2014-04-15
|
||||
else throw Err_.new_unhandled(String_.new_u8(key_bry)); // NOTE: as of v1.22.2, all Messages only have a key of "." or "," DATE:2014-04-15
|
||||
}
|
||||
} private static final byte[] Bry_separatorTransformTable_comma = new byte[] {Byte_ascii.Comma}, Bry_separatorTransformTable_dot = new byte[] {Byte_ascii.Dot};
|
||||
private void Parse_digitTransformTable(Php_line_assign line, Xol_num_mgr num_mgr) {
|
||||
|
||||
@@ -262,7 +262,7 @@ class Xol_mw_lang_parser_fxt {
|
||||
public Xol_mw_lang_parser_fxt Parse_core(String raw) {parser.Parse_core(raw, lang, tmp_bfr, Xol_lang_transform_null._); return this;}
|
||||
public Xol_mw_lang_parser_fxt Parse_xtn (String raw) {parser.Parse_xtn(raw, Io_url_.Empty, app.Lang_mgr(), tmp_bfr, false, Xol_lang_transform_null._); lang.Evt_lang_changed(); return this;}
|
||||
public Xol_mw_lang_parser_fxt Tst_keyword(int id, boolean case_sensitive, String... words) {
|
||||
Xol_kwd_grp lst = lang.Kwd_mgr().Get_at(id); if (lst == null) throw Exc_.new_("list should not be null");
|
||||
Xol_kwd_grp lst = lang.Kwd_mgr().Get_at(id); if (lst == null) throw Err_.new_wo_type("list should not be null");
|
||||
Tfds.Eq(case_sensitive, lst.Case_match());
|
||||
int actl_len = lst.Itms().length;
|
||||
String[] actl = new String[actl_len];
|
||||
|
||||
@@ -39,7 +39,7 @@ class Xob_subpage_parser {
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw Exc_.new_exc(e, "xo", "parse failed", "src", String_.new_u8(src));
|
||||
throw Err_.new_exc(e, "xo", "parse failed", "src", String_.new_u8(src));
|
||||
}
|
||||
return (Xob_subpage_wiki[])wikis_list.To_ary(Xob_subpage_wiki.class);
|
||||
}
|
||||
@@ -62,7 +62,7 @@ class Xob_subpage_parser {
|
||||
case Php_itm_.Tid_var:
|
||||
return Xol_mw_lang_parser.Id_by_mw_name(((Php_itm)itm).Val_obj_bry());
|
||||
default:
|
||||
throw Exc_.new_unhandled(itm.Itm_tid());
|
||||
throw Err_.new_unhandled(itm.Itm_tid());
|
||||
}
|
||||
}
|
||||
private boolean Parse_ns_enabled(Php_itm itm) {
|
||||
@@ -74,7 +74,7 @@ class Xob_subpage_parser {
|
||||
case Php_itm_.Tid_bool_true:
|
||||
return true;
|
||||
default:
|
||||
throw Exc_.new_unhandled(itm.Itm_tid());
|
||||
throw Err_.new_unhandled(itm.Itm_tid());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class Xob_import_cfg {
|
||||
if (src_fil_xml == null && src_fil_bz2 == null) return wiki.Fsys_mgr().Root_dir();
|
||||
else if (src_fil_xml != null) return src_fil_xml.OwnerDir();
|
||||
else if (src_fil_bz2 != null) return src_fil_bz2.OwnerDir();
|
||||
else throw Exc_.new_("unknown src dir");
|
||||
else throw Err_.new_wo_type("unknown src dir");
|
||||
}
|
||||
public Io_stream_rdr Src_rdr() {
|
||||
if (src_fil_xml == null && src_fil_bz2 == null) { // will usually be null; non-null when user specifies src through command-line
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Xob_import_marker {
|
||||
case Gfui_dlg_msg_.Btn_yes: Xob_cleanup_cmd.Delete_wiki_sql(wiki); End(wiki); return false; // delete wiki
|
||||
case Gfui_dlg_msg_.Btn_no: End(wiki); return true; // delete marker
|
||||
case Gfui_dlg_msg_.Btn_cancel: return true; // noop
|
||||
default: throw Exc_.new_unhandled(rslt);
|
||||
default: throw Err_.new_unhandled(rslt);
|
||||
}
|
||||
}
|
||||
private static Io_url url_(Xowe_wiki wiki) {
|
||||
|
||||
@@ -27,7 +27,7 @@ public class Xob_siteinfo_parser {
|
||||
int end = Bry_finder.Find_fwd(src, Bry_siteinfo_end, bgn); if (end == Bry_.NotFound) return null;
|
||||
return Bry_.Mid(src, bgn, end + Bry_siteinfo_end.length);
|
||||
}
|
||||
catch (Exception e) {Exc_.Noop(e); return null;}
|
||||
catch (Exception e) {Err_.Noop(e); return null;}
|
||||
finally {rdr.Rls();}
|
||||
}
|
||||
public static void Siteinfo_parse(Xowe_wiki wiki, Gfo_usr_dlg usr_dlg, String siteinfo_str) {
|
||||
@@ -42,7 +42,7 @@ public class Xob_siteinfo_parser {
|
||||
|| String_.Eq(sub_nde.Name(), "case")) siteinfo_misc_bfr.Add_str(sub_nde.Text_inner()).Add_byte_pipe();
|
||||
else if ( String_.Eq(sub_nde.Name(), "base")) {
|
||||
String mainpage_url = sub_nde.Text_inner();
|
||||
byte[] mainpage_name = Siteinfo_parse_mainpage(Bry_.new_u8(mainpage_url)); if (mainpage_name == null) throw Exc_.new_("could not extract mainpage", "mainpage", mainpage_url);
|
||||
byte[] mainpage_name = Siteinfo_parse_mainpage(Bry_.new_u8(mainpage_url)); if (mainpage_name == null) throw Err_.new_wo_type("could not extract mainpage", "mainpage", mainpage_url);
|
||||
wiki.Props().Main_page_(mainpage_name);
|
||||
}
|
||||
else if ( String_.Eq(sub_nde.Name(), "namespaces")) {
|
||||
@@ -59,7 +59,7 @@ public class Xob_siteinfo_parser {
|
||||
int bgn_pos = Bry_finder.Find_fwd(url, wiki_bry, 0);
|
||||
if (bgn_pos == Bry_.NotFound) { // "/wiki/" not found; EX: http://mywiki/My_main_page
|
||||
bgn_pos = Bry_finder.Find_bwd(url, Byte_ascii.Slash); // ASSUME last segment is page
|
||||
if (bgn_pos == Bry_.NotFound) throw Exc_.new_("could not parse main page url", "url", String_.new_u8(url));
|
||||
if (bgn_pos == Bry_.NotFound) throw Err_.new_wo_type("could not parse main page url", "url", String_.new_u8(url));
|
||||
++bgn_pos; // add 1 to position after slash
|
||||
}
|
||||
else // "/wiki/" found
|
||||
@@ -79,7 +79,7 @@ public class Xob_siteinfo_parser {
|
||||
String name = sub_nde.Text_inner();
|
||||
ns_mgr.Add_new(ns_id, Bry_.new_u8(name), case_match, false);
|
||||
}
|
||||
catch (Exception e) {throw Exc_.new_exc(e, "xo", "parse failed", "inner", sub_nde.Text_inner());}
|
||||
catch (Exception e) {throw Err_.new_exc(e, "xo", "parse failed", "inner", sub_nde.Text_inner());}
|
||||
}
|
||||
ns_mgr.Init_w_defaults();
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ public class Xob_xml_parser {
|
||||
case Xob_xml_parser_.Id_id_bgn_frag: case Xob_xml_parser_.Id_timestamp_bgn_frag:
|
||||
data_bgn = pos; /*warn*/
|
||||
break;
|
||||
default: throw Exc_.new_unhandled(itm.Tid()); // shouldn't happen
|
||||
default: throw Err_.new_unhandled(itm.Tid()); // shouldn't happen
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,28 +43,28 @@ public class Xob_xml_parser_tst {
|
||||
@Test public void Xml() {
|
||||
Xowd_page_itm doc = doc_(1, "a", ""a & b <> a | b"", Date_1);
|
||||
fil = page_bldr.Add(doc).XtoByteStreamRdr();
|
||||
tst_parse(fil, doc.Text_(Bry_.new_u8("\"a & b <> a | b\"")), 0);
|
||||
tst_parse(fil, doc.Text_(Bry_.new_a7("\"a & b <> a | b\"")), 0);
|
||||
}
|
||||
@Test public void Tab() {
|
||||
Xowd_page_itm doc = doc_(1, "a", "a \t b", Date_1);
|
||||
fil = page_bldr.Add(doc).XtoByteStreamRdr();
|
||||
tst_parse(fil, doc.Text_(Bry_.new_u8("a 	 b")), 0);
|
||||
tst_parse(fil, doc.Text_(Bry_.new_a7("a 	 b")), 0);
|
||||
}
|
||||
@Test public void Tab_disable() {
|
||||
Xowd_page_itm doc = doc_(1, "a", "a \t b", Date_1);
|
||||
page_parser.Trie_tab_del_();
|
||||
fil = page_bldr.Add(doc).XtoByteStreamRdr();
|
||||
tst_parse(fil, doc.Text_(Bry_.new_u8("a \t b")), 0);
|
||||
tst_parse(fil, doc.Text_(Bry_.new_a7("a \t b")), 0);
|
||||
}
|
||||
@Test public void Cr_nl() {
|
||||
Xowd_page_itm doc = doc_(1, "a", "a \r\n b", Date_1);
|
||||
fil = page_bldr.Add(doc).XtoByteStreamRdr();
|
||||
tst_parse(fil, doc.Text_(Bry_.new_u8("a \n b")), 0);
|
||||
tst_parse(fil, doc.Text_(Bry_.new_a7("a \n b")), 0);
|
||||
}
|
||||
@Test public void Cr() {
|
||||
Xowd_page_itm doc = doc_(1, "a", "a \r b", Date_1);
|
||||
fil = page_bldr.Add(doc).XtoByteStreamRdr();
|
||||
tst_parse(fil, doc.Text_(Bry_.new_u8("a \n b")), 0);
|
||||
tst_parse(fil, doc.Text_(Bry_.new_a7("a \n b")), 0);
|
||||
}
|
||||
@Test public void Text_long() {
|
||||
String s = String_.Repeat("a", 1024);
|
||||
|
||||
@@ -78,7 +78,7 @@ public class Xoa_cfg_mgr implements GfoInvkAble {
|
||||
return Eval_set(wiki, grp.Key_str(), itm.Val());
|
||||
}
|
||||
default:
|
||||
throw Exc_.new_unhandled(tid_byte);
|
||||
throw Err_.new_unhandled(tid_byte);
|
||||
}
|
||||
}
|
||||
public void Reset_all() {
|
||||
|
||||
@@ -34,7 +34,7 @@ public class Xocfg_bnd_mgr implements GfoInvkAble, Gfo_sort_able {
|
||||
int len = bnd_mgr.Len();
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xog_bnd_itm bnd = bnd_mgr.Get_at(i);
|
||||
Xog_cmd_itm cmd = cmd_mgr.Get_or_null(bnd.Cmd()); if (cmd == null) throw Exc_.new_unhandled(bnd.Cmd());
|
||||
Xog_cmd_itm cmd = cmd_mgr.Get_or_null(bnd.Cmd()); if (cmd == null) throw Err_.new_unhandled(bnd.Cmd());
|
||||
Xocfg_bnd_itm cfg_itm = new Xocfg_bnd_itm(this, cmd, bnd);
|
||||
regy.Add(bnd.Key(), cfg_itm);
|
||||
}
|
||||
@@ -48,7 +48,7 @@ public class Xocfg_bnd_mgr implements GfoInvkAble, Gfo_sort_able {
|
||||
bnd_mgr_srl.Load_by_bry(src);
|
||||
}
|
||||
catch (Exception e) { // catch errors, so that next cmd (which is page.reload) can still execute
|
||||
app.Usr_dlg().Warn_many("", "", "failed to set bnds; src=~{0} err=~{1}", String_.new_u8(src), Err_.Message_gplx_brief(e));
|
||||
app.Usr_dlg().Warn_many("", "", "failed to set bnds; src=~{0} err=~{1}", String_.new_u8(src), Err_.Message_gplx_full(e));
|
||||
}
|
||||
}
|
||||
private void Show_shortcut_win(String uid, String name, String binding) {
|
||||
|
||||
@@ -23,7 +23,7 @@ public class Xocfg_regy implements GfoInvkAble {
|
||||
public Xocfg_root App() {return app_cfg;} private Xocfg_root app_cfg;
|
||||
public Xocfg_root Get_or_null(String key) {
|
||||
if (String_.Eq(key, Key_app)) return app_cfg;
|
||||
else throw Exc_.new_unhandled(key);
|
||||
else throw Err_.new_unhandled(key);
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_get)) return Get_or_null(m.ReadStrOr("v", Key_app));
|
||||
|
||||
@@ -35,7 +35,7 @@ class Xocfg_new_tab_pos {
|
||||
else if (String_.Eq(v, Key_all_end)) return Tid_all_end;
|
||||
else if (String_.Eq(v, Key_cur_prv)) return Tid_all_end;
|
||||
else if (String_.Eq(v, Key_cur_nxt)) return Tid_all_end;
|
||||
else throw Exc_.new_unhandled(v);
|
||||
else throw Err_.new_unhandled(v);
|
||||
}
|
||||
public static String Xto_str(byte v) {
|
||||
switch (v) {
|
||||
@@ -43,7 +43,7 @@ class Xocfg_new_tab_pos {
|
||||
case Tid_all_end: return Key_all_end;
|
||||
case Tid_cur_prv: return Key_cur_prv;
|
||||
case Tid_cur_nxt: return Key_cur_nxt;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
public static KeyVal[] Options__all = KeyVal_.Ary(KeyVal_.new_(Key_all_bgn), KeyVal_.new_(Key_all_end), KeyVal_.new_(Key_cur_prv), KeyVal_.new_(Key_cur_nxt));
|
||||
|
||||
@@ -28,7 +28,7 @@ public class Xoa_ctg_mgr implements GfoInvkAble {
|
||||
case Missing_ctg_cls_normal_tid: return Missing_ctg_cls_normal_css;
|
||||
case Missing_ctg_cls_hide_tid: return Missing_ctg_cls_hide_css;
|
||||
case Missing_ctg_cls_red_tid: return Missing_ctg_cls_red_css;
|
||||
default: throw Exc_.new_unhandled(missing_ctg_cls_tid);
|
||||
default: throw Err_.new_unhandled(missing_ctg_cls_tid);
|
||||
}
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
@@ -49,14 +49,14 @@ public class Xoa_ctg_mgr implements GfoInvkAble {
|
||||
if (String_.Eq(v, Missing_ctg_cls_normal_str)) return Missing_ctg_cls_normal_tid;
|
||||
else if (String_.Eq(v, Missing_ctg_cls_hide_str)) return Missing_ctg_cls_hide_tid;
|
||||
else if (String_.Eq(v, Missing_ctg_cls_red_str)) return Missing_ctg_cls_red_tid;
|
||||
else throw Exc_.new_unhandled(v);
|
||||
else throw Err_.new_unhandled(v);
|
||||
}
|
||||
private static String Missing_ctg_cls_tid_print(byte v) {
|
||||
switch (v) {
|
||||
case Missing_ctg_cls_normal_tid: return Missing_ctg_cls_normal_str;
|
||||
case Missing_ctg_cls_hide_tid: return Missing_ctg_cls_hide_str;
|
||||
case Missing_ctg_cls_red_tid: return Missing_ctg_cls_red_str;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
public static final byte Version_null = Byte_.Zero, Version_1 = 1, Version_2 = 2;
|
||||
|
||||
@@ -37,7 +37,7 @@ class Xoctg_fmtr_all {
|
||||
case Xoa_ctg_mgr.Tid_subc: grps_enabled = Bool_.Y; msg_id_label = Xol_msg_itm_.Id_ctg_subc_label ; msg_id_stats = Xol_msg_itm_.Id_ctg_subc_count; div_id = Div_id_subc; url_arg_bgn = Url_arg_subc_bgn; url_arg_end = Url_arg_subc_end; this.fmtr_itm = Xoctg_fmtr_itm_subc._; break;
|
||||
case Xoa_ctg_mgr.Tid_page: grps_enabled = Bool_.Y; msg_id_label = Xol_msg_itm_.Id_ctg_page_header; msg_id_stats = Xol_msg_itm_.Id_ctg_page_count; div_id = Div_id_page; url_arg_bgn = Url_arg_page_bgn; url_arg_end = Url_arg_page_end; this.fmtr_itm = Xoctg_fmtr_itm_page._; break;
|
||||
case Xoa_ctg_mgr.Tid_file: grps_enabled = Bool_.Y; msg_id_label = Xol_msg_itm_.Id_ctg_file_header; msg_id_stats = Xol_msg_itm_.Id_ctg_file_count; div_id = Div_id_file; url_arg_bgn = Url_arg_file_bgn; url_arg_end = Url_arg_file_end; this.fmtr_itm = Xoctg_fmtr_itm_file._; break;
|
||||
default: throw Exc_.new_unhandled(tid);
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
html_all.Fmt_(String_.Concat_lines_nl_skip_last
|
||||
( ""
|
||||
@@ -103,7 +103,7 @@ class Xoctg_fmtr_all {
|
||||
// , "</div>"
|
||||
// ));
|
||||
break;
|
||||
default: throw Exc_.new_unhandled(tid);
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
}
|
||||
public byte[] Bld_bwd_fwd(Xowe_wiki wiki, Xoa_ttl ttl, Xoctg_view_grp view_grp) {
|
||||
|
||||
@@ -34,7 +34,7 @@ public class Xoctg_html_mgr implements GfoInvkAble {
|
||||
}
|
||||
catch (Exception e) { // ctg error should never cause page to fail
|
||||
tmp_bfr.Mkr_rls();
|
||||
Xoa_app_.Usr_dlg().Warn_many("", "", "failed to generate category: title=~{0} err=~{1}", String_.new_u8(page.Ttl().Full_txt()), Err_.Message_gplx_brief(e));
|
||||
Xoa_app_.Usr_dlg().Warn_many("", "", "failed to generate category: title=~{0} err=~{1}", String_.new_u8(page.Ttl().Full_txt()), Err_.Message_gplx_full(e));
|
||||
}
|
||||
} private Xoctg_url url_ctg = new Xoctg_url();
|
||||
private void Bld_html_v2(Xowe_wiki wiki, Xoae_page page, Bry_bfr bfr) {
|
||||
@@ -104,7 +104,7 @@ public class Xoctg_html_mgr implements GfoInvkAble {
|
||||
case Xoa_ctg_mgr.Tid_subc: return mgr_subcs;
|
||||
case Xoa_ctg_mgr.Tid_page: return mgr_pages;
|
||||
case Xoa_ctg_mgr.Tid_file: return mgr_files;
|
||||
default: throw Exc_.new_unhandled(tid);
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
}
|
||||
public static final int Grp_max_default = 200;
|
||||
|
||||
@@ -33,7 +33,7 @@ public class Xoctg_idx_mgr implements GfoInvkAble {
|
||||
int pipe_pos_cur = -1, pipe_pos_prv = -1;
|
||||
for (int i = block_len; i < len; i += block_len) {
|
||||
usr_dlg.Prog_many("", "", "indexing ~{0} ~{1}", i, len);
|
||||
pipe_pos_cur = Bry_finder.Find_fwd(src, Byte_ascii.Pipe, i, len); if (pipe_pos_cur == Bry_.NotFound) throw Exc_.new_("ctg_idx_mgr could not find pipe.next", "ctg", String_.new_a7(ctg), "pos", i);
|
||||
pipe_pos_cur = Bry_finder.Find_fwd(src, Byte_ascii.Pipe, i, len); if (pipe_pos_cur == Bry_.NotFound) throw Err_.new_wo_type("ctg_idx_mgr could not find pipe.next", "ctg", String_.new_a7(ctg), "pos", i);
|
||||
if (pipe_pos_cur == len - 1) break;
|
||||
Index_itm(ctg, src, pipe_pos_cur + 1, len); // +1 to skip pipe
|
||||
pipe_pos_prv = pipe_pos_cur;
|
||||
@@ -43,7 +43,7 @@ public class Xoctg_idx_mgr implements GfoInvkAble {
|
||||
Index_itm(ctg, src, pipe_pos_cur + 1, len);
|
||||
}
|
||||
private void Index_itm(byte[] ctg, byte[] src, int bgn, int len) {
|
||||
int end = Bry_finder.Find_fwd(src, Byte_ascii.Pipe, bgn, len); if (end == Bry_.NotFound) throw Exc_.new_("Ctg_idx_mgr could not find pipe.end", "ctg", String_.new_a7(ctg), "pos", bgn);
|
||||
int end = Bry_finder.Find_fwd(src, Byte_ascii.Pipe, bgn, len); if (end == Bry_.NotFound) throw Err_.new_wo_type("Ctg_idx_mgr could not find pipe.end", "ctg", String_.new_a7(ctg), "pos", bgn);
|
||||
fld_rdr.Pos_(bgn);
|
||||
Xoctg_idx_itm itm = new Xoctg_idx_itm().Parse(fld_rdr, bgn);
|
||||
itms.Add(itm);
|
||||
|
||||
@@ -27,7 +27,7 @@ public class Xoctg_view_ctg {
|
||||
case Xoa_ctg_mgr.Tid_subc: return subcs;
|
||||
case Xoa_ctg_mgr.Tid_page: return pages;
|
||||
case Xoa_ctg_mgr.Tid_file: return files;
|
||||
default: throw Exc_.new_unhandled(tid);
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
}
|
||||
public boolean Hidden() {return hidden;} private boolean hidden;
|
||||
|
||||
@@ -30,8 +30,8 @@ public class Xoctg_view_grp {
|
||||
public Xoctg_view_itm Itms_at_first() {return Itms_at(0);}
|
||||
public Xoctg_view_itm Itms_at_last() {return Itms_at(itms.length - 1);}
|
||||
Xoctg_view_itm Itms_at(int i) {
|
||||
if (i < 0 || i >= itms.length) throw Exc_.new_("ctg.view: i is out of bounds", "i", i, "len", itms.length, "tid", tid);
|
||||
Xoctg_view_itm rv = itms[i]; if (rv == null) throw Exc_.new_("ctg.view: itm is null", "i", i, "len", itms.length, "tid", tid);
|
||||
if (i < 0 || i >= itms.length) throw Err_.new_wo_type("ctg.view: i is out of bounds", "i", i, "len", itms.length, "tid", tid);
|
||||
Xoctg_view_itm rv = itms[i]; if (rv == null) throw Err_.new_wo_type("ctg.view: itm is null", "i", i, "len", itms.length, "tid", tid);
|
||||
return rv;
|
||||
}
|
||||
public void Itms_add(Xoctg_view_itm sub) {tmp_list.Add(sub);}
|
||||
|
||||
@@ -67,7 +67,7 @@ public class Xodb_load_mgr_sql implements Xodb_load_mgr {
|
||||
Xowd_category_itm ctg = fsys_mgr.Db__cat_core().Tbl__cat_core().Select(cat_page_id); if (ctg == Xowd_category_itm.Null) return false;
|
||||
return Ctg_select_v1(db_mgr.Wiki(), db_mgr.Core_data_mgr(), rv, ctg.File_idx(), ctg);
|
||||
}
|
||||
public boolean Load_ctg_v2(Xoctg_data_ctg rv, byte[] ctg_bry) {throw Exc_.new_unimplemented();}
|
||||
public boolean Load_ctg_v2(Xoctg_data_ctg rv, byte[] ctg_bry) {throw Err_.new_unimplemented();}
|
||||
public void Load_ctg_v2a(Xoctg_view_ctg rv, Xoctg_url ctg_url, byte[] ctg_ttl, int load_max) {
|
||||
int cat_page_id = db_mgr.Core_data_mgr().Tbl__page().Select_id(Xow_ns_.Id_category, ctg_ttl); if (cat_page_id == Xowd_page_itm.Id_null) return;
|
||||
Xowd_category_itm ctg = fsys_mgr.Db__cat_core().Tbl__cat_core().Select(cat_page_id); if (ctg == Xowd_category_itm.Null) return;
|
||||
|
||||
@@ -169,7 +169,7 @@ public class Xodb_load_mgr_txt implements Xodb_load_mgr {
|
||||
case Xoa_ctg_mgr.Tid_subc: count = count_subcs; break;
|
||||
case Xoa_ctg_mgr.Tid_file: count = count_files; break;
|
||||
case Xoa_ctg_mgr.Tid_page: count = count_pages; break;
|
||||
default: throw Exc_.new_unhandled(i);
|
||||
default: throw Err_.new_unhandled(i);
|
||||
}
|
||||
idx_mgr.Total_(count);
|
||||
}
|
||||
@@ -327,7 +327,7 @@ public class Xodb_load_mgr_txt implements Xodb_load_mgr {
|
||||
int bgn = pos + 1 + (i * (Base85_utl.Len_int + gplx.xowa.apps.progs.Xoa_prog_mgr.Len_dlm_fld));
|
||||
try {
|
||||
int id = Base85_utl.XtoIntByAry(ary, bgn, bgn + Base85_utl.Len_int - 1);
|
||||
if (id < 0) throw Exc_.new_("invalid id", "id", id);
|
||||
if (id < 0) throw Err_.new_wo_type("invalid id", "id", id);
|
||||
row.Id_(id);
|
||||
}
|
||||
catch (Exception e) {
|
||||
|
||||
@@ -42,7 +42,7 @@ public class Xodb_mgr_txt implements Xodb_mgr {
|
||||
return category_version;
|
||||
} byte category_version = Xoa_ctg_mgr.Version_null;
|
||||
public byte Search_version() {return gplx.xowa.specials.search.Xows_page__search.Version_2;}
|
||||
public void Search_version_refresh() {throw Exc_.new_unimplemented();}
|
||||
public void Search_version_refresh() {throw Err_.new_unimplemented();}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_data_storage_format)) return Io_stream_.Obsolete_to_str(data_storage_format);
|
||||
else if (ctx.Match(k, Invk_data_storage_format_)) data_storage_format = Io_stream_.Obsolete_to_tid(m.ReadStr("v"));
|
||||
|
||||
@@ -32,7 +32,7 @@ public class Xodb_save_mgr_txt implements Xodb_save_mgr {
|
||||
Xow_ns ns_itm = ttl.Ns(); byte[] ttl_bry = ttl.Page_db();
|
||||
Xowd_page_itm db_page = Xowd_page_itm.new_tmp();
|
||||
boolean found = load_mgr.Load_by_ttl(db_page, ns_itm, ttl_bry);
|
||||
if (found) throw Exc_.new_("create requested but title already exists", "ttl", String_.new_u8(ttl_bry));
|
||||
if (found) throw Err_.new_wo_type("create requested but title already exists", "ttl", String_.new_u8(ttl_bry));
|
||||
int text_len = text.length;
|
||||
Bry_bfr tmp = wiki.Utl__bfr_mkr().Get_m001();
|
||||
int page_id = page_id_next++;
|
||||
@@ -69,7 +69,7 @@ public class Xodb_save_mgr_txt implements Xodb_save_mgr {
|
||||
Xoa_ttl ttl = page.Ttl();
|
||||
Xow_ns ns = ttl.Ns(); byte[] ttl_bry = ttl.Page_db();
|
||||
Xowd_page_itm db_page = Xowd_page_itm.new_tmp();
|
||||
if (!load_mgr.Load_by_ttl(db_page, ns, ttl_bry)) throw Exc_.new_("update requested but title does not exist", "ttl", String_.new_u8(ttl_bry));
|
||||
if (!load_mgr.Load_by_ttl(db_page, ns, ttl_bry)) throw Err_.new_wo_type("update requested but title does not exist", "ttl", String_.new_u8(ttl_bry));
|
||||
byte[] old_ttl = ttl_bry;
|
||||
if (new_ttl != null) {
|
||||
ttl_bry = new_ttl;
|
||||
|
||||
@@ -72,7 +72,7 @@ public class Xof_ext_ {
|
||||
private static final Xof_ext[] Ary = new Xof_ext[Id__max];
|
||||
|
||||
public static byte[] Get_ext_by_id_(int id) {
|
||||
if (id < 0 || id >= Id__max) throw Exc_.new_("index out of bounds", "id", id);
|
||||
if (id < 0 || id >= Id__max) throw Err_.new_wo_type("index out of bounds", "id", id);
|
||||
return Bry__ary[id];
|
||||
}
|
||||
public static int Get_id_by_ext_(byte[] ext_bry) {
|
||||
|
||||
@@ -84,7 +84,7 @@ public class Xof_file_wkr implements Gfo_thread_wkr {
|
||||
cache_mgr.Update(fsdb);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
usr_dlg.Warn_many("", "", "file.unknown: ~{0}", Err_.Message_gplx_brief(e));
|
||||
usr_dlg.Warn_many("", "", "file.unknown: err=~{0}", Err_.Message_gplx_full(e));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -128,7 +128,7 @@ public class Xof_file_wkr implements Gfo_thread_wkr {
|
||||
bin_updater.Save_bin(mnt_itm, atr_fil, bin_fil, itm, rdr, rdr_len);
|
||||
}
|
||||
catch (Exception e) {
|
||||
Xoa_app_.Usr_dlg().Warn_many("", "", "failed to save file: ttl=~{0} url=~{1} err=~{2}", itm.Orig_ttl(), html_url.Raw(), Err_.Message_gplx(e));
|
||||
Xoa_app_.Usr_dlg().Warn_many("", "", "failed to save file: ttl=~{0} url=~{1} err=~{2}", itm.Orig_ttl(), html_url.Raw(), Err_.Message_gplx_full(e));
|
||||
}
|
||||
finally {rdr.Rls();}
|
||||
}
|
||||
|
||||
@@ -16,9 +16,10 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.core.consoles.*;
|
||||
public class Xof_file_wkr_ {
|
||||
public static final Url_encoder Md5_decoder = Url_encoder.new_http_url_().Itms_raw_same_many(Byte_ascii.Plus);
|
||||
public static byte[] Md5_fast(byte[] v) {return Bry_.new_a7(gplx.security.HashAlgo_.Md5.CalcHash(ConsoleDlg_.Null, gplx.ios.IoStream_.ary_(v)));}
|
||||
public static byte[] Md5_fast(byte[] v) {return Bry_.new_a7(gplx.security.HashAlgo_.Md5.CalcHash(Console_adp_.Noop, gplx.ios.IoStream_.ary_(v)));}
|
||||
public static byte[] Md5_(byte[] ttl) {
|
||||
ttl = Md5_decoder.Decode_lax(Ttl_standardize(ttl));
|
||||
return Xof_file_wkr_.Md5_fast(ttl); // NOTE: md5 is calculated off of url_decoded ttl; EX: A%2Cb is converted to A,b and then md5'd. note that A%2Cb still remains the title
|
||||
|
||||
@@ -30,7 +30,7 @@ class Xof_wkr_mgr implements GfoInvkAble {
|
||||
if (String_.Eq(key, "fs.dir"))
|
||||
rv = new gplx.xowa.files.fsdb.fs_roots.Fs_root_fsdb_mgr(file_mgr.Wiki());
|
||||
else
|
||||
throw Exc_.new_unhandled(key);
|
||||
throw Err_.new_unhandled(key);
|
||||
file_mgr.Fsdb_mgr_(rv);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ class Bin_fetcher_fsys implements Bin_fetcher {
|
||||
public void Init_src_url(Io_url src) {this.src = src;} private Io_url src;
|
||||
public boolean Save_as_url(Io_url trg) {
|
||||
try {Io_mgr.I.CopyFil(src, trg, true); return true;}
|
||||
catch (Exception exc) {Exc_.Noop(exc); return false;}
|
||||
catch (Exception exc) {Err_.Noop(exc); return false;}
|
||||
}
|
||||
public boolean Save_as_bry(Bry_obj_ref bry_ref) {
|
||||
try {
|
||||
@@ -33,7 +33,7 @@ class Bin_fetcher_fsys implements Bin_fetcher {
|
||||
bry_ref.Val_(bry);
|
||||
return true;
|
||||
}
|
||||
catch (Exception exc) {Exc_.Noop(exc); return false;}
|
||||
catch (Exception exc) {Err_.Noop(exc); return false;}
|
||||
}
|
||||
}
|
||||
class Bin_fetcher_http implements Bin_fetcher {
|
||||
@@ -48,7 +48,7 @@ class Bin_fetcher_http implements Bin_fetcher {
|
||||
bry_ref.Val_(rv);
|
||||
return true;
|
||||
}
|
||||
catch (Exception exc) {Exc_.Noop(exc); return false;}
|
||||
catch (Exception exc) {Err_.Noop(exc); return false;}
|
||||
}
|
||||
}
|
||||
class Bin_fetcher_fsdb {
|
||||
|
||||
@@ -39,7 +39,7 @@ public class Xof_bin_skip_mgr {
|
||||
Xof_bin_skip_wkr rv = null;
|
||||
if (String_.Eq(key, Xof_bin_skip_wkr_.Key__page_gt_1)) rv = Xof_bin_skip_wkr__page_gt_1.I;
|
||||
else if (String_.Eq(key, Xof_bin_skip_wkr_.Key__small_size)) rv = Xof_bin_skip_wkr__small_size.I;
|
||||
else throw Exc_.new_unhandled(key);
|
||||
else throw Err_.new_unhandled(key);
|
||||
if (!rv.Skip_init(cfg_mgr)) return null;
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -38,14 +38,14 @@ public class Xof_cache_mgr implements GfoInvkAble {
|
||||
dir_mgr.Save_all();
|
||||
fil_mgr.Save_all();
|
||||
cfg_mgr.Save_all(); // always save cfg_mgr last; fil_mgr / dir_mgr may change next_id during failed saves; DATE:2014-03-07
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "cache_mgr.save:fatal error: err=~{0}", Err_.Message_gplx_brief(e));}
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "cache_mgr.save:fatal error: err=~{0}", Err_.Message_gplx_full(e));}
|
||||
}
|
||||
public void Db_term() {
|
||||
try {
|
||||
cfg_mgr.Cleanup();
|
||||
dir_mgr.Cleanup();
|
||||
fil_mgr.Cleanup();
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "cache_mgr.term:fatal error: err=~{0}", Err_.Message_gplx_brief(e));}
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "cache_mgr.term:fatal error: err=~{0}", Err_.Message_gplx_full(e));}
|
||||
}
|
||||
public Xofc_fil_itm Reg(Xof_fsdb_itm itm, long bin_len) {return this.Reg(itm.Orig_repo_name(), itm.Orig_ttl(), itm.File_is_orig(), itm.File_w(), itm.File_w(), itm.Lnki_time(), itm.Orig_ext(), bin_len, DateAdp_.MaxValue, "");}
|
||||
private Xofc_fil_itm Reg(byte[] repo, byte[] ttl, boolean fil_is_orig, int fil_w, int fil_h, double fil_thumbtime, Xof_ext ext, long bin_len, DateAdp modified, String hash) {
|
||||
|
||||
@@ -50,13 +50,13 @@ class Xofc_dir_tbl implements RlsAble {
|
||||
case Db_cmd_mode.Tid_update: stmt.Clear() .Val_bry_as_str(fld_name, itm.Name()).Crt_int(fld_id, itm.Id()).Exec_update(); break;
|
||||
case Db_cmd_mode.Tid_delete: stmt.Clear().Crt_int(fld_id, itm.Id()).Exec_delete(); break;
|
||||
case Db_cmd_mode.Tid_ignore: break;
|
||||
default: throw Exc_.new_unhandled(itm.Cmd_mode());
|
||||
default: throw Err_.new_unhandled(itm.Cmd_mode());
|
||||
}
|
||||
itm.Cmd_mode_(Db_cmd_mode.Tid_ignore);
|
||||
return null;
|
||||
} catch (Exception e) {
|
||||
stmt_bldr.Rls(); // rls bldr, else bad stmt will lead to other failures
|
||||
return Err_.Message_gplx_brief(e);
|
||||
return Err_.Message_gplx_full(e);
|
||||
}
|
||||
}
|
||||
public void Cleanup() {
|
||||
|
||||
@@ -113,7 +113,7 @@ class Xofc_fil_mgr {
|
||||
this.Save_all(); // save everything again
|
||||
}
|
||||
catch (Exception e) {
|
||||
usr_dlg.Warn_many("", "", "failed to compress cache: err=~{0}", Err_.Message_gplx_brief(e));
|
||||
usr_dlg.Warn_many("", "", "failed to compress cache: err=~{0}", Err_.Message_gplx_full(e));
|
||||
}
|
||||
finally {tbl.Conn().Txn_end();}
|
||||
}
|
||||
|
||||
@@ -68,13 +68,13 @@ class Xofc_fil_tbl implements RlsAble {
|
||||
case Db_cmd_mode.Tid_update: stmt.Clear(); Db_save_modify(stmt, itm); stmt.Crt_int(fld_uid, itm.Uid()).Exec_update(); break;
|
||||
case Db_cmd_mode.Tid_delete: stmt.Clear().Crt_int(fld_uid, itm.Uid()); stmt.Exec_delete(); break;
|
||||
case Db_cmd_mode.Tid_ignore: break;
|
||||
default: throw Exc_.new_unhandled(itm.Cmd_mode());
|
||||
default: throw Err_.new_unhandled(itm.Cmd_mode());
|
||||
}
|
||||
itm.Cmd_mode_(Db_cmd_mode.Tid_ignore);
|
||||
return null;
|
||||
} catch (Exception e) {
|
||||
stmt_bldr.Rls(); // null out bldr, else bad stmt will lead to other failures
|
||||
return Err_.Message_gplx_brief(e);
|
||||
return Err_.Message_gplx_full(e);
|
||||
}
|
||||
}
|
||||
private void Db_save_modify(Db_stmt stmt, Xofc_fil_itm itm) {
|
||||
|
||||
@@ -152,7 +152,7 @@ public class Xou_cache_mgr {
|
||||
conn.Txn_end();
|
||||
Io_mgr.I.Delete_dir_empty(cache_dir);
|
||||
}
|
||||
catch (Exception e) {Xoa_app_.Usr_dlg().Warn_many("", "", "failed to compress cache: err=~{0}", Err_.Message_gplx_brief(e)); return;}
|
||||
catch (Exception e) {Xoa_app_.Usr_dlg().Warn_many("", "", "failed to compress cache: err=~{0}", Err_.Message_gplx_full(e)); return;}
|
||||
}
|
||||
Xoa_app_.Usr_dlg().Note_many("", "", "cache compress done");
|
||||
}
|
||||
|
||||
@@ -107,10 +107,10 @@ public class Xou_cache_tbl implements RlsAble {
|
||||
case Db_cmd_mode.Tid_update: stmt.Clear(); Db_save_val(stmt, itm); Db_save_crt(stmt, itm, Bool_.N); stmt.Exec_update(); break;
|
||||
case Db_cmd_mode.Tid_delete: stmt.Clear(); Db_save_crt(stmt, itm, Bool_.N); stmt.Exec_delete(); break;
|
||||
case Db_cmd_mode.Tid_ignore: break;
|
||||
default: throw Exc_.new_unhandled(itm.Db_state());
|
||||
default: throw Err_.new_unhandled(itm.Db_state());
|
||||
}
|
||||
itm.Db_state_(Db_cmd_mode.Tid_ignore);
|
||||
} catch (Exception e) {stmt_bldr.Rls(); throw Exc_.new_exc(e, "xo", "db_save failed");}
|
||||
} catch (Exception e) {stmt_bldr.Rls(); throw Err_.new_exc(e, "xo", "db_save failed");}
|
||||
}
|
||||
@gplx.Internal protected Db_rdr Select_all_for_test() {return conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empty).Exec_select__rls_manual();}
|
||||
private void Db_save_crt(Db_stmt stmt, Xou_cache_itm itm, boolean insert) {
|
||||
|
||||
@@ -55,7 +55,7 @@ public class Xou_file_itm_finder {
|
||||
else
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
Xoa_app_.Usr_dlg().Warn_many("", "", "failed to find img: img=~{0} err=~{1}", lnki_ttl, Err_.Message_gplx_brief(e));
|
||||
Xoa_app_.Usr_dlg().Warn_many("", "", "failed to find img: img=~{0} err=~{1}", lnki_ttl, Err_.Message_gplx_log(e));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ public class Xof_img_wkr_resize_img_mok implements Xof_img_wkr_resize_img {
|
||||
public boolean Resize_exec(Io_url src, Io_url trg, int trg_w, int trg_h, int ext_id, String_obj_ref rslt_val) {
|
||||
SizeAdp src_size = ImageAdp_.txt_fil_(src).Size();
|
||||
int src_w = src_size.Width(), src_h = src_size.Height();
|
||||
if (trg_w < 1) throw Exc_.new_("trg_w must be > 0", "trg_w", trg_w);
|
||||
if (trg_w < 1) throw Err_.new_wo_type("trg_w must be > 0", "trg_w", trg_w);
|
||||
if (trg_h < 1) trg_h = Xof_xfer_itm_.Scale_h(src_w, src_h, trg_w);
|
||||
Io_mgr.I.SaveFilStr(trg, SizeAdp_.new_(trg_w, trg_h).XtoStr());
|
||||
return true;
|
||||
|
||||
@@ -33,7 +33,7 @@ public class Xof_download_wkr_io implements Xof_download_wkr {
|
||||
Io_url src_url = Io_url_.new_fil_(src_str);
|
||||
if (!Io_mgr.I.ExistsFil(src_url)) return IoEngine_xrg_downloadFil.Rslt_fail_file_not_found;
|
||||
try {Io_mgr.I.CopyFil(src_url, trg_url, true);}
|
||||
catch (Exception exc) {Exc_.Noop(exc); return IoEngine_xrg_downloadFil.Rslt_fail_unknown;}
|
||||
catch (Exception exc) {Err_.Noop(exc); return IoEngine_xrg_downloadFil.Rslt_fail_unknown;}
|
||||
return IoEngine_xrg_downloadFil.Rslt_pass;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class Xof_download_wkr_test implements Xof_download_wkr {
|
||||
Io_url src_url = Io_url_.new_fil_(src_str);
|
||||
if (!Io_mgr.I.ExistsFil(src_url)) return IoEngine_xrg_downloadFil.Rslt_fail_file_not_found;
|
||||
try {Io_mgr.I.CopyFil(src_url, trg_url, true);}
|
||||
catch (Exception exc) {Exc_.Noop(exc); return IoEngine_xrg_downloadFil.Rslt_fail_unknown;}
|
||||
catch (Exception exc) {Err_.Noop(exc); return IoEngine_xrg_downloadFil.Rslt_fail_unknown;}
|
||||
return IoEngine_xrg_downloadFil.Rslt_pass;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Xof_fsdb_mgr__sql implements Xof_fsdb_mgr, GfoInvkAble {
|
||||
this.bin_mgr = new Xof_bin_mgr(mnt_mgr, repo_mgr, wiki.App().File__img_mgr().Wkr_resize_img(), wiki.App().Wmf_mgr().Download_wkr().Download_xrg().Download_fmt());
|
||||
bin_mgr.Wkrs__add(Xof_bin_wkr__fsdb_sql.new_(mnt_mgr));
|
||||
bin_mgr.Wkrs__add(Xof_bin_wkr__http_wmf.new_(wiki));
|
||||
} catch (Exception e) {throw Exc_.new_exc(e, "xo", "failed to initialize fsdb_mgr}", "wiki", wiki.Domain_str());}
|
||||
} catch (Exception e) {throw Err_.new_exc(e, "xo", "failed to initialize fsdb_mgr}", "wiki", wiki.Domain_str());}
|
||||
}
|
||||
public void Fsdb_search_by_list(List_adp itms, Xow_wiki cur_wiki, Xoa_page page, Xog_js_wkr js_wkr) {
|
||||
if (!fsdb_enabled) return;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class Fs_root_fsdb_mgr implements Xof_fsdb_mgr, GfoInvkAble { // read ima
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_root_dir_ = "root_dir_", Invk_orig_dir_ = "orig_dir_", Invk_thumb_dir_ = "thumb_dir_";
|
||||
public Xof_bin_mgr Bin_mgr() {throw Exc_.new_unimplemented();}
|
||||
public Xof_bin_mgr Bin_mgr() {throw Err_.new_unimplemented();}
|
||||
public Fsm_mnt_mgr Mnt_mgr() {return null;}
|
||||
public void Rls() {}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public class Xof_orig_mgr {
|
||||
if (!Io_mgr.I.ExistsFil(fsdb.Html_view_url()))
|
||||
fsdb.File_exists_n_();
|
||||
} catch (Exception e) {
|
||||
Xoa_app_.Usr_dlg().Warn_many("", "", "orig: ~{0}", Err_.Message_gplx_brief(e));
|
||||
Xoa_app_.Usr_dlg().Warn_many("", "", "orig: exc=~{0}", Err_.Message_gplx_full(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ public class Xof_repo_itm implements GfoInvkAble {
|
||||
return Xof_repo_itm_.Ttl_shorten_ttl(tmp_bfr, rv, ttl_max_len, md5, ext.Ext());
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_owner)) throw Exc_.new_unimplemented_w_msg("deprecated repo_itm.owner");
|
||||
if (ctx.Match(k, Invk_owner)) throw Err_.new_unimplemented_w_msg("deprecated repo_itm.owner");
|
||||
else if (ctx.Match(k, Invk_fsys_)) fsys_is_wnt = String_.Eq(m.ReadStr("v"), "wnt");
|
||||
else if (ctx.Match(k, Invk_primary_)) primary = m.ReadYn("v");
|
||||
else if (ctx.Match(k, Invk_ext_rules_)) Ext_rules_(m.ReadBry("v"));
|
||||
|
||||
@@ -21,7 +21,7 @@ public class Xof_repo_itm_ {
|
||||
public static final int Dir_depth_null = -1, Dir_depth_wmf = 2, Dir_depth_xowa = 4;
|
||||
public static final byte Mode_orig = 0, Mode_thumb = 1, Mode_nil = Byte_.Max_value_127;
|
||||
public static byte Mode_by_bool(boolean is_thumb) {return is_thumb ? Mode_thumb : Mode_orig;}
|
||||
public static final byte[][] Mode_names_key = new byte[][] {Bry_.new_u8("orig"), Bry_.new_u8("thumb")};
|
||||
public static final byte[][] Mode_names_key = new byte[][] {Bry_.new_a7("orig"), Bry_.new_a7("thumb")};
|
||||
public static final byte Repo_remote = 0, Repo_local = 1, Repo_unknown = 126, Repo_null = Byte_.Max_value_127;
|
||||
public static byte Repo_by_bool(boolean is_commons) {return is_commons ? Repo_remote : Repo_local;}
|
||||
public static boolean Repo_is_known(byte repo) {
|
||||
|
||||
@@ -192,7 +192,7 @@ public class Xowe_repo_mgr implements Xow_repo_mgr, GfoInvkAble {
|
||||
Xoa_repo_mgr repo_mgr = wiki.Appe().File_mgr().Repo_mgr();
|
||||
Xof_repo_itm src_repo = repo_mgr.Get_by(src_repo_key), trg_repo = repo_mgr.Get_by(trg_repo_key);
|
||||
byte[] src_wiki_key = src_repo.Wiki_domain(), trg_wiki_key = trg_repo.Wiki_domain();
|
||||
if (!Bry_.Eq(src_wiki_key, trg_wiki_key) && !Bry_.Eq(src_wiki_key, Xow_domain_type_.Key_bry_home)) throw Exc_.new_("wiki keys do not match", "src", String_.new_u8(src_wiki_key), "trg", String_.new_u8(trg_wiki_key));
|
||||
if (!Bry_.Eq(src_wiki_key, trg_wiki_key) && !Bry_.Eq(src_wiki_key, Xow_domain_type_.Key_bry_home)) throw Err_.new_wo_type("wiki keys do not match", "src", String_.new_u8(src_wiki_key), "trg", String_.new_u8(trg_wiki_key));
|
||||
Xof_repo_pair pair = new Xof_repo_pair((byte)repos.Count(), src_wiki_key, src_repo, trg_repo);
|
||||
repos.Add(pair);
|
||||
return pair;
|
||||
|
||||
@@ -313,7 +313,7 @@ public class Xof_xfer_mgr {
|
||||
Io_url new_trg = trg_url.GenNewNameOnly(new_name);
|
||||
if (trg_url.Eq(new_trg)) return true; // HACK: io will delete file if moving unto itself; (i.e.: mv A.png A.png is same as del A.png); problem is that this proc is being called too many times
|
||||
try {Io_mgr.I.MoveFil_args(trg_url, new_trg, true).Exec();}
|
||||
catch (Exception exc) {Exc_.Noop(exc); return rslt.Fail("move failed");}
|
||||
catch (Exception exc) {Err_.Noop(exc); return rslt.Fail("move failed");}
|
||||
rslt.Trg_(new_trg);
|
||||
}
|
||||
return true;
|
||||
@@ -331,7 +331,7 @@ public class Xof_xfer_mgr {
|
||||
byte download_rslt = wmf_mgr.Download_wkr().Download(src_repo_is_wmf, src_str, trg_url, wmf_mgr.Download_wkr().Download_xrg().Prog_fmt_hdr());
|
||||
if (download_rslt == gplx.ios.IoEngine_xrg_downloadFil.Rslt_fail_host_not_found) {
|
||||
wiki.File_mgr().Cfg_download().Enabled_(false);
|
||||
throw Exc_.new_("download_failed: host not found", "src", src_str, "trg", trg_url.Raw());
|
||||
throw Err_.new_wo_type("download_failed: host not found", "src", src_str, "trg", trg_url.Raw());
|
||||
}
|
||||
pass = download_rslt == gplx.ios.IoEngine_xrg_downloadFil.Rslt_pass;
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ public class Xoa_gui_mgr implements GfoEvObj, GfoInvkAble {
|
||||
else if (ctx.Match(k, Invk_cmds)) return cmd_mgr;
|
||||
else if (ctx.Match(k, Invk_url_macros)) return url_macro_mgr;
|
||||
else if (ctx.Match(k, Xoue_user.Evt_lang_changed)) Lang_changed((Xol_lang)m.ReadObj("v", ParseAble_.Null));
|
||||
else throw Exc_.new_unhandled(k);
|
||||
else throw Err_.new_unhandled(k);
|
||||
return this;
|
||||
}
|
||||
private static final String
|
||||
@@ -112,8 +112,8 @@ public class Xoa_gui_mgr implements GfoEvObj, GfoInvkAble {
|
||||
app.Log_wtr().Log_to_session_direct(log_bfr.Xto_str());
|
||||
kit.Kit_run(); // NOTE: enters thread-loop
|
||||
} catch (Exception e) {
|
||||
app.Usr_dlg().Warn_many("", "", "run_failed: ~{0} ~{1}", log_bfr.Xto_str(), Err_.Message_gplx(e));
|
||||
if (app.Gui_mgr().Kit() != null) app.Gui_mgr().Kit().Ask_ok("", "", Err_.Message_gplx(e));
|
||||
app.Usr_dlg().Warn_many("", "", "run_failed: ~{0} ~{1}", log_bfr.Xto_str(), Err_.Message_gplx_full(e));
|
||||
if (app.Gui_mgr().Kit() != null) app.Gui_mgr().Kit().Ask_ok("", "", Err_.Message_gplx_full(e));
|
||||
}
|
||||
}
|
||||
private void layout_Init() {
|
||||
|
||||
@@ -78,7 +78,7 @@ public class Xog_resizer {
|
||||
try {
|
||||
GfuiTextBox cur_box = (GfuiTextBox)cur_elem;
|
||||
cur_box.Margins_set(0, txt_margin_v, 0, txt_margin_v);
|
||||
} catch (Exception e) {Exc_.Noop(e);}
|
||||
} catch (Exception e) {Err_.Noop(e);}
|
||||
}
|
||||
if (box.Mode() == Xog_layout_box.Mode_abs) // absolute mode; set dimensions manually
|
||||
cur_elem_rect.X_(box.X_abs()).Y_(box.Y_abs()).W_(box.W_abs()).H_(box.H_abs());
|
||||
|
||||
@@ -51,7 +51,7 @@ public class Xog_bnd_box_ {
|
||||
else if (String_.Eq(s, Key_browser_find)) return Tid_browser_find;
|
||||
else if (String_.Eq(s, Key_browser_prog)) return Tid_browser_prog;
|
||||
else if (String_.Eq(s, Key_browser_info)) return Tid_browser_info;
|
||||
else throw Exc_.new_unhandled(s);
|
||||
else throw Err_.new_unhandled(s);
|
||||
}
|
||||
public static String Xto_sys_str(int v) {
|
||||
switch (v) {
|
||||
@@ -62,7 +62,7 @@ public class Xog_bnd_box_ {
|
||||
case Tid_browser_find: return Key_browser_find;
|
||||
case Tid_browser_prog: return Key_browser_prog;
|
||||
case Tid_browser_info: return Key_browser_info;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
public static String Xto_gui_str(int v) {
|
||||
@@ -74,7 +74,7 @@ public class Xog_bnd_box_ {
|
||||
case Tid_browser_find: return Gui_browser_find;
|
||||
case Tid_browser_prog: return Gui_browser_prog;
|
||||
case Tid_browser_info: return Gui_browser_info;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
public static int Xby_gui_str(String s) {
|
||||
@@ -85,7 +85,7 @@ public class Xog_bnd_box_ {
|
||||
else if (String_.Eq(s, Gui_browser_find)) return Tid_browser_find;
|
||||
else if (String_.Eq(s, Gui_browser_prog)) return Tid_browser_prog;
|
||||
else if (String_.Eq(s, Gui_browser_info)) return Tid_browser_info;
|
||||
else throw Exc_.new_unhandled(s);
|
||||
else throw Err_.new_unhandled(s);
|
||||
}
|
||||
public static void Set_bnd_for_grp(byte mode, Xog_win_itm win, Xog_cmd_mgr_invk invk_mgr, Xog_bnd_box box, Xog_bnd_itm itm, IptArg ipt) {
|
||||
GfuiElem box_elem = null;
|
||||
@@ -97,7 +97,7 @@ public class Xog_bnd_box_ {
|
||||
else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser_find)) box_elem = win.Find_box();
|
||||
else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser_prog)) box_elem = win.Prog_box();
|
||||
else if (String_.Eq(grp_key, Xog_bnd_box_.Key_browser_info)) box_elem = win.Info_box();
|
||||
else throw Exc_.new_("unknown box", "grp", grp_key);
|
||||
else throw Err_.new_wo_type("unknown box", "grp", grp_key);
|
||||
Set_bnd_for_elem(mode, box, box_elem, invk_mgr, itm, ipt);
|
||||
}
|
||||
public static void Set_bnd_for_elem(byte mode, Xog_bnd_box box, GfuiElem box_elem, Xog_cmd_mgr_invk invk_mgr, Xog_bnd_itm itm, IptArg ipt) {
|
||||
@@ -112,7 +112,7 @@ public class Xog_bnd_box_ {
|
||||
case Set_del_ipt:
|
||||
box_elem.IptBnds().Del_by_ipt(ipt);
|
||||
break;
|
||||
default: throw Exc_.new_unhandled(mode);
|
||||
default: throw Err_.new_unhandled(mode);
|
||||
}
|
||||
}
|
||||
private static void Set_bnd_for_tab(byte mode, Xog_tab_mgr tab_mgr, Xog_cmd_mgr_invk invk_mgr, Xog_bnd_box box, Xog_bnd_itm itm, IptArg ipt) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user