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
2015-08-17 02:09:16 -04:00
parent 34c34f227c
commit df10db140c
421 changed files with 4867 additions and 2429 deletions

View File

@@ -27,20 +27,15 @@ public class Xou_db_file {
this.tbl__site = new Xoud_site_tbl(conn);
this.tbl__history = new Xoud_history_tbl(conn);
this.tbl__cache = new Xou_cache_tbl(conn);
// this.tbl__bmk = new Xoud_bmk_tbl(conn);
}
public Db_cfg_tbl Tbl__cfg() {return tbl__cfg;} private final Db_cfg_tbl tbl__cfg;
public Xoud_site_tbl Tbl__site() {return tbl__site;} private final Xoud_site_tbl tbl__site;
public Xoud_history_tbl Tbl__history() {return tbl__history;} private final Xoud_history_tbl tbl__history;
public Xou_cache_tbl Tbl__cache() {return tbl__cache;} private final Xou_cache_tbl tbl__cache;
// public Xoud_bmk_tbl Tbl__bmk() {return tbl__bmk;} private final Xoud_bmk_tbl tbl__bmk;
public void Init_assert() {
if (!conn.Meta_tbl_exists(tbl__cache.Tbl_name())) {
tbl__cfg.Create_tbl();
tbl__cache.Create_tbl();
}
// if (!conn.Meta_tbl_exists(tbl__bmk.Tbl_name())) {
// tbl__bmk.Create_tbl();
// }
}
}

View File

@@ -29,12 +29,12 @@ public class Xoud_history_mgr implements GfoInvkAble {
// async_mgr.Queue(this, Invk_update, "wiki", String_.new_u8(url.Wiki_bry()), "page", String_.new_u8(url.Page_bry()), "qarg", String_.new_u8(url.Args_all_as_bry()));
}
private void Update(String wiki, String page, String qarg) {
Xoud_history_row row = history_tbl.Select_by_page(wiki, page, qarg);
DateAdp time = DateAdp_.Now();
if (row == null)
history_tbl.Insert(wiki, page, qarg, time, 1);
else
history_tbl.Update(wiki, page, qarg, time, row.History_count() + 1);
// Xoud_history_row row = history_tbl.Select_by_page(wiki, page, qarg);
// DateAdp time = DateAdp_.Now();
// if (row == null)
// history_tbl.Insert(wiki, page, qarg, time, 1);
// else
// history_tbl.Update(wiki, page, qarg, time, row.Count() + 1);
}
public void Select(List_adp rv, int top) {
history_tbl.Select_by_top(rv, top);

View File

@@ -17,17 +17,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.users.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
public class Xoud_history_row {
public Xoud_history_row(String history_wiki, String history_page, String history_qarg, DateAdp history_time, int history_count) {
this.history_wiki = history_wiki;
this.history_page = history_page;
this.history_qarg = history_qarg;
this.history_time = history_time;
this.history_count = history_count;
public Xoud_history_row(int id, byte[] wiki, byte[] url, DateAdp time, int count) {
this.id = id;
this.wiki = wiki; this.url = url;
this.time = time; this.count = count;
}
public String History_wiki() {return history_wiki;} private final String history_wiki;
public String History_page() {return history_page;} private final String history_page;
public String History_qarg() {return history_qarg;} private final String history_qarg;
public DateAdp History_time() {return history_time;} private final DateAdp history_time;
public int History_count() {return history_count;} private final int history_count;
public static final Xoud_history_row Null = null;
public int Id() {return id;} private final int id;
public byte[] Wiki() {return wiki;} private final byte[] wiki;
public byte[] Url() {return url;} private final byte[] url;
public DateAdp Time() {return time;} private final DateAdp time;
public int Count() {return count;} private final int count;
}

View File

@@ -17,43 +17,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.users.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
import gplx.xowa.specials.*;
public class Xoud_history_special implements Bry_fmtr_arg, Xows_page {
private List_adp rows = List_adp_.new_();
import gplx.xowa.specials.xowa.bookmarks.*;
public class Xoud_history_special implements Xows_page {
public Xows_special_meta Special_meta() {return Xows_special_meta_.Itm__page_history;}
public void Special_gen(Xowe_wiki wiki, Xoae_page page, Xoa_url url, Xoa_ttl ttl) {
Xoae_app app = wiki.Appe();
Xoud_history_mgr mgr = app.User().User_db_mgr().History_mgr();
mgr.Select(rows, 100);
Bry_bfr bfr = app.Utl__bfr_mkr().Get_m001();
html_grp.Bld_bfr_many(bfr, this);
page.Data_raw_(bfr.To_bry_and_rls());
Xoa_app app = wiki.App();
Dbui_tbl_itm__history ui_tbl = Dbui_tbl_itm__history.get_or_new(app, app.User().User_db_mgr().Db_file().Tbl__history());
page.Html_data().Head_mgr().Itm__dbui().Init(app).Enabled_y_();
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_m001();
ui_tbl.Select(bfr, 100);
page.Hdump_data().Body_(bfr.To_bry_and_rls());
}
public void XferAry(Bry_bfr bfr, int idx) {
int len = rows.Count();
for (int i = 0; i < len; i++) {
Xoud_history_row row = (Xoud_history_row)rows.Get_at(i);
html_itm.Bld_bfr_many(bfr, row.History_wiki(), row.History_page(), row.History_count(), row.History_time().XtoStr_fmt_yyyy_MM_dd_HH_mm());
}
}
private static Bry_fmtr html_grp = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( "<table class='sortable'>"
, " <tr>"
, " <th>page</th>"
, " <th>wiki</th>"
, " <th>views</th>"
, " <th>time</th>"
, " </tr>~{itms}"
, "</table>"
), "itms"
);
private static Bry_fmtr html_itm = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, " <tr>"
, " <td>[[~{itm_wiki}:~{itm_page}|~{itm_page}]]</td>"
, " <td>~{itm_wiki}</td>"
, " <td>~{itm_count}</td>"
, " <td>~{itm_last}</td>"
, " </tr>"
), "itm_wiki", "itm_page", "itm_count", "itm_last"
);
}

