Example #1
0
def user_page(environ, start_response):
    userpage = environ['wsgiorg.routing_args'][1]['userpage']
    user = environ['tiddlyweb.usersign']

    userpage = _decode_name(userpage)

    first_time_check(environ, user)

    store = environ['tiddlyweb.store']

    # If we try to go to a user page that doesn't exist,
    # just go to the home page. XXX maybe should 404 instead.
    try:
        userpage_user = User(userpage)
        userpage_user = store.get(userpage_user)
    except NoUserError:
        pass  # roles will be empty
    if 'MEMBER' not in userpage_user.list_roles():
        raise HTTP404('%s has no page' % userpage)

    user_friend_names = get_friends(store, user['name'])
    friend_names = sorted(get_friends(store, userpage))
    friends = []
    for name in friend_names:
        email = get_email_tiddler(store, name)
        email_md5 = md5(email.lower()).hexdigest()
        friends.append((name, email_md5))

    profile_tiddler = get_profile(store, user, userpage)
    profile_html = render_wikitext(profile_tiddler, environ)
    notice_tiddler = get_notice(environ)
    notice_html = render_wikitext(notice_tiddler, environ)
    kept_recipes = get_stuff(store, store.list_recipes(), user, userpage)
    kept_bags = get_stuff(store, store.list_bags(), user, userpage)
    kept_favorites = get_stuff(store, get_favorited_bags(store, userpage),
                               user)
    kept_bookmarks = get_stuff(store, get_bookmarked_recipes(store, userpage),
                               user)
    email = get_email_tiddler(store, userpage)
    email_md5 = md5(email.lower()).hexdigest()
    data = {
        'bags': kept_bags,
        'user_friends': user_friend_names,
        'friends': friends,
        'recipes': kept_recipes,
        'favorites': kept_favorites,
        'bookmarks': kept_bookmarks,
        'home': userpage,
        'profile': profile_html,
        'notice': {
            'html': notice_html,
            'modified': notice_tiddler.modified
        },
        'title': userpage,
        'email': email,
        'email_md5': email_md5,
        'user': get_user_object(environ)
    }

    return send_template(environ, 'profile.html', data)
Example #2
0
def user_page(environ, start_response):
    userpage = environ['wsgiorg.routing_args'][1]['userpage']
    user = environ['tiddlyweb.usersign']

    userpage = _decode_name(userpage)

    first_time_check(environ, user)

    store = environ['tiddlyweb.store']

    # If we try to go to a user page that doesn't exist,
    # just go to the home page. XXX maybe should 404 instead.
    try:
        userpage_user = User(userpage)
        userpage_user = store.get(userpage_user)
    except NoUserError:
        pass # roles will be empty
    if 'MEMBER' not in userpage_user.list_roles():
        raise HTTP404('%s has no page' % userpage)

    user_friend_names = get_friends(store, user['name'])
    friend_names = sorted(get_friends(store, userpage))
    friends = []
    for name in friend_names:
        email = get_email_tiddler(store, name)
        email_md5 = md5(email.lower()).hexdigest()
        friends.append((name, email_md5))

    profile_tiddler = get_profile(store, user, userpage)
    profile_html = render_wikitext(profile_tiddler, environ)
    notice_tiddler = get_notice(environ)
    notice_html = render_wikitext(notice_tiddler, environ)
    kept_recipes = get_stuff(store, store.list_recipes(), user, userpage)
    kept_bags = get_stuff(store, store.list_bags(), user, userpage)
    kept_favorites = get_stuff(store, get_favorited_bags(store, userpage),
            user)
    kept_bookmarks = get_stuff(store, get_bookmarked_recipes(store, userpage),
            user)
    email = get_email_tiddler(store, userpage)
    email_md5 = md5(email.lower()).hexdigest()
    data = {'bags': kept_bags,
            'user_friends': user_friend_names,
            'friends': friends,
            'recipes': kept_recipes,
            'favorites': kept_favorites,
            'bookmarks': kept_bookmarks,
            'home': userpage,
            'profile': profile_html,
            'notice': {'html': notice_html,
                'modified': notice_tiddler.modified},
            'title': userpage,
            'email': email,
            'email_md5': email_md5,
            'user': get_user_object(environ)}

    return send_template(environ, 'profile.html', data)
