KaruMediaServer/api/karumedia/__init__.py

56 lines
1.8 KiB
Python
Raw Normal View History

2016-11-01 22:26:29 +02:00
import json
from pathlib import Path
import falcon
2017-01-21 21:51:11 +02:00
import mongoengine
2016-11-01 22:26:29 +02:00
from .tools import JsonRequest, JsonResponse, error_handler
from .controllers import *
2017-01-21 21:51:11 +02:00
2016-11-01 22:26:29 +02:00
class AboutResource():
def on_get(self, req, resp):
r = {"about": {
"name": "Karu Media API",
"version": "1",
"docs": "TODO"
}
}
r.update({"endpoints":[
{"url":"/",
"method":"GET",
"description":"About this API"},
{"url":"/movies",
"method":"GET",
"description":"All movies on this server"},
{"url":"/movies/{movie}",
"method":"GET",
"description":"Movie details"},
{"url":"/movies/{movie}/stream",
"method":"GET",
"description":"Returns list of stream urls for the movie"},
{"url":"/magnet",
"method":"POST",
"description":"Add a movie via magnet hash"}
2016-11-01 22:26:29 +02:00
]})
resp.body = json.dumps(r, indent=4)
2017-01-21 21:51:11 +02:00
mongoengine.connect('KaruMedia', connect=False)
2016-11-01 22:26:29 +02:00
app = application = falcon.API(request_type=JsonRequest, response_type=JsonResponse)
app.add_error_handler(ValueError, error_handler)
2017-01-21 21:51:11 +02:00
app.add_error_handler(mongoengine.DoesNotExist, error_handler)
2016-11-01 22:26:29 +02:00
app.add_route("/", AboutResource())
2017-01-21 21:51:11 +02:00
path = Path("/srv/media/")
2016-11-01 22:26:29 +02:00
app.add_route("/movies", MoviesCollection(path))
app.add_route("/movies/{movie}", MoviesResource(path))
app.add_route("/magnet", MagnetResource())
2017-01-21 21:51:11 +02:00
app.add_route("/tasks", TaskCollection())
app.add_route("/tasks/{task_id}", TaskResource())