Spaces:
Running
Running
fix: share original article URL (has og:image) instead of hash URL
Browse files- app_wrapper.py +4 -9
app_wrapper.py
CHANGED
|
@@ -184,13 +184,6 @@ def _build_tiktok_html(videos, current_url, source_label):
|
|
| 184 |
badge_cls = "bdp-badge-24h" if source_label == "24h" else "bdp-badge-bdp"
|
| 185 |
is_shorts = source_label == "24h"
|
| 186 |
|
| 187 |
-
# og:image meta for share preview
|
| 188 |
-
first_img = ""
|
| 189 |
-
if ordered:
|
| 190 |
-
fi = app.safe_url(ordered[0].get("img") or ordered[0].get("poster",""))
|
| 191 |
-
ft = app.esc(ordered[0].get("title",""))
|
| 192 |
-
first_img = f'<div style="display:none"><meta itemprop="image" content="{fi}"><meta itemprop="name" content="{ft}"></div>'
|
| 193 |
-
|
| 194 |
slides = []
|
| 195 |
for vi, v in enumerate(ordered):
|
| 196 |
poster = app.safe_url(v.get("poster",""))
|
|
@@ -198,7 +191,9 @@ def _build_tiktok_html(videos, current_url, source_label):
|
|
| 198 |
vsrc = v["src"]
|
| 199 |
aid = app.make_id(v["link"])
|
| 200 |
sl = app.slug(v["title"])
|
| 201 |
-
|
|
|
|
|
|
|
| 202 |
vtag = f'<video class="tiktok-video" playsinline preload="metadata"{poster_attr} data-hls-src="{vsrc}" muted loop></video>' if v.get("vtype")=="hls" else f'<video class="tiktok-video" playsinline preload="metadata"{poster_attr} muted loop><source src="{app.safe_url(vsrc)}" type="video/mp4"></video>'
|
| 203 |
|
| 204 |
fullheight_btn = ''
|
|
@@ -234,7 +229,7 @@ def _build_tiktok_html(videos, current_url, source_label):
|
|
| 234 |
grid = f'<div class="bdp-wrap"><div class="bdp-topbar"><span>\U0001f3ac Video</span><span>{len(ordered)} video</span></div><div class="bdp-grid">{"".join(cards)}</div></div>'
|
| 235 |
|
| 236 |
mode_class = "shorts-feed-mode" if is_shorts else ""
|
| 237 |
-
return f'''
|
| 238 |
<div class="tiktok-fullscreen-feed">{''.join(slides)}</div>
|
| 239 |
</div>
|
| 240 |
{grid}'''
|
|
|
|
| 184 |
badge_cls = "bdp-badge-24h" if source_label == "24h" else "bdp-badge-bdp"
|
| 185 |
is_shorts = source_label == "24h"
|
| 186 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 187 |
slides = []
|
| 188 |
for vi, v in enumerate(ordered):
|
| 189 |
poster = app.safe_url(v.get("poster",""))
|
|
|
|
| 191 |
vsrc = v["src"]
|
| 192 |
aid = app.make_id(v["link"])
|
| 193 |
sl = app.slug(v["title"])
|
| 194 |
+
# Share the ORIGINAL article URL (has og:image built-in)
|
| 195 |
+
original_url = app.esc(v["link"])
|
| 196 |
+
share_js = f"event.stopPropagation();window.bdpShareOriginal('{app.esc(v['title'])}','{original_url}')"
|
| 197 |
vtag = f'<video class="tiktok-video" playsinline preload="metadata"{poster_attr} data-hls-src="{vsrc}" muted loop></video>' if v.get("vtype")=="hls" else f'<video class="tiktok-video" playsinline preload="metadata"{poster_attr} muted loop><source src="{app.safe_url(vsrc)}" type="video/mp4"></video>'
|
| 198 |
|
| 199 |
fullheight_btn = ''
|
|
|
|
| 229 |
grid = f'<div class="bdp-wrap"><div class="bdp-topbar"><span>\U0001f3ac Video</span><span>{len(ordered)} video</span></div><div class="bdp-grid">{"".join(cards)}</div></div>'
|
| 230 |
|
| 231 |
mode_class = "shorts-feed-mode" if is_shorts else ""
|
| 232 |
+
return f'''<div class="tiktok-fullscreen-container {mode_class}" id="tiktok-fullscreen-feed">
|
| 233 |
<div class="tiktok-fullscreen-feed">{''.join(slides)}</div>
|
| 234 |
</div>
|
| 235 |
{grid}'''
|