1
0
mirror of https://github.com/spl0k/supysonic.git synced 2024-11-12 21:22: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 .jukebox import *
from .radio import * from .radio import *
from .unsupported 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 # rv.status_code = self.code
return rv 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 . import api
from functools import wraps
from flask import request from flask import request
from flask import current_app from flask import current_app
from .user import admin_only from .user import admin_only
from .exceptions import Forbidden,DaemonUnavailable,ServerError from .exceptions import ServerError
from ..db import Folder
from ..daemon.client import DaemonClient from ..daemon.client import DaemonClient
from ..daemon.exceptions import DaemonUnavailableError
from ..managers.folder import FolderManager
@api.route("/startScan.view", methods=["GET", "POST"]) @api.route("/startScan.view", methods=["GET", "POST"])
@admin_only @admin_only
def startScan(): def startScan():
try: try:
DaemonClient(current_app.config["DAEMON"]["socket"]).scan() daeomonclient = DaemonClient(current_app.config["DAEMON"]["socket"])
except ValueError as e: daeomonclient.scan()
ServerError(str(e)) scanned = daeomonclient.get_scanning_progress()
except DaemonUnavailableError: except Exception as e:
raise DaemonUnavailable() raise ServerError(str(e))
return getScanStatus() 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"]) @api.route("/getScanStatus.view", methods=["GET", "POST"])
@admin_only @admin_only
def getScanStatus(): def getScanStatus():
try: try:
scanned=DaemonClient(current_app.config["DAEMON"]["socket"]).get_scanning_progress() scanned = DaemonClient(
except DaemonUnavailableError: current_app.config["DAEMON"]["socket"]
raise DaemonUnavailable() ).get_scanning_progress()
return request.formatter("scanStatus", except Exception as e:
dict(scanning='true' if scanned is not None else 'false', raise ServerError(str(e))
count= scanned if scanned is not None else 0)) return request.formatter(
"scanStatus",
dict(
scanning="true" if scanned is not None else "false",
count=scanned if scanned is not None else 0,
),
)