mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-04-23 19:16:06 +02:00
fix: KiwiSDR layer broken import + remove ugly iframe embed
- kiwisdr_fetcher.py imported non-existent `smart_request` (renamed to `fetch_with_curl`), causing silent ImportError → 0 nodes returned - Replaced KiwiSDR iframe embed with clean "OPEN SDR RECEIVER" button. The full KiwiSDR web UI (waterfall, frequency controls, callsign prompt) is unusable at 288px — better opened in a new tab. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Former-commit-id: aa0fcd92b2390d6a8943b68f2f7eb9b900c7bbb7
This commit is contained in:
@@ -34,10 +34,10 @@ def _parse_gps(html: str):
|
||||
@cached(kiwisdr_cache)
|
||||
def fetch_kiwisdr_nodes() -> list[dict]:
|
||||
"""Fetch and parse the KiwiSDR public receiver list."""
|
||||
from services.network_utils import smart_request
|
||||
from services.network_utils import fetch_with_curl
|
||||
|
||||
try:
|
||||
res = smart_request("http://kiwisdr.com/.public/", timeout=20)
|
||||
res = fetch_with_curl("http://kiwisdr.com/.public/", timeout=20)
|
||||
if not res or res.status_code != 200:
|
||||
logger.error(f"KiwiSDR fetch failed: HTTP {res.status_code if res else 'no response'}")
|
||||
return []
|
||||
|
||||
@@ -359,21 +359,21 @@ export default function RadioInterceptPanel({ data, isEavesdropping, setIsEavesd
|
||||
{selectedEntity.extra.antenna && <span>{selectedEntity.extra.antenna.slice(0, 80)} · </span>}
|
||||
{selectedEntity.extra.users !== undefined && <span>{selectedEntity.extra.users}/{selectedEntity.extra.users_max} users</span>}
|
||||
</div>
|
||||
<iframe
|
||||
src={selectedEntity.extra.url}
|
||||
className="w-full h-72 rounded border border-amber-900/50 bg-black"
|
||||
allow="microphone"
|
||||
sandbox="allow-scripts allow-same-origin"
|
||||
title="KiwiSDR Tuner"
|
||||
/>
|
||||
<a
|
||||
href={selectedEntity.extra.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-[8px] text-amber-500 hover:text-amber-300 font-mono mt-1 inline-block"
|
||||
>
|
||||
OPEN IN NEW TAB →
|
||||
</a>
|
||||
<div className="flex items-center gap-2 mt-1">
|
||||
<a
|
||||
href={selectedEntity.extra.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="flex-1 text-center px-4 py-2.5 rounded border border-amber-500/50 bg-amber-950/30 text-amber-400 hover:bg-amber-900/40 hover:border-amber-400 text-[10px] font-mono tracking-widest transition-colors"
|
||||
>
|
||||
OPEN SDR RECEIVER →
|
||||
</a>
|
||||
</div>
|
||||
{selectedEntity.extra.bands && (
|
||||
<div className="text-[8px] text-[var(--text-muted)] font-mono mt-2">
|
||||
BANDS: {(Number(selectedEntity.extra.bands.split('-')[0]) / 1e6).toFixed(0)}-{(Number(selectedEntity.extra.bands.split('-')[1]) / 1e6).toFixed(0)} MHz
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user