[object Object]

← back to Rentv

feat(review): /review?play=<id> deep-link auto-opens a video's in-app modal; /social featured clip now drills to the SPECIFIC video (Cody gate: drill to record not firehose)

fa3ecbc9f20d2ddcd8831467fc45a8ab5c594c18 · 2026-08-01 19:32:30 -0700 · Steve Abrams

Files touched

Diff

commit fa3ecbc9f20d2ddcd8831467fc45a8ab5c594c18
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sat Aug 1 19:32:30 2026 -0700

    feat(review): /review?play=<id> deep-link auto-opens a video's in-app modal; /social featured clip now drills to the SPECIFIC video (Cody gate: drill to record not firehose)
---
 public/review.html |  4 ++++
 public/social.html | 10 ++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/public/review.html b/public/review.html
index 914ec52a..3220e04f 100644
--- a/public/review.html
+++ b/public/review.html
@@ -214,6 +214,10 @@ async function load(){
     const d=await (await fetch('/api/videos')).json();
     ALL=d.items||[]; CATS=d.cats||[...new Set(ALL.map(v=>v.cat))];
     chips(); render();
+    // Deep-link: /review?play=<id> auto-opens that video's in-app watch-modal. This is the
+    // href-drill target for featured/pinned videos (e.g. the /social featured clip) so they
+    // land on the specific video in-app instead of a rentvreview.com link-out.
+    var _pl=new URLSearchParams(location.search).get('play'); if(_pl) openVideo(_pl);
     if(d.fetched_at){
       const mins=Math.max(0,Math.round((Date.now()-new Date(d.fetched_at))/60000));
       document.getElementById('freshness').textContent=mins<2?'synced just now':('synced '+mins+' min ago');
diff --git a/public/social.html b/public/social.html
index 305740c6..c6fc6475 100644
--- a/public/social.html
+++ b/public/social.html
@@ -329,11 +329,13 @@
     if (!fv || !fv.url) { el.innerHTML = ''; return; }
     var poster = fv.poster_youtube_id ? 'https://img.youtube.com/vi/'+encodeURIComponent(fv.poster_youtube_id)+'/hqdefault.jpg' : '';
     var meta = [fv.source, (fv.guest?'Guest: '+fv.guest:''), (fv.host?'Host: '+fv.host:''), fmtDate(fv.published)].filter(Boolean).join(' · ');
-    // RENTV no-link-out + href-drill rules: the featured video drills to the IN-APP
-    // video platform (/review), where this pinned clip leads the list and plays in
-    // the in-app watch-modal — never out to rentvreview.com.
+    // RENTV no-link-out + href-drill rules: the featured video drills to the SPECIFIC
+    // clip in the IN-APP video platform (/review?play=<id> auto-opens its watch-modal) —
+    // never out to rentvreview.com. Id is taken from fv.id or parsed off the source url.
+    var vid = fv.id || ((String(fv.url||'').match(/(\d+)\/?$/)||[])[1]) || '';
+    var reviewHref = vid ? '/review?play='+encodeURIComponent(vid) : '/review';
     el.innerHTML =
-      '<a class="fv" href="/review" '
+      '<a class="fv" href="'+reviewHref+'" '
         +'style="display:flex;gap:14px;text-decoration:none;color:inherit;border:1px solid var(--line,#2a2a2a);border-radius:10px;padding:10px;align-items:flex-start">'
         +(poster?'<img src="'+poster+'" alt="" loading="lazy" style="width:168px;height:94px;object-fit:cover;border-radius:6px;flex:0 0 auto;background:#000">':'')
         +'<span style="min-width:0">'

← 148ec5fb chore(rentv): stage Vimeo auto-refresh launchd plist (gated  ·  back to Rentv  ·  auto-save: 2026-08-01T19:38:57 (1 files) — docs/heygen-brand c93c877e →