You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
joseelinchevalay 9a35efddd0 Modify README requirements and docker-compose 2 months ago
python initial commit 2 months ago
src initial commit 2 months ago
test initial commit 2 months ago
.gitignore initial commit 2 months ago
Dockerfile initial commit 2 months ago
README.md Modify README requirements and docker-compose 2 months ago
app.ini initial commit 2 months ago
docker-compose.yaml Modify README requirements and docker-compose 2 months ago
requirements.txt Modify README requirements and docker-compose 2 months ago
run_app_dev.sh initial commit 2 months ago
run_app_prod.sh initial commit 2 months ago
swagger_ui.png initial commit 2 months ago
wsgi.py initial commit 2 months ago

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
}```