diff --git a/backend/app/main.py b/backend/app/main.py index 5f1910e..6f4611e 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -2,7 +2,7 @@ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.core.config import settings -from app.api.endpoints import auth, bandcamp, billing, lastfm, manual_import, playlist_fix, playlists, profile, recommendations, youtube_music +from app.api.endpoints import auth, billing, lastfm, manual_import, playlist_fix, playlists, profile, recommendations, youtube_music app = FastAPI(title="Vynl API", version="1.0.0", redirect_slashes=False) @@ -22,7 +22,6 @@ app.include_router(recommendations.router, prefix="/api") app.include_router(youtube_music.router, prefix="/api") app.include_router(manual_import.router, prefix="/api") app.include_router(lastfm.router, prefix="/api") -app.include_router(bandcamp.router, prefix="/api") app.include_router(profile.router, prefix="/api") diff --git a/backend/app/services/recommender.py b/backend/app/services/recommender.py index dd3b314..fe02db9 100644 --- a/backend/app/services/recommender.py +++ b/backend/app/services/recommender.py @@ -186,7 +186,7 @@ Already in their library (do NOT recommend these): {disliked_instruction} {exclude_instruction} -Respond with exactly {count * 3 if bandcamp_mode else count} music recommendations as a JSON array. Each item should have: +Respond with exactly {count} music recommendations as a JSON array. Each item should have: - "title": song title - "artist": artist name - "album": album name (if known) @@ -216,9 +216,7 @@ Return ONLY the JSON array, no other text.""" except json.JSONDecodeError: return [], remaining - from app.services.bandcamp import search_bandcamp_verified - - # Save to DB — in bandcamp mode, only keep results verified on Bandcamp + # Save to DB with YouTube links recommendations = [] for rec in recs_data: if len(recommendations) >= count: @@ -226,24 +224,9 @@ Return ONLY the JSON array, no other text.""" artist = rec.get("artist", "Unknown") title = rec.get("title", "Unknown") - bandcamp_url = None - youtube_url = None - # Try Bandcamp for every recommendation - try: - match = await search_bandcamp_verified(artist, title) - if match: - bandcamp_url = match.get("bandcamp_url") - except Exception: - pass - - if bandcamp_mode and not bandcamp_url: - # In bandcamp mode, skip recommendations not found on Bandcamp - continue - - # If not on Bandcamp, build a YouTube search link - if not bandcamp_url: - youtube_url = f"https://www.youtube.com/results?search_query={quote_plus(f'{artist} {title} official music video')}" + # YouTube search link for every recommendation + youtube_url = f"https://www.youtube.com/results?search_query={quote_plus(f'{artist} {title} official music video')}" r = Recommendation( user_id=user.id, @@ -254,7 +237,6 @@ Return ONLY the JSON array, no other text.""" reason=rec.get("reason", ""), score=rec.get("score"), query=query, - bandcamp_url=bandcamp_url, youtube_url=youtube_url, ) db.add(r) diff --git a/frontend/src/components/RecommendationCard.tsx b/frontend/src/components/RecommendationCard.tsx index 2045b69..bcfe61a 100644 --- a/frontend/src/components/RecommendationCard.tsx +++ b/frontend/src/components/RecommendationCard.tsx @@ -80,17 +80,7 @@ export default function RecommendationCard({ recommendation, onToggleSave, onDis )} - {recommendation.bandcamp_url ? ( - - - - ) : recommendation.youtube_url ? ( + {recommendation.youtube_url && ( - ) : null} + )} diff --git a/frontend/src/pages/Discover.tsx b/frontend/src/pages/Discover.tsx index c41096c..48b05b1 100644 --- a/frontend/src/pages/Discover.tsx +++ b/frontend/src/pages/Discover.tsx @@ -260,26 +260,6 @@ export default function Discover() { /> - {/* Bandcamp Mode Toggle */} -
- - - Bandcamp mode - — prioritize indie & underground artists - -
{/* Remaining count */} {!user?.is_pro && (