Пример #1
0
    def render_html(self):
        """Render the asset as HTML"""
        output = []
        output.append('<figure>')
        try:
            # First try to embed the resource via oEmbed
            resource = oembed.site.embed(self.url, format='json')
            resource_data = resource.get_data()
            if resource_data['type'] in ('rich', 'video'):
                output.append(resource_data['html'])
            elif resource_data['type'] == 'photo':
                output.append(self.render_img_html(resource_data['url']))
            elif resource_data['type'] == 'link':
                output.append(self.render_link_html())
            else:
                raise AssertionError(
                    "oEmbed provider returned invalid type")
                
        except OEmbedMissingEndpoint:
            try:
                # Next try to embed things ourselves
                html = EmbedableResource.get_html(self.url)
                output.append(html)
            except UrlNotMatched:
                # If all else fails, just show an image or a link
                if self.type == 'image':
                    output.append(self.render_img_html())
                else:
                    output.append(self.render_link_html())

        full_caption_html = self.full_caption_html()
        if full_caption_html:
	    output.append(full_caption_html)
        output.append('</figure>')

        return mark_safe(u'\n'.join(output))
Пример #2
0
 def test_get_google_spreadsheet_embed(self):
     url = 'https://docs.google.com/spreadsheet/pub?key=0As2exFJJWyJqdDhBejVfN1RhdDg2b0QtYWR4X2FTZ3c&output=html' 
     expected = "<iframe width='500' height='300' frameborder='0' src='%s&widget=true'></iframe>" % url
     self.assertEqual(EmbedableResource.get_html(url), expected)