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
def test_find_oembed_when_embedly_key_set(self): # WAGTAILEMBEDS_EMBED_FINDER always takes precedence self.assertEqual(get_default_finder(), wagtail_oembed)
def test_find_old_oembed(self): self.assertEqual(get_default_finder(), wagtail_oembed)
def test_find_oembed_from_module(self): self.assertEqual(get_default_finder(), wagtail_oembed)
def test_find_embedly(self): self.assertEqual(get_default_finder(), wagtail_embedly)
def test_defaults_to_embedly_when_embedly_key_set(self): self.assertEqual(get_default_finder(), wagtail_embedly)