# rls-discogs scene release to discogs release # using - [fish](https://fishshell.com/) - [discogs-xml-to-elasticsearch](https://github.com/SuperToma/discogs-xml-to-elasticsearch) - [curl](https://curl.se/) - [jq](https://stedolan.github.io/jq/) - [websocat](https://github.com/vi/websocat) # flow scene rls name > parse > artist / title / year as .tsv > search discogs > .json # tools - `in-ws-predb.ovh.sh` read scene release names from predb websocket - `parse-rls.fish` parse scene release name - `search-discogs-api.fish` search discogs release using Discogs REST API - `search-discogs-elastic.fish` search discogs release using ElasticSearch - `out-fallback.jq` fallback search helper - `out-ids.jq` filter ids from json output - `out-simple.jq` filter genre from json output # usage parse rls name as tab separated values ```sh $ echo 'Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC' | ./parse-rls.fish | column -t -s "$(printf '\t')" Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC Kraftwerk Autobahn CD Remastered 2009 ``` parse rls name as json ```sh $ echo 'Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC' | ./parse-rls.fish -j | jq . { "artist": "Kraftwerk", "barcode": null, "catno": null, "edition": "Remastered", "format": "CD", "rls": "Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC", "title": "Autobahn", "year": "2009" } ``` parse rls name, search local ElasticSearch, output discogs ids ```sh $ echo 'Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC' | ./parse-rls.fish | ./search-discogs-elastic.fish | ./out-ids.jq {"artist_id":4654,"master_id":2994,"release_id":1966322,"rls":"Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC"} ``` get rls names from websocket, parse rls name, search with api.discogs.com, write .json ```sh $ ./in-ws-predb.ovh.sh | ./parse-rls.fish | search-discogs-api.fish > out.api.json ``` parse rls name, search local ElasticSearch, write json, filter empty results and convert json to tsv, fallback search with Discogs API, write json ```sh $ echo 'Band_Of_Horses-Things_Are_Great-CD-2022-FATHEAD' | ./parse-rls.fish | ./search-discogs-elastic.fish | \ tee out.es.json | ./out-fallback.jq | ./search-discogs-api.fish > out.api.json $ jq ._search_result_count out.es.json out.api.json 0 1 ```