コード例 #1
0
ファイル: tasks.py プロジェクト: jaywink/socialhome
def get_precache_trim_size(user_activities, key):
    """
    Get user activity to decide what kind of trimming we need.

    :return: int
    """
    # Local imports since we load tasks before apps are loaded fully
    from socialhome.streams.streams import BaseStream
    from socialhome.users.models import User
    user_id = BaseStream.get_key_user_id(key)
    if not user_id:
        # Anonymous, trim as inactive
        return settings.SOCIALHOME_STREAMS_PRECACHE_INACTIVE_SIZE
    user_active = user_activities.get(user_id)
    if user_active is not None:
        # Trim according to activity
        return (
            settings.SOCIALHOME_STREAMS_PRECACHE_SIZE
            if user_active else settings.SOCIALHOME_STREAMS_PRECACHE_INACTIVE_SIZE
        )
    # Get user
    try:
        user = User.objects.get(id=user_id)
    except User.DoesNotExist:
        # Trim all
        return 0
    check_time = user.last_login if user.last_login else user.date_joined
    user_active = check_time >= now() - timedelta(days=settings.SOCIALHOME_STREAMS_PRECACHE_INACTIVE_DAYS)
    user_activities[user_id] = user_active
    # Trim according to activity
    return (
        settings.SOCIALHOME_STREAMS_PRECACHE_SIZE
        if user_active else settings.SOCIALHOME_STREAMS_PRECACHE_INACTIVE_SIZE
    )
コード例 #2
0
def get_precache_trim_size(user_activities, key):
    """
    Get user activity to decide what kind of trimming we need.

    :return: int
    """
    # Local imports since we load tasks before apps are loaded fully
    from socialhome.streams.streams import BaseStream
    from socialhome.users.models import User
    user_id = BaseStream.get_key_user_id(key)
    if not user_id:
        # Anonymous, trim as inactive
        return settings.SOCIALHOME_STREAMS_PRECACHE_INACTIVE_SIZE
    user_active = user_activities.get(user_id)
    if user_active is not None:
        # Trim according to activity
        return (settings.SOCIALHOME_STREAMS_PRECACHE_SIZE if user_active else
                settings.SOCIALHOME_STREAMS_PRECACHE_INACTIVE_SIZE)
    # Get user
    try:
        user = User.objects.get(id=user_id)
    except User.DoesNotExist:
        # Trim all
        return 0
    check_time = user.last_login if user.last_login else user.date_joined
    user_active = check_time >= now() - timedelta(
        days=settings.SOCIALHOME_STREAMS_PRECACHE_INACTIVE_DAYS)
    user_activities[user_id] = user_active
    # Trim according to activity
    return (settings.SOCIALHOME_STREAMS_PRECACHE_SIZE if user_active else
            settings.SOCIALHOME_STREAMS_PRECACHE_INACTIVE_SIZE)
コード例 #3
0
 def test_get_key_user_id(self, mock_queryset):
     self.assertEqual(BaseStream.get_key_user_id("spam:eggs:1"), 1)
     self.assertEqual(BaseStream.get_key_user_id("spam:eggs:1:throughs"), 1)
     self.assertEqual(BaseStream.get_key_user_id("spam:eggs:1:2"), 2)
     self.assertEqual(BaseStream.get_key_user_id("spam:eggs:1:2:throughs"), 2)
     self.assertIsNone(BaseStream.get_key_user_id("spam:eggs:anonymous"))
     self.assertIsNone(BaseStream.get_key_user_id("spam:eggs:anonymous:throughs"))