@@ -358,10 +358,10 @@ def load(self,file_path):
358
358
label_of_datalabel = {'filestructure' :'Filestructure' ,'filenames' :'Filenames' ,'customdata' :'Custom Data' ,'header' :'Header' }
359
359
def save (self ,print_func ,file_path = None ,compression_level = 9 ):
360
360
if file_path :
361
- filename = basename (normpath (file_path ))
361
+ self . file_name = basename (normpath (file_path ))
362
362
else :
363
- filename = self .file_name = self .new_file_name ()
364
- file_path = sep .join ([self .db_dir ,filename ])
363
+ self . file_name = self .file_name = self .new_file_name ()
364
+ file_path = sep .join ([self .db_dir ,self . file_name ])
365
365
366
366
self .file_path = file_path
367
367
@@ -1276,18 +1276,19 @@ def prepare_info(self):
1276
1276
info_list .append (f'rule nr { str (nr ).rjust (2 )} | { bytes_to_str (self_header .cde_stats_size [nr ]).rjust (12 )} { fnumber (self_header .cde_stats_uniq [nr ]).rjust (12 )} { fnumber (self_header .cde_stats_refs [nr ]).rjust (12 )} { str (round (self_header .cde_stats_time [nr ],2 )).rjust (11 )} s{ "" .rjust (12 )} { fnumber (self_header .files_cde_errors_quant [nr ]).rjust (12 )} ' )
1277
1277
info_list .append ('----------------+------------------------------------------------------------------------------------------------' )
1278
1278
except Exception as EE :
1279
- info_list .append (str (EE ))
1280
-
1281
- info_list .append ('' )
1279
+ print (str (EE ))
1282
1280
1283
1281
try :
1284
1282
if self_header .cde_list :
1283
+ info_list .append ('' )
1285
1284
info_list .append ('Custom Data Extractors and rules:' )
1286
1285
for nr ,(expressions ,use_smin ,smin_int ,use_smax ,smax_int ,executable ,parameters ,shell ,timeout ,crc ) in enumerate (self_header .cde_list ):
1287
1286
info_list .append (f'\n rule nr : { nr } ' )
1288
1287
1289
- expressions_expanded = ',' .join (list (expressions ))
1290
- info_list .append (f'files : { expressions_expanded } ' )
1288
+ if expressions :
1289
+ expressions_expanded = ',' .join (list (expressions ))
1290
+ info_list .append (f'files : { expressions_expanded } ' )
1291
+
1291
1292
if use_smin :
1292
1293
info_list .append (f'min size : { bytes_to_str (smin_int )} ' )
1293
1294
if use_smax :
@@ -1297,13 +1298,13 @@ def prepare_info(self):
1297
1298
info_list .append (f'command : { executable } { parameters } { in_shell_string } ' )
1298
1299
if timeout :
1299
1300
info_list .append (f'timeout : { timeout } s' )
1300
-
1301
1301
except Exception as EE :
1302
- info_list .append (str (EE ))
1303
-
1302
+ print (str (EE ))
1304
1303
1305
1304
loaded_fs_info = 'filesystem - ' + ('loaded' if self .decompressed_filestructure else 'not loaded yet' )
1306
1305
loaded_cd_info = 'custom data - ' + ('not present' if not bool (cd_data [0 ]) else 'loaded' if self .decompressed_customdata else 'not loaded yet' )
1306
+
1307
+ info_list .append ('' )
1307
1308
info_list .append (loaded_fs_info )
1308
1309
info_list .append (loaded_cd_info )
1309
1310
@@ -1356,8 +1357,7 @@ def prepare_info(self):
1356
1357
info_list .append ('========================================' )
1357
1358
info_list .extend (sublist_size )
1358
1359
except Exception as se :
1359
- #print(se)
1360
- pass
1360
+ print (str (se ))
1361
1361
1362
1362
self .txtinfo = '\n ' .join (info_list )
1363
1363
@@ -1438,6 +1438,10 @@ def __init__(self,db_dir,log):
1438
1438
self .groups = defaultdict (set )
1439
1439
self .aliases = {}
1440
1440
1441
+ self .wii_import_known_disk_names_len = 0
1442
+ self .wii_import_files_counter = 0
1443
+ self .wii_import_space = 0
1444
+
1441
1445
def update_sorted (self ):
1442
1446
self .records_sorted = sorted (self .records ,key = lambda x : x .header .creation_time )
1443
1447
@@ -1626,6 +1630,8 @@ def get_wii_files_dict(self,import_filenames):
1626
1630
1627
1631
#######################################################################
1628
1632
1633
+ aborted = False
1634
+ self .abort_action = False
1629
1635
#l=0
1630
1636
in_report = False
1631
1637
in_item = False
@@ -1652,11 +1658,17 @@ def get_wii_files_dict(self,import_filenames):
1652
1658
known_disk_names = set ()
1653
1659
1654
1660
self .wii_import_known_disk_names_len = 0
1661
+ self .wii_import_files_counter = 0
1662
+ self .wii_import_space = 0
1655
1663
try :
1656
1664
for import_filename in import_filenames :
1657
1665
with open (import_filename ,"rt" , encoding = 'utf-8' , errors = 'ignore' ) as f :
1658
1666
self .wii_import_info_filename = import_filename
1659
1667
for line in f :
1668
+ if self .abort_action :
1669
+ aborted = True
1670
+ break
1671
+
1660
1672
try :
1661
1673
if in_report :
1662
1674
if in_item :
@@ -1683,6 +1695,7 @@ def get_wii_files_dict(self,import_filenames):
1683
1695
if not item ['name' ]:
1684
1696
if match := re_obj_name_search (line ):
1685
1697
item ['name' ]= match .group (1 )
1698
+ self .wii_import_files_counter += 1
1686
1699
continue
1687
1700
1688
1701
if not item ['ext' ]:
@@ -1693,7 +1706,10 @@ def get_wii_files_dict(self,import_filenames):
1693
1706
if not item ['size' ]:
1694
1707
if match := re_obj_size_search (line ):
1695
1708
try :
1696
- item ['size' ]= int (match .group (1 ))
1709
+ size = int (match .group (1 ))
1710
+
1711
+ item ['size' ]= size
1712
+ self .wii_import_space += size
1697
1713
except :
1698
1714
item ['size' ]= 0
1699
1715
continue
@@ -1871,9 +1887,12 @@ def get_wii_files_dict(self,import_filenames):
1871
1887
# <CRC>0</CRC>
1872
1888
#</ITEM>
1873
1889
1874
- return filenames_set ,filenames_set_per_disk ,wii_path_tuple_to_data ,wii_path_tuple_to_data_per_disk ,wii_paths_dict ,wii_paths_dict_per_disk ,cd_set ,cd_set_per_disk
1890
+ if aborted :
1891
+ return [None ,'Aborted.' ]
1892
+ else :
1893
+ return filenames_set ,filenames_set_per_disk ,wii_path_tuple_to_data ,wii_path_tuple_to_data_per_disk ,wii_paths_dict ,wii_paths_dict_per_disk ,cd_set ,cd_set_per_disk
1875
1894
except Exception as ie :
1876
- return [None ,str ( ie ) ]
1895
+ return [None ,f'Error: { ie } ' ]
1877
1896
1878
1897
def wii_data_to_scan_like_data (self ,path_list ,curr_dict_ref ,scan_like_data ,customdata_helper ):
1879
1898
path_list_tuple = tuple (path_list )
@@ -1982,15 +2001,15 @@ def import_records_wii_do(self,compr,postfix,label,quant_files,quant_folders,fil
1982
2001
smin_int = 0
1983
2002
use_smax = False
1984
2003
smax_int = 0
1985
- executable = ''
2004
+ executable = 'Imported from "Where Is It?" '
1986
2005
parameters = ''
1987
2006
shell = False
1988
2007
timeout = 0
1989
2008
crc = False
1990
2009
1991
2010
new_record .header .cde_list = [ [expressions ,use_smin ,smin_int ,use_smax ,smax_int ,executable ,parameters ,shell ,timeout ,crc ] ]
1992
2011
1993
- new_record .header .scan_path = ' -- Imported from "Where Is It? -- '
2012
+ new_record .header .scan_path = 'Imported from "Where Is It?'
1994
2013
1995
2014
new_record .customdata = [(0 ,0 ,cd_elem ) for cd_elem in cd_set ]
1996
2015
@@ -2039,10 +2058,20 @@ def import_records_wii_do(self,compr,postfix,label,quant_files,quant_folders,fil
2039
2058
2040
2059
new_record .save (print ,file_path = new_file_path ,compression_level = compr )
2041
2060
2042
- if group :
2043
- self .assign_new_group (new_record ,group )
2061
+ self .records .remove (new_record )
2062
+
2063
+ #############################################
2064
+ new_record_really = self .create ()
2065
+
2066
+ if res := new_record_really .load (new_file_path ) :
2067
+ self .records .remove (new_record_really )
2068
+ send2trash_delete (new_file_path )
2069
+ import_res .append (str (res ))
2070
+ else :
2071
+ if group :
2072
+ self .assign_new_group (new_record_really ,group )
2044
2073
2045
- update_callback (new_record )
2074
+ update_callback (new_record_really )
2046
2075
2047
2076
if import_res :
2048
2077
return '\n ' .join (import_res )
@@ -2084,13 +2113,10 @@ def import_records(self,import_filenames,update_callback,group):
2084
2113
new_record = self .create ()
2085
2114
2086
2115
if res := new_record .load (new_file_path ) :
2087
- #self.log.warning('removing:%s',file_name)
2088
2116
self .records .remove (new_record )
2089
- #load_errors.append(res)
2090
2117
send2trash_delete (new_file_path )
2091
2118
import_res .append (str (res ))
2092
2119
else :
2093
- #self.records_to_show.append( (new_record,info_curr_quant,info_curr_size) )
2094
2120
if group :
2095
2121
self .assign_new_group (new_record ,group )
2096
2122
0 commit comments