1
0
mirror of https://github.com/spl0k/supysonic.git synced 2024-12-22 08:56:17 +00:00

correct exeption and double daeomon use

This commit is contained in:
vincent 2020-11-22 09:16:07 +01:00 committed by Alban Féron
parent 7fa30db647
commit 479d4ec654
No known key found for this signature in database
GPG Key ID: 8CE0313646D16165
3 changed files with 28 additions and 26 deletions

View File

@ -116,4 +116,4 @@ from .playlists import *
from .jukebox import *
from .radio import *
from .unsupported import *
from .scan import *
from .scan import *

7
supysonic/api/exceptions.py Normal file → Executable file
View File

@ -122,10 +122,3 @@ class AggregateException(SubsonicAPIException):
)
# rv.status_code = self.code
return rv
class DaemonUnavailable(SubsonicAPIException):
code = 404
api_code = 80
message = (
"Supysonic Daemon not running on this server."
)

45
supysonic/api/scan.py Normal file → Executable file
View File

@ -1,33 +1,42 @@
from . import api
from functools import wraps
from flask import request
from flask import current_app
from .user import admin_only
from .exceptions import Forbidden,DaemonUnavailable,ServerError
from ..db import Folder
from .exceptions import ServerError
from ..daemon.client import DaemonClient
from ..daemon.exceptions import DaemonUnavailableError
from ..managers.folder import FolderManager
@api.route("/startScan.view", methods=["GET", "POST"])
@admin_only
def startScan():
try:
DaemonClient(current_app.config["DAEMON"]["socket"]).scan()
except ValueError as e:
ServerError(str(e))
except DaemonUnavailableError:
raise DaemonUnavailable()
return getScanStatus()
daeomonclient = DaemonClient(current_app.config["DAEMON"]["socket"])
daeomonclient.scan()
scanned = daeomonclient.get_scanning_progress()
except Exception as e:
raise ServerError(str(e))
return request.formatter(
"scanStatus",
dict(
scanning="true" if scanned is not None else "false",
count=scanned if scanned is not None else 0,
),
)
@api.route("/getScanStatus.view", methods=["GET", "POST"])
@admin_only
def getScanStatus():
try:
scanned=DaemonClient(current_app.config["DAEMON"]["socket"]).get_scanning_progress()
except DaemonUnavailableError:
raise DaemonUnavailable()
return request.formatter("scanStatus",
dict(scanning='true' if scanned is not None else 'false',
count= scanned if scanned is not None else 0))
scanned = DaemonClient(
current_app.config["DAEMON"]["socket"]
).get_scanning_progress()
except Exception as e:
raise ServerError(str(e))
return request.formatter(
"scanStatus",
dict(
scanning="true" if scanned is not None else "false",
count=scanned if scanned is not None else 0,
),
)