Example #3
0
def user_page(environ, start_response):
    userpage = environ["wsgiorg.routing_args"][1]["userpage"]
    user = environ["tiddlyweb.usersign"]

    userpage = _decode_name(userpage)

    first_time_check(environ, user)

    store = environ["tiddlyweb.store"]

    # If we try to go to a user page that doesn't exist,
    # just go to the home page. XXX maybe should 404 instead.
    try:
        userpage_user = User(userpage)
        userpage_user = store.get(userpage_user)
    except NoUserError:
        pass  # roles will be empty
    if "MEMBER" not in userpage_user.list_roles():
        raise HTTP404("%s has no page" % userpage)

    user_friend_names = get_friends(store, user["name"])
    friend_names = sorted(get_friends(store, userpage))
    friends = []
    for name in friend_names:
        email = get_email_tiddler(store, name)
        email_md5 = md5(email.lower()).hexdigest()
        friends.append((name, email_md5))

    profile_tiddler = get_profile(store, user, userpage)
    profile_html = render_wikitext(profile_tiddler, environ)
    notice_tiddler = get_notice(environ)
    notice_html = render_wikitext(notice_tiddler, environ)
    kept_recipes = get_stuff(store, store.list_recipes(), user, userpage)
    kept_bags = get_stuff(store, store.list_bags(), user, userpage)
    kept_favorites = get_stuff(store, get_favorited_bags(store, userpage), user)
    kept_bookmarks = get_stuff(store, get_bookmarked_recipes(store, userpage), user)
    email = get_email_tiddler(store, userpage)
    email_md5 = md5(email.lower()).hexdigest()
    data = {
        "bags": kept_bags,
        "user_friends": user_friend_names,
        "friends": friends,
        "recipes": kept_recipes,
        "favorites": kept_favorites,
        "bookmarks": kept_bookmarks,
        "home": userpage,
        "profile": profile_html,
        "notice": {"html": notice_html, "modified": notice_tiddler.modified},
        "title": userpage,
        "email": email,
        "email_md5": email_md5,
        "user": get_user_object(environ),
    }

    return send_template(environ, "profile.html", data)
Example #4
0
def add_friend(environ, start_response):
    user = get_user_object(environ)
    store = environ['tiddlyweb.store']
    ensure_user_bag(store, user['name'])
    new_friend = environ['tiddlyweb.query'].get('name', [''])[0]
    friends = get_friends(store, user['name'])
    if new_friend and new_friend not in friends:
        friends.append(new_friend)
    tiddler = store.get(Tiddler('friends', user['name']))
    tiddler.text = '\n'.join(friends)
    store.put(tiddler)
    raise HTTP303('%s/home' % server_base_url(environ))
Example #5
0
    def extract(self, environ, start_response):
        results = SimpleExtractor.extract(self, environ, start_response)
        if results:
            store = environ['tiddlyweb.store']
            user_dict = results
            username = user_dict['name']
            users_friends = get_friends(store, username)
            friended_user = get_followers(store, username)

            for friend in users_friends:
                user_dict['roles'].append('%s-is-friend' % friend)
            for friend in friended_user:
                user_dict['roles'].append('friend-of-%s' % friend)

            return user_dict
        return results
Example #6
0
    def extract(self, environ, start_response):
        results = SimpleExtractor.extract(self, environ, start_response)
        if results:
            store = environ['tiddlyweb.store']
            user_dict = results
            username = user_dict['name']
            users_friends = get_friends(store, username)
            friended_user = get_followers(store, username)

            for friend in users_friends:
                user_dict['roles'].append('%s-is-friend' % friend)
            for friend in friended_user:
                user_dict['roles'].append('friend-of-%s' % friend)

            return user_dict
        return results
Example #7
0
def add_friend(environ, start_response):
    user = get_user_object(environ)
    store = environ["tiddlyweb.store"]
    ensure_user_bag(store, user["name"])
    new_friend = environ["tiddlyweb.query"].get("name", [""])[0]
    friends = get_friends(store, user["name"])
    if new_friend and new_friend not in friends:
        friends.append(new_friend)
    tiddler = Tiddler("friends", user["name"])
    try:
        tiddler = store.get(tiddler)
    except NoTiddlerError:
        pass  # is okay if tiddler doesn't exist yet
    tiddler.text = "\n".join(friends)
    store.put(tiddler)
    raise HTTP303("%s/home" % server_base_url(environ))
Example #8
0
def add_friend(environ, start_response):
    user = get_user_object(environ)
    store = environ['tiddlyweb.store']
    ensure_user_bag(store, user['name'])
    new_friend = environ['tiddlyweb.query'].get('name', [''])[0]
    friends = get_friends(store, user['name'])
    if new_friend and new_friend not in friends:
        friends.append(new_friend)
    tiddler = Tiddler('friends', user['name'])
    try:
        tiddler = store.get(tiddler)
    except NoTiddlerError:
        pass  # is okay if tiddler doesn't exist yet
    tiddler.text = '\n'.join(friends)
    tiddler.modifier = user['name']
    store.put(tiddler)
    raise HTTP303('%s/home' % server_base_url(environ))
Example #9
0
def add_friend(environ, start_response):
    user = get_user_object(environ)
    store = environ['tiddlyweb.store']
    ensure_user_bag(store, user['name'])
    new_friend = environ['tiddlyweb.query'].get('name', [''])[0]
    friends = get_friends(store, user['name'])
    if new_friend and new_friend not in friends:
        friends.append(new_friend)
    tiddler = Tiddler('friends', user['name'])
    try:
        tiddler = store.get(tiddler)
    except NoTiddlerError:
        pass # is okay if tiddler doesn't exist yet
    tiddler.text = '\n'.join(friends)
    tiddler.modifier = user['name']
    store.put(tiddler)
    raise HTTP303('%s/home' % server_base_url(environ))