コード例 #1
0
ファイル: views.py プロジェクト: beli-sk/koala
def userinfo(request):
    """Info about a user

    Return info of current logged in user, or specified user.

    GET parameters:
    sessionid -- session ID obtained at login
    userid -- (optional) user ID
    fwed -- (optional) set to 1 to also return followed users
    fwers -- (optional) set to 1 to also return followers
    ftags -- (optional) set to 1 to also return followed tags
    
    Return values:
    code 0: success, data contains keys:
        user -- User detail object
        fwed -- (optional) followed users (List of Users)
        fwers -- (optional) followers (List of Users)
        ftags -- (optional) followed tags (List of Tags)
    """
    login_required(request)
    user_id = request.GET.get('userid')
    if user_id:
        user = interface.get_user_by_id(user_id)
    else:
        user = request.user
    data = {}
    data['user'] = {
        'name': user.username,
        'id': user.id,
        'email': user.email,
        'full_name': user.userprofile.full_name,
        }
    if request.GET.get('fwed'):
        qs = interface.get_followed_users(user)
        users = [{"id": x.id, "name": x.username} for x in qs]
        data['fwed'] = {"rows": len(users), "users": users}
    if request.GET.get('fwers'):
        qs = interface.get_followers(user)
        users = [{"id": x.id, "name": x.username} for x in qs]
        data['fwers'] = {"rows": len(users), "users": users}
    if request.GET.get('ftags'):
        qs = interface.get_followed_tags(user)
        tags = [x.name for x in qs]
        data['ftags'] = {"rows": len(tags), "tags": tags}
    return my_response(make_response(0, data=data))
コード例 #2
0
ファイル: views.py プロジェクト: beli-sk/koala
def unfollow(request):
    """Unfollow a user
    
    The logged in user will stop following the user given as parameter
    
    GET parameters:
    sessionid -- session ID obtained at login
    follow_id -- ID of user to unfollow

    Return values:
    code 0: success
    code 1: no query given
    code 2: (unused) invalid query
    """
    login_required(request)
    follow_id = request.GET.get('follow_id')
    follow_user = interface.get_user_by_id(follow_id)
    interface.unfollow_user(request.user, follow_user)
    return my_response(make_response(0, 'You are no longer following @%s.' % follow_user.username))
コード例 #3
0
ファイル: views.py プロジェクト: beli-sk/koala
def follow(request):
    """Follow a user
    
    The logged in user will start following the user given as parameter.
    Does not complain when following already followed user.
    
    GET parameters:
    sessionid -- session ID obtained at login
    follow_id -- ID of user to follow

    Return values:
    code 0: success, data is a List of Users with one element
    """
    login_required(request)
    follow_id = request.GET.get('follow_id')
    follow_user = interface.get_user_by_id(follow_id)
    interface.follow_user(request.user, follow_user)
    users = [{"id": follow_user.id, "name": follow_user.username}]
    return my_response(make_response(0,
        'You are now following @%s.' % follow_user.username,
        data={"rows": len(users), "users": users}))
コード例 #4
0
ファイル: views.py プロジェクト: beli-sk/koala
def ftags(request):
    """List followed tags

    Tags followed by current logged in user.

    GET parameters:
    sessionid -- session ID obtained at login
    userid -- (optional) ID of user to list his followed tags

    Return values:
    code 0: success, data contains List of Tags
    """
    login_required(request)
    user_id = request.GET.get('userid')
    if user_id:
        user = interface.get_user_by_id(user_id)
    else:
        user = request.user
    qs = interface.get_followed_tags(user)
    tags = [x.name for x in qs]
    return my_response(make_response(0, data = {
        "rows": len(tags), "tags": tags}))
コード例 #5
0
ファイル: views.py プロジェクト: beli-sk/koala
def followers(request):
    """List followers of a user

    List users following a specified (or current) user.

    GET parameters:
    sessionid -- session ID obtained at login
    userid -- (optional) ID of user to list his followers

    Return values:
    code 0: success, data contains List of Users
    """
    login_required(request)
    user_id = request.GET.get('userid')
    if user_id:
        user = interface.get_user_by_id(user_id)
    else:
        user = request.user
    qs = interface.get_followers(user)
    users = [{"id": x.id, "name": x.username} for x in qs]
    return my_response(make_response(0, data = {
        "rows": len(users), "users": users}))