View File

@@ -19,19 +19,19 @@ package gplx.xowa.users.data; import gplx.*; import gplx.xowa.*; import gplx.xow
import gplx.dbs.*; import gplx.dbs.qrys.*; import gplx.dbs.metas.*; import gplx.dbs.metas.updates.*;
public class Xoud_history_tbl implements RlsAble {
private final String tbl_name = "user_history"; private final Db_meta_fld_list flds = Db_meta_fld_list.new_();
private final String fld_wiki, fld_page, fld_qarg, fld_time, fld_count;
private final String fld_id, fld_wiki, fld_url, fld_time, fld_count;
private final Db_conn conn; private Db_stmt stmt_select_by_page, stmt_select_by_top, stmt_insert, stmt_update, stmt_delete;
public Xoud_history_tbl(Db_conn conn) {
public Xoud_history_tbl(Db_conn conn) {
this.conn = conn;
fld_id = flds.Add_int_pkey_autonum("hist_id");
fld_wiki = flds.Add_str("hist_wiki", 255);
fld_page = flds.Add_str("hist_page", 255);
fld_qarg = flds.Add_str("hist_qarg", 255);
fld_url = flds.Add_str("hist_url", 255);
fld_time = flds.Add_str("hist_time", 20);
fld_count = flds.Add_int("hist_count");
stmt_insert = stmt_update = stmt_delete = stmt_select_by_page = stmt_select_by_top = null;
conn.Rls_reg(this);
}
public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_tbl(tbl_name, "pkey", fld_wiki, fld_page, fld_qarg)));}
public void Create_tbl() {conn.Ddl_create_tbl(Db_meta_tbl.new_(tbl_name, flds, Db_meta_idx.new_unique_by_tbl(tbl_name, "pkey", fld_wiki, fld_url)));}
public void Rls() {
stmt_insert = Db_stmt_.Rls(stmt_insert);
stmt_update = Db_stmt_.Rls(stmt_update);
@@ -39,31 +39,32 @@ public class Xoud_history_tbl implements RlsAble {
stmt_select_by_page = Db_stmt_.Rls(stmt_select_by_page);
stmt_select_by_top = Db_stmt_.Rls(stmt_select_by_top);
}
public void Insert(String wiki, String page, String qarg, DateAdp time, int count) {
public void Insert(byte[] wiki, byte[] url, DateAdp time, int count) {
if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
stmt_insert.Clear()
.Val_str(fld_wiki, wiki).Val_str(fld_page, page).Val_str(fld_qarg, qarg)
.Val_str(fld_time, time.XtoStr_fmt_iso_8561()).Val_int(fld_count, count)
.Val_bry_as_str(fld_wiki, wiki)
.Val_bry_as_str(fld_url , url)
.Val_str(fld_time, time.XtoStr_fmt_iso_8561())
.Val_int(fld_count, count)
.Exec_insert();
}
public void Update(String wiki, String page, String qarg, DateAdp time, int count) {
if (stmt_update == null) stmt_update = conn.Stmt_update(tbl_name, String_.Ary(fld_wiki, fld_page, fld_qarg), fld_time, fld_count);
public void Update(int id, DateAdp time, int count) {
if (stmt_update == null) stmt_update = conn.Stmt_update(tbl_name, String_.Ary(fld_id), fld_time, fld_count);
stmt_update.Clear()
.Val_str(fld_time, time.XtoStr_fmt_iso_8561()).Val_int(fld_count, count)
.Crt_str(fld_wiki, wiki).Crt_str(fld_page, page).Crt_str(fld_qarg, qarg)
.Val_str(fld_time, time.XtoStr_fmt_iso_8561())
.Val_int(fld_count, count)
.Crt_int(fld_id, id)
.Exec_update();
}
public void Delete(String wiki, String page, String qarg) {
if (stmt_delete == null) stmt_delete = conn.Stmt_delete(tbl_name, fld_wiki, fld_page, fld_qarg);
stmt_delete.Clear()
.Crt_str(fld_wiki, wiki).Crt_str(fld_page, page).Crt_str(fld_qarg, qarg)
.Exec_delete();
public void Delete(int id) {
Db_stmt stmt_delete = conn.Stmt_delete(tbl_name, fld_id);
stmt_delete.Clear().Crt_int(fld_id, id).Exec_delete();
}
public Xoud_history_row Select_by_page(String wiki, String page, String qarg) {
if (stmt_select_by_page == null) stmt_select_by_page = conn.Stmt_select(tbl_name, flds, fld_wiki, fld_page, fld_qarg);
Db_rdr rdr = stmt_select_by_page.Clear().Crt_str(fld_wiki, wiki).Crt_str(fld_page, page).Crt_str(fld_qarg, qarg).Exec_select__rls_manual();
public Xoud_history_row Select_or_null(int id) {
if (stmt_select_by_page == null) stmt_select_by_page = conn.Stmt_select(tbl_name, flds, fld_id);
Db_rdr rdr = stmt_select_by_page.Clear().Crt_int(fld_id, id).Exec_select__rls_manual();
try {
return rdr.Move_next() ? new_row(rdr) : Xoud_history_row.Null;
return rdr.Move_next() ? new_row(rdr) : null;
}
finally {rdr.Rls();}
}
@@ -84,9 +85,9 @@ public class Xoud_history_tbl implements RlsAble {
}
private Xoud_history_row new_row(Db_rdr rdr) {
return new Xoud_history_row
( rdr.Read_str(fld_wiki)
, rdr.Read_str(fld_page)
, rdr.Read_str(fld_qarg)
( rdr.Read_int(fld_id)
, rdr.Read_bry_by_str(fld_wiki)
, rdr.Read_bry_by_str(fld_url)
, rdr.Read_date_by_str(fld_time)
, rdr.Read_int(fld_count)
);