コード例 #1
0
ファイル: models.py プロジェクト: kabirh/riotvine
 def friendset(self):
     """Return a set of user_profile ids of this user's friends"""
     key = u"friendset:%s" % key_suffix('friends', self.pk)
     key = short_key(key)
     value = cache.cache.get(key, None)
     if value is None:
         value = set(Friendship.objects.get_friendships(user_profile=self).values_list('user_profile2_id', flat=True))
         cache.cache.set(key, value)
     return value
コード例 #2
0
ファイル: eventtags.py プロジェクト: kabirh/riotvine
def event_friends(event, user_profile):
    ekey = key_suffix('attendees', event.pk)
    ukey = key_suffix('friends', user_profile.pk)
    key = short_key(u"event_friends:%s:%s" % (ekey, ukey))
    value = cache.cache.get(key, None)
    if value is None:
        value = ""
        friends = user_profile.friendset
        if friends:
            attendees = event.attendeeset
            fr_at = friends & attendees # friends who are also attendees of this event
            if fr_at:
                n = len(fr_at)
                if n == 1:
                    value = "| 1 Friend"
                else:
                    value = u"| %d Friends" % n
        cache.cache.set(key, value)
    return value
コード例 #3
0
ファイル: eventtags.py プロジェクト: kabirh/riotvine
def event_friends(event, user_profile):
    ekey = key_suffix('attendees', event.pk)
    ukey = key_suffix('friends', user_profile.pk)
    key = short_key(u"event_friends:%s:%s" % (ekey, ukey))
    value = cache.cache.get(key, None)
    if value is None:
        value = ""
        friends = user_profile.friendset
        if friends:
            attendees = event.attendeeset
            fr_at = friends & attendees  # friends who are also attendees of this event
            if fr_at:
                n = len(fr_at)
                if n == 1:
                    value = "| 1 Friend"
                else:
                    value = u"| %d Friends" % n
        cache.cache.set(key, value)
    return value
コード例 #4
0
ファイル: models.py プロジェクト: kabirh/riotvine
 def get_friend_follower_count(self):
     key = u"friend-follower-stats:%s" % key_suffix('friends', self.pk)
     key = short_key(key)
     value = cache.cache.get(key, None)
     if value is None:
         v1 = Friendship.objects.select_related('user_profile2__user').filter(user_profile1=self, user_profile2__user__is_active=True).count()
         v2 = Follower.objects.select_related('follower__user').filter(followee=self, follower__user__is_active=True).count()
         value = (v1, v2)
         cache.cache.set(key, value, 300)
     return value
コード例 #5
0
ファイル: models.py プロジェクト: kabirh/riotvine
 def blacklist_set(self):
     """Return a set of blacklisted screen names"""
     key = u"twitter-" + key_suffix("blacklist", 0, expire_time=3600*24*30)
     key = short_key(key)
     value = cache.cache.get(key, None)
     if value is None:
         value= set()
         for v in self.values_list('names', flat=True):
             for n in v.lower().split():
                 value.add(n.strip())
         cache.cache.set(key, value, 3600*24*30)
     return value
コード例 #6
0
ファイル: models.py プロジェクト: kabirh/riotvine
 def blacklist_set(self):
     """Return a set of blacklisted screen names"""
     key = u"twitter-" + key_suffix(
         "blacklist", 0, expire_time=3600 * 24 * 30)
     key = short_key(key)
     value = cache.cache.get(key, None)
     if value is None:
         value = set()
         for v in self.values_list('names', flat=True):
             for n in v.lower().split():
                 value.add(n.strip())
         cache.cache.set(key, value, 3600 * 24 * 30)
     return value
コード例 #7
0
ファイル: twittertags.py プロジェクト: kabirh/riotvine
def twitter_profile_url(user):
    """Return Twitter profile URL for the given user"""
    from twitter.models import TwitterProfile

    sfx = key_suffix(u"twitter_profile", user.pk)
    key = short_key(u"twitter_profile_url:%s" % sfx)
    value = cache.cache.get(key, None)
    if value is None:
        p = get_or_none(TwitterProfile.objects.active(), user_profile__user__pk=user.pk)
        if p:
            value = u"http://twitter.com/%s" % p.screen_name
        else:
            value = user.get_profile().get_absolute_url()
        cache.cache.set(key, value)
    return value
コード例 #8
0
ファイル: twittertags.py プロジェクト: kabirh/riotvine
def twitter_profile_url(user):
    """Return Twitter profile URL for the given user"""
    from twitter.models import TwitterProfile
    sfx = key_suffix(u'twitter_profile', user.pk)
    key = short_key(u'twitter_profile_url:%s' % sfx)
    value = cache.cache.get(key, None)
    if value is None:
        p = get_or_none(TwitterProfile.objects.active(),
                        user_profile__user__pk=user.pk)
        if p:
            value = u'http://twitter.com/%s' % p.screen_name
        else:
            value = user.get_profile().get_absolute_url()
        cache.cache.set(key, value)
    return value
コード例 #9
0
ファイル: eventtags.py プロジェクト: kabirh/riotvine
def event_interested_users(context, event, user_profile=None, limit="9"):
    ctx = {}
    try:
        limit = int(limit)
    except ValueError:
        limit = 9
    ctx['limit'] = limit
    sfx = key_suffix('attendees', event.pk)
    key = u"city-interested:%s:%s" % (sfx, limit)
    interested = cache.cache.get(key, None)
    if interested is None:
        interested = event.get_interested(limit=limit, order_by="?")
        # TODO: give preference to logged in user's friends    
        cache.cache.set(key, interested, 600)
    ctx['interested'] = interested
    ctx['show_more'] = len(ctx['interested']) >= limit
    ctx['MEDIA_URL'] = context['MEDIA_URL']
    request = context.get('request', None)
    if request:
        ctx['mobile'] = request.mobile
    ctx['e'] = event
    return ctx
コード例 #10
0
ファイル: eventtags.py プロジェクト: kabirh/riotvine
def event_interested_users(context, event, user_profile=None, limit="9"):
    ctx = {}
    try:
        limit = int(limit)
    except ValueError:
        limit = 9
    ctx['limit'] = limit
    sfx = key_suffix('attendees', event.pk)
    key = u"city-interested:%s:%s" % (sfx, limit)
    interested = cache.cache.get(key, None)
    if interested is None:
        interested = event.get_interested(limit=limit, order_by="?")
        # TODO: give preference to logged in user's friends
        cache.cache.set(key, interested, 600)
    ctx['interested'] = interested
    ctx['show_more'] = len(ctx['interested']) >= limit
    ctx['MEDIA_URL'] = context['MEDIA_URL']
    request = context.get('request', None)
    if request:
        ctx['mobile'] = request.mobile
    ctx['e'] = event
    return ctx