def get_message(self, msg_id): """ @param msg_id: @type msg_id: int @return: @rtype: Message """ if not msg_id: msg_id = self.msg_id with self.redis.pipeline() as trans: message = Message(0, '') trans.hgetall(self.__set_msg_string(msg_id)) message._values = trans.execute()[0] return message
def get_user_messages(self, user_id, start_range=0, end_range=-1): """ Returns the messages for a user within a range. Example: if start_range = 0, end_range = 9 then it returns the first 10 messages ever posted by this user (remember it's len - 1 like arrays) @param user_id: id of the user to get messages @type user_id: int @param start_range: by default, gets the first message ever posted @type start_range: int @param end_range: by default, gets up to the last message ever posted @type end_range: int @return: all messages within the given range for a user @rtype: Message """ msg_ids = self.redis.lrange( self._set_key_string('%s:%s' % (UserHelper._QUERY_STRING, user_id), User.POSTS_ID_KEY), start_range, end_range) messages = list() with self.redis.pipeline() as trans: for msg_id in msg_ids: trans.hgetall(self.__set_msg_string(msg_id)) messages = trans.execute() msg_list = [] for msg in messages: next_msg = Message(0, '') next_msg._values = msg msg_list.append(next_msg) return msg_list