def get(self, uid=None): """ 获取通知,传入 uid: str 来指定获取用于指定用户的通知,缺省 uid=None 获取所有通知 """ notices = [] for r in self.collection.find() or []: n = Notice().from_dict(r) if n.is_expired(): self.drop_expired(n) if uid == None or n.is_for_user(uid): notices.append(n.dumps()) return notices
def drop_expired(self, notice=None): """ 调用 `nu.drop_expired()` 将清除数据库中所有过期的通知 调用 `nu.drop_expired(notice)` 将删除数据库中 nid = notice.nid 的一条通知,(这是用来支持 `nu.drop_expired()` 的工作的,也可以用来删除通知,但不推荐使用) """ if isinstance(notice, Notice): self.collection.delete_one({"nid": notice.nid}) else: for r in self.collection.find() or []: n = Notice().from_dict(r) if n.is_expired(): self.drop_expired(n)