annotate oembed/models.py @ 749:b6e98717690b

For #59, add user photo de-duplication for uploads.
author Brian Neal <bgneal@gmail.com>
date Mon, 30 Dec 2013 15:05:43 -0600
parents ee87ea74d46b
children d3f6e9cb1f39
rev   line source
bgneal@285 1 """
bgneal@285 2 Models for the oembed application.
bgneal@285 3 """
bgneal@285 4 import datetime
bgneal@285 5
bgneal@285 6 from django.db import models
bgneal@285 7
bgneal@285 8
bgneal@285 9 class Provider(models.Model):
bgneal@285 10 """
bgneal@285 11 This model described an oEmbed provider.
bgneal@285 12 """
bgneal@285 13 JSON, XML = range(2)
bgneal@285 14 FORMAT_CHOICES = (
bgneal@285 15 (JSON, "json"),
bgneal@285 16 (XML, "xml"),
bgneal@285 17 )
bgneal@285 18
bgneal@285 19 name = models.CharField(max_length=128)
bgneal@572 20 api_endpoint = models.URLField(max_length=255, verbose_name='API endpoint')
bgneal@285 21 url_regex = models.CharField(max_length=255, verbose_name='URL regex')
bgneal@285 22 format = models.IntegerField(choices=FORMAT_CHOICES)
bgneal@285 23
bgneal@285 24 def __unicode__(self):
bgneal@285 25 return self.name
bgneal@285 26
bgneal@285 27
bgneal@285 28 class Oembed(models.Model):
bgneal@285 29 """
bgneal@285 30 This model represents stored embedded content retrieved from an oEmbed
bgneal@285 31 provider.
bgneal@285 32 """
bgneal@285 33 PHOTO, VIDEO, LINK, RICH = range(4)
bgneal@285 34 MEDIA_TYPE_CHOICES = (
bgneal@285 35 (PHOTO, "photo"),
bgneal@285 36 (VIDEO, "video"),
bgneal@285 37 (LINK, "link"),
bgneal@285 38 (RICH, "rich"),
bgneal@285 39 )
bgneal@285 40
bgneal@572 41 url = models.URLField(max_length=255, db_index=True)
bgneal@285 42 type = models.IntegerField(choices=MEDIA_TYPE_CHOICES)
bgneal@285 43 title = models.CharField(max_length=255, blank=True, default='')
bgneal@285 44 width = models.IntegerField()
bgneal@285 45 height = models.IntegerField()
bgneal@285 46 html = models.TextField()
bgneal@285 47 date_added = models.DateTimeField()
bgneal@285 48
bgneal@285 49 def __unicode__(self):
bgneal@285 50 return self.title or self.url
bgneal@285 51
bgneal@285 52 def save(self, *args, **kwargs):
bgneal@285 53 if not self.pk:
bgneal@285 54 self.date_added = datetime.datetime.now()
bgneal@285 55
bgneal@285 56 super(Oembed, self).save(*args, **kwargs)
bgneal@285 57