Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
paths = []
- # Add all stable releases
+ # Add all mirrored releases
async for distro in self.distros:
releases = await distro.get_releases()
for release in releases:
- if not release.stable:
+ if not release.is_mirrored():
continue
paths.append(
path = os.path.join(path, arch)
return path
+
+ # Is this release mirrored?
+
+ def is_mirrored(self):
+ """
+ Returns True if this release should be mirrored
+ """
+ # We currently only mirror stable releases
+ if not self.stable:
+ return False
+
+ # If there is no publish date, we don't mirror
+ if self.published_at is None:
+ return False
+
+ # What time is it now?
+ now = datetime.datetime.now()
+
+ # We start mirroring 24 hours before the release
+ return self.published_at >= now - datetime.timedelta(hours=24)