poster cache
This commit is contained in:
parent
2cba80d79c
commit
db7175cf26
1 changed files with 25 additions and 0 deletions
|
@ -1,12 +1,16 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
import os.path
|
import os.path
|
||||||
|
import hashlib
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from django.core.files.base import ContentFile
|
||||||
|
|
||||||
from oxdata.lookup.models import MovieId
|
from oxdata.lookup.models import MovieId
|
||||||
|
|
||||||
|
|
||||||
class Poster(models.Model):
|
class Poster(models.Model):
|
||||||
created = models.DateTimeField(auto_now_add=True)
|
created = models.DateTimeField(auto_now_add=True)
|
||||||
modified = models.DateTimeField(auto_now=True)
|
modified = models.DateTimeField(auto_now=True)
|
||||||
|
@ -14,4 +18,25 @@ class Poster(models.Model):
|
||||||
movie_id = models.ForeignKey(MovieId, related_name='poster')
|
movie_id = models.ForeignKey(MovieId, related_name='poster')
|
||||||
url = models.CharField(max_length=255)
|
url = models.CharField(max_length=255)
|
||||||
|
|
||||||
|
def poster_path(instance, filename):
|
||||||
|
id = instance.serviceId
|
||||||
|
return os.path.join('poster', instance.service, id[:1], id[:4], id, filename)
|
||||||
|
|
||||||
|
class PosterCache(models.Model):
|
||||||
|
created = models.DateTimeField(auto_now_add=True)
|
||||||
|
modified = models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
movie_id = models.ForeignKey(MovieId, related_name='postercache')
|
||||||
|
url = models.CharField(max_length=255)
|
||||||
|
service = models.CharField(max_length=255)
|
||||||
|
serviceId = models.CharField(max_length=42)
|
||||||
|
image = models.ImageField(max_length=255, upload_to=poster_path)
|
||||||
|
|
||||||
|
def download(self):
|
||||||
|
if not self.image:
|
||||||
|
import oxlib.net
|
||||||
|
name = "%s.jpg" % hashlib.sha1(self.url).hexdigest()
|
||||||
|
data = oxlib.net.getUrl(self.url)
|
||||||
|
|
||||||
|
self.image.save(name, ContentFile(data))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue