コード例 #1
0
ファイル: views.py プロジェクト: beli-sk/koala
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))
コード例 #2
0
ファイル: views.py プロジェクト: beli-sk/koala
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))
コード例 #3
0
ファイル: views.py プロジェクト: beli-sk/koala
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))