1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2024-09-29 06:50:50 +00:00

App_update: Add version_id and version_url; also add json_bridge

This commit is contained in:
gnosygnu 2016-11-21 09:45:56 -05:00
parent 55b81d4a60
commit 8f1c368ffe
5 changed files with 68 additions and 10 deletions

View File

@ -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) {

View File

@ -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;

View File

@ -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)
);

View File

@ -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() {}
}

View File

@ -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) {