diff --git a/artel/artel/settings/base.py b/artel/artel/settings/base.py index 344dea3..443d2dc 100644 --- a/artel/artel/settings/base.py +++ b/artel/artel/settings/base.py @@ -256,3 +256,13 @@ LOGGING = { } PRODUCTS_CSV_PATH = os.environ.get("PRODUCTS_CSV_PATH", "products.csv") + + +WAGTAILEMBEDS_FINDERS = [ + { + "class": "wagtail.embeds.finders.oembed", + }, + { + "class": "blog.finders", + }, +] diff --git a/artel/blog/finders.py b/artel/blog/finders.py new file mode 100644 index 0000000..f35a885 --- /dev/null +++ b/artel/blog/finders.py @@ -0,0 +1,24 @@ +import re + +from wagtail.embeds.finders.oembed import OEmbedFinder + + +class PeerTubeFinder(OEmbedFinder): + + ENDPOINT = '/services/oembed' + + # TODO - this should be configurable from admin - TO be added with setup extension + PATTERNS = [ + re.compile( + r'^(https?://[^/]+)/w/.*' + ) + ] + + def _get_endpoint(self, url): + for pattern in self.PATTERNS: + m = pattern.match(url) + if m is not None: + return m.group(1) + self.ENDPOINT + + +embed_finder_class = PeerTubeFinder