update_tractate_images.py 1.43 KB
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from datetime import datetime
from django.core.management import BaseCommand
from gm_upload.utils.image_utils import Picture
# from gm_upload import get_image_base_info

from talos.models.tractate import TractateImages


class Command(BaseCommand):
    """
    TractateImages 同步宽和高
    """
    # record_file = '/data/log/mimas/app/update_tractate_images.log'

    def handle(self, *args, **kwargs):
        record_file = '/data/log/mimas/app/update_tractate_images.log'
        with open(record_file, 'w') as f:
            f.write('start')
            # time_index = datetime.strptime('2019-04-26 00:00:00', "%y-%m-%d %H:%M:%S")
            pictures = TractateImages.objects.filter(width=0)
            f.write('count: {}'.format(pictures.count()))
            for item in pictures:
                try:
                    url = item.image_url
                    picture_info = Picture.get_image_base_info(url)
                    if not picture_info.get('width') or not picture_info.get('height'):
                        f.write("Can't find picture info, url: {}".format(url))
                    item.width = picture_info['width']
                    item.height = picture_info['height']
                    item.save()
                    f.write('Update success, url: {}'.format(url))
                except:
                    f.write("Update failed, url: {}".format(url))

            f.write('end')