mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Edit: Add try catch for page backups
This commit is contained in:
parent
a28ba26ca6
commit
ef11577d08
@ -21,29 +21,33 @@ public class Pagebaks_addon implements Xoax_addon_itm {
|
||||
// get vars
|
||||
if (!app.Cfg().Get_bool_app_or("xowa.wiki.edit.pagebaks.enabled", true)) return;
|
||||
|
||||
// #save file
|
||||
// get file name; note encoding for wnt even on lnx systems just to be consistent
|
||||
Gfo_url_encoder encoder = Gfo_url_encoder_.New__fsys_wnt().Make();
|
||||
byte[] file_name = encoder.Encode(ttl.Full_db());
|
||||
try {
|
||||
// #save file
|
||||
// get file name; note encoding for wnt even on lnx systems just to be consistent
|
||||
Gfo_url_encoder encoder = Gfo_url_encoder_.New__fsys_wnt().Make();
|
||||
byte[] file_name = encoder.Encode(ttl.Full_db());
|
||||
|
||||
// save file to backup dir; EX: /xowa/wiki/en.w/user/temp/save_backups/Earth/20170303_080102_123.txt
|
||||
Io_url bak_dir = wiki.Fsys_mgr().Root_dir().GenSubDir_nest("user", "temp", "page_backups", String_.new_u8(file_name));
|
||||
Io_url file_url = bak_dir.GenSubFil_ary(Datetime_now.Get().XtoStr_fmt("yyyyMMdd_HHmmss_fff"), ".txt");
|
||||
Io_mgr.Instance.SaveFilBry(file_url, text);
|
||||
// save file to backup dir; EX: /xowa/wiki/en.w/user/temp/save_backups/Earth/20170303_080102_123.txt
|
||||
Io_url bak_dir = wiki.Fsys_mgr().Root_dir().GenSubDir_nest("user", "temp", "page_backups", String_.new_u8(file_name));
|
||||
Io_url file_url = bak_dir.GenSubFil_ary(Datetime_now.Get().XtoStr_fmt("yyyyMMdd_HHmmss_fff"), ".txt");
|
||||
Io_mgr.Instance.SaveFilBry(file_url, text);
|
||||
|
||||
// #prune dir
|
||||
// get files for pruning
|
||||
Io_url[] fils = Io_mgr.Instance.QueryDir_fils(bak_dir);
|
||||
Array_.Sort(fils);
|
||||
|
||||
// calc files
|
||||
int num_files = fils.length;
|
||||
int max_files = app.Cfg().Get_int_app_or("xowa.wiki.edit.pagebaks.max_backups", 16);
|
||||
int cutoff = num_files - max_files;
|
||||
// #prune dir
|
||||
// get files for pruning
|
||||
Io_url[] fils = Io_mgr.Instance.QueryDir_fils(bak_dir);
|
||||
Array_.Sort(fils);
|
||||
|
||||
// calc files
|
||||
int num_files = fils.length;
|
||||
int max_files = app.Cfg().Get_int_app_or("xowa.wiki.edit.pagebaks.max_backups", 16);
|
||||
int cutoff = num_files - max_files;
|
||||
|
||||
// do pruning
|
||||
for (int i = 0; i < cutoff; i++) {// EX: 3 files and 2 max; 1st file (index 0) needs to be deleted
|
||||
Io_mgr.Instance.DeleteFil(fils[i]);
|
||||
// do pruning
|
||||
for (int i = 0; i < cutoff; i++) {// EX: 3 files and 2 max; 1st file (index 0) needs to be deleted
|
||||
Io_mgr.Instance.DeleteFil(fils[i]);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Gfo_usr_dlg_.Instance.Log_many("", "", "failed to save page backup; wiki=~{0} ttl=~{1} err=~{2}", wiki.Domain_bry(), ttl.Full_db(), Err_.Message_gplx_log(e));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user