Skip to content
This repository was archived by the owner on Jun 23, 2024. It is now read-only.

Commit 297d3a3

Browse files
committed
Add _check_version_code
1 parent ce1e821 commit 297d3a3

File tree

3 files changed

+21
-17
lines changed

3 files changed

+21
-17
lines changed

Diff for: sync/core/Pull.py

+20-10
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
AttrDict,
99
MagiskUpdateJson,
1010
OnlineModule,
11-
TrackType
11+
TrackType,
12+
UpdateJson
1213
)
1314
from ..track import LocalTracks
1415
from ..utils import Log, HttpUtils, GitUtils
@@ -43,6 +44,20 @@ def _check_changelog(self, module_id, file):
4344
else:
4445
return True
4546

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+
4661
def _get_file_url(self, module_id, file):
4762
module_folder = self._modules_folder.joinpath(module_id)
4863
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):
87102

88103
return changelog_file
89104

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):
91106
module_folder = self._modules_folder.joinpath(module_id)
92107

93108
def remove_file():
@@ -120,9 +135,7 @@ def get_online_module():
120135
online_module: OnlineModule = result.value
121136

122137
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):
126139
self._copy_file(zip_file, target_zip_file, delete_tmp)
127140
else:
128141
remove_file()
@@ -134,6 +147,7 @@ def get_online_module():
134147
self._copy_file(changelog_file, target_changelog_file, delete_tmp)
135148
changelog_url = self._get_file_url(module_id, target_changelog_file)
136149

150+
# For OnlineModule.to_VersionItem
137151
online_module.latest = AttrDict(
138152
zipUrl=self._get_file_url(module_id, target_zip_file),
139153
changelog=changelog_url
@@ -142,7 +156,6 @@ def get_online_module():
142156
return online_module
143157

144158
def from_json(self, track, *, local):
145-
module_folder = self._modules_folder.joinpath(track.id)
146159
if local:
147160
track.update_to = self._local_folder.joinpath(track.update_to)
148161

@@ -158,10 +171,7 @@ def load_json():
158171
else:
159172
update_json: MagiskUpdateJson = result.value
160173

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):
165175
return None, 0.0
166176

167177
zip_file = self._modules_folder.joinpath(track.id, f"{track.id}.zip")

Diff for: sync/core/Pull.pyi

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class Pull:
2626
@Result.catching()
2727
def _download(url: str, out: Path) -> Result: ...
2828
def _check_changelog(self, module_id: str, file: Path) -> bool: ...
29+
def _check_version_code(self, module_id: str, version_code: int) -> bool: ...
2930
def _get_file_url(self, module_id: str, file: Path) -> str: ...
3031
def _get_changelog_common(self, module_id: str, changelog: Union[str, Path]) -> Optional[Path]: ...
3132
def _from_zip_common(

Diff for: sync/core/Sync.py

-7
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,6 @@ def _update_jsons(self, track, force):
6262
)
6363

6464
version_item = online_module.to_VersionItem(timestamp)
65-
66-
if len(update_json.versions) > 0:
67-
same_version = update_json.versions[-1].versionCode == version_item.versionCode
68-
if same_version:
69-
self._log.d(f"_update_jsons: [{track.id}] -> {version_item.version_display} already exists")
70-
return None
71-
7265
update_json.versions.append(version_item)
7366

7467
max_num = self._config.max_num

0 commit comments

Comments
 (0)