Go to file
joseelinchevalay 83965bd390 Merge branch 'master' of https://git.p2p.legal/chamalow/mazash into feature/fingerprint_return 2023-02-16 10:10:07 +01:00
python solve docker issue 2023-02-16 10:08:48 +01:00
src fix #3 2021-03-19 09:38:30 +01:00
test initial commit 2020-10-29 16:37:13 +01:00
.gitignore initial commit 2020-10-29 16:37:13 +01:00
README.md Modify README requirements and docker-compose 2020-11-06 08:43:23 +01:00
app.ini initial commit 2020-10-29 16:37:13 +01:00
docker-compose.yaml solve docker issue 2023-02-16 10:08:48 +01:00
requirements.txt solve docker issue 2023-02-16 10:08:48 +01:00
run_app_dev.sh initial commit 2020-10-29 16:37:13 +01:00
run_app_prod.sh initial commit 2020-10-29 16:37:13 +01:00
swagger_ui.png initial commit 2020-10-29 16:37:13 +01:00
wsgi.py initial commit 2020-10-29 16:37:13 +01:00

README.md

Mazash

Swagger UI API documentation Minimal application IPFS & Dejavu

The following features are included in the application:

  • Recognize song by CID ipfs and extension
  • Fingerpint CID IPFS, extension, song name
  • API documentation using the OpenAPI 3 specification and Swagger UI

Setup

To set up the application, you need Python 3. After cloning the repository change to the project directory and install the dependencies via:

apt-get install gcc nano ffmpeg libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 postgresql postgresql-contrib -y
python3 -m pip install -r requirements.txt

Development

To start the app in development mode, execute

./run_app_dev.sh

The application will then be available at localhost:5000. You can test the functionality manually using curl, e.g. via

curl localhost:5000/api/v1/path_for_blueprint_x/test

or through the automated tests, by running

pytest

The commands should output

{
  "msg": "I'm the test endpoint from blueprint_x."
}

and

test/test_endpoints.py ....

============= 4 passed in 0.14s ==============

respectively.

To view the API documentation through the Swagger user interface, navivate your browser to localhost:5000/api/docs.

Production

To run the app in production, execute

./run_app_prod.sh

Now the application is served on localhost:8600. To run the automated tests for the production host, use

pytest --host http://localhost:8600

mp3 for test

https://github.com/worldveil/dejavu/blob/master/mp3/Brad-Sucks--Total-Breakdown.mp3 -> QmU3XRYZiebdDMcUwKrvecxyDgtgVY6zaNYrzQBeCkFb2r

curl -X POST "http://localhost:8600/api/v1/mazash/recognize" -H  "accept: application/json" -H  "Content-Type: application/json" -d "{\"cid\":\"QmU3XRYZiebdDMcUwKrvecxyDgtgVY6zaNYrzQBeCkFb2r\",\"extension\":\".mp3\",\"song\":\"Brad-Sucks--Total-Breakdown\"}"
curl -X POST "http://localhost:8600/api/v1/mazash/recognize" -H  "accept: application/json" -H  "Content-Type: application/json" -d "{\"cid\":\"QmU3XRYZiebdDMcUwKrvecxyDgtgVY6zaNYrzQBeCkFb2r\",\"extension\":\".mp3\"}"

response :

{
  "align_time": 0.11919093132019043,
  "fingerprint_time": 4.459228992462158,
  "query_time": 2.729705810546875,
  "results": [
    {
      "file_sha1": "02A83F248EFDA76A46C8B2AC97798D2CE9BC1FBE",
      "fingerprinted_confidence": 1,
      "fingerprinted_hashes_in_db": 75062,
      "hashes_matched_in_input": 75062,
      "input_confidence": 1,
      "input_total_hashes": 75062,
      "offset": 0,
      "offset_seconds": 0,
      "song_id": 1,
      "song_name": "Brad-Sucks--Total-Breakdown"
    }
  ],
  "total_time": 7.348343849182129
}```