8
8
AttrDict ,
9
9
MagiskUpdateJson ,
10
10
OnlineModule ,
11
- TrackType
11
+ TrackType ,
12
+ UpdateJson
12
13
)
13
14
from ..track import LocalTracks
14
15
from ..utils import Log , HttpUtils , GitUtils
@@ -43,6 +44,20 @@ def _check_changelog(self, module_id, file):
43
44
else :
44
45
return True
45
46
47
+ def _check_version_code (self , module_id , version_code ):
48
+ module_folder = self ._modules_folder .joinpath (module_id )
49
+ json_file = module_folder .joinpath (UpdateJson .filename ())
50
+
51
+ if not json_file .exists ():
52
+ return True
53
+
54
+ update_json = UpdateJson .load (json_file )
55
+ if len (update_json .versions ) != 0 and version_code > update_json .versions [- 1 ].versionCode :
56
+ return True
57
+
58
+ self ._log .i (f"_check_version_code: [{ module_id } ] -> already the latest version" )
59
+ return False
60
+
46
61
def _get_file_url (self , module_id , file ):
47
62
module_folder = self ._modules_folder .joinpath (module_id )
48
63
url = f"{ self ._config .base_url } { self ._modules_folder .name } /{ module_id } /{ file .name } "
@@ -87,7 +102,7 @@ def _get_changelog_common(self, module_id, changelog):
87
102
88
103
return changelog_file
89
104
90
- def _from_zip_common (self , module_id , zip_file , changelog_file , * , delete_tmp ):
105
+ def _from_zip_common (self , module_id , zip_file , changelog_file , * , delete_tmp ):
91
106
module_folder = self ._modules_folder .joinpath (module_id )
92
107
93
108
def remove_file ():
@@ -120,9 +135,7 @@ def get_online_module():
120
135
online_module : OnlineModule = result .value
121
136
122
137
target_zip_file = module_folder .joinpath (online_module .zipfile_name )
123
- target_files = list (module_folder .glob (f"*{ online_module .versionCode } .zip" ))
124
-
125
- if not target_zip_file .exists () and len (target_files ) == 0 :
138
+ if self ._check_version_code (module_id , online_module .versionCode ):
126
139
self ._copy_file (zip_file , target_zip_file , delete_tmp )
127
140
else :
128
141
remove_file ()
@@ -134,6 +147,7 @@ def get_online_module():
134
147
self ._copy_file (changelog_file , target_changelog_file , delete_tmp )
135
148
changelog_url = self ._get_file_url (module_id , target_changelog_file )
136
149
150
+ # For OnlineModule.to_VersionItem
137
151
online_module .latest = AttrDict (
138
152
zipUrl = self ._get_file_url (module_id , target_zip_file ),
139
153
changelog = changelog_url
@@ -142,7 +156,6 @@ def get_online_module():
142
156
return online_module
143
157
144
158
def from_json (self , track , * , local ):
145
- module_folder = self ._modules_folder .joinpath (track .id )
146
159
if local :
147
160
track .update_to = self ._local_folder .joinpath (track .update_to )
148
161
@@ -158,10 +171,7 @@ def load_json():
158
171
else :
159
172
update_json : MagiskUpdateJson = result .value
160
173
161
- target_zip_file = module_folder .joinpath (update_json .zipfile_name )
162
- target_files = list (module_folder .glob (f"*{ update_json .versionCode } .zip" ))
163
-
164
- if target_zip_file .exists () or len (target_files ) != 0 :
174
+ if not self ._check_version_code (track .id , update_json .versionCode ):
165
175
return None , 0.0
166
176
167
177
zip_file = self ._modules_folder .joinpath (track .id , f"{ track .id } .zip" )
0 commit comments