Mercurial > libervia-backend
diff libervia/backend/plugins/plugin_pubsub_cache.py @ 4356:c9626f46b63e
plugin XEP-0059: Use Pydantic models for RSM.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 11 Apr 2025 18:19:28 +0200 |
parents | 0d7bb4df2343 |
children |
line wrap: on
line diff
--- a/libervia/backend/plugins/plugin_pubsub_cache.py Fri Apr 11 18:19:28 2025 +0200 +++ b/libervia/backend/plugins/plugin_pubsub_cache.py Fri Apr 11 18:19:28 2025 +0200 @@ -18,7 +18,7 @@ import time from datetime import datetime -from typing import Optional, List, Tuple, Dict, Any +from typing import Optional, List, Tuple, Dict, Any, cast from twisted.words.protocols.jabber import jid, error from twisted.words.xish import domish from twisted.internet import defer @@ -28,6 +28,7 @@ from libervia.backend.core import exceptions from libervia.backend.core.log import getLogger from libervia.backend.core.core_types import SatXMPPEntity +from libervia.backend.plugins.plugin_xep_0059 import XEP_0059, RSMRequest from libervia.backend.tools import xml_tools, utils from libervia.backend.tools.common import data_format from libervia.backend.memory.sqla import PubsubNode, PubsubItem, SyncState, IntegrityError @@ -285,8 +286,8 @@ ) await self.cache_items(client, pubsub_node, items) else: - rsm_p = self.host.plugins["XEP-0059"] - rsm_request = rsm.RSMRequest() + rsm_p = cast(XEP_0059, self.host.plugins["XEP-0059"]) + rsm_request = RSMRequest() cached_ids = set() while True: items, rsm_response = await client.pubsub_client.items( @@ -314,9 +315,9 @@ ) rsm_request = None break - rsm_request = rsm_p.get_next_request(rsm_request, rsm_response) if rsm_request is None: break + rsm_request = rsm_p.get_next_request(rsm_request, rsm_response) await self.host.memory.storage.update_pubsub_node_sync_state( pubsub_node, SyncState.COMPLETED @@ -656,7 +657,7 @@ f"({pubsub_node.sync_state_updated//60} minutes), " "cancelling it and retrying." ) - self.in_progress.pop[(service, node)].cancel() + self.in_progress.pop((service, node)).cancel() pubsub_node.sync_state = None await self.host.memory.storage.delete_pubsub_items(pubsub_node) else: