diff --git a/src/snek/service/channel_message.py b/src/snek/service/channel_message.py index 81092ec..eaac124 100644 --- a/src/snek/service/channel_message.py +++ b/src/snek/service/channel_message.py @@ -1,6 +1,6 @@ from snek.system.service import BaseService from snek.system.template import whitelist_attributes - +import time class ChannelMessageService(BaseService): mapper_name = "channel_message" @@ -11,22 +11,30 @@ class ChannelMessageService(BaseService): async def maintenance(self): args = {} - async for message in self.find(): - updated_at = message["updated_at"] - message["is_final"] = True - html = message["html"] - await self.save(message) - - self.mapper.db["channel_message"].upsert( - { - "uid": message["uid"], - "updated_at": updated_at, - }, - ["uid"], - ) - if html != message["html"]: - print("Reredefined message", message["uid"]) + for message in self.mapper.db["channel_message"].find(): + print(message) + try: + message = await self.get(uid=message["uid"]) + updated_at = message["updated_at"] + message["is_final"] = True + html = message["html"] + await self.save(message) + self.mapper.db["channel_message"].upsert( + { + "uid": message["uid"], + "updated_at": updated_at, + }, + ["uid"], + ) + if html != message["html"]: + print("Reredefined message", message["uid"]) + + except Exception as ex: + time.sleep(0.1) + print(ex, flush=True) + + while True: changed = 0 async for message in self.find(is_final=False): @@ -91,9 +99,9 @@ class ChannelMessageService(BaseService): if not user: return {} - if not message["html"].startswith("