Commit graph

26 commits

Author SHA1 Message Date
Broque Thomas
2656927f79 Beatport enrichment progress, metadata cache fixes, per-source cache clearing
- Fix enrichment progress never updating: remove `continue` that skipped
  progress_callback for successful tracks in enrich_chart_tracks
- Split chart/extract into two-step flow: extract raw tracks, then enrich
  via polling endpoint with live progress overlay updates
- Move Beatport enrichment cache to persistent metadata cache system
- Fix metadata cache detail modal for Beatport (URL entity_ids with slashes)
- Add per-source Clear dropdown (Spotify/iTunes/Deezer/Beatport) to cache browser
- Remove debug logging from enrichment progress tracking
2026-03-18 08:39:02 -07:00
Broque Thomas
f8f113d0e7 Beatport direct download — skip discovery, open download modal directly
Clicking any Beatport item now opens the download modal directly instead of
going through the discovery flow (scrape → chart card → discovery modal →
Spotify/iTunes matching → download).

Releases (albums/EPs) open as album downloads with full context.
Charts/playlists (Top 100, Featured Charts, DJ Charts, Top 10) open as
playlist downloads with per-track enrichment — each track's individual
Beatport page is visited to get release name, duration, artwork, BPM, key,
genre, and label.

Key changes:
- Add get_release_metadata() and enrich_chart_tracks() to scraper
- Add /api/beatport/release-metadata and /api/beatport/enrich-tracks endpoints
- Rewrite all Beatport click handlers to open download modal directly
- Per-track enrichment with live progress overlay (one-by-one fetching)
- Split combined artist strings so folder paths use primary artist only
- Prevent Beatport IDs from being written to Spotify tag fields
- Add beatport_release_ prefix detection for album download mode
- Support enrich=false query param for frontend-driven enrichment
2026-03-17 19:28:11 -07:00
Broque Thomas
b186fed05b Fix Beatport new releases scraper broken by hashed CSS class changes
Replace all hardcoded styled-components class selectors (with build hashes
that break on every Beatport deploy) with partial class name matches using
[class*="prefix"] pattern. Applies to new releases endpoint and hero
release scraper.
2026-03-17 15:56:00 -07:00
Broque Thomas
5834177f82 beatport progress 2025-10-01 19:52:22 -07:00
Broque Thomas
06f3d219b4 Add Beatport genre Top 10 lists API and UI integration
Introduces backend scraping and API endpoint for Beatport genre Top 10 and Hype Top 10 tracks, with 1-hour caching. Updates frontend to load and display these lists in the genre browser modal, matching main page structure and click handling for chart discovery.
2025-10-01 19:21:11 -07:00
Broque Thomas
ad7c765912 Update beatport_unified_scraper.py 2025-10-01 16:43:06 -07:00
Broque Thomas
c7377e4ac7 beatport progress 2025-10-01 14:50:03 -07:00
Broque Thomas
4f081bfd97 Update beatport_unified_scraper.py 2025-09-30 20:24:07 -07:00
Broque Thomas
b0b892ef49 Update beatport_unified_scraper.py 2025-09-30 20:21:17 -07:00
Broque Thomas
0d54e4a62a fix hero slider 2025-09-30 19:33:32 -07:00
Broque Thomas
65cc0e517d Normalize track text and add rebuild Top 10 logic
Introduces text cleaning for track, artist, and label fields in both Python and JS to ensure proper spacing and formatting. Adds logic to the frontend for handling Beatport Top 10 and Hype Top 10 containers on the rebuild page, including DOM extraction and card creation, following the Browse Charts pattern.
2025-09-30 18:31:35 -07:00
Broque Thomas
69c8622588 beatport progress 2025-09-30 13:23:01 -07:00
Broque Thomas
5e73b53a0f beatport progress 2025-09-30 12:36:25 -07:00
Broque Thomas
6e169056d3 rebuild beatport section 2025-09-29 23:05:18 -07:00
Broque Thomas
2aaad34ead Update beatport_unified_scraper.py 2025-09-29 18:44:27 -07:00
Broque Thomas
deb50aebd9 Update beatport_unified_scraper.py 2025-09-29 18:20:43 -07:00
Broque Thomas
d24de141fc fix top 10/100 releases 2025-09-29 13:37:48 -07:00
Broque Thomas
eadc6c4b8d Hype picks update 2025-09-29 12:33:09 -07:00
Broque Thomas
053a205e77 update latest listing scraper to pull ep / album tracks if exist. 2025-09-29 12:23:37 -07:00
Broque Thomas
6df2759e22 beatport progress 2025-09-28 18:43:49 -07:00
Broque Thomas
526aeb0bda beatport progress 2025-09-28 18:37:07 -07:00
Broque Thomas
f7119b7319 beatport progress 2025-09-28 14:04:49 -07:00
Broque Thomas
dc8e3c1033 beatport progress 2025-09-28 07:59:36 -07:00
Broque Thomas
27b1e57d97 beatport progress 2025-09-27 22:21:20 -07:00
Broque Thomas
7e42e20887 beatport progress 2025-09-27 20:16:18 -07:00
Broque Thomas
9978834c5b Create beatport_unified_scraper.py 2025-09-26 23:50:28 -07:00