mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Night-mode: Allow global user-overrides for night-mode css / logo
This commit is contained in:
parent
67fc90d43f
commit
f1da174c5c
@ -39,7 +39,11 @@ public class Xoae_app implements Xoa_app, Gfo_invk {
|
||||
fsys_mgr = new Xoa_fsys_mgr(bin_dir_name, root_dir, wiki_dir, file_dir, css_dir, root_dir);
|
||||
log_wtr = usr_dlg.Log_wkr();
|
||||
api_root = new Xoapi_root(this);
|
||||
|
||||
// user
|
||||
user = new Xoue_user(this, user_dir);
|
||||
this.fsys_mgr.Url_finder().Init_by_user(user.Fsys_mgr());
|
||||
|
||||
this.meta_mgr = new Xoa_meta_mgr(this);
|
||||
url_cmd_eval = new Xoa_fsys_eval(fsys_mgr, user.Fsys_mgr());
|
||||
fsys_mgr.Init_by_app(prog_mgr);
|
||||
|
@ -16,7 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
package gplx.xowa; import gplx.*;
|
||||
import gplx.core.primitives.*; import gplx.core.brys.*; import gplx.core.ios.*;
|
||||
import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*; import gplx.xowa.langs.cases.*;
|
||||
import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.metas.*; import gplx.xowa.wikis.data.site_stats.*; import gplx.xowa.wikis.ttls.*; import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.addons.*;
|
||||
import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.metas.*; import gplx.xowa.wikis.data.site_stats.*; import gplx.xowa.wikis.ttls.*; import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.addons.*; import gplx.xowa.wikis.fsys.*;
|
||||
import gplx.xowa.files.*; import gplx.xowa.files.repos.*; import gplx.xowa.files.origs.*; import gplx.xowa.files.bins.*; import gplx.fsdb.meta.*; import gplx.fsdb.*;
|
||||
import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.htmls.utls.*; import gplx.xowa.htmls.core.hzips.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.bridges.dbuis.tbls.*; import gplx.xowa.htmls.hrefs.*; import gplx.xowa.addons.wikis.ctgs.htmls.pageboxs.*; import gplx.xowa.addons.wikis.ctgs.htmls.catpages.*;
|
||||
import gplx.xowa.parsers.*;
|
||||
|
@ -17,7 +17,7 @@ package gplx.xowa; import gplx.*;
|
||||
import gplx.core.brys.*; import gplx.core.primitives.*; import gplx.core.brys.fmtrs.*; import gplx.core.ios.*;
|
||||
import gplx.xowa.apps.*; import gplx.xowa.apps.fsys.*; import gplx.xowa.apps.cfgs.*; import gplx.xowa.apps.urls.*;
|
||||
import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*; import gplx.xowa.langs.cases.*;
|
||||
import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.metas.*; import gplx.xowa.wikis.data.site_stats.*; import gplx.xowa.wikis.ttls.*; import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.wikis.caches.*;
|
||||
import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.metas.*; import gplx.xowa.wikis.data.site_stats.*; import gplx.xowa.wikis.ttls.*; import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.wikis.caches.*; import gplx.xowa.wikis.fsys.*;
|
||||
import gplx.xowa.users.*; import gplx.xowa.htmls.*; import gplx.xowa.users.history.*; import gplx.xowa.specials.*; import gplx.xowa.xtns.*; import gplx.xowa.wikis.dbs.*;
|
||||
import gplx.xowa.files.*; import gplx.xowa.files.repos.*; import gplx.xowa.files.origs.*; import gplx.xowa.files.bins.*; import gplx.fsdb.*; import gplx.fsdb.meta.*; import gplx.xowa.files.exts.*;
|
||||
import gplx.xowa.htmls.heads.*; import gplx.xowa.htmls.core.htmls.utls.*; import gplx.xowa.htmls.core.hzips.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.ns_files.*; import gplx.xowa.htmls.bridges.dbuis.tbls.*; import gplx.xowa.htmls.hrefs.*;
|
||||
@ -33,8 +33,15 @@ public class Xowe_wiki implements Xow_wiki, Gfo_invk, Gfo_evt_itm {
|
||||
public Xowe_wiki(Xoae_app app, Xol_lang_itm lang, Xow_ns_mgr ns_mgr, Xow_domain_itm domain_itm, Io_url wiki_dir) {
|
||||
this.ev_mgr = new Gfo_evt_mgr(this);
|
||||
this.app = app; this.lang = lang; this.ns_mgr = ns_mgr;
|
||||
this.domain_itm = domain_itm; this.domain_str = domain_itm.Domain_str(); this.domain_bry = domain_itm.Domain_bry(); this.domain_tid = domain_itm.Domain_type_id(); this.domain_abrv = Xow_abrv_wm_.To_abrv(domain_itm);
|
||||
|
||||
this.domain_itm = domain_itm;
|
||||
this.domain_bry = domain_itm.Domain_bry();
|
||||
this.domain_str = domain_itm.Domain_str();
|
||||
this.domain_tid = domain_itm.Domain_type_id();
|
||||
this.domain_abrv = Xow_abrv_wm_.To_abrv(domain_itm);
|
||||
|
||||
this.fsys_mgr = new Xow_fsys_mgr(wiki_dir, app.Fsys_mgr().File_dir().GenSubDir(domain_str));
|
||||
|
||||
this.url__parser = new Xow_url_parser(this);
|
||||
this.xwiki_mgr = new Xow_xwiki_mgr(this);
|
||||
this.html__hdump_mgr = new Xow_hdump_mgr(this);
|
||||
|
@ -43,7 +43,11 @@ public class Xoav_app implements Xoa_app, Gfo_invk {
|
||||
this.utl_msg_log = Gfo_msg_log.Test();
|
||||
this.html__bridge_mgr = new Xoh_bridge_mgr(utl__json_parser);
|
||||
this.gui__tab_mgr = tab_mgr;
|
||||
|
||||
// user
|
||||
this.user = new Xouv_user(this, "anonymous", root_dir.GenSubDir_nest("user", "anonymous"));
|
||||
this.fsys_mgr.Url_finder().Init_by_user(user.Fsys_mgr());
|
||||
|
||||
this.api_root = null;
|
||||
this.site_cfg_mgr = new Xoa_site_cfg_mgr(this);
|
||||
this.bldr = new Xob_bldr(null);
|
||||
|
@ -30,6 +30,7 @@ public class Xoa_fsys_mgr implements Gfo_invk {
|
||||
this.cfg_wiki_core_dir = bin_xowa_dir.GenSubDir_nest("cfg", "wiki", "core");
|
||||
this.cfg_site_meta_fil = bin_xowa_dir.GenSubFil_nest("cfg", "wiki", "site_meta.sqlite3");
|
||||
this.home_wiki_dir = bin_xowa_dir.GenSubDir_nest("wiki", Xow_domain_itm_.Str__home);
|
||||
this.url_finder = new Xoa_url_finder(this);
|
||||
}
|
||||
public Io_url Root_dir() {return root_dir;} private final Io_url root_dir; // EX: /xowa/
|
||||
public Io_url Wiki_dir() {return wiki_dir;} private final Io_url wiki_dir; // EX: /xowa/wiki/
|
||||
@ -37,7 +38,7 @@ public class Xoa_fsys_mgr implements Gfo_invk {
|
||||
public Io_url Css_dir() {return css_dir;} private final Io_url css_dir; // EX: /xowa/user/anonymous/wiki/
|
||||
public Io_url Bin_plat_dir() {return bin_plat_dir;} private final Io_url bin_plat_dir; // EX: /xowa/bin/lnx_64/
|
||||
public Io_url Bin_any_dir() {return bin_any_dir;} private final Io_url bin_any_dir; // EX: /xowa/bin/any
|
||||
public Io_url Bin_xowa_dir() {return bin_xowa_dir;} private final Io_url bin_xowa_dir;
|
||||
public Io_url Bin_xowa_dir() {return bin_xowa_dir;} private final Io_url bin_xowa_dir; // EX: /xowa/bin/any/xowa
|
||||
public Io_url Bin_xowa_file_dir() {return bin_xowa_file_dir;} private final Io_url bin_xowa_file_dir;
|
||||
public Io_url Bin_xtns_dir() {return bin_xtns_dir;} private final Io_url bin_xtns_dir;
|
||||
public Io_url Bin_addon_dir() {return bin_addon_dir;} private final Io_url bin_addon_dir;
|
||||
@ -49,6 +50,7 @@ public class Xoa_fsys_mgr implements Gfo_invk {
|
||||
public Io_url Home_wiki_dir() {return home_wiki_dir;} private final Io_url home_wiki_dir;
|
||||
public Io_url Cfg_app_fil() {return cfg_app_fil;} private final Io_url cfg_app_fil;
|
||||
public Io_url Http_root() {return http_root;} private final Io_url http_root; // EX: file:///xowa/ or file:///android_asset/xowa/
|
||||
public Xoa_url_finder Url_finder() {return url_finder;} private final Xoa_url_finder url_finder;
|
||||
public void Init_by_app(Gfo_invk app_mgr_invk) {this.app_mgr_invk = app_mgr_invk;} private Gfo_invk app_mgr_invk; // for gfs and app.launcher
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_apps)) return app_mgr_invk;
|
||||
@ -56,4 +58,7 @@ public class Xoa_fsys_mgr implements Gfo_invk {
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
}
|
||||
private static final String Invk_apps = "apps", Invk_root_dir = "root_dir";
|
||||
public static Xoa_fsys_mgr New_by_plat(String plat_name, Io_url root_dir) { // TEST:
|
||||
return new Xoa_fsys_mgr(plat_name, root_dir, root_dir.GenSubDir("wiki"), root_dir.GenSubDir("file"), root_dir.GenSubDir("css"), root_dir.GenSubDir("html"));
|
||||
}
|
||||
}
|
||||
|
47
400_xowa/src/gplx/xowa/apps/fsys/Xoa_url_finder.java
Normal file
47
400_xowa/src/gplx/xowa/apps/fsys/Xoa_url_finder.java
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012-2017 gnosygnu@gmail.com
|
||||
|
||||
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
|
||||
or alternatively under the terms of the Apache License Version 2.0.
|
||||
|
||||
You may use XOWA according to either of these licenses as is most appropriate
|
||||
for your project on a case-by-case basis.
|
||||
|
||||
The terms of each license can be found in the source code repository:
|
||||
|
||||
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
|
||||
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
*/
|
||||
package gplx.xowa.apps.fsys; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
|
||||
import gplx.xowa.users.*;
|
||||
public class Xoa_url_finder {
|
||||
private final Xoa_fsys_mgr app_fsys_mgr;
|
||||
private Xou_fsys_mgr usr_fsys_mgr;
|
||||
public Xoa_url_finder(Xoa_fsys_mgr app_fsys_mgr) {
|
||||
this.app_fsys_mgr = app_fsys_mgr;
|
||||
}
|
||||
public void Init_by_user(Xou_fsys_mgr usr_fsys_mgr) {
|
||||
this.usr_fsys_mgr = usr_fsys_mgr;
|
||||
}
|
||||
public Io_url Find_by_css_or_app_bin(String wiki, String file, String[] app_dir_parts) {return Find_by_css_or(wiki, file, app_dir_parts, true);}
|
||||
public Io_url Find_by_css_or(String wiki, String file, String[] app_dir_parts, boolean app_bin_if_missing) {
|
||||
// check wiki_css dir; EX: /xowa/user/anonymous/wiki/en.wikipedia.org/html/logo.png
|
||||
Io_url usr_css_fil = usr_fsys_mgr.Wiki_html_dir(wiki).GenSubFil(file);
|
||||
if (Io_mgr.Instance.ExistsFil(usr_css_fil))
|
||||
return usr_css_fil;
|
||||
|
||||
// check usr_bin dir; EX: /xowa/user/app/overrides/bin/any/xowa/html/css/nightmode/logo.png
|
||||
Io_url usr_bin_fil = usr_fsys_mgr.App_root_dir().GenSubDir("overrides").GenSubDir_nest(app_dir_parts).GenSubFil(file);
|
||||
if (Io_mgr.Instance.ExistsFil(usr_bin_fil))
|
||||
return usr_bin_fil;
|
||||
|
||||
// check app_bin dir; EX: /xowa/bin/any/xowa/html/css/nightmode/logo.png
|
||||
Io_url app_bin_fil = app_fsys_mgr.Root_dir().GenSubDir_nest(app_dir_parts).GenSubFil(file);
|
||||
if (Io_mgr.Instance.ExistsFil(app_bin_fil))
|
||||
return app_bin_fil;
|
||||
|
||||
// nothing found
|
||||
return app_bin_if_missing ? app_bin_fil : null;
|
||||
}
|
||||
}
|
64
400_xowa/src/gplx/xowa/apps/fsys/Xoa_url_finder_tst.java
Normal file
64
400_xowa/src/gplx/xowa/apps/fsys/Xoa_url_finder_tst.java
Normal file
@ -0,0 +1,64 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012-2017 gnosygnu@gmail.com
|
||||
|
||||
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
|
||||
or alternatively under the terms of the Apache License Version 2.0.
|
||||
|
||||
You may use XOWA according to either of these licenses as is most appropriate
|
||||
for your project on a case-by-case basis.
|
||||
|
||||
The terms of each license can be found in the source code repository:
|
||||
|
||||
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
|
||||
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
*/
|
||||
package gplx.xowa.apps.fsys; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
|
||||
import org.junit.*; import gplx.core.tests.*;
|
||||
import gplx.xowa.users.*;
|
||||
public class Xoa_url_finder_tst {
|
||||
private final Xoa_url_finder_fxt fxt = new Xoa_url_finder_fxt();
|
||||
@Test public void Find_by_css_or_null() {
|
||||
// init
|
||||
String wiki = "en.wikipedia.org";
|
||||
String file = "logo_night.png";
|
||||
String[] subs = String_.Ary("bin", "any", "xowa", "html", "css", "nightmode");
|
||||
String expd = null;
|
||||
|
||||
// null case
|
||||
expd = null;
|
||||
fxt.Test__Find_by_css_or_null(expd, wiki, file, subs);
|
||||
|
||||
// app_bin
|
||||
expd = "mem/xowa/bin/any/xowa/html/css/nightmode/logo_night.png";
|
||||
fxt.Init__Fsys__save(expd);
|
||||
fxt.Test__Find_by_css_or_null(expd, wiki, file, subs);
|
||||
|
||||
// usr_bin
|
||||
expd = "mem/xowa/user/anonymous/app/overrides/bin/any/xowa/html/css/nightmode/logo_night.png";
|
||||
fxt.Init__Fsys__save(expd);
|
||||
fxt.Test__Find_by_css_or_null(expd, wiki, file, subs);
|
||||
|
||||
// wiki_css
|
||||
expd = "mem/xowa/user/anonymous/wiki/en.wikipedia.org/html/logo_night.png";
|
||||
fxt.Init__Fsys__save(expd);
|
||||
fxt.Test__Find_by_css_or_null(expd, wiki, file, subs);
|
||||
}
|
||||
}
|
||||
class Xoa_url_finder_fxt {
|
||||
private final Xoa_url_finder finder;
|
||||
public Xoa_url_finder_fxt() {
|
||||
Io_url root_dir = Io_url_.mem_dir_("mem/xowa/");
|
||||
Xoa_fsys_mgr app_fsys_mgr = Xoa_fsys_mgr.New_by_plat("lnx", root_dir);
|
||||
Xou_fsys_mgr usr_fsys_mgr = new Xou_fsys_mgr(root_dir.GenSubDir_nest("user", "anonymous"));
|
||||
this.finder = new Xoa_url_finder(app_fsys_mgr);
|
||||
finder.Init_by_user(usr_fsys_mgr);
|
||||
}
|
||||
public void Init__Fsys__save(String url) {
|
||||
Io_mgr.Instance.SaveFilStr(url, "");
|
||||
}
|
||||
public void Test__Find_by_css_or_null(String expd, String wiki, String file, String[] dir_parts) {
|
||||
Io_url actl = finder.Find_by_css_or(wiki, file, dir_parts, false);
|
||||
Gftest.Eq__str(expd, actl == null ? null : actl.Raw());
|
||||
}
|
||||
}
|
@ -52,7 +52,7 @@ public class Xoa_css_extractor {
|
||||
this.wiki_html_dir = wiki.App().Fsys_mgr().Wiki_css_dir(wiki.Domain_str()); // EX: /xowa/user/anonymous/wiki/en.wikipedia.org
|
||||
Io_url css_comm_fil = wiki_html_dir.GenSubFil(Css_common_name);
|
||||
Io_url css_wiki_fil = wiki_html_dir.GenSubFil(Css_wiki_name);
|
||||
wiki.Html__wtr_mgr().Init_css_urls(wiki.App(), css_comm_fil, css_wiki_fil);
|
||||
wiki.Html__wtr_mgr().Init_css_urls(wiki.App(), wiki.Domain_str(), css_comm_fil, css_wiki_fil);
|
||||
if (wiki.Domain_tid() == Xow_domain_tid_.Tid__home || Env_.Mode_testing()) return; // NOTE: do not download if home_wiki; also needed for TEST
|
||||
if (Io_mgr.Instance.ExistsFil(css_wiki_fil)) return; // css file exists; nothing to generate
|
||||
if (wiki.Html__css_installing()) return;
|
||||
|
@ -43,7 +43,7 @@ class Xof_repo_itm__fxt {
|
||||
public Xof_repo_itm Make__repo(String plat_name, String root_dir_str, String wiki_domain) {
|
||||
String key = "test_repo";
|
||||
Io_url root_dir = Io_url_.new_dir_(root_dir_str);
|
||||
Xoa_fsys_mgr fsys_mgr = new Xoa_fsys_mgr(plat_name, root_dir, root_dir.GenSubDir("wiki"), root_dir.GenSubDir("file"), root_dir.GenSubDir("css"), root_dir.GenSubDir("html"));
|
||||
Xoa_fsys_mgr fsys_mgr = Xoa_fsys_mgr.New_by_plat(plat_name, root_dir);
|
||||
Xof_repo_itm repo = new Xof_repo_itm(Bry_.new_u8(key), fsys_mgr, new Xof_rule_mgr(), Bry_.new_u8(wiki_domain));
|
||||
repo.Root_str_(root_dir.Raw());
|
||||
return repo;
|
||||
|
@ -34,20 +34,13 @@ public class Xoh_page_wtr_mgr implements Gfo_invk {
|
||||
public Bry_fmtr Page_edit_fmtr() {return page_edit_fmtr;} private Bry_fmtr page_edit_fmtr = Bry_fmtr.new_("", Fmtr_keys);
|
||||
public Bry_fmtr Page_html_fmtr() {return page_html_fmtr;} private Bry_fmtr page_html_fmtr = Bry_fmtr.new_("", Fmtr_keys);
|
||||
public byte[] Edit_rename_div_bry(Xoa_ttl ttl) {return div_edit_rename_fmtr.Bld_bry_many(tmp_bfr, ttl.Full_db());}
|
||||
public void Init_css_urls(Xoa_app app, Io_url css_common_url, Io_url css_wiki_url) {
|
||||
public void Init_css_urls(Xoa_app app, String wiki_domain, Io_url css_common_url, Io_url css_wiki_url) {
|
||||
this.css_common_bry = css_common_url.To_http_file_bry();
|
||||
this.css_wiki_bry = css_wiki_url.To_http_file_bry();
|
||||
|
||||
// set css_night_url to /xowa/user/ root
|
||||
Io_url css_night_url = css_wiki_url.OwnerDir().GenSubFil("xowa_night.css");
|
||||
|
||||
// if it doesn't exist, use bin root
|
||||
if (!Io_mgr.Instance.ExistsFil(css_night_url)) {
|
||||
css_night_url = app.Fsys_mgr().Bin_xowa_dir().GenSubFil_nest("html", "css", "nightmode", "xowa_night.css");
|
||||
}
|
||||
|
||||
// make night_bry
|
||||
this.css_night_bry = Bry_.new_u8("<link rel=\"stylesheet\" href=\"" + css_night_url.To_http_file_str() + "\" type=\"text/css\">");;
|
||||
// xowa_night.css;
|
||||
Io_url css_night_url = app.Fsys_mgr().Url_finder().Find_by_css_or(wiki_domain, "xowa_night.css", String_.Ary("bin", "any", "xowa", "html", "css", "nightmode"), true);
|
||||
this.css_night_bry = Bry_.new_u8("<link rel=\"stylesheet\" href=\"" + css_night_url.To_http_file_str() + "\" type=\"text/css\">");
|
||||
}
|
||||
public void Init_(boolean v) {init = v;} private boolean init = true;
|
||||
public void Init_by_wiki(Xow_wiki wiki) {
|
||||
|
@ -72,18 +72,9 @@ public class Xow_portal_mgr implements Gfo_invk {
|
||||
div_logo_day = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(wiki_css_dir.GenSubFil_nest("logo.png")));
|
||||
|
||||
// night-mode logo; check if wiki-version exists, else use app-version
|
||||
Io_url night_logo = null;
|
||||
Io_url night_logo_wiki = wiki_css_dir.GenSubFil("logo_night.png");
|
||||
if (Io_mgr.Instance.Exists(night_logo_wiki)) {
|
||||
night_logo = night_logo_wiki;
|
||||
}
|
||||
else {
|
||||
night_logo = wiki.Appe().Fsys_mgr().Bin_xowa_dir().GenSubFil_nest("html", "css", "nightmode", "logo.png");
|
||||
}
|
||||
Io_url night_logo = wiki.App().Fsys_mgr().Url_finder().Find_by_css_or(wiki.Domain_str(), "logo_night.png", String_.Ary("bin", "any", "xowa", "html", "css", "nightmode"), true);
|
||||
div_logo_night = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(night_logo));
|
||||
|
||||
// div_logo_day = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(wiki.Appe().Usere().Fsys_mgr().Wiki_root_dir().GenSubFil_nest(wiki.Domain_str(), "html", "logo.png")));
|
||||
// div_logo_night = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(wiki.Appe().Fsys_mgr().Bin_xowa_dir().GenSubFil_nest("html", "css", "nightmode", "logo.png")));
|
||||
div_home_bry = Init_fmtr(tmp_bfr, eval_mgr, div_home_fmtr);
|
||||
div_wikis_fmtr.Eval_mgr_(eval_mgr);
|
||||
Xow_msg_mgr msg_mgr = wiki.Msg_mgr();
|
||||
|
@ -35,7 +35,7 @@ public class Xow_portal_mgr_tst {
|
||||
fxt.Test_logo_frag(Bool_.N, "file:///mem/xowa/user/test_user/wiki/en.wikipedia.org/html/logo.png");
|
||||
|
||||
// night-mode: app
|
||||
fxt.Test_logo_frag(Bool_.Y, "file:///mem/xowa/bin/any/xowa/html/css/nightmode/logo.png");
|
||||
fxt.Test_logo_frag(Bool_.Y, "file:///mem/xowa/bin/any/xowa/html/css/nightmode/logo_night.png");
|
||||
|
||||
// night-mode: wiki
|
||||
Io_mgr.Instance.SaveFilStr("mem/xowa/user/test_user/wiki/en.wikipedia.org/html/logo_night.png", "");
|
||||
|
@ -16,7 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.xowa.apps.gfs.*; import gplx.xowa.wikis.*;
|
||||
public class Xou_fsys_mgr implements Gfo_invk {
|
||||
private Io_url app_root_dir; private Io_url wiki_root_dir; private Io_url cur_root;
|
||||
private Io_url wiki_root_dir; private Io_url cur_root;
|
||||
public Xou_fsys_mgr(Io_url user_dir) {
|
||||
this.cur_root = user_dir;
|
||||
app_root_dir = cur_root.GenSubDir("app");
|
||||
@ -28,6 +28,7 @@ public class Xou_fsys_mgr implements Gfo_invk {
|
||||
public Io_url Root_dir() {return cur_root;}
|
||||
public Io_url Wiki_root_dir() {return wiki_root_dir;}
|
||||
public Io_url Wiki_html_dir(String wiki) {return wiki_root_dir.GenSubDir_nest(wiki, "html");}
|
||||
public Io_url App_root_dir() {return app_root_dir;} private Io_url app_root_dir;
|
||||
public Io_url App_data_history_fil() {return app_data_history_fil;} private Io_url app_data_history_fil;
|
||||
public Io_url App_temp_dir() {return app_temp_dir;} private Io_url app_temp_dir;
|
||||
public Io_url App_temp_html_dir() {return app_temp_html_dir;} private Io_url app_temp_html_dir;
|
||||
|
@ -20,6 +20,7 @@ import gplx.xowa.files.caches.*;
|
||||
public interface Xou_user {
|
||||
String Key();
|
||||
int Gender();
|
||||
Xou_fsys_mgr Fsys_mgr();
|
||||
Xou_db_mgr User_db_mgr();
|
||||
Xou_history_mgr History_mgr();
|
||||
Xow_wiki Wikii();
|
||||
|
@ -22,7 +22,7 @@ import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*; import gplx.xowa.langs.
|
||||
import gplx.xowa.files.*; import gplx.xowa.files.origs.*; import gplx.xowa.files.fsdb.*; import gplx.xowa.files.bins.*;
|
||||
import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.metas.*; import gplx.xowa.wikis.data.site_stats.*; import gplx.xowa.wikis.data.*; import gplx.xowa.files.repos.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.wikis.ttls.*; import gplx.xowa.addons.*;
|
||||
import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.htmls.utls.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.core.hzips.*; import gplx.xowa.htmls.bridges.dbuis.tbls.*; import gplx.xowa.htmls.hrefs.*;
|
||||
import gplx.xowa.wikis.nss.*;
|
||||
import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.fsys.*;
|
||||
import gplx.xowa.parsers.*;
|
||||
import gplx.xowa.apps.urls.*;
|
||||
import gplx.fsdb.*; import gplx.fsdb.meta.*;
|
||||
@ -33,16 +33,21 @@ public class Xowv_wiki implements Xow_wiki, Xow_ttl_parser, Gfo_invk {
|
||||
private boolean init_needed = true;
|
||||
public Xowv_wiki(Xoav_app app, byte[] domain_bry, Io_url wiki_root_dir) {
|
||||
this.app = app;
|
||||
this.domain_bry = domain_bry; this.domain_str = String_.new_u8(domain_bry);
|
||||
|
||||
// domain vars
|
||||
this.domain_bry = domain_bry;
|
||||
this.domain_str = String_.new_u8(domain_bry);
|
||||
this.domain_itm = Xow_domain_itm_.parse(domain_bry);
|
||||
this.domain_tid = domain_itm.Domain_type_id();
|
||||
this.domain_abrv = Xow_abrv_wm_.To_abrv(Xow_domain_itm_.parse(domain_bry));
|
||||
this.domain_abrv = Xow_abrv_wm_.To_abrv(domain_itm);
|
||||
|
||||
this.fsys_mgr = new Xow_fsys_mgr(wiki_root_dir, app.Fsys_mgr().File_dir().GenSubDir(domain_str));
|
||||
|
||||
this.ns_mgr = Xow_ns_mgr_.default_(app.Utl_case_mgr());
|
||||
this.lang = app.Lang_mgr().Get_by_or_en(domain_itm.Lang_actl_key()); // NOTE: must not be null, or causes null ref exception on redlinks in drd; DATE:2016-06-28
|
||||
this.msg_mgr = new Xow_msg_mgr(this, lang);
|
||||
this.html__hdump_mgr = new Xow_hdump_mgr(this);
|
||||
this.special_mgr = new Xosp_special_mgr(this);
|
||||
this.fsys_mgr = new Xow_fsys_mgr(wiki_root_dir, app.Fsys_mgr().File_dir().GenSubDir(domain_str));
|
||||
this.fsdb_mgr = new Xof_fsdb_mgr__sql();
|
||||
this.url__parser = new Xow_url_parser(this);
|
||||
this.xwiki_mgr = new Xow_xwiki_mgr(this);
|
||||
|
@ -13,10 +13,12 @@ The terms of each license can be found in the source code repository:
|
||||
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
|
||||
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
*/
|
||||
package gplx.xowa.wikis; import gplx.*; import gplx.xowa.*;
|
||||
public class Xow_fsys_mgr {
|
||||
package gplx.xowa.wikis.fsys; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*;
|
||||
import gplx.xowa.apps.fsys.*;
|
||||
import gplx.xowa.users.*;
|
||||
public class Xow_fsys_mgr {
|
||||
public Xow_fsys_mgr(Io_url root_dir, Io_url file_dir) {
|
||||
this.root_dir = root_dir; this.file_dir = file_dir; this.tmp_dir = root_dir.GenSubDir("tmp");
|
||||
this.root_dir = root_dir; this.file_dir = file_dir; this.tmp_dir = root_dir.GenSubDir("tmp");
|
||||
}
|
||||
public Io_url Root_dir() {return root_dir;} private final Io_url root_dir;
|
||||
public Io_url File_dir() {return file_dir;} private final Io_url file_dir;
|
Loading…
Reference in New Issue
Block a user