@@ -19,7 +19,7 @@ def _get_file_url(self, module_id, file):
19
19
return func (self , module_id , file )
20
20
21
21
def _get_tracks (self , module_ids , new ):
22
- if new or len ( self ._tracks .tracks ) == 0 :
22
+ if new or self ._tracks .size == 0 :
23
23
return self ._tracks .get_tracks (module_ids )
24
24
25
25
return self ._tracks .tracks
@@ -106,7 +106,7 @@ def url(self, module_ids=None, new=False):
106
106
update_json = UpdateJson .load (update_json_file )
107
107
108
108
if not self ._check_update_json (track , update_json , False ):
109
- self ._log .i (f"url: [{ track .id } ] -> { UpdateJson .filename ()} has been updated" )
109
+ self ._log .i (f"[{ track .id } ] -> { UpdateJson .filename ()} has been updated" )
110
110
update_json .write (update_json_file )
111
111
112
112
def ids (self , module_ids = None , new = False ):
@@ -129,7 +129,7 @@ def ids(self, module_ids=None, new=False):
129
129
continue
130
130
131
131
if not self ._check_folder (track , online_module .id ):
132
- self ._log .i (f"ids: [{ old_id } ] -> track has been migrated to { track .id } " )
132
+ self ._log .i (f"[{ old_id } ] -> track has been migrated to { track .id } " )
133
133
module_folder = self ._modules_folder .joinpath (track .id )
134
134
track_json_file = module_folder .joinpath (TrackJson .filename ())
135
135
track .write (track_json_file )
@@ -140,11 +140,48 @@ def ids(self, module_ids=None, new=False):
140
140
141
141
update_json = UpdateJson .load (update_json_file )
142
142
if not self ._check_update_json (track , update_json , True ):
143
- self ._log .i (f"ids: [{ track .id } ] -> { UpdateJson .filename ()} has been updated" )
143
+ self ._log .i (f"[{ track .id } ] -> { UpdateJson .filename ()} has been updated" )
144
144
update_json .write (update_json_file )
145
145
146
- def empty_values (self , module_ids = None , new = False ):
146
+ def empty (self , module_ids = None , new = False ):
147
147
for track in self ._get_tracks (module_ids , new ):
148
148
module_folder = self ._modules_folder .joinpath (track .id )
149
149
track_json_file = module_folder .joinpath (TrackJson .filename ())
150
150
track .write (track_json_file )
151
+
152
+ def old (self , module_ids = None , new = False ):
153
+ for track in self ._get_tracks (module_ids , new ):
154
+ module_folder = self ._modules_folder .joinpath (track .id )
155
+ update_json_file = module_folder .joinpath (UpdateJson .filename ())
156
+ if not update_json_file .exists ():
157
+ continue
158
+
159
+ update_json = UpdateJson .load (update_json_file )
160
+
161
+ max_num = self ._config .max_num
162
+ if track .max_num is not None :
163
+ max_num = track .max_num
164
+
165
+ if len (update_json .versions ) <= max_num :
166
+ continue
167
+
168
+ old_versions = update_json .versions [:- max_num ]
169
+ for old_item in old_versions :
170
+ update_json .versions .remove (old_item )
171
+ zipfile = module_folder .joinpath (old_item .zipfile_name )
172
+ changelog = module_folder .joinpath (old_item .changelog_filename )
173
+
174
+ for path in [zipfile , changelog ]:
175
+ if not (path .exists () and path .is_file ()):
176
+ continue
177
+
178
+ self ._log .d (f"[{ track .id } ] -> remove { path .name } " )
179
+ path .unlink ()
180
+
181
+ self ._log .i (f"[{ track .id } ] -> { UpdateJson .filename ()} has been updated" )
182
+ update_json .write (update_json_file )
183
+
184
+ self ._log .i (f"[{ track .id } ] -> { TrackJson .filename ()} has been updated" )
185
+ track_json_file = module_folder .joinpath (TrackJson .filename ())
186
+ track .versions = len (update_json .versions )
187
+ track .write (track_json_file )
0 commit comments