From 1a78ab15eae50577c4b78bd1d935fb2bf9f23a14 Mon Sep 17 00:00:00 2001 From: Ratnadeep Debnath Date: Sun, 10 Jul 2016 20:30:28 +0530 Subject: [PATCH] Added network publisher. --- ircb/publishers/__init__.py | 9 +++++++-- ircb/publishers/networks.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 ircb/publishers/networks.py diff --git a/ircb/publishers/__init__.py b/ircb/publishers/__init__.py index 98c3052..a6b56fb 100644 --- a/ircb/publishers/__init__.py +++ b/ircb/publishers/__init__.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- from ircb.publishers.logs import MessageLogPublisher +from ircb.publishers.networks import NetworkPublisher if __name__ == '__main__': import asyncio @@ -15,7 +16,11 @@ except: print("Usage: __init__.py '' '' ''") sys.exit(1) - publisher = MessageLogPublisher(hostname, roomname, int(user_id)) - publisher.run() + message_log_pub = MessageLogPublisher(hostname, roomname, int(user_id)) + message_log_pub.run() + + network_pub = NetworkPublisher(int(user_id)) + network_pub.run() + loop = asyncio.get_event_loop() loop.run_forever() diff --git a/ircb/publishers/networks.py b/ircb/publishers/networks.py new file mode 100644 index 0000000..de924da --- /dev/null +++ b/ircb/publishers/networks.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- + +from ircb.storeclient import NetworkStore + +from .base import BasePublisher + + +class NetworkPublisher(BasePublisher): + + name = 'networks' + store = NetworkStore + + def __init__(self, user_id): + super().__init__() + self.user_id = user_id + + @property + def id(self): + return '{name}::{user_id}'.format( + name=self.name, user_id=self.user_id) + + def fetch(self): + results = yield from NetworkStore.get({ + 'query': { + 'user_id': self.user_id + } + }, raw=True) + return results + + def skip_create(self, data): + return self.skip_update(data) + + def skip_update(self, data): + return data['user_id'] != self.user_id