Api: added release.for_movie
Get all releases for a single movie
This commit is contained in:
@@ -6,6 +6,7 @@ from couchpotato.core.logger import CPLog
|
||||
from couchpotato.core.plugins.base import Plugin
|
||||
from couchpotato.core.plugins.scanner.main import Scanner
|
||||
from couchpotato.core.settings.model import File, Release as Relea, Movie
|
||||
from sqlalchemy.orm import joinedload_all
|
||||
from sqlalchemy.sql.expression import and_, or_
|
||||
import os
|
||||
import traceback
|
||||
@@ -36,6 +37,12 @@ class Release(Plugin):
|
||||
'id': {'type': 'id', 'desc': 'ID of the release object in release-table'}
|
||||
}
|
||||
})
|
||||
addApiView('release.for_movie', self.forMovie, docs = {
|
||||
'desc': 'Returns all releases for a movie. Ordered by score(desc)',
|
||||
'params': {
|
||||
'id': {'type': 'id', 'desc': 'ID of the movie'}
|
||||
}
|
||||
})
|
||||
|
||||
addEvent('release.delete', self.delete)
|
||||
addEvent('release.clean', self.clean)
|
||||
@@ -204,3 +211,22 @@ class Release(Plugin):
|
||||
return {
|
||||
'success': False
|
||||
}
|
||||
|
||||
def forMovie(self, id = None, **kwargs):
|
||||
|
||||
db = get_session()
|
||||
|
||||
releases_raw = db.query(Relea) \
|
||||
.options(joinedload_all('info')) \
|
||||
.options(joinedload_all('files')) \
|
||||
.filter(Relea.movie_id == id) \
|
||||
.all()
|
||||
|
||||
releases = [r.to_dict({'info':{}, 'files':{}}) for r in releases_raw]
|
||||
releases = sorted(releases, key = lambda k: k['info']['score'], reverse = True)
|
||||
|
||||
return {
|
||||
'releases': releases,
|
||||
'success': True
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user