1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2014-08-17 23:27:07 -04:00
parent 56128795f5
commit df7fcf8eae
231 changed files with 2433 additions and 3347 deletions

View File

@@ -18,24 +18,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa; import gplx.*;
public class Xof_ext {
public Xof_ext(int id, byte[] ext) {this.id = id; this.ext = ext;}
public int Id() {return id;} private int id;
public byte[] Ext() {return ext;} private byte[] ext;
public byte[] Ext_view() {return Xof_ext_.Bry__ary[Id_view()];}
public byte[] Mime_type() {return Xof_ext_.Mime_type__ary[id];}
public boolean Id_is_unknown() {return id == Xof_ext_.Id_unknown;}
public boolean Id_is_svg() {return id == Xof_ext_.Id_svg;}
public boolean Id_is_ogg() {return id == Xof_ext_.Id_ogg;}
public boolean Id_is_oga() {return id == Xof_ext_.Id_oga;}
public boolean Id_is_ogv() {return id == Xof_ext_.Id_ogv;}
public boolean Id_is_djvu() {return id == Xof_ext_.Id_djvu;}
public boolean Id_is_pdf() {return id == Xof_ext_.Id_pdf;}
public boolean Id_is_image() {return Xof_ext_.Id_is_image(id);}
public boolean Id_is_media() {return Xof_ext_.Id_is_media(id);}
public boolean Id_is_audio() {return Xof_ext_.Id_is_audio(id);}
public boolean Id_is_audio_strict() {return Xof_ext_.Id_is_audio_strict(id);}
public boolean Id_is_video() {return Xof_ext_.Id_is_video(id);}
public boolean Id_is_thumbable_img() {return Xof_ext_.Id_is_thumbable_img(id);}
public boolean Id_supports_page() {return Xof_ext_.Id_supports_page(id);}
public boolean Id_needs_convert() {return Xof_ext_.Id_needs_convert(id);}
public int Id_view() {return Xof_ext_.Id_view(id);}
public int Id() {return id;} private int id;
public byte[] Ext() {return ext;} private byte[] ext;
public byte[] Ext_view() {return Xof_ext_.Bry__ary[Id_view()];}
public byte[] Mime_type() {return Xof_ext_.Mime_type__ary[id];}
public boolean Id_is_unknown() {return id == Xof_ext_.Id_unknown;}
public boolean Id_is_svg() {return id == Xof_ext_.Id_svg;}
public boolean Id_is_ogg() {return id == Xof_ext_.Id_ogg;}
public boolean Id_is_oga() {return id == Xof_ext_.Id_oga;}
public boolean Id_is_ogv() {return id == Xof_ext_.Id_ogv;}
public boolean Id_is_djvu() {return id == Xof_ext_.Id_djvu;}
public boolean Id_is_pdf() {return id == Xof_ext_.Id_pdf;}
public boolean Id_is_image() {return Xof_ext_.Id_is_image(id);}
public boolean Id_is_media() {return Xof_ext_.Id_is_media(id);}
public boolean Id_is_audio() {return Xof_ext_.Id_is_audio(id);}
public boolean Id_is_audio_strict() {return Xof_ext_.Id_is_audio_strict(id);}
public boolean Id_is_video() {return Xof_ext_.Id_is_video(id);}
public boolean Id_is_thumbable_img() {return Xof_ext_.Id_is_thumbable_img(id);}
public boolean Id_supports_page() {return Xof_ext_.Id_supports_page(id);}
public boolean Id_needs_convert() {return Xof_ext_.Id_needs_convert(id);}
public int Id_view() {return Xof_ext_.Id_view(id);}
}

View File

