Mercurial > public > sg101
annotate gpp/oembed/models.py @ 580:c525f3e0b5d0
Use the static() function to serve MEDIA files in development.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sat, 05 May 2012 15:08:07 -0500 |
parents | 368d731af479 |
children |
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 |