diff --git a/public/training.js b/public/training.js index 03b9aa5..02a2651 100644 --- a/public/training.js +++ b/public/training.js @@ -30,7 +30,7 @@ if(tid&&/^\d+$/.test(tid))document.querySelectorAll('a[href^="/tools"]').forEach 'use strict'; const gated=[...document.querySelectorAll('video')].filter(v=>{ const s=v.getAttribute('src')||''; - return (/\/v\/rmc-method-m\d+l\d+-/.test(s)&&s.indexOf('rmc-method-m1l1-')<0)||s.indexOf('/training/egift_cards.mp4')>=0; + return (/\/v\/rmc-method-m\d+l\d+-/.test(s)&&s.indexOf('rmc-method-m1l1-')<0)||s.indexOf('/v/rmc-stay-consistent-')>=0||s.indexOf('/training/egift_cards.mp4')>=0; }); if(!gated.length)return; let member=null; diff --git a/public/v/rmc-consistency-short-24828f06a8.mp4 b/public/v/rmc-consistency-short-24828f06a8.mp4 new file mode 100644 index 0000000..c1415b4 Binary files /dev/null and b/public/v/rmc-consistency-short-24828f06a8.mp4 differ diff --git a/public/weekly-rhythm.html b/public/weekly-rhythm.html index 2ede4bf..310bec4 100644 --- a/public/weekly-rhythm.html +++ b/public/weekly-rhythm.html @@ -24,7 +24,7 @@ @media print{ @page{size:letter;margin:0.55in} body{background:#fff!important;color:#111!important} - header,footer,nav,#fsPrintBtn,#rmcTrBtn,#rmcTrPanel,.chat-fab,.chat-panel,.fs-print-btn,.pp-stack{display:none!important} + header,footer,nav,#fsPrintBtn,#rmcTrBtn,#rmcTrPanel,.chat-fab,.chat-panel,.fs-print-btn,.pp-stack,.wr-video{display:none!important} .fs-wrap{max-width:none;padding:0} .fs-sheet{background:#fff;border:0;border-radius:0;padding:0;color:#111} .fs-sheet h1,.fs-sec h2{color:#111} @@ -38,6 +38,10 @@
← My Dashboard🧰 My Tools🎬 Promo Tools
+
+
▶ Watch first — Consistency Wins the Race
+ +

🔁 The Weekly Rhythm

Twenty minutes. Same time. Every week. Put it in the calendar like a dentist appointment you can't weasel out of.

@@ -80,6 +84,17 @@ ▶ Watch: Stay consistent▶ Watch Lesson 10 ← My dashboard
+ diff --git a/server.js b/server.js index 20006b5..1dc3c8f 100644 --- a/server.js +++ b/server.js @@ -1616,7 +1616,7 @@ const server=http.createServer(async(req,res)=>{ // member session (web sign-in or the Mini App auth bridge). Lesson 1, all // posters, and every join-funnel/transparency video stay public on purpose: // Lesson 1 is the free preview, the rest is the trust engine. - if((/^\/v\/rmc-method-m\d+l\d+-[0-9a-f]+\.mp4$/.test(pathname)&&!/^\/v\/rmc-method-m1l1-/.test(pathname))||pathname==='/training/egift_cards.mp4'){ + if((/^\/v\/rmc-method-m\d+l\d+-[0-9a-f]+\.mp4$/.test(pathname)&&!/^\/v\/rmc-method-m1l1-/.test(pathname))||/^\/v\/rmc-stay-consistent-[0-9a-f]+\.mp4$/.test(pathname)||pathname==='/training/egift_cards.mp4'){ if(!messages.authFromCookie(req))return json(res,403,{error:'Members area — sign in on the training page with the wallet that owns your position, or open it through the Telegram Mini App.'},{'Cache-Control':'no-store'}); } if(pathname==='/unsubscribe'){