- Add SongMatchingService with multi-criteria matching algorithms - Add matching API routes for auto-linking and manual matching - Add SongMatching component with statistics and suggestion modal - Update SongList to show music file availability and play buttons - Update MusicStorage page with song matching tab - Enhance Song interface with music file integration - Add comprehensive matching statistics and reporting Features: - Filename, title, artist, album, and duration matching - Fuzzy matching with Levenshtein distance - Confidence scoring and match type classification - Auto-linking with configurable thresholds - Manual matching with detailed suggestions - Visual indicators for music file availability - Integration with existing playlist functionality Matching algorithms prioritize: 1. Exact filename matches 2. Artist-Title pattern matching 3. Metadata-based fuzzy matching 4. Duration-based validation The system provides a complete workflow from upload to playback, automatically linking music files to Rekordbox songs with manual override capabilities for unmatched files.
53 lines
1.4 KiB
JSON
53 lines
1.4 KiB
JSON
{
|
|
"name": "rekordbox-reader",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"lint": "eslint .",
|
|
"preview": "vite preview"
|
|
},
|
|
"dependencies": {
|
|
"@chakra-ui/checkbox": "^2.3.2",
|
|
"@chakra-ui/icons": "^2.1.1",
|
|
"@chakra-ui/input": "^2.1.2",
|
|
"@chakra-ui/menu": "^2.2.1",
|
|
"@chakra-ui/modal": "^2.3.1",
|
|
"@chakra-ui/react": "^2.8.2",
|
|
"@chakra-ui/transition": "^2.1.0",
|
|
"@emotion/react": "^11.14.0",
|
|
"@emotion/styled": "^11.14.0",
|
|
"@types/uuid": "^10.0.0",
|
|
"events": "^3.3.0",
|
|
"framer-motion": "^12.5.0",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-dropzone": "^14.2.3",
|
|
"react-icons": "^5.5.0",
|
|
"react-router-dom": "^7.5.2",
|
|
"sax": "^1.4.1",
|
|
"uuid": "^11.1.0",
|
|
"xml2js": "^0.6.2",
|
|
"xmlbuilder": "^15.1.1"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.21.0",
|
|
"@types/react": "^19.0.10",
|
|
"@types/react-dom": "^19.0.4",
|
|
"@types/xml2js": "^0.4.14",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"autoprefixer": "^10.4.21",
|
|
"eslint": "^9.21.0",
|
|
"eslint-plugin-react-hooks": "^5.1.0",
|
|
"eslint-plugin-react-refresh": "^0.4.19",
|
|
"globals": "^15.15.0",
|
|
"postcss": "^8.5.3",
|
|
"tailwindcss": "^4.0.13",
|
|
"typescript": "~5.7.2",
|
|
"typescript-eslint": "^8.24.1",
|
|
"vite": "^6.2.0"
|
|
}
|
|
}
|