mazash/README.md

107 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

2020-10-29 16:37:13 +01:00
# Mazash
![Swagger UI API documentation](swagger_ui.png)
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
2020-10-29 16:37:13 +01:00
```
## 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
```bash
2020-10-29 16:37:13 +01:00
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\"}"
```
```bash
curl -X POST "http://localhost:8600/api/v1/mazash/recognize" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"cid\":\"QmU3XRYZiebdDMcUwKrvecxyDgtgVY6zaNYrzQBeCkFb2r\",\"extension\":\".mp3\"}"
```
2020-10-29 16:37:13 +01:00
response :
2020-10-29 16:37:13 +01:00
```json
{
"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
}```