Web Amp Haskell Find Utility by George Takumi Crary
Generates the tracklist JSON seen here.
Made for Fresh2Fresh. Check him out.
takumi@~/dev/wamphfind/example
λ ls -l
total 86660
-rwxr-xr-x 1 takumi なし 13656675 Apr 20 11:30 'Timothy Seals - A New Dawn (Cover Edition) - 01 Pyre Light (Cover).mp3'
-rwxr-xr-x 1 takumi なし 7768447 Apr 20 11:30 'Timothy Seals - A New Dawn (Cover Edition) - 02 Silent Thunder (Cover).mp3'
Ran with ./wamphfind -p
will result in:
[
{
"url": "Timothy Seals - A New Dawn (Cover Edition) - 02 Silent Thunder (Cover).mp3",
"metaData": {
"track": "2",
"album": "A New Dawn (Cover Edition)",
"year": null,
"title": "Silent Thunder (Cover)",
"artist": "Timothy Seals"
}
},
{
"url": "Timothy Seals - A New Dawn (Cover Edition) - 01 Pyre Light (Cover).mp3",
"metaData": {
"track": "1",
"album": "A New Dawn (Cover Edition)",
"year": null,
"title": "Pyre Light (Cover)",
"artist": "Timothy Seals"
}
}
]
Which you can drop in your into your WinAmp initaltracks. If you're sticking your tracks in a directory like 'tracks/' then use the -a flag to appropriately set the url.
See --help for more details
./wamphfind -o output.json
./wamphfind -r
[
{
"url": "tracks/rec0.mp3",
"metaData": {
"track": "1",
"album": "A New Dawn (Cover Edition)",
"year": null,
"title": "rec0.mp3",
"artist": "Timothy Seals"
}
},
{
"url": "tracks/test/testrec.mp3",
"metaData": {
"track": "2",
"album": "A New Dawn (Cover Edition)",
"year": null,
"title": "testrec.mp3",
"artist": "Timothy Seals"
}
},
{
"url": "tracks/test/test/testrec3.mp3",
"metaData": {
"track": "2",
"album": "A New Dawn (Cover Edition)",
"year": null,
"title": "testrec3.mp3",
"artist": "Timothy Seals"
}
},
{
"url": "tracks/example/rec1.mp3",
"metaData": {
"track": "1",
"album": "A New Dawn (Cover Edition)",
"year": null,
"title": "rec1.mp3",
"artist": "Timothy Seals"
}
},
{
"url": "tracks/example/test/rec2.mp3",
"metaData": {
"track": "2",
"album": "A New Dawn (Cover Edition)",
"year": null,
"title": "rec2.mp3",
"artist": "Timothy Seals"
}
}
]
./wamphfind
./wamphfind album1 album2 -p
[
{
"url": "album1/rec0.mp3",
"metaData": {
"track": "1",
"album": "A New Dawn (Cover Edition)",
"year": null,
"title": "Pyre Light (Cover)",
"artist": "Timothy Seals"
}
},
{
"url": "album2/rec1.mp3",
"metaData": {
"track": "1",
"album": "A New Dawn (Cover Edition)",
"year": null,
"title": "Pyre Light (Cover)",
"artist": "Timothy Seals"
}
}
]
./wamphfind -a tracks
RESULT: "url":"GoldenSpade.mp3" ==> "url":"tracks/GoldenSpade.mp3"
Other examples
./wamphfind -a track/
./wamphfind -a syndicate/tracks
NOTE: If the trailing slash is ommited it will be added
./wamphfind -n
./wamphfind -e
NOTE: This will result in foo.mp3.zip -> foo
./wamphfind -p
- Duration calculation
Recursive directory searchingabsolute file path handling with basenamesInput filepath args- Web Audio API extension list
- forkMapM parallelism
Prompt on existing outputfile- Exception Handling
- Symbolic Link Handling?
idiii (with the build process ported to Stack) Look at stack.yaml to control where that goes.
See LICENSE. If you like it buy me a beer will ya.