class Hub(object): def __init__(self): # mapping of username -> Queue self.users = TimerDict() self.notices = [] def subscribe(self, username): if username not in self.users: queue = Queue() self.users.update({username: queue}) def cancel_subscribe(self, username): if username in self.users: self.users.pop(username) def add_notice(self, notice, username): self.subscribe(username) queue = self.users[username] queue.put_nowait(notice) self.notices.append(notice) def get_all_notice(self, username): return self.notices # def get_unread_notice(self, username): # pass def save_forever(self): pass
def __init__(self): # mapping of username -> Queue self.users = TimerDict() self.notices = []