break
# The list has now been updated
- self.updated_at = sqlmodel.func.current_timestamp()
+ await self.updated()
# Updated At
updated_at : datetime.datetime = sqlmodel.Field(
sa_column_kwargs = {"server_default" : sqlmodel.text("CURRENT_TIMESTAMP")}
)
+ async def updated(self, optimized=False):
+ """
+ Marks the list as updated
+ """
+ self.updated_at = sqlmodel.func.current_timestamp()
+
+ # Also mark as optimized
+ if optimized:
+ self.optimized_at = sqlmodel.func.current_timestamp()
+
+ # Ensure that all timestamps have been manifested
+ await self.backend.db.flush_and_refresh(self)
+
def zone(self, prefix=None):
s = (
self.slug, prefix, "ipfire.org.",
log.info("Domain %s has been added to %s" % (domain, self))
# The list has now been updated
- self.updated_at = sqlmodel.func.current_timestamp()
+ await self.updated()
return domain
# Update the timestamp if at least one source has actually fetched new data
if updated:
- self.updated_at = sqlmodel.func.current_timestamp()
+ await self.updated()
# Optimize the list
await self.optimize(update_stats=False)
"""
Optimizes this list
"""
- # Ensure that all timestamps have been manifested
- await self.backend.db.flush_and_refresh(self)
-
# Don't optimize if the list has not been changed
if self.updated_at <= self.optimized_at:
log.debug("%s does not require optimization..." % self)
log.info(_("Identified %s redunduant domain(s)") % len(redundant_names))
log.info(_("De-listed %s domain(s)") % len(delisted_names))
- # Mark as optimized
- self.updated_at = self.optimized_at = sqlmodel.func.current_timestamp()
+ # Mark as updated and optimized
+ await self.updated(optimized=True)
# Update all stats afterwards
if update_stats: