mirror of
https://github.com/spl0k/supysonic.git
synced 2024-12-22 08:56:17 +00:00
scan Api implementation
This commit is contained in:
parent
8cef628219
commit
6c89accc86
@ -116,3 +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 *
|
@ -122,3 +122,10 @@ 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."
|
||||||
|
)
|
33
supysonic/api/scan.py
Normal file
33
supysonic/api/scan.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
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 ..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()
|
||||||
|
|
||||||
|
@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))
|
Loading…
Reference in New Issue
Block a user