@@ -16,56 +16,46 @@ 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.*;
public class Xof_ext_ {
// NOTE: do not change ids; ids are saved to image databases;
public static final int Id_unknown = 0
public class Xof_ext_ {
public static final int Id_unknown = 0 // SERIALIZED; ids are saved to fsdb;
, Id_png = 1, Id_jpg = 2, Id_jpeg = 3, Id_gif = 4, Id_tif = 5, Id_tiff = 6
, Id_svg = 7, Id_djvu = 8, Id_pdf = 9
, Id_mid = 10, Id_ogg = 11, Id_oga = 12, Id_ogv = 13, Id_webm = 14
, Id_flac = 15, Id_bmp = 16, Id_xcf = 17;
public static final int Id__max = 18;
, Id_flac = 15, Id_bmp = 16, Id_xcf = 17, Id_wav = 18;
public static final int Id__max = 19;
public static final byte[]
Bry_png = Bry_.new_ascii_("png"), Bry_jpg = Bry_.new_ascii_("jpg"), Bry_jpeg = Bry_.new_ascii_("jpeg")
, Bry_gif = Bry_.new_ascii_("gif"), Bry_tif = Bry_.new_ascii_("tif"), Bry_tiff = Bry_.new_ascii_("tiff")
, Bry_svg = Bry_.new_ascii_("svg"), Bry_djvu = Bry_.new_ascii_("djvu"), Bry_pdf = Bry_.new_ascii_("pdf")
, Bry_mid = Bry_.new_ascii_("mid"), Bry_ogg = Bry_.new_ascii_("ogg"), Bry_oga = Bry_.new_ascii_("oga")
, Bry_ogv = Bry_.new_ascii_("ogv"), Bry_webm = Bry_.new_ascii_("webm")
, Bry_flac = Bry_.new_ascii_("flac"), Bry_bmp = Bry_.new_ascii_("bmp"), Bry_xcf = Bry_.new_ascii_("xcf")
, Bry_ogv = Bry_.new_ascii_("ogv"), Bry_webm = Bry_.new_ascii_("webm"), Bry_flac = Bry_.new_ascii_("flac")
, Bry_bmp = Bry_.new_ascii_("bmp"), Bry_xcf = Bry_.new_ascii_("xcf"), Bry_wav = Bry_.new_ascii_("wav")
;
public static final byte[][] Bry__ary = new byte[][]
{ Bry_.Empty, Bry_png, Bry_jpg, Bry_jpeg, Bry_gif, Bry_tif, Bry_tiff
, Bry_svg, Bry_djvu, Bry_pdf, Bry_mid, Bry_ogg, Bry_oga, Bry_ogv, Bry_webm
, Bry_flac, Bry_bmp, Bry_xcf
{ Bry_.Empty, Bry_png, Bry_jpg, Bry_jpeg
, Bry_gif, Bry_tif, Bry_tiff
, Bry_svg, Bry_djvu, Bry_pdf
, Bry_mid, Bry_ogg, Bry_oga
, Bry_ogv, Bry_webm, Bry_flac
, Bry_bmp, Bry_xcf, Bry_wav
};
public static final byte[][] Mime_type__ary = new byte[][]
{ Bry_.new_ascii_("application/octet-stream")
, Bry_.new_ascii_("image/png"), Bry_.new_ascii_("image/jpg"), Bry_.new_ascii_("image/jpeg")
{ Bry_.new_ascii_("application/octet-stream"), Bry_.new_ascii_("image/png"), Bry_.new_ascii_("image/jpg"), Bry_.new_ascii_("image/jpeg")
, Bry_.new_ascii_("image/gif"), Bry_.new_ascii_("image/tiff"), Bry_.new_ascii_("image/tiff")
, Bry_.new_ascii_("image/svg+xml"), Bry_.new_ascii_("image/x.djvu"), Bry_.new_ascii_("application/pdf")
, Bry_.new_ascii_("application/x-midi"), Bry_.new_ascii_("video/ogg"), Bry_.new_ascii_("audio/oga")
, Bry_.new_ascii_("video/ogg"), Bry_.new_ascii_("video/webm")
, Bry_.new_ascii_("audio/flac"), Bry_.new_ascii_("image/bmp"), Bry_.new_ascii_("image/xcf")
, Bry_.new_ascii_("video/ogg"), Bry_.new_ascii_("video/webm"), Bry_.new_ascii_("audio/flac")
, Bry_.new_ascii_("image/bmp"), Bry_.new_ascii_("image/xcf"), Bry_.new_ascii_("audio/x-wav")
};
private static final HashAdp id_hash = id_hash_new_();
private static HashAdp id_hash_new_() {
HashAdp rv = HashAdp_.new_bry_();
id_hash_new_(rv, Bry_png, Id_png);
id_hash_new_(rv, Bry_jpg, Id_jpg);
id_hash_new_(rv, Bry_jpeg, Id_jpeg);
id_hash_new_(rv, Bry_gif, Id_gif);
id_hash_new_(rv, Bry_tif, Id_tif);
id_hash_new_(rv, Bry_tiff, Id_tiff);
id_hash_new_(rv, Bry_svg, Id_svg);
id_hash_new_(rv, Bry_djvu, Id_djvu);
id_hash_new_(rv, Bry_pdf, Id_pdf);
id_hash_new_(rv, Bry_mid, Id_mid);
id_hash_new_(rv, Bry_ogg, Id_ogg);
id_hash_new_(rv, Bry_oga, Id_oga);
id_hash_new_(rv, Bry_ogv, Id_ogv);
id_hash_new_(rv, Bry_webm, Id_webm);
id_hash_new_(rv, Bry_flac, Id_flac);
id_hash_new_(rv, Bry_bmp, Id_bmp);
id_hash_new_(rv, Bry_xcf, Id_xcf);
id_hash_new_(rv, Bry_png, Id_png); id_hash_new_(rv, Bry_jpg, Id_jpg); id_hash_new_(rv, Bry_jpeg, Id_jpeg);
id_hash_new_(rv, Bry_gif, Id_gif); id_hash_new_(rv, Bry_tif, Id_tif); id_hash_new_(rv, Bry_tiff, Id_tiff);
id_hash_new_(rv, Bry_svg, Id_svg); id_hash_new_(rv, Bry_djvu, Id_djvu); id_hash_new_(rv, Bry_pdf, Id_pdf);
id_hash_new_(rv, Bry_mid, Id_mid); id_hash_new_(rv, Bry_ogg, Id_ogg); id_hash_new_(rv, Bry_oga, Id_oga);
id_hash_new_(rv, Bry_ogv, Id_ogv); id_hash_new_(rv, Bry_webm, Id_webm); id_hash_new_(rv, Bry_flac, Id_flac);
id_hash_new_(rv, Bry_bmp, Id_bmp); id_hash_new_(rv, Bry_xcf, Id_xcf); id_hash_new_(rv, Bry_wav, Id_wav);
return rv;
}
private static void id_hash_new_(HashAdp hash, byte[] key, int val) {hash.Add(key, Int_obj_val.new_(val));}
@@ -74,7 +64,9 @@ public class Xof_ext_ {
.Add_bry_bry(Bry_png).Add_bry_bry(Bry_jpg).Add_bry_bry(Bry_jpeg)
.Add_bry_bry(Bry_gif).Add_bry_bry(Bry_tif).Add_bry_bry(Bry_tiff)
.Add_bry_bry(Bry_svg).Add_bry_bry(Bry_djvu).Add_bry_bry(Bry_pdf)
.Add_bry_bry(Bry_mid).Add_bry_bry(Bry_ogg).Add_bry_bry(Bry_oga).Add_bry_bry(Bry_ogv).Add_bry_bry(Bry_webm)
.Add_bry_bry(Bry_mid).Add_bry_bry(Bry_ogg).Add_bry_bry(Bry_oga)
.Add_bry_bry(Bry_ogv).Add_bry_bry(Bry_webm).Add_bry_bry(Bry_flac)
.Add_bry_bry(Bry_bmp).Add_bry_bry(Bry_xcf).Add_bry_bry(Bry_wav)
;
private static final Xof_ext[] Ary = new Xof_ext[Id__max];
@@ -159,7 +151,7 @@ public class Xof_ext_ {
}
public static boolean Id_is_audio(int id) {
switch (id) {
case Xof_ext_.Id_mid: case Xof_ext_.Id_oga: case Xof_ext_.Id_flac: case Xof_ext_.Id_ogg: return true;
case Xof_ext_.Id_mid: case Xof_ext_.Id_oga: case Xof_ext_.Id_flac: case Xof_ext_.Id_ogg: case Xof_ext_.Id_wav: return true;
default: return false;
}
}
@@ -167,7 +159,7 @@ public class Xof_ext_ {
public static boolean Id_is_video_strict(int id) {return id == Xof_ext_.Id_ogv || id == Xof_ext_.Id_webm;} // NOTE: ogg can be aud / vid; PAGE:en.w:Comet; Encke_tail_rip_off.ogg
public static boolean Id_is_audio_strict(int id) { // same as above, but deliberately exclude ambiguous ogg
switch (id) {
case Xof_ext_.Id_mid: case Xof_ext_.Id_oga: case Xof_ext_.Id_flac: return true;
case Xof_ext_.Id_mid: case Xof_ext_.Id_oga: case Xof_ext_.Id_flac: case Xof_ext_.Id_wav: return true;
default: return false;
}
}

View File

@@ -37,7 +37,7 @@ class Xofw_wiki_wkr_base implements Xofw_wiki_finder {
boolean found = repo_wiki.Db_mgr().Load_mgr().Load_by_ttl(tmp_db_page, file_ns, ttl.Page_db());
if (!found) {continue;}
byte[] redirect = Get_redirect(repo_wiki, file_ns, tmp_db_page);
file.Atrs_by_ttl(ttl.Page_txt(), redirect);
file.Set__ttl(ttl.Page_txt(), redirect);
file.Trg_repo_idx_(i);
return;
}

View File

@@ -30,8 +30,8 @@ public class Xofw_wiki_wkr_mock implements Xofw_wiki_finder {
public Xofw_wiki_wkr_mock Redirect_(String if_ttl_str, String then_redirect_str) {this.if_ttl = Bry_.new_utf8_(if_ttl_str); this.then_redirect = Bry_.new_utf8_(then_redirect_str); return this;} private byte[] if_ttl, then_redirect;
public void Find(ListAdp repo_pairs, Xof_xfer_itm file) {
byte[] ttl = file.Lnki_ttl();
if (Bry_.Eq(ttl, if_ttl) && repo_idx != -1) {file.Atrs_by_ttl(ttl, then_redirect); file.Trg_repo_idx_(repo_idx);}
else {file.Atrs_by_ttl(ttl, Bry_.Empty); file.Trg_repo_idx_(Xof_meta_itm.Repo_unknown);} // FUTURE: this should be missing, but haven't implemented unknown yet
if (Bry_.Eq(ttl, if_ttl) && repo_idx != -1) {file.Set__ttl(ttl, then_redirect); file.Trg_repo_idx_(repo_idx);}
else {file.Set__ttl(ttl, Bry_.Empty); file.Trg_repo_idx_(Xof_meta_itm.Repo_unknown);} // FUTURE: this should be missing, but haven't implemented unknown yet
}
public boolean Locate(Xofw_file_finder_rslt rv, ListAdp repo_pairs, byte[] ttl) {
rv.Init(ttl);