mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
App_update: Add version_id and version_url; also add json_bridge
This commit is contained in:
parent
55b81d4a60
commit
8f1c368ffe
@ -18,12 +18,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.addons.apps.updates; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*;
|
||||
import gplx.xowa.specials.*; import gplx.xowa.htmls.bridges.*;
|
||||
import gplx.xowa.addons.apps.updates.specials.*;
|
||||
public class Xoa_update_addon implements Xoax_addon_itm, Xoax_addon_itm__special {
|
||||
public class Xoa_update_addon implements Xoax_addon_itm, Xoax_addon_itm__special, Xoax_addon_itm__json {
|
||||
public Xow_special_page[] Special_pages() {
|
||||
return new Xow_special_page[]
|
||||
{ Xoa_update_special.Prototype
|
||||
};
|
||||
}
|
||||
public Bridge_cmd_itm[] Json_cmds() {
|
||||
return new Bridge_cmd_itm[]
|
||||
{ Xoa_update_bridge.Prototype
|
||||
};
|
||||
}
|
||||
|
||||
public String Addon__key() {return ADDON__KEY;} private static final String ADDON__KEY = "xowa.app.update";
|
||||
public static void Init(Xoae_app app) {
|
||||
|
@ -17,16 +17,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.addons.apps.updates.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.updates.*;
|
||||
public class Xoa_app_version_itm {
|
||||
public Xoa_app_version_itm(String id, String date, int priority, String summary, String details) {
|
||||
public Xoa_app_version_itm(int id, String name, String date, int priority, String url, String summary, String details) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.date = date;
|
||||
this.priority = priority;
|
||||
this.url = url;
|
||||
this.summary = summary;
|
||||
this.details = details;
|
||||
}
|
||||
public String Id() {return id;} private final String id;
|
||||
public int Id() {return id;} private final int id;
|
||||
public String Name() {return name;} private final String name;
|
||||
public String Date() {return date;} private final String date;
|
||||
public int Priority() {return priority;} private final int priority;
|
||||
public String Url() {return url;} private final String url;
|
||||
public String Summary() {return summary;} private final String summary;
|
||||
public String Details() {return details;} private final String details;
|
||||
|
||||
|
@ -19,20 +19,26 @@ package gplx.xowa.addons.apps.updates.dbs; import gplx.*; import gplx.xowa.*; im
|
||||
import gplx.dbs.*; import gplx.dbs.utls.*;
|
||||
public class Xoa_app_version_tbl implements Db_tbl {
|
||||
private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
|
||||
private final String fld__version_id, fld__version_date, fld__version_priority, fld__version_summary, fld__version_details;
|
||||
private final String fld__version_id, fld__version_name, fld__version_date, fld__version_priority, fld__version_url, fld__version_summary, fld__version_details;
|
||||
private final Db_conn conn;
|
||||
public Xoa_app_version_tbl(Db_conn conn) {
|
||||
this.conn = conn;
|
||||
this.fld__version_id = flds.Add_str("version_id", 32);
|
||||
this.fld__version_id = flds.Add_int_pkey("version_id");
|
||||
this.fld__version_name = flds.Add_str("version_name", 32);
|
||||
this.fld__version_date = flds.Add_str("version_date", 32);
|
||||
this.fld__version_priority = flds.Add_int("version_priority"); // 3:trivial; 5:minor; 7:major;
|
||||
this.fld__version_url = flds.Add_str("version_url", 255);
|
||||
this.fld__version_summary = flds.Add_str("version_summary", 255);
|
||||
this.fld__version_details = flds.Add_text("version_details");
|
||||
conn.Rls_reg(this);
|
||||
}
|
||||
public String Tbl_name() {return tbl_name;} private final String tbl_name = TBL_NAME;
|
||||
public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, fld__version_date, fld__version_date)));}
|
||||
public Xoa_app_version_itm[] Select_by_date(String date) { // NOTE: version_ids are not easy to sort; using version_date instead
|
||||
public void Create_tbl() {
|
||||
conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds
|
||||
, Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, fld__version_date, fld__version_date))
|
||||
);
|
||||
}
|
||||
public Xoa_app_version_itm[] Select_by_date(String date) { // NOTE: use version_date b/c (a) version_id is not available; (b) version_name is not easy to sort;
|
||||
String sql = Db_sql_.Make_by_fmt(String_.Ary
|
||||
( "SELECT *"
|
||||
, "FROM app_version"
|
||||
@ -51,9 +57,11 @@ public class Xoa_app_version_tbl implements Db_tbl {
|
||||
}
|
||||
private Xoa_app_version_itm Load(Db_rdr rdr) {
|
||||
return new Xoa_app_version_itm
|
||||
( rdr.Read_str(fld__version_id)
|
||||
( rdr.Read_int(fld__version_id)
|
||||
, rdr.Read_str(fld__version_name)
|
||||
, rdr.Read_str(fld__version_date)
|
||||
, rdr.Read_int(fld__version_priority)
|
||||
, rdr.Read_str(fld__version_url)
|
||||
, rdr.Read_str(fld__version_summary)
|
||||
, rdr.Read_str(fld__version_details)
|
||||
);
|
||||
|
@ -0,0 +1,41 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.addons.apps.updates.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.updates.*;
|
||||
import gplx.langs.jsons.*;
|
||||
import gplx.xowa.htmls.bridges.*;
|
||||
public class Xoa_update_bridge implements Bridge_cmd_itm {
|
||||
public void Init_by_app(Xoa_app app) {
|
||||
}
|
||||
public String Exec(Json_nde data) {
|
||||
byte proc_id = proc_hash.Get_as_byte_or(data.Get_as_bry_or(Bridge_cmd_mgr.Msg__proc, null), Byte_ascii.Max_7_bit);
|
||||
// Json_nde args = data.Get_kv(Bridge_cmd_mgr.Msg__args).Val_as_nde();
|
||||
switch (proc_id) {
|
||||
case Proc__download_and_update: break;
|
||||
default: throw Err_.new_unhandled_default(proc_id);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private static final byte Proc__download_and_update = 0;
|
||||
private static final Hash_adp_bry proc_hash = Hash_adp_bry.cs()
|
||||
.Add_str_byte("download_and_update" , Proc__download_and_update)
|
||||
;
|
||||
|
||||
public byte[] Key() {return BRIDGE_KEY;} public static final byte[] BRIDGE_KEY = Bry_.new_a7("app.updater");
|
||||
public static final Xoa_update_bridge Prototype = new Xoa_update_bridge(); Xoa_update_bridge() {}
|
||||
}
|
@ -42,7 +42,7 @@ class Xoa_update_html extends Xow_special_wtr__base {
|
||||
|
||||
// convert to gui itm
|
||||
Xoa_app_version_itm db_itm = db_itms[0];
|
||||
Xoa_update_itm__root root = new Xoa_update_itm__root(Xoa_app_.Version, build_date, check_date, db_itm.Id(), db_itm.Date(), db_itm.Priority(), db_itm.Summary(), db_itm.Details());
|
||||
Xoa_update_itm__root root = new Xoa_update_itm__root(Xoa_app_.Version, build_date, check_date, db_itm.Name(), db_itm.Date(), db_itm.Priority(), db_itm.Summary(), db_itm.Details());
|
||||
root.Itms_(To_gui_itm(db_itms));
|
||||
return root;
|
||||
}
|
||||
@ -55,7 +55,7 @@ class Xoa_update_html extends Xow_special_wtr__base {
|
||||
return rv;
|
||||
}
|
||||
private static Xoa_update_itm__leaf To_gui_itm(Xoa_app_version_itm db_itm) {
|
||||
return new Xoa_update_itm__leaf(db_itm.Id(), db_itm.Date(), db_itm.Priority(), db_itm.Summary(), db_itm.Details());
|
||||
return new Xoa_update_itm__leaf(db_itm.Name(), db_itm.Date(), db_itm.Priority(), db_itm.Summary(), db_itm.Details());
|
||||
}
|
||||
|
||||
@Override protected void Bld_tags(Xoa_app app, Io_url addon_dir, Xopage_html_data page_data) {
|
||||
|
Loading…
Reference in New Issue
Block a user