From 906bcdc6fe56e6f80c1baa929dddf09c879005c9 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Tue, 7 Feb 2017 21:06:35 -0500 Subject: [PATCH] Wiki: Support renamed folders for non-commons images --- 400_xowa/src/gplx/xowa/files/Xow_file_mgr.java | 14 ++++++++++++++ .../src/gplx/xowa/files/repos/Xof_repo_pair.java | 3 ++- .../src/gplx/xowa/mws/filerepo/file/Xomw_File.java | 4 ++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/400_xowa/src/gplx/xowa/files/Xow_file_mgr.java b/400_xowa/src/gplx/xowa/files/Xow_file_mgr.java index 4256a6d70..4795d5190 100644 --- a/400_xowa/src/gplx/xowa/files/Xow_file_mgr.java +++ b/400_xowa/src/gplx/xowa/files/Xow_file_mgr.java @@ -78,9 +78,23 @@ public class Xow_file_mgr implements Gfo_invk { String cfg_domain_str = wiki.Data__core_mgr().Db__core().Tbl__cfg().Select_str("xowa.bldr.session", "wiki_domain"); // FOLDER.RENAME: do not change to fs.dir if renamed; DATE:2017-02-06 if (String_.Eq(cfg_domain_str, wiki.Domain_str())) { + // wiki has not been renamed; use fs.dir gplx.xowa.files.fsdb.fs_roots.Fs_root_core fsdir_core = gplx.xowa.files.fsdb.fs_roots.Fs_root_core.Set_fsdb_mgr(this, this.wiki); fsdir_core.Orig_dir_(wiki.Fsys_mgr().Root_dir().GenSubDir_nest("file", "orig")); } + else { + // wiki has been renamed; apply "imported name" to wikis; note that this won't support renamed wikia wikis; DATE:2017-02-07 + byte[] cfg_domain_bry = Bry_.new_u8(cfg_domain_str); + Xof_repo_pair[] repo_pairs = wiki.File__repo_mgr().Repos_ary(); + for (int i = 0; i < repo_pairs.length; i++) { + Xof_repo_pair repo_pair = repo_pairs[i]; + if (Bry_.Eq(wiki.Domain_bry(), repo_pair.Trg().Wiki_domain())) { + repo_pair.Wiki_domain_(cfg_domain_bry); + repo_pair.Src().Wiki_domain_(cfg_domain_bry); + repo_pair.Trg().Wiki_domain_(cfg_domain_bry); + } + } + } } } public void Cfg_set(String grp, String key, String val) { // TEST: should only be called by tests diff --git a/400_xowa/src/gplx/xowa/files/repos/Xof_repo_pair.java b/400_xowa/src/gplx/xowa/files/repos/Xof_repo_pair.java index 3bf2a549b..3bb612a5c 100644 --- a/400_xowa/src/gplx/xowa/files/repos/Xof_repo_pair.java +++ b/400_xowa/src/gplx/xowa/files/repos/Xof_repo_pair.java @@ -21,9 +21,10 @@ public class Xof_repo_pair implements Gfo_invk { this.id = id; this.wiki_domain = wiki_domain; this.src = src; this.trg = trg; } public byte Id() {return id;} private byte id; - public byte[] Wiki_domain() {return wiki_domain;} private final byte[] wiki_domain; + public byte[] Wiki_domain() {return wiki_domain;} private byte[] wiki_domain; public Xof_repo_itm Src() {return src;} private final Xof_repo_itm src; public Xof_repo_itm Trg() {return trg;} private final Xof_repo_itm trg; + public void Wiki_domain_(byte[] v) {wiki_domain = v;} public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { if (ctx.Match(k, Invk_repo_id_)) id = m.ReadByte("v"); diff --git a/400_xowa/src/gplx/xowa/mws/filerepo/file/Xomw_File.java b/400_xowa/src/gplx/xowa/mws/filerepo/file/Xomw_File.java index 461c9bab2..e283fbc14 100644 --- a/400_xowa/src/gplx/xowa/mws/filerepo/file/Xomw_File.java +++ b/400_xowa/src/gplx/xowa/mws/filerepo/file/Xomw_File.java @@ -1056,10 +1056,10 @@ public class Xomw_File { // } // } - Xomw_params_handler normalisedParams = handlerParams; +// Xomw_params_handler normalisedParams = handlerParams; // handler.normaliseParams(this, normalisedParams); - byte[] thumbName = this.thumbName(normalisedParams); +// byte[] thumbName = this.thumbName(normalisedParams); // byte[] thumbUrl = this.getThumbUrl(thumbName); // byte[] thumbPath = this.getThumbPath(thumbName); // final thumb path