Mercurial > public > sg101
diff oembed/models.py @ 581:ee87ea74d46b
For Django 1.4, rearranged project structure for new manage.py.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sat, 05 May 2012 17:10:48 -0500 |
parents | gpp/oembed/models.py@368d731af479 |
children | d3f6e9cb1f39 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oembed/models.py Sat May 05 17:10:48 2012 -0500 @@ -0,0 +1,57 @@ +""" +Models for the oembed application. +""" +import datetime + +from django.db import models + + +class Provider(models.Model): + """ + This model described an oEmbed provider. + """ + JSON, XML = range(2) + FORMAT_CHOICES = ( + (JSON, "json"), + (XML, "xml"), + ) + + name = models.CharField(max_length=128) + api_endpoint = models.URLField(max_length=255, verbose_name='API endpoint') + url_regex = models.CharField(max_length=255, verbose_name='URL regex') + format = models.IntegerField(choices=FORMAT_CHOICES) + + def __unicode__(self): + return self.name + + +class Oembed(models.Model): + """ + This model represents stored embedded content retrieved from an oEmbed + provider. + """ + PHOTO, VIDEO, LINK, RICH = range(4) + MEDIA_TYPE_CHOICES = ( + (PHOTO, "photo"), + (VIDEO, "video"), + (LINK, "link"), + (RICH, "rich"), + ) + + url = models.URLField(max_length=255, db_index=True) + type = models.IntegerField(choices=MEDIA_TYPE_CHOICES) + title = models.CharField(max_length=255, blank=True, default='') + width = models.IntegerField() + height = models.IntegerField() + html = models.TextField() + date_added = models.DateTimeField() + + def __unicode__(self): + return self.title or self.url + + def save(self, *args, **kwargs): + if not self.pk: + self.date_added = datetime.datetime.now() + + super(Oembed, self).save(*args, **kwargs) +