def fmessages(request): """Return all messages from followed tags and users Data is a List of Messages ordered by date descending (newest first). GET parameters: sessionid -- session ID obtained at login offset -- (optional) number of messages to skip (used for paging) limit -- (optional) return only this number of messages Return values: code 0 -- data is a List of Messages """ login_required(request) offset = int(request.GET.get('offset', 0)) limit = int(request.GET.get('limit', 0)) messages, fullcount = interface.get_followed_messages(request.user, offset = offset, limit = limit) mlist = [] for m in messages: mlist.append({ 'id': m.id, 'user': {'id': m.user.id, 'name': m.user.username}, 'text': m.text, 'received': date_serialize(m.received), 'tags': [x.name for x in interface.get_tags_from_msg(m)], }) data = { 'rows': fullcount, 'messages': mlist } return my_response(make_response(0,data=data))
def get_msgs(request): """Return all messages Data is a List of Messages ordered by date descending (newest first). GET parameters: sessionid -- session ID obtained at login q -- (optional) search query (for syntax see backend.interface.get_messages()) offset -- (optional) number of messages to skip (used for paging) limit -- (optional) return only this number of messages Return values: code 0 -- data contains List of Messages code 2 -- invalid query (not implemented) """ login_required(request) offset = int(request.GET.get('offset', 0)) limit = int(request.GET.get('limit', 0)) query = request.GET.get('q') messages, fullcount = interface.get_messages(query = query, offset = offset, limit = limit) mlist = [] for m in messages: mlist.append({ 'id': m.id, 'user': {'id': m.user.id, 'name': m.user.username}, 'text': m.text, 'received': date_serialize(m.received), 'tags': [x.name for x in interface.get_tags_from_msg(m)], }) data = { 'rows': fullcount, 'messages': mlist } return my_response(make_response(0,data=data))
def post(request): """Post a message Posts a new message and links hashtags. Hashtag is determined by the following rules: - begins after a hash symbol "#", indifferent of preceding characters - contains (unicode) alphanumeric characters and underscore "_" - ends with last valid character contained in the hash Hashtags are compared case insensitive, but retain case of the first definition. Returns a List of Messages with only the new entry. GET parameters: sessionid -- session ID obtained at login GET or POST parameter: msg -- message text Return values: code 0: success code 1: message empty """ login_required(request) msg = request.POST.get('msg') if not msg: msg = request.GET.get('msg') if not msg: return my_response(make_response(1, 'Message empty.')) m = interface.post_message(request.user, msg) mlist = [{ 'id': m.id, 'user': {'id': m.user.id, 'user': m.user.username}, 'text': m.text, 'received': date_serialize(m.received), 'tags': [x.name for x in interface.get_tags_from_msg(m)], }] data = { 'rows': 1, 'messages': mlist } return my_response(make_response(0, 'Message posted.', data=data))