src/hdalab/management/commands/calculate_preview.py
author ymh <ymh.work@gmail.com>
Sun, 08 Mar 2015 14:53:52 +0100
changeset 492 19220d52bce7
child 693 09e00f38d177
permissions -rw-r--r--
add preview calculation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
492
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
'''
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
Created on Jan 30, 2012
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
@author: ymh
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
'''
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
import logging
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
from optparse import make_option
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
from django.conf import settings
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
from django.core.management.base import NoArgsCommand
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
from django.core.management.color import no_style
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
from hdabo.utils import show_progress
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
from hdalab.models.renkan import HdalabRenkan
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
from hdalab.services import renkan_capture_preview
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
logger = logging.getLogger(__name__)
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
class Command(NoArgsCommand):
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    '''
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    calculate renkan preview.
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    '''
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    options = ''
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    help = """calculate renkan preview."""
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    option_list = NoArgsCommand.option_list + (
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        make_option('--all',
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
            action='store_true',
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
            dest='all',
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
            default=False,
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
            help='force all tags to be updated, not only those not yet processed'),
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    )
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    def handle_noargs(self, **options):
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
                
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
        self.style = no_style()
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        self.all = options.get('all', False)
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        queryset = HdalabRenkan.objects.filter(state=HdalabRenkan.PUBLISHED)
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        if not self.all:
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
            queryset = queryset.filter(renkan__image = settings.DEFAULT_RENKAN_ICON)
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
        count = queryset.count()
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        writer = None
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        for i,hdalab_renkan in enumerate(queryset.select_related()):
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
            writer = show_progress(i+1, count, hdalab_renkan.renkan.title, 50, writer)
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
            if hdalab_renkan.renkan.image and hdalab_renkan.renkan.image != settings.DEFAULT_RENKAN_ICON:
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
                hdalab_renkan.renkan.image.delete(False)
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
                hdalab_renkan.renkan.image.delete_thumbnails()
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            renkan_capture_preview(hdalab_renkan)
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59