feat(tonedownload): Tone3000 NAM + IR browser, real anon key, tests
- Tonedownload.py: Tone3000 API client with search/download/cache/enrich - Server.py: 4 endpoints (search models, search IRs, install model, install IR) - Models.html + irs.html: Browse Tone3000 tab with search, trending, offline - Models.js + irs.js: Tone3000 search UI with install tracking via localStorage - Style.css: Card layout for search results with thumbnail, meta, install btn - Tests: 47 tests covering data classes, cache, API, search, download, enrichment - Anon key: Updated from placeholder to real Supabase anon key (verified: API works)
This commit is contained in:
@@ -42,6 +42,26 @@
|
||||
<button class="btn btn-primary" onclick="uploadModel()">Upload</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h2>Browse Tone3000 <span class="badge badge-tone3000">BETA</span></h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="hint">Search and download NAM models directly from the Tone3000 community.</p>
|
||||
<div class="tonedownload-search-row">
|
||||
<input type="text" id="model-tone-search" class="file-input tonedownload-input"
|
||||
placeholder="Search models (e.g. Marshall JCM800)..." onkeydown="if(event.key==='Enter')searchToneModels()">
|
||||
<button class="btn btn-primary" onclick="searchToneModels()">Search</button>
|
||||
<button class="btn btn-secondary" onclick="loadTrendingModels()">Trending</button>
|
||||
</div>
|
||||
<div id="model-tone-loader" class="loading" style="display:none">Searching Tone3000...</div>
|
||||
<div id="model-tone-offline" class="tonedownload-offline" style="display:none">
|
||||
<span>⚠ Offline — search unavailable</span>
|
||||
</div>
|
||||
<div id="model-tone-results" class="tonedownload-results"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
|
||||
Reference in New Issue
Block a user