mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
DownloadCentral: Add basic implementation for filter_by_lang
This commit is contained in:
parent
059e49b1bc
commit
3971182fff
@ -33,13 +33,14 @@ public class Xobc_task_bridge implements gplx.xowa.htmls.bridges.Bridge_cmd_itm
|
||||
case Proc__run_next: task_mgr.Work_mgr().Run_next(); break;
|
||||
case Proc__stop_cur: task_mgr.Work_mgr().Stop_cur(); break;
|
||||
case Proc__redo_cur: task_mgr.Work_mgr().Redo_cur(); break;
|
||||
case Proc__filter_by_lang: task_mgr.Filter_by_lang(args.Get_as_str("lang_key")); break;
|
||||
case Proc__download_db: gplx.xowa.addons.bldrs.centrals.dbs.Xobc_data_db_upgrader.Check_for_updates(task_mgr); break;
|
||||
default: throw Err_.new_unhandled_default(proc_id);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
private static final byte[] Msg__proc = Bry_.new_a7("proc"), Msg__args = Bry_.new_a7("args");
|
||||
private static final byte Proc__reload = 0, Proc__add_work = 1, Proc__del_work = 2, Proc__del_done = 3, Proc__run_next = 4, Proc__stop_cur = 5, Proc__redo_cur = 6, Proc__download_db = 7;
|
||||
private static final byte Proc__reload = 0, Proc__add_work = 1, Proc__del_work = 2, Proc__del_done = 3, Proc__run_next = 4, Proc__stop_cur = 5, Proc__redo_cur = 6, Proc__download_db = 7, Proc__filter_by_lang = 8;
|
||||
private static final Hash_adp_bry proc_hash = Hash_adp_bry.cs()
|
||||
.Add_str_byte("reload" , Proc__reload)
|
||||
.Add_str_byte("add_work" , Proc__add_work)
|
||||
@ -49,6 +50,7 @@ public class Xobc_task_bridge implements gplx.xowa.htmls.bridges.Bridge_cmd_itm
|
||||
.Add_str_byte("stop_cur" , Proc__stop_cur)
|
||||
.Add_str_byte("redo_cur" , Proc__redo_cur)
|
||||
.Add_str_byte("download_db" , Proc__download_db)
|
||||
.Add_str_byte("filter_by_lang" , Proc__filter_by_lang)
|
||||
;
|
||||
|
||||
public byte[] Key() {return BRIDGE_KEY;} public static final byte[] BRIDGE_KEY = Bry_.new_a7("builder_central.exec");
|
||||
|
@ -51,15 +51,23 @@ public class Xobc_task_mgr implements Xog_json_wkr {
|
||||
user_db.Done_task_tbl().Select_all(todo_mgr, done_mgr);
|
||||
return this;
|
||||
}
|
||||
public static final String Lang_key__all = "all";
|
||||
public void Reload() {
|
||||
Gfo_log_.Instance.Info("task_mgr.reload.bgn");
|
||||
Gfobj_nde root = Gfobj_nde.New();
|
||||
Gfobj_nde lists_nde = root.New_nde("lists");
|
||||
work_mgr.Save_to(lists_nde.New_ary("work"));
|
||||
todo_mgr.Save_to(lists_nde.New_ary("todo"));
|
||||
done_mgr.Save_to(lists_nde.New_ary("done"));
|
||||
work_mgr.Save_to(lists_nde.New_ary("work"), Lang_key__all);
|
||||
todo_mgr.Save_to(lists_nde.New_ary("todo"), Lang_key__all);
|
||||
done_mgr.Save_to(lists_nde.New_ary("done"), Lang_key__all);
|
||||
cbk_mgr.Send_json(cbk_trg, "xo.bldr.core.reload__recv", root);
|
||||
}
|
||||
public void Filter_by_lang(String lang_key) {
|
||||
Gfo_log_.Instance.Info("task_mgr.reload.bgn");
|
||||
Gfobj_nde root = Gfobj_nde.New();
|
||||
Gfobj_nde lists_nde = root.New_nde("lists").Add_str("list_name", "todo");
|
||||
todo_mgr.Save_to(lists_nde.New_ary("todo"), lang_key);
|
||||
cbk_mgr.Send_json(cbk_trg, "xo.bldr.core.reload_list__recv", root);
|
||||
}
|
||||
public void Transfer(Xobc_task_regy__base src, Xobc_task_regy__base trg, Xobc_task_itm task) {
|
||||
Gfo_log_.Instance.Info("task_mgr.transfer.bgn", "task_uid", task.Task_id(), "src", src.Name(), "trg", trg.Name());
|
||||
src.Del_by(task.Task_id());
|
||||
|
@ -42,11 +42,12 @@ public class Xobc_task_regy_tbl implements Db_tbl {
|
||||
Db_rdr rdr = conn.Stmt_select_order(tbl_name, flds, String_.Ary_empty, fld_task_seqn).Exec_select__rls_auto();
|
||||
try {
|
||||
while (rdr.Move_next()) {
|
||||
int task_id = rdr.Read_int(fld_task_id);
|
||||
int task_seqn = rdr.Read_int(fld_task_seqn);
|
||||
if (task_seqn == 999999) continue;
|
||||
if (task_seqn == 999999) continue; // WORKAROUND: do not show old tasks; should add a status column, but don't want to change schema yet; DATE:2016-10-20
|
||||
|
||||
int task_id = rdr.Read_int(fld_task_id);
|
||||
int step_count = rdr.Read_int(fld_step_count);
|
||||
String task_key = rdr.Read_str(fld_task_name);
|
||||
String task_key = rdr.Read_str(fld_task_key);
|
||||
String task_name = rdr.Read_str(fld_task_name);
|
||||
todo_regy.Add(new Xobc_task_itm(task_id, task_seqn, step_count, task_key, task_name));
|
||||
}
|
||||
|
@ -30,14 +30,25 @@ public abstract class Xobc_task_regy__base {
|
||||
public void Del_by(int i) {hash.Del(i);}
|
||||
public void Sort() {hash.Sort();}
|
||||
|
||||
public void Save_to(Gfobj_ary ary) {
|
||||
public void Save_to(Gfobj_ary ary, String lang_key) {
|
||||
List_adp list = List_adp_.New();
|
||||
int len = hash.Len();
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Xobc_task_itm sub_task = (Xobc_task_itm)hash.Get_at(i);
|
||||
if (!String_.Eq(lang_key, Xobc_task_mgr.Lang_key__all)) {
|
||||
String task_key = sub_task.Task_key();
|
||||
if (!String_.Has_at_bgn(task_key, lang_key + ".")) continue;
|
||||
}
|
||||
list.Add(sub_task);
|
||||
}
|
||||
|
||||
len = list.Len();
|
||||
Gfobj_nde[] sub_ndes = new Gfobj_nde[len];
|
||||
ary.Ary_(sub_ndes);
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Gfobj_nde sub_nde = sub_ndes[i] = Gfobj_nde.New();
|
||||
Xobc_task_itm sub_task = (Xobc_task_itm)hash.Get_at(i);
|
||||
Xobc_task_itm sub_task = (Xobc_task_itm)list.Get_at(i);
|
||||
sub_task.Save_to(sub_nde);
|
||||
}
|
||||
ary.Ary_(sub_ndes);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user