Source code for notion.block.embed

from notion.block.media import MediaBlock
from notion.maps import (
    field_map,
    prefixed_property_map,
    prefixed_field_map,
    property_map,
)
from notion.utils import get_embed_link, remove_signed_prefix_as_needed


[docs]class EmbedBlock(MediaBlock): """ Embed Block. """ _type = "embed" _str_fields = "source" display_source = prefixed_field_map("format.display_source") source = prefixed_property_map("source") height = field_map("format.block_height") width = field_map("format.block_width") full_width = field_map("format.block_full_width") page_width = field_map("format.block_page_width")
[docs] def set_source_url(self, url: str): self.source = remove_signed_prefix_as_needed(url) self.display_source = get_embed_link(self.source, self._client)
[docs]class BookmarkBlock(EmbedBlock): """ Bookmark Block. """ _type = "bookmark" _str_fields = "source", "title" bookmark_cover = field_map("format.bookmark_cover") bookmark_icon = field_map("format.bookmark_icon") description = property_map("description") link = property_map("link") title = property_map("title")
[docs]class AbstractBlock(EmbedBlock): """ Abstract Block for abstract.com """ _type = "abstract"
[docs]class FramerBlock(EmbedBlock): """ Framer Block for framer.com """ _type = "framer"
[docs]class TweetBlock(EmbedBlock): """ Tweet Block for twitter.com """ _type = "tweet"
[docs]class GistBlock(EmbedBlock): """ Gist Block for gist.github.com """ _type = "gist"
[docs]class DriveBlock(EmbedBlock): """ Drive Block for drive.google.com """ _type = "drive"
[docs]class FigmaBlock(EmbedBlock): """ Figma Block for figma.io """ _type = "figma"
[docs]class LoomBlock(EmbedBlock): """ Loom Block for loom.com """ _type = "loom"
[docs]class MiroBlock(EmbedBlock): """ Miro Block for miro.com """ _type = "miro"
[docs]class TypeformBlock(EmbedBlock): """ Typeform Block for typeform.com """ _type = "typeform"
[docs]class CodepenBlock(EmbedBlock): """ Codepen Block for codepen.io """ _type = "codepen"
[docs]class MapsBlock(EmbedBlock): """ Maps Block for maps.google.com """ _type = "maps"
[docs]class InvisionBlock(EmbedBlock): """ Invision Block for invisionapp.com """ _type = "invision"
[docs]class WhimsicalBlock(EmbedBlock): """ Whimsical Block for whimsical.com """ _type = "whimsical"