diff --git a/sat/plugins/plugin_comp_ap_gateway/pubsub_service.py b/sat/plugins/plugin_comp_ap_gateway/pubsub_service.py index a71ac65e..d010a959 100644 --- a/sat/plugins/plugin_comp_ap_gateway/pubsub_service.py +++ b/sat/plugins/plugin_comp_ap_gateway/pubsub_service.py @@ -478,17 +478,19 @@ class APPubsubService(rsm.PubSubService): f"unmanaged subscription state: {subscription.state}" ) - req_actor_id, recip_actor_id, inbox = await self.getAPActorIdsAndInbox( - requestor, service - ) + if nodeIdentifier == self.apg._m.namespace: + # if we subscribe to microblog node, we follow the corresponding account + req_actor_id, recip_actor_id, inbox = await self.getAPActorIdsAndInbox( + requestor, service + ) - data = self.apg.createActivity("Follow", req_actor_id, recip_actor_id) + data = self.apg.createActivity("Follow", req_actor_id, recip_actor_id) - resp = await self.apg.signAndPost(inbox, req_actor_id, data) - if resp.code >= 300: - text = await resp.text() - raise error.StanzaError("service-unavailable", text=text) - return pubsub.Subscription(nodeIdentifier, requestor, "subscribed") + resp = await self.apg.signAndPost(inbox, req_actor_id, data) + if resp.code >= 300: + text = await resp.text() + raise error.StanzaError("service-unavailable", text=text) + return pubsub.Subscription(nodeIdentifier, requestor, "subscribed") @ensure_deferred async def unsubscribe(self, requestor, service, nodeIdentifier, subscriber):