← back to Rentv
rentv-website.agentabrams.com live: app-login-gated, latest news shell deployed
daf98cbe1f418ee600e7cb53724787b9d83c756c · 2026-07-20 14:08:23 -0700 · Steve Abrams
Files touched
M data/news.jsonM data/ticker.jsonM public/index.htmlM scripts/pull-news.mjs
Diff
commit daf98cbe1f418ee600e7cb53724787b9d83c756c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Jul 20 14:08:23 2026 -0700
rentv-website.agentabrams.com live: app-login-gated, latest news shell deployed
---
data/news.json | 2 +-
data/ticker.json | 2 +-
public/index.html | 14 +++++++++++++-
scripts/pull-news.mjs | 5 ++++-
4 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/data/news.json b/data/news.json
index a5c9d1a0..f5e15195 100644
--- a/data/news.json
+++ b/data/news.json
@@ -1,6 +1,6 @@
{
"source": "rentv.com — live",
- "fetched_at": "2026-07-20T21:02:21.503Z",
+ "fetched_at": "2026-07-20T21:06:12.438Z",
"count": 30,
"items": [
{
diff --git a/data/ticker.json b/data/ticker.json
index ed068b18..275db1f7 100644
--- a/data/ticker.json
+++ b/data/ticker.json
@@ -1,5 +1,5 @@
{
- "fetched_at": "2026-07-20T21:04:02.483Z",
+ "fetched_at": "2026-07-20T21:06:12.440Z",
"la_office_vac": {
"label": "LA OFFICE VAC",
"value": "23.1%",
diff --git a/public/index.html b/public/index.html
index b8c21044..11457e2a 100644
--- a/public/index.html
+++ b/public/index.html
@@ -72,7 +72,7 @@
</head>
<body>
<div class="util"><div class="wrap">
- <div class="ticker"><span><b>CRE INDEX</b> 4,182 <span class="up">▲0.6%</span></span><span><b>10-YR</b> 4.21%</span><span><b>LA OFFICE VAC</b> 23.1%</span><span><b>IE INDUSTRIAL CAP</b> 5.2%</span></div>
+ <div class="ticker" id="ticker"><span><b>CRE INDEX</b> …</span><span><b>10-YR</b> …</span><span><b>LA OFFICE VAC</b> …</span><span><b>IE INDUSTRIAL CAP</b> …</span></div>
<div class="acts"><a href="#">Newsletters</a><a href="#">Advertise</a><a href="#">Log In</a><a class="sub" href="#news">Subscribe</a></div>
</div></div>
@@ -140,7 +140,19 @@ async function load(){
}
document.getElementById('nav').addEventListener('click',e=>{const a=e.target.closest('a[data-cat]');if(!a)return;e.preventDefault();document.querySelectorAll('#nav a').forEach(x=>x.classList.remove('on'));a.classList.add('on');cat=a.dataset.cat;render();window.scrollTo({top:0,behavior:'smooth'});});
document.getElementById('subbtn').onclick=()=>{if((document.getElementById('email').value||'').includes('@')){document.getElementById('subok').style.display='block';}};
+async function loadTicker(){
+ try{
+ const t=await (await fetch('/api/ticker')).json();
+ const cell=m=>{ if(!m||!m.value) return '';
+ const amt=m.change_pct!=null?Math.abs(m.change_pct)+'%':(m.change_bps!=null?Math.abs(m.change_bps)+'bps':'');
+ let arr=''; if(m.dir==='up')arr=' <span class="up">▲'+amt+'</span>'; else if(m.dir==='down')arr=' <span class="dn">▼'+amt+'</span>';
+ return '<span><b>'+esc(m.label)+'</b> '+esc(m.value)+arr+'</span>'; };
+ const html=[t.cre_index,t.ten_yr,t.la_office_vac,t.ie_industrial_cap].map(cell).filter(Boolean).join('');
+ if(html) document.getElementById('ticker').innerHTML=html;
+ }catch(e){/* keep prior ticker on failure */}
+}
load(); setInterval(load, 120000); // refresh the live feed every 2 minutes
+loadTicker(); setInterval(loadTicker, 120000); // live market ticker
</script>
</body>
</html>
diff --git a/scripts/pull-news.mjs b/scripts/pull-news.mjs
index 604bb023..5e853f30 100644
--- a/scripts/pull-news.mjs
+++ b/scripts/pull-news.mjs
@@ -40,5 +40,8 @@ try {
} catch (e) {
console.error('pull failed:', e.message);
// never overwrite a good cache with nothing — leave last-good in place
- process.exit(1);
+ console.error('(news kept last-good; continuing to ticker refresh)');
}
+
+// Refresh the live market ticker on the same cron (runs regardless of news outcome).
+try { await import('./pull-ticker.mjs'); } catch (e) { console.error('ticker refresh failed:', e.message); }
← a2941af4 snapshot before rentv-website.agentabrams.com go-live
·
back to Rentv
·
add in-shell article.html + section.html reader templates; w d9ec1da5 →