@ -31,24 +31,31 @@ public class Xosync_read_mgr implements Gfo_invk {
wiki . App ( ) . Cfg ( ) . Bind_many_wiki ( this , wiki , Cfg__manual__enabled , Cfg__auto__enabled , Cfg__auto__interval , Cfg__auto__scope ) ;
}
public boolean Manual_enabled ( ) { return manual_enabled ; } private boolean manual_enabled ;
public void Auto_update ( Xow_wiki wiki , Xoa_page page , Xoa_ttl page_ttl ) {
if ( wiki . Domain_itm ( ) . Domain_type_id ( ) = = gplx . xowa . wikis . domains . Xow_domain_tid_ . Tid__home ) return ;
if ( wiki . Domain_itm ( ) . Domain_type_id ( ) = = gplx . xowa . wikis . domains . Xow_domain_tid_ . Tid__other ) return ;
if ( page_ttl . Ns ( ) . Id_is_special ( ) ) return ;
public boolean Auto_update ( Xow_wiki wiki , Xoa_page page , Xoa_ttl page_ttl ) {
if ( wiki . Domain_itm ( ) . Domain_type_id ( ) = = gplx . xowa . wikis . domains . Xow_domain_tid_ . Tid__home ) return false ;
if ( wiki . Domain_itm ( ) . Domain_type_id ( ) = = gplx . xowa . wikis . domains . Xow_domain_tid_ . Tid__other ) return false ;
if ( page_ttl . Ns ( ) . Id_is_special ( ) ) return false ;
if ( ! auto_enabled ) return ;
if ( ! auto_page_matcher . Match ( wiki , page_ttl . Full_db ( ) ) ) return ;
if ( ! auto_enabled ) return false ;
if ( ! auto_page_matcher . Match ( wiki , page_ttl . Full_db ( ) ) ) return false ;
wiki . Data__core_mgr ( ) . Db__core ( ) . Tbl__page ( ) . Select_by_ttl ( tmp_dbpg , page_ttl . Ns ( ) , page_ttl . Page_db ( ) ) ;
if ( sync_conn = = null ) {
Io_url sync_db_url = wiki . Fsys_mgr ( ) . Root_dir ( ) . GenSubFil ( wiki . Domain_str ( ) + "-sync.xowa" ) ;
Gfo_usr_dlg_ . Instance . Log_many ( "" , "" , "page_sync: loading database for page_sync_data; url=~{0}" , sync_db_url . Raw ( ) ) ;
sync_conn = Db_conn_bldr . Instance . Get_or_autocreate ( true , sync_db_url ) ;
sync_tbl = new Xosync_sync_tbl ( sync_conn ) ;
sync_conn . Meta_tbl_assert ( sync_tbl ) ;
}
DateAdp sync_date = sync_tbl . Select_sync_date_or_min ( tmp_dbpg . Id ( ) ) ;
if ( Datetime_now . Get ( ) . Diff ( sync_date ) . Total_mins ( ) . To_int ( ) < = auto_interval ) return ;
if ( Datetime_now . Get ( ) . Diff ( sync_date ) . Total_mins ( ) . To_int ( ) < = auto_interval ) {
Gfo_usr_dlg_ . Instance . Log_many ( "" , "" , "page_sync: skipping auto-sync for page; wiki=~{0} page=~{1} sync_date=~{2}" , wiki . Domain_bry ( ) , page_ttl . Full_db ( ) , sync_date . XtoStr_fmt_yyyy_MM_dd_HH_mm_ss ( ) ) ;
return false ;
}
else {
Gfo_usr_dlg_ . Instance . Log_many ( "" , "" , "page_sync: running auto-sync for page; wiki=~{0} page=~{1} sync_date=~{2}" , wiki . Domain_bry ( ) , page_ttl . Full_db ( ) , sync_date . XtoStr_fmt_yyyy_MM_dd_HH_mm_ss ( ) ) ;
}
Xoa_app app = wiki . App ( ) ;
Xoh_page hpg = new Xoh_page ( ) ;
@ -56,7 +63,9 @@ public class Xosync_read_mgr implements Gfo_invk {
update_mgr . Init_by_page ( wiki , hpg ) ;
update_mgr . Update ( app . Wmf_mgr ( ) . Download_wkr ( ) , wiki , page_ttl ) ;
Gfo_usr_dlg_ . Instance . Log_many ( "" , "" , "page_sync: updating sync table; page=~{0}" , page_ttl . Full_db ( ) ) ;
sync_tbl . Upsert ( tmp_dbpg . Id ( ) , Datetime_now . Get ( ) ) ;
return true ;
}
private void Auto_scope_ ( String v ) {
auto_page_matcher . Set ( v ) ;