示例#1
0
def get_embed(url, max_width=None, finder=None):
    # Check database
    try:
        return Embed.objects.get(url=url, max_width=max_width)
    except Embed.DoesNotExist:
        pass

    # Get/Call finder
    if not finder:
        finder = get_default_finder()
    embed_dict = finder(url, max_width)

    # Make sure width and height are valid integers before inserting into database
    try:
        embed_dict['width'] = int(embed_dict['width'])
    except (TypeError, ValueError):
        embed_dict['width'] = None

    try:
        embed_dict['height'] = int(embed_dict['height'])
    except (TypeError, ValueError):
        embed_dict['height'] = None

    # Make sure html field is valid
    if 'html' not in embed_dict or not embed_dict['html']:
        embed_dict['html'] = ''

    # Create database record
    embed, created = Embed.objects.get_or_create(
        url=url,
        max_width=max_width,
        defaults=embed_dict,
    )

    # Save
    embed.last_updated = datetime.now()
    embed.save()

    return embed
示例#2
0
 def test_find_oembed_when_embedly_key_set(self):
     # WAGTAILEMBEDS_EMBED_FINDER always takes precedence
     self.assertEqual(get_default_finder(), wagtail_oembed)
示例#3
0
 def test_find_old_oembed(self):
     self.assertEqual(get_default_finder(), wagtail_oembed)
示例#4
0
 def test_find_oembed_from_module(self):
     self.assertEqual(get_default_finder(), wagtail_oembed)
示例#5
0
 def test_find_embedly(self):
     self.assertEqual(get_default_finder(), wagtail_embedly)
示例#6
0
 def test_defaults_to_embedly_when_embedly_key_set(self):
     self.assertEqual(get_default_finder(), wagtail_embedly)