# Publish section 8 (#callwall) to the existing intraday-recoveries page: remote tar backup + server-side .bak of index.html first; new callwall/ subfolder only. import paramiko,os,glob,time,html N='intraday-recoveries'; R=f'/opt/apps/rl-trading-nifty/results/research/{N}'; L='/workspace/research/flow-forensics-2026-10'; CW=f'{L}/callwall' SKIP=('.pyc','.pkl') for sub in ['results','scripts','charts']: fs=sorted(os.path.basename(f) for f in glob.glob(f'{CW}/{sub}/*') if os.path.isfile(f) and not f.endswith(SKIP+('index.html',))) open(f'{CW}/{sub}/index.html','w').write('

callwall/'+sub+'

back

") c=paramiko.SSHClient(); c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) c.connect('187.127.176.216',username='root',key_filename='/home/box/.ssh/vps_aitrade',timeout=25) def run(cmd): i,o,e=c.exec_command(cmd); out=o.read().decode()+e.read().decode(); print(out.strip()); return out ts=time.strftime('%Y%m%d-%H%M%S') run(f'mkdir -p /opt/apps/rl-trading-nifty/backups && tar czf /opt/apps/rl-trading-nifty/backups/{N}.{ts}.pre-callwall.tgz -C {os.path.dirname(R)} {N} && echo remote-tar-backup-ok') run(f'[ -e {R}/index.html.bak-20261026-callwall ] || cp -p {R}/index.html {R}/index.html.bak-20261026-callwall; ls -la {R}/index.html*') run(f'test -e {R}/callwall && echo EXISTS-callwall || echo new-callwall-folder') run(f'mkdir -p {R}/callwall/charts {R}/callwall/results {R}/callwall/scripts') s=c.open_sftp(); n=0 s.put(f'{L}/recov/index.html',f'{R}/index.html'); n+=1 s.put(f'{L}/recov/scripts/gen_page.py',f'{R}/scripts/gen_page.py'); n+=1 for sub in ['charts','results','scripts']: for f in glob.glob(f'{CW}/{sub}/*'): if os.path.isfile(f) and not f.endswith(SKIP): s.put(f,f'{R}/callwall/{sub}/'+os.path.basename(f)); n+=1 s.put(f'{CW}/PROGRESS.md',f'{R}/callwall/PROGRESS.md'); n+=1 s.close(); print('uploaded',n) run(f'chmod -R a+rX {R}; du -sh {R}/callwall') for u in ['','callwall/charts/today_callwall.png','callwall/charts/rule_cum.png','callwall/results/','callwall/results/hit_stats.csv','callwall/results/fixed_rule.json','callwall/scripts/','callwall/scripts/events.py']: run(f'curl -sk -o /dev/null -w "%{{http_code}} {u}\\n" --max-time 15 --resolve aitradeanalytics.tech:443:127.0.0.1 https://aitradeanalytics.tech/rl-trading/research/{N}/{u}') run(f'curl -sk --max-time 15 --resolve aitradeanalytics.tech:443:127.0.0.1 https://aitradeanalytics.tech/rl-trading/research/{N}/ | grep -c "id=callwall"')