Example #1
0
def userdata_cache(user, field=None, size=100):
    cache_key = 'user_%s_%s' % (user, size)

    if cache_key in user_keys:
        data = user_keys[cache_key]
    else:
        data = cache.get(cache_key)

    if data:
        if field is not None:
            return data[field]

        return data
    else:
        avatar = daddy_avatar.get_avatar(user, size=size)
        username = get_username(user)

        value = [avatar, username]
        user_keys[cache_key] = value
        cache.set(cache_key, value, USERDATA_TIMEOUT)

        if field is not None:
            return value[field]

        return value

    return []
Example #2
0
    def dehydrate(self, bundle):
        id = bundle.data['id']
        o_image = bundle.data['image']
        try:
            im = get_thumbnail(o_image, "300x300", quality=99, upscale=False)
        except:
            im = ""

        if im:
            bundle.data['thumbnail'] = im
            bundle.data['hw'] = "%sx%s" % (im.height, im.width)

        if self.cur_user:
            if Likes.objects.filter(post_id=bundle.data['post_id'],
                                    user=self.cur_user).count():
                bundle.data['like_with_user'] = True

        post_owner_id = bundle.data['post_owner_id']

        bundle.data['post_owner_avatar'] = userdata_cache(post_owner_id, CACHE_AVATAR)
        bundle.data['post_owner_user_name'] = userdata_cache(post_owner_id, CACHE_USERNAME)

        actors = Notif_actors.objects.filter(notif=id).order_by('id')[:10]
        ar = []
        for lk in actors:
            ar.append(
                [
                    lk.actor.id,
                    get_username(lk.actor),
                    daddy_avatar.get_avatar(lk.actor, size=100)
                ]
            )

        bundle.data['actors'] = ar

        return bundle