Removed unused acoustid dependency / logic
This commit is contained in:
parent
14392ebb0c
commit
fe03d08a8e
|
@ -391,7 +391,7 @@ This is regular pytest, so you can use any arguments/options that pytest usually
|
||||||
# Stop on first failure
|
# Stop on first failure
|
||||||
docker-compose -f dev.yml run --rm api pytest -x
|
docker-compose -f dev.yml run --rm api pytest -x
|
||||||
# Run a specific test file
|
# Run a specific test file
|
||||||
docker-compose -f dev.yml run --rm api pytest tests/test_acoustid.py
|
docker-compose -f dev.yml run --rm api pytest tests/music/test_models.py
|
||||||
|
|
||||||
Writing tests
|
Writing tests
|
||||||
^^^^^^^^^^^^^
|
^^^^^^^^^^^^^
|
||||||
|
|
|
@ -10,7 +10,7 @@ RUN apt-get update; \
|
||||||
grep -Fv "python3-dev" | \
|
grep -Fv "python3-dev" | \
|
||||||
xargs apt-get install -y --no-install-recommends; \
|
xargs apt-get install -y --no-install-recommends; \
|
||||||
rm -rf /usr/share/doc/* /usr/share/locale/*
|
rm -rf /usr/share/doc/* /usr/share/locale/*
|
||||||
RUN curl -L https://github.com/acoustid/chromaprint/releases/download/v1.4.2/chromaprint-fpcalc-1.4.2-linux-x86_64.tar.gz | tar -xz -C /usr/local/bin --strip 1
|
|
||||||
COPY ./requirements/base.txt /requirements/base.txt
|
COPY ./requirements/base.txt /requirements/base.txt
|
||||||
RUN pip install -r /requirements/base.txt
|
RUN pip install -r /requirements/base.txt
|
||||||
COPY ./requirements/production.txt /requirements/production.txt
|
COPY ./requirements/production.txt /requirements/production.txt
|
||||||
|
|
|
@ -160,7 +160,6 @@ LOCAL_APPS = (
|
||||||
"funkwhale_api.radios",
|
"funkwhale_api.radios",
|
||||||
"funkwhale_api.history",
|
"funkwhale_api.history",
|
||||||
"funkwhale_api.playlists",
|
"funkwhale_api.playlists",
|
||||||
"funkwhale_api.providers.acoustid",
|
|
||||||
"funkwhale_api.subsonic",
|
"funkwhale_api.subsonic",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,6 @@ RUN apt-get update; \
|
||||||
xargs apt-get install -y --no-install-recommends; \
|
xargs apt-get install -y --no-install-recommends; \
|
||||||
rm -rf /usr/share/doc/* /usr/share/locale/*
|
rm -rf /usr/share/doc/* /usr/share/locale/*
|
||||||
|
|
||||||
RUN curl -L https://github.com/acoustid/chromaprint/releases/download/v1.4.2/chromaprint-fpcalc-1.4.2-linux-x86_64.tar.gz | tar -xz -C /usr/local/bin --strip 1
|
|
||||||
|
|
||||||
RUN mkdir /requirements
|
RUN mkdir /requirements
|
||||||
COPY ./requirements/base.txt /requirements/base.txt
|
COPY ./requirements/base.txt /requirements/base.txt
|
||||||
RUN pip install -r /requirements/base.txt
|
RUN pip install -r /requirements/base.txt
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
import acoustid
|
|
||||||
|
|
||||||
from dynamic_preferences.registries import global_preferences_registry
|
|
||||||
|
|
||||||
|
|
||||||
class Client(object):
|
|
||||||
def __init__(self, api_key):
|
|
||||||
self.api_key = api_key
|
|
||||||
|
|
||||||
def match(self, file_path):
|
|
||||||
return acoustid.match(self.api_key, file_path, parse=False)
|
|
||||||
|
|
||||||
def get_best_match(self, file_path):
|
|
||||||
results = self.match(file_path=file_path)
|
|
||||||
MIN_SCORE_FOR_MATCH = 0.8
|
|
||||||
try:
|
|
||||||
rows = results["results"]
|
|
||||||
except KeyError:
|
|
||||||
return
|
|
||||||
for row in rows:
|
|
||||||
if row["score"] >= MIN_SCORE_FOR_MATCH:
|
|
||||||
return row
|
|
||||||
|
|
||||||
|
|
||||||
def get_acoustid_client():
|
|
||||||
manager = global_preferences_registry.manager()
|
|
||||||
return Client(api_key=manager["providers_acoustid__api_key"])
|
|
|
@ -1,16 +0,0 @@
|
||||||
from django import forms
|
|
||||||
from dynamic_preferences.registries import global_preferences_registry
|
|
||||||
from dynamic_preferences.types import Section, StringPreference
|
|
||||||
|
|
||||||
acoustid = Section("providers_acoustid")
|
|
||||||
|
|
||||||
|
|
||||||
@global_preferences_registry.register
|
|
||||||
class APIKey(StringPreference):
|
|
||||||
section = acoustid
|
|
||||||
name = "api_key"
|
|
||||||
default = ""
|
|
||||||
verbose_name = "Acoustid API key"
|
|
||||||
help_text = "The API key used to query AcoustID. Get one at https://acoustid.org/new-application."
|
|
||||||
widget = forms.PasswordInput
|
|
||||||
field_kwargs = {"required": False}
|
|
|
@ -50,7 +50,6 @@ django-taggit>=0.22,<0.23
|
||||||
pymemoize==1.0.3
|
pymemoize==1.0.3
|
||||||
|
|
||||||
django-dynamic-preferences>=1.7,<1.8
|
django-dynamic-preferences>=1.7,<1.8
|
||||||
pyacoustid>=1.1.5,<1.2
|
|
||||||
raven>=6.5,<7
|
raven>=6.5,<7
|
||||||
python-magic==0.4.15
|
python-magic==0.4.15
|
||||||
ffmpeg-python==0.1.10
|
ffmpeg-python==0.1.10
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
from funkwhale_api.providers.acoustid import get_acoustid_client
|
|
||||||
|
|
||||||
|
|
||||||
def test_client_is_configured_with_correct_api_key(preferences):
|
|
||||||
api_key = "hello world"
|
|
||||||
preferences["providers_acoustid__api_key"] = api_key
|
|
||||||
|
|
||||||
client = get_acoustid_client()
|
|
||||||
assert client.api_key == api_key
|
|
||||||
|
|
||||||
|
|
||||||
def test_client_returns_raw_results(db, mocker, preferences):
|
|
||||||
api_key = "test"
|
|
||||||
preferences["providers_acoustid__api_key"] = api_key
|
|
||||||
payload = {
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"id": "e475bf79-c1ce-4441-bed7-1e33f226c0a2",
|
|
||||||
"recordings": [
|
|
||||||
{
|
|
||||||
"artists": [
|
|
||||||
{
|
|
||||||
"id": "9c6bddde-6228-4d9f-ad0d-03f6fcb19e13",
|
|
||||||
"name": "Binärpilot",
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"duration": 268,
|
|
||||||
"id": "f269d497-1cc0-4ae4-a0c4-157ec7d73fcb",
|
|
||||||
"title": "Bend",
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"score": 0.860825,
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"status": "ok",
|
|
||||||
}
|
|
||||||
|
|
||||||
m = mocker.patch("acoustid.match", return_value=payload)
|
|
||||||
client = get_acoustid_client()
|
|
||||||
response = client.match("/tmp/noopfile.mp3")
|
|
||||||
|
|
||||||
assert response == payload
|
|
||||||
m.assert_called_once_with("test", "/tmp/noopfile.mp3", parse=False)
|
|
Loading…
Reference in New Issue