class BL:
"""Plain object to keep track of block list items.
Only used in RTBL plugin."""
+ #: Initial seed to ease testing
+ init = {}
def __init__(self, initial_bl):
- self.sha256_jids: Dict[str, Optional[str]] = {}
+ self.sha256_jids: Dict[str, Optional[str]] = dict(BL.init)
for item in initial_bl:
self.insert_item(item)
self.blocklist = BL(node_blocklist['pubsub']['items'])
mess = f'Got {len(self.blocklist)} items in block list'
self.log.info(mess)
+ # Are current participants in the block list
+ for jid in list(self.participants):
+ await self.rtbl_ban(jid)
async def _create(self):
"""Try to create node"""
self.log.debug('Retracted item %s from %s' % (
msg['pubsub_event']['items']['retract']['id'],
msg['pubsub_event']['items']['node']))
- self.blocklist.retract_item(msg['pubsub_event']['items']['retract']['id'])
+ self.blocklist.retract_item(msg['pubsub_event']['items']['retract'])
async def _publish(self, msg):
"""Handler receiving a publish item event."""
else:
self.log.debug('No item content')
return
- self.blocklist.insert_item(msg['pubsub_event']['items']['item']['id'])
+ self.blocklist.insert_item(msg['pubsub_event']['items']['item'])
# Are current participants in the block list
- for jid in self.participants:
- self.rtbl_ban(jid)
+ for jid in list(self.participants):
+ await self.rtbl_ban(jid)
async def rtbl_ban(self, jid):
"""Ban jid in RTBL"""