def put(self, pid=None, uid=None, **kwargs): """ Edit a post. Takes a uid or id This is a wee bit messy? """ self.pid, self.uid = key(pid, self.kind) # this is likely unsafe, but seems to be a good start for atr in kwargs.keys(): R.set("%s:%s:%s" % (self.kind, self.pid, atr), kwargs[atr]) modtime = datetime.datetime.now() R.rpush("%s:%s:modified" % (self.kind, self.pid), modtime) return True
def post(self, container=None): """ Metadata """ self.uid = uuid.uuid1() assert unique(self.uid) self.atrs = {'uid': uuid.uuid1(), self.incr: R.get(POSTINCR), 'kind': self.kind, 'publishtime': datetime.datetime.now()} for key in self.atrs.keys(): R.setnx("%s:%s:%s" % (self.kind, self.incr, key), self.atrs[key]) # stuff forgetting, errr, for getting. R.sadd(DEXREF, self.uid) # Global reference R.sadd(TYPELST, self.kind) # add to container if not isinstance(container, str) and not container==None: container = "_meta" R.rpush(container, "%s:%s" % (self.kind, self.incr)) R.rpush(RANKREF, "%s:%s" % (self.kind, self.incr)) R.zadd("%s:%s" % (RANKREF, self.kind), "%s:%s" % (self.kind,\ self.incr), self.rank) R.rpush("global:docs", "%s:%s" % (self.incr, self.uid)) return True