34 lines
985 B
Python
34 lines
985 B
Python
import re
|
|
|
|
class EmbedProvider:
|
|
name = "base"
|
|
pattern = None
|
|
|
|
def __init__(self, config=None):
|
|
self.config = config or {}
|
|
|
|
def match(self, content):
|
|
if not self.pattern:
|
|
return content
|
|
return re.sub(self.pattern, self.replace, content)
|
|
|
|
def replace(self, match):
|
|
raise NotImplementedError("Provider replace() missing!")
|
|
|
|
def wrap_template(self, provider, embed_html):
|
|
return f'''
|
|
<div class="embed-consent" data-provider="{provider}">
|
|
<div class="embed-overlay">
|
|
<div class="embed-box">
|
|
<h3>External Content</h3>
|
|
<p>This content is provided by <strong>{provider}</strong> and may set cookies.</p>
|
|
<button class="embed-accept" onclick="acceptProvider('{provider}')">
|
|
Load Content
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<template class="embed-template">
|
|
{embed_html}
|
|
</template>
|
|
</div>
|
|
''' |