From 955814397a47dccdd2efcacf7646825d248f0f59 Mon Sep 17 00:00:00 2001 From: Ruud Date: Mon, 7 Oct 2013 23:38:53 +0200 Subject: [PATCH 1/7] Revert "TorrentBytes login url change. fix #2317" This reverts commit 95d0dacd28b1905b8c452c079ddfc407d08cee50. --- couchpotato/core/providers/torrent/torrentbytes/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/couchpotato/core/providers/torrent/torrentbytes/main.py b/couchpotato/core/providers/torrent/torrentbytes/main.py index 02b86ab..a5849a9 100644 --- a/couchpotato/core/providers/torrent/torrentbytes/main.py +++ b/couchpotato/core/providers/torrent/torrentbytes/main.py @@ -12,7 +12,7 @@ class TorrentBytes(TorrentProvider): urls = { 'test' : 'https://www.torrentbytes.net/', - 'login' : 'https://www.torrentbytes.net/login.php', + 'login' : 'https://www.torrentbytes.net/takelogin.php', 'login_check' : 'https://www.torrentbytes.net/inbox.php', 'detail' : 'https://www.torrentbytes.net/details.php?id=%s', 'search' : 'https://www.torrentbytes.net/browse.php?search=%s&cat=%d', From bac305572689201d4024d8cfbc7cb57f585ecdab Mon Sep 17 00:00:00 2001 From: Ruud Date: Tue, 8 Oct 2013 08:45:45 +0200 Subject: [PATCH 2/7] Move media refresh to media plugin --- couchpotato/core/media/__init__.py | 33 +++++++++++++++++- couchpotato/core/media/_base/media/__init__.py | 6 ++++ couchpotato/core/media/_base/media/main.py | 48 ++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 couchpotato/core/media/_base/media/__init__.py create mode 100644 couchpotato/core/media/_base/media/main.py diff --git a/couchpotato/core/media/__init__.py b/couchpotato/core/media/__init__.py index 1cef967..e6a249d 100644 --- a/couchpotato/core/media/__init__.py +++ b/couchpotato/core/media/__init__.py @@ -1,13 +1,44 @@ -from couchpotato.core.event import addEvent +from couchpotato import get_session +from couchpotato.core.event import addEvent, fireEventAsync, fireEvent from couchpotato.core.plugins.base import Plugin +from couchpotato.core.settings.model import Media class MediaBase(Plugin): _type = None + default_dict = { + 'profile': {'types': {'quality': {}}}, + 'releases': {'status': {}, 'quality': {}, 'files':{}, 'info': {}}, + 'library': {'titles': {}, 'files':{}}, + 'files': {}, + 'status': {}, + 'category': {}, + } + def initType(self): addEvent('media.types', self.getType) def getType(self): return self._type + + def createOnComplete(self, id): + + def onComplete(): + db = get_session() + media = db.query(Media).filter_by(id = id).first() + fireEventAsync('%s.searcher.single' % media.type, media.to_dict(self.default_dict), on_complete = self.createNotifyFront(id)) + db.expire_all() + + return onComplete + + def createNotifyFront(self, media_id): + + def notifyFront(): + db = get_session() + media = db.query(Media).filter_by(id = media_id).first() + fireEvent('notify.frontend', type = '%s.update.%s' % (media.type, media.id), data = media.to_dict(self.default_dict)) + db.expire_all() + + return notifyFront diff --git a/couchpotato/core/media/_base/media/__init__.py b/couchpotato/core/media/_base/media/__init__.py new file mode 100644 index 0000000..58fa378 --- /dev/null +++ b/couchpotato/core/media/_base/media/__init__.py @@ -0,0 +1,6 @@ +from .main import Media + +def start(): + return Media() + +config = [] diff --git a/couchpotato/core/media/_base/media/main.py b/couchpotato/core/media/_base/media/main.py new file mode 100644 index 0000000..2035cd8 --- /dev/null +++ b/couchpotato/core/media/_base/media/main.py @@ -0,0 +1,48 @@ +from couchpotato import get_session +from couchpotato.api import addApiView +from couchpotato.core.event import fireEvent, fireEventAsync, addEvent +from couchpotato.core.helpers.variable import splitString +from couchpotato.core.logger import CPLog +from couchpotato.core.media import MediaBase + +log = CPLog(__name__) + + +class Media(MediaBase): + + def __init__(self): + + addApiView('media.refresh', self.refresh, docs = { + 'desc': 'Refresh a any media type by ID', + 'params': { + 'id': {'desc': 'Movie, Show, Season or Episode ID(s) you want to refresh.', 'type': 'int (comma separated)'}, + } + }) + + addEvent('app.load', self.addSingleRefresh) + + def refresh(self, id = '', **kwargs): + db = get_session() + + for x in splitString(id): + media = db.query(Media).filter_by(id = x).first() + + if media: + # Get current selected title + default_title = '' + for title in media.library.titles: + if title.default: default_title = title.title + + fireEvent('notify.frontend', type = '%s.busy.%s' % (media.type, x), data = True) + fireEventAsync('library.update.%s' % media.type, identifier = media.library.identifier, default_title = default_title, force = True, on_complete = self.createOnComplete(x)) + + db.expire_all() + + return { + 'success': True, + } + + def addSingleRefresh(self): + + for media_type in fireEvent('media.types', merge = True): + addApiView('%s.refresh' % media_type, self.refresh) From b8ac093182617419e659953988b4af7ea373f338 Mon Sep 17 00:00:00 2001 From: Ruud Date: Tue, 8 Oct 2013 08:48:38 +0200 Subject: [PATCH 3/7] Remove refresh from movie media Conflicts: couchpotato/core/media/movie/_base/main.py --- couchpotato/core/media/movie/_base/main.py | 67 ++-------------------- couchpotato/core/media/movie/_base/static/list.js | 2 +- .../core/media/movie/_base/static/movie.actions.js | 2 +- 3 files changed, 6 insertions(+), 65 deletions(-) diff --git a/couchpotato/core/media/movie/_base/main.py b/couchpotato/core/media/movie/_base/main.py index c4e58b2..494c460 100644 --- a/couchpotato/core/media/movie/_base/main.py +++ b/couchpotato/core/media/movie/_base/main.py @@ -19,14 +19,7 @@ log = CPLog(__name__) class MovieBase(MovieTypeBase): - default_dict = { - 'profile': {'types': {'quality': {}}}, - 'releases': {'status': {}, 'quality': {}, 'files':{}, 'info': {}}, - 'library': {'titles': {}, 'files':{}}, - 'files': {}, - 'status': {}, - 'category': {}, - } + _type = 'movie' def __init__(self): @@ -55,12 +48,6 @@ class MovieBase(MovieTypeBase): 'id': {'desc': 'The id of the movie'}, } }) - addApiView('movie.refresh', self.refresh, docs = { - 'desc': 'Refresh a movie by id', - 'params': { - 'id': {'desc': 'Movie ID(s) you want to refresh.', 'type': 'int (comma separated)'}, - } - }) addApiView('movie.available_chars', self.charView) addApiView('movie.add', self.addView, docs = { 'desc': 'Add new movie to the wanted list', @@ -356,28 +343,6 @@ class MovieBase(MovieTypeBase): 'chars': chars, } - def refresh(self, id = '', **kwargs): - - db = get_session() - - for x in splitString(id): - movie = db.query(Movie).filter_by(id = x).first() - - if movie: - - # Get current selected title - default_title = '' - for title in movie.library.titles: - if title.default: default_title = title.title - - fireEvent('notify.frontend', type = 'movie.busy.%s' % x, data = True) - fireEventAsync('library.update.movie', identifier = movie.library.identifier, default_title = default_title, force = True, on_complete = self.createOnComplete(x)) - - db.expire_all() - return { - 'success': True, - } - def search(self, q = '', **kwargs): cache_key = u'%s/%s' % (__name__, simplifyString(q)) @@ -489,15 +454,12 @@ class MovieBase(MovieTypeBase): db.expire_all() return movie_dict - def addView(self, **kwargs): - - movie_dict = self.add(params = kwargs) + add_dict = self.add(params = kwargs) return { - 'success': True, - 'added': True if movie_dict else False, - 'movie': movie_dict, + 'success': True if add_dict else False, + 'movie': add_dict, } def edit(self, id = '', **kwargs): @@ -627,24 +589,3 @@ class MovieBase(MovieTypeBase): db.commit() return True - - def createOnComplete(self, movie_id): - - def onComplete(): - db = get_session() - movie = db.query(Movie).filter_by(id = movie_id).first() - fireEventAsync('movie.searcher.single', movie.to_dict(self.default_dict), on_complete = self.createNotifyFront(movie_id)) - db.expire_all() - - return onComplete - - - def createNotifyFront(self, movie_id): - - def notifyFront(): - db = get_session() - movie = db.query(Movie).filter_by(id = movie_id).first() - fireEvent('notify.frontend', type = 'movie.update.%s' % movie.id, data = movie.to_dict(self.default_dict)) - db.expire_all() - - return notifyFront diff --git a/couchpotato/core/media/movie/_base/static/list.js b/couchpotato/core/media/movie/_base/static/list.js index 341d234..aaa8be1 100644 --- a/couchpotato/core/media/movie/_base/static/list.js +++ b/couchpotato/core/media/movie/_base/static/list.js @@ -422,7 +422,7 @@ var MovieList = new Class({ var self = this; var ids = self.getSelectedMovies() - Api.request('movie.refresh', { + Api.request('media.refresh', { 'data': { 'id': ids.join(','), } diff --git a/couchpotato/core/media/movie/_base/static/movie.actions.js b/couchpotato/core/media/movie/_base/static/movie.actions.js index 9dd6bdf..0e9e5bf 100644 --- a/couchpotato/core/media/movie/_base/static/movie.actions.js +++ b/couchpotato/core/media/movie/_base/static/movie.actions.js @@ -706,7 +706,7 @@ MA.Refresh = new Class({ var self = this; (e).preventDefault(); - Api.request('movie.refresh', { + Api.request('media.refresh', { 'data': { 'id': self.movie.get('id') } From eabd2b6c412d3f800110dddffbdd95d6a6f5c54e Mon Sep 17 00:00:00 2001 From: Ruud Date: Tue, 8 Oct 2013 09:21:53 +0200 Subject: [PATCH 4/7] Rename mediaplugin --- couchpotato/core/media/_base/media/__init__.py | 4 ++-- couchpotato/core/media/_base/media/main.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/couchpotato/core/media/_base/media/__init__.py b/couchpotato/core/media/_base/media/__init__.py index 58fa378..a9693a3 100644 --- a/couchpotato/core/media/_base/media/__init__.py +++ b/couchpotato/core/media/_base/media/__init__.py @@ -1,6 +1,6 @@ -from .main import Media +from .main import MediaPlugin def start(): - return Media() + return MediaPlugin() config = [] diff --git a/couchpotato/core/media/_base/media/main.py b/couchpotato/core/media/_base/media/main.py index 2035cd8..286d404 100644 --- a/couchpotato/core/media/_base/media/main.py +++ b/couchpotato/core/media/_base/media/main.py @@ -8,7 +8,7 @@ from couchpotato.core.media import MediaBase log = CPLog(__name__) -class Media(MediaBase): +class MediaPlugin(MediaBase): def __init__(self): From 32646d060882763651c4434b98ba20d79010bd7a Mon Sep 17 00:00:00 2001 From: Ruud Date: Tue, 8 Oct 2013 09:22:05 +0200 Subject: [PATCH 5/7] Use movie instaid of media model --- couchpotato/core/media/__init__.py | 6 +++--- couchpotato/core/media/_base/media/main.py | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/couchpotato/core/media/__init__.py b/couchpotato/core/media/__init__.py index e6a249d..cdf667c 100644 --- a/couchpotato/core/media/__init__.py +++ b/couchpotato/core/media/__init__.py @@ -1,7 +1,7 @@ from couchpotato import get_session from couchpotato.core.event import addEvent, fireEventAsync, fireEvent from couchpotato.core.plugins.base import Plugin -from couchpotato.core.settings.model import Media +from couchpotato.core.settings.model import Movie class MediaBase(Plugin): @@ -27,7 +27,7 @@ class MediaBase(Plugin): def onComplete(): db = get_session() - media = db.query(Media).filter_by(id = id).first() + media = db.query(Movie).filter_by(id = id).first() fireEventAsync('%s.searcher.single' % media.type, media.to_dict(self.default_dict), on_complete = self.createNotifyFront(id)) db.expire_all() @@ -37,7 +37,7 @@ class MediaBase(Plugin): def notifyFront(): db = get_session() - media = db.query(Media).filter_by(id = media_id).first() + media = db.query(Movie).filter_by(id = media_id).first() fireEvent('notify.frontend', type = '%s.update.%s' % (media.type, media.id), data = media.to_dict(self.default_dict)) db.expire_all() diff --git a/couchpotato/core/media/_base/media/main.py b/couchpotato/core/media/_base/media/main.py index 286d404..d0ddf11 100644 --- a/couchpotato/core/media/_base/media/main.py +++ b/couchpotato/core/media/_base/media/main.py @@ -4,6 +4,7 @@ from couchpotato.core.event import fireEvent, fireEventAsync, addEvent from couchpotato.core.helpers.variable import splitString from couchpotato.core.logger import CPLog from couchpotato.core.media import MediaBase +from couchpotato.core.settings.model import Movie log = CPLog(__name__) @@ -25,7 +26,7 @@ class MediaPlugin(MediaBase): db = get_session() for x in splitString(id): - media = db.query(Media).filter_by(id = x).first() + media = db.query(Movie).filter_by(id = x).first() if media: # Get current selected title From 107606ce659145e7a63945c542bc5f5b14b9fa10 Mon Sep 17 00:00:00 2001 From: Ruud Date: Tue, 8 Oct 2013 09:57:17 +0200 Subject: [PATCH 6/7] Add tv branch column aliases --- couchpotato/core/settings/model.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/couchpotato/core/settings/model.py b/couchpotato/core/settings/model.py index f39544b..8601c2b 100644 --- a/couchpotato/core/settings/model.py +++ b/couchpotato/core/settings/model.py @@ -78,6 +78,7 @@ class Movie(Entity): such as trailers, nfo, thumbnails""" last_edit = Field(Integer, default = lambda: int(time.time()), index = True) + type = 'movie' # Compat tv branch library = ManyToOne('Library', cascade = 'delete, delete-orphan', single_parent = True) status = ManyToOne('Status') @@ -86,6 +87,7 @@ class Movie(Entity): releases = OneToMany('Release', cascade = 'all, delete-orphan') files = ManyToMany('File', cascade = 'all, delete-orphan', single_parent = True) +Media = Movie # Compat tv branch class Library(Entity): """""" From d1c3f0c24134f3c6fbb742f0debf1cacdb903e35 Mon Sep 17 00:00:00 2001 From: Ruud Date: Tue, 8 Oct 2013 09:57:36 +0200 Subject: [PATCH 7/7] Use Media for all Movie db actions --- couchpotato/core/media/__init__.py | 6 ++-- couchpotato/core/media/_base/media/main.py | 4 +-- couchpotato/core/media/_base/searcher/main.py | 4 +-- couchpotato/core/media/movie/_base/main.py | 42 ++++++++++++------------- couchpotato/core/media/movie/searcher/main.py | 8 ++--- couchpotato/core/media/movie/suggestion/main.py | 10 +++--- couchpotato/core/plugins/category/main.py | 4 +-- couchpotato/core/plugins/dashboard/main.py | 16 +++++----- couchpotato/core/plugins/profile/main.py | 4 +-- couchpotato/core/plugins/release/main.py | 8 ++--- couchpotato/core/plugins/scanner/main.py | 2 +- 11 files changed, 54 insertions(+), 54 deletions(-) diff --git a/couchpotato/core/media/__init__.py b/couchpotato/core/media/__init__.py index cdf667c..e6a249d 100644 --- a/couchpotato/core/media/__init__.py +++ b/couchpotato/core/media/__init__.py @@ -1,7 +1,7 @@ from couchpotato import get_session from couchpotato.core.event import addEvent, fireEventAsync, fireEvent from couchpotato.core.plugins.base import Plugin -from couchpotato.core.settings.model import Movie +from couchpotato.core.settings.model import Media class MediaBase(Plugin): @@ -27,7 +27,7 @@ class MediaBase(Plugin): def onComplete(): db = get_session() - media = db.query(Movie).filter_by(id = id).first() + media = db.query(Media).filter_by(id = id).first() fireEventAsync('%s.searcher.single' % media.type, media.to_dict(self.default_dict), on_complete = self.createNotifyFront(id)) db.expire_all() @@ -37,7 +37,7 @@ class MediaBase(Plugin): def notifyFront(): db = get_session() - media = db.query(Movie).filter_by(id = media_id).first() + media = db.query(Media).filter_by(id = media_id).first() fireEvent('notify.frontend', type = '%s.update.%s' % (media.type, media.id), data = media.to_dict(self.default_dict)) db.expire_all() diff --git a/couchpotato/core/media/_base/media/main.py b/couchpotato/core/media/_base/media/main.py index d0ddf11..87afb82 100644 --- a/couchpotato/core/media/_base/media/main.py +++ b/couchpotato/core/media/_base/media/main.py @@ -4,7 +4,7 @@ from couchpotato.core.event import fireEvent, fireEventAsync, addEvent from couchpotato.core.helpers.variable import splitString from couchpotato.core.logger import CPLog from couchpotato.core.media import MediaBase -from couchpotato.core.settings.model import Movie +from couchpotato.core.settings.model import Media log = CPLog(__name__) @@ -26,7 +26,7 @@ class MediaPlugin(MediaBase): db = get_session() for x in splitString(id): - media = db.query(Movie).filter_by(id = x).first() + media = db.query(Media).filter_by(id = x).first() if media: # Get current selected title diff --git a/couchpotato/core/media/_base/searcher/main.py b/couchpotato/core/media/_base/searcher/main.py index 934a147..b6b3612 100644 --- a/couchpotato/core/media/_base/searcher/main.py +++ b/couchpotato/core/media/_base/searcher/main.py @@ -5,7 +5,7 @@ from couchpotato.core.helpers.encoding import simplifyString, toUnicode from couchpotato.core.helpers.variable import md5, getTitle from couchpotato.core.logger import CPLog from couchpotato.core.media._base.searcher.base import SearcherBase -from couchpotato.core.settings.model import Movie, Release, ReleaseInfo +from couchpotato.core.settings.model import Media, Release, ReleaseInfo from couchpotato.environment import Env from inspect import ismethod, isfunction import datetime @@ -104,7 +104,7 @@ class Searcher(SearcherBase): if profile_type['quality_id'] == rls.quality.id and profile_type['finish']: # Mark movie done log.info('Renamer disabled, marking movie as finished: %s', log_movie) - mvie = db.query(Movie).filter_by(id = movie['id']).first() + mvie = db.query(Media).filter_by(id = movie['id']).first() mvie.status_id = done_status.get('id') mvie.last_edit = int(time.time()) db.commit() diff --git a/couchpotato/core/media/movie/_base/main.py b/couchpotato/core/media/movie/_base/main.py index 494c460..4f39733 100644 --- a/couchpotato/core/media/movie/_base/main.py +++ b/couchpotato/core/media/movie/_base/main.py @@ -6,7 +6,7 @@ from couchpotato.core.helpers.variable import getImdb, splitString, tryInt, \ mergeDicts from couchpotato.core.logger import CPLog from couchpotato.core.media.movie import MovieTypeBase -from couchpotato.core.settings.model import Library, LibraryTitle, Movie, \ +from couchpotato.core.settings.model import Library, LibraryTitle, Media, \ Release from couchpotato.environment import Env from sqlalchemy.orm import joinedload_all @@ -96,8 +96,8 @@ class MovieBase(MovieTypeBase): db = get_session() # get movies last_edit more than a week ago - movies = db.query(Movie) \ - .filter(Movie.status_id == done_status.get('id'), Movie.last_edit < (now - week)) \ + movies = db.query(Media) \ + .filter(Media.status_id == done_status.get('id'), Media.last_edit < (now - week)) \ .all() for movie in movies: @@ -123,9 +123,9 @@ class MovieBase(MovieTypeBase): imdb_id = getImdb(str(movie_id)) if imdb_id: - m = db.query(Movie).filter(Movie.library.has(identifier = imdb_id)).first() + m = db.query(Media).filter(Media.library.has(identifier = imdb_id)).first() else: - m = db.query(Movie).filter_by(id = movie_id).first() + m = db.query(Media).filter_by(id = movie_id).first() results = None if m: @@ -145,20 +145,20 @@ class MovieBase(MovieTypeBase): release_status = [release_status] # query movie ids - q = db.query(Movie) \ - .with_entities(Movie.id) \ - .group_by(Movie.id) + q = db.query(Media) \ + .with_entities(Media.id) \ + .group_by(Media.id) # Filter on movie status if status and len(status) > 0: statuses = fireEvent('status.get', status, single = len(status) > 1) statuses = [s.get('id') for s in statuses] - q = q.filter(Movie.status_id.in_(statuses)) + q = q.filter(Media.status_id.in_(statuses)) # Filter on release status if release_status and len(release_status) > 0: - q = q.join(Movie.releases) + q = q.join(Media.releases) statuses = fireEvent('status.get', release_status, single = len(release_status) > 1) statuses = [s.get('id') for s in statuses] @@ -167,7 +167,7 @@ class MovieBase(MovieTypeBase): # Only join when searching / ordering if starts_with or search or order != 'release_order': - q = q.join(Movie.library, Library.titles) \ + q = q.join(Media.library, Library.titles) \ .filter(LibraryTitle.default == True) # Add search filters @@ -218,13 +218,13 @@ class MovieBase(MovieTypeBase): releases_count[release.movie_id] += 1 # Get main movie data - q2 = db.query(Movie) \ + q2 = db.query(Media) \ .options(joinedload_all('library.titles')) \ .options(joinedload_all('library.files')) \ .options(joinedload_all('status')) \ .options(joinedload_all('files')) - q2 = q2.filter(Movie.id.in_(movie_ids)) + q2 = q2.filter(Media.id.in_(movie_ids)) results = q2.all() @@ -267,14 +267,14 @@ class MovieBase(MovieTypeBase): if release_status and not isinstance(release_status, (list, tuple)): release_status = [release_status] - q = db.query(Movie) + q = db.query(Media) # Filter on movie status if status and len(status) > 0: statuses = fireEvent('status.get', status, single = len(release_status) > 1) statuses = [s.get('id') for s in statuses] - q = q.filter(Movie.status_id.in_(statuses)) + q = q.filter(Media.status_id.in_(statuses)) # Filter on release status if release_status and len(release_status) > 0: @@ -282,7 +282,7 @@ class MovieBase(MovieTypeBase): statuses = fireEvent('status.get', release_status, single = len(release_status) > 1) statuses = [s.get('id') for s in statuses] - q = q.join(Movie.releases) \ + q = q.join(Media.releases) \ .filter(Release.status_id.in_(statuses)) q = q.join(Library, LibraryTitle) \ @@ -392,12 +392,12 @@ class MovieBase(MovieTypeBase): cat_id = params.get('category_id') db = get_session() - m = db.query(Movie).filter_by(library_id = library.get('id')).first() + m = db.query(Media).filter_by(library_id = library.get('id')).first() added = True do_search = False search_after = search_after and self.conf('search_on_add', section = 'moviesearcher') if not m: - m = Movie( + m = Media( library_id = library.get('id'), profile_id = params.get('profile_id', default_profile.get('id')), status_id = status_id if status_id else status_active.get('id'), @@ -471,7 +471,7 @@ class MovieBase(MovieTypeBase): ids = splitString(id) for movie_id in ids: - m = db.query(Movie).filter_by(id = movie_id).first() + m = db.query(Media).filter_by(id = movie_id).first() if not m: continue @@ -518,7 +518,7 @@ class MovieBase(MovieTypeBase): db = get_session() - movie = db.query(Movie).filter_by(id = movie_id).first() + movie = db.query(Media).filter_by(id = movie_id).first() if movie: deleted = False if delete_from == 'all': @@ -568,7 +568,7 @@ class MovieBase(MovieTypeBase): db = get_session() - m = db.query(Movie).filter_by(id = movie_id).first() + m = db.query(Media).filter_by(id = movie_id).first() if not m or len(m.library.titles) == 0: log.debug('Can\'t restatus movie, doesn\'t seem to exist.') return False diff --git a/couchpotato/core/media/movie/searcher/main.py b/couchpotato/core/media/movie/searcher/main.py index b08e753..79d2ed8 100644 --- a/couchpotato/core/media/movie/searcher/main.py +++ b/couchpotato/core/media/movie/searcher/main.py @@ -7,7 +7,7 @@ from couchpotato.core.helpers.variable import md5, getTitle, splitString, \ from couchpotato.core.logger import CPLog from couchpotato.core.media._base.searcher.base import SearcherBase from couchpotato.core.media.movie import MovieTypeBase -from couchpotato.core.settings.model import Movie, Release, ReleaseInfo +from couchpotato.core.settings.model import Media, Release, ReleaseInfo from couchpotato.environment import Env from datetime import date from sqlalchemy.exc import InterfaceError @@ -74,8 +74,8 @@ class MovieSearcher(SearcherBase, MovieTypeBase): db = get_session() - movies = db.query(Movie).filter( - Movie.status.has(identifier = 'active') + movies = db.query(Media).filter( + Media.status.has(identifier = 'active') ).all() random.shuffle(movies) @@ -182,7 +182,7 @@ class MovieSearcher(SearcherBase, MovieTypeBase): sorted_results = sorted(sorted_results, key = lambda k: k['protocol'][:3], reverse = (download_preference == 'torrent')) # Check if movie isn't deleted while searching - if not db.query(Movie).filter_by(id = movie.get('id')).first(): + if not db.query(Media).filter_by(id = movie.get('id')).first(): break # Add them to this movie releases list diff --git a/couchpotato/core/media/movie/suggestion/main.py b/couchpotato/core/media/movie/suggestion/main.py index eb31d26..f29281e 100644 --- a/couchpotato/core/media/movie/suggestion/main.py +++ b/couchpotato/core/media/movie/suggestion/main.py @@ -3,7 +3,7 @@ from couchpotato.api import addApiView from couchpotato.core.event import fireEvent from couchpotato.core.helpers.variable import splitString from couchpotato.core.plugins.base import Plugin -from couchpotato.core.settings.model import Movie, Library +from couchpotato.core.settings.model import Media, Library from couchpotato.environment import Env from sqlalchemy.orm import joinedload_all from sqlalchemy.sql.expression import or_ @@ -29,9 +29,9 @@ class Suggestion(Plugin): if not movies or len(movies) == 0: db = get_session() - active_movies = db.query(Movie) \ + active_movies = db.query(Media) \ .options(joinedload_all('library')) \ - .filter(or_(*[Movie.status.has(identifier = s) for s in ['active', 'done']])).all() + .filter(or_(*[Media.status.has(identifier = s) for s in ['active', 'done']])).all() movies = [x.library.identifier for x in active_movies] if not ignored or len(ignored) == 0: @@ -89,10 +89,10 @@ class Suggestion(Plugin): active_status, done_status = fireEvent('status.get', ['active', 'done'], single = True) db = get_session() - active_movies = db.query(Movie) \ + active_movies = db.query(Media) \ .join(Library) \ .with_entities(Library.identifier) \ - .filter(Movie.status_id.in_([active_status.get('id'), done_status.get('id')])).all() + .filter(Media.status_id.in_([active_status.get('id'), done_status.get('id')])).all() movies = [x[0] for x in active_movies] movies.extend(seen) diff --git a/couchpotato/core/plugins/category/main.py b/couchpotato/core/plugins/category/main.py index d13a74a..87cd0ea 100644 --- a/couchpotato/core/plugins/category/main.py +++ b/couchpotato/core/plugins/category/main.py @@ -4,7 +4,7 @@ from couchpotato.core.event import addEvent from couchpotato.core.helpers.encoding import toUnicode from couchpotato.core.logger import CPLog from couchpotato.core.plugins.base import Plugin -from couchpotato.core.settings.model import Movie, Category +from couchpotato.core.settings.model import Media, Category log = CPLog(__name__) @@ -113,7 +113,7 @@ class CategoryPlugin(Plugin): def removeFromMovie(self, category_id): db = get_session() - movies = db.query(Movie).filter(Movie.category_id == category_id).all() + movies = db.query(Media).filter(Media.category_id == category_id).all() if len(movies) > 0: for movie in movies: diff --git a/couchpotato/core/plugins/dashboard/main.py b/couchpotato/core/plugins/dashboard/main.py index f006ac4..4f4d85a 100644 --- a/couchpotato/core/plugins/dashboard/main.py +++ b/couchpotato/core/plugins/dashboard/main.py @@ -4,7 +4,7 @@ from couchpotato.core.event import fireEvent from couchpotato.core.helpers.variable import splitString, tryInt from couchpotato.core.logger import CPLog from couchpotato.core.plugins.base import Plugin -from couchpotato.core.settings.model import Movie, Library, LibraryTitle, \ +from couchpotato.core.settings.model import Media, Library, LibraryTitle, \ Release from sqlalchemy.orm import joinedload_all from sqlalchemy.sql.expression import asc, or_ @@ -50,12 +50,12 @@ class Dashboard(Plugin): # Get all active movies active_status, ignored_status = fireEvent('status.get', ['active', 'ignored'], single = True) - q = db.query(Movie) \ + q = db.query(Media) \ .join(Library) \ - .outerjoin(Movie.releases) \ - .filter(Movie.status_id == active_status.get('id')) \ - .with_entities(Movie.id, Movie.profile_id, Library.info, Library.year) \ - .group_by(Movie.id) \ + .outerjoin(Media.releases) \ + .filter(Media.status_id == active_status.get('id')) \ + .with_entities(Media.id, Media.profile_id, Library.info, Library.year) \ + .group_by(Media.id) \ .filter(or_(Release.id == None, Release.status_id == ignored_status.get('id'))) if not random: @@ -101,11 +101,11 @@ class Dashboard(Plugin): if len(movie_ids) > 0: # Get all movie information - movies_raw = db.query(Movie) \ + movies_raw = db.query(Media) \ .options(joinedload_all('library.titles')) \ .options(joinedload_all('library.files')) \ .options(joinedload_all('files')) \ - .filter(Movie.id.in_(movie_ids)) \ + .filter(Media.id.in_(movie_ids)) \ .all() # Create dict by movie id diff --git a/couchpotato/core/plugins/profile/main.py b/couchpotato/core/plugins/profile/main.py index 68ab936..9ff3ead 100644 --- a/couchpotato/core/plugins/profile/main.py +++ b/couchpotato/core/plugins/profile/main.py @@ -4,7 +4,7 @@ from couchpotato.core.event import addEvent, fireEvent from couchpotato.core.helpers.encoding import toUnicode from couchpotato.core.logger import CPLog from couchpotato.core.plugins.base import Plugin -from couchpotato.core.settings.model import Profile, ProfileType, Movie +from couchpotato.core.settings.model import Profile, ProfileType, Media from sqlalchemy.orm import joinedload_all log = CPLog(__name__) @@ -38,7 +38,7 @@ class ProfilePlugin(Plugin): active_status = fireEvent('status.get', 'active', single = True) db = get_session() - movies = db.query(Movie).filter(Movie.status_id == active_status.get('id'), Movie.profile == None).all() + movies = db.query(Media).filter(Media.status_id == active_status.get('id'), Media.profile == None).all() if len(movies) > 0: default_profile = self.default() diff --git a/couchpotato/core/plugins/release/main.py b/couchpotato/core/plugins/release/main.py index e8d1815..e672663 100644 --- a/couchpotato/core/plugins/release/main.py +++ b/couchpotato/core/plugins/release/main.py @@ -5,12 +5,12 @@ from couchpotato.core.helpers.encoding import ss 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 couchpotato.core.settings.model import File, Release as Relea, Media from sqlalchemy.orm import joinedload_all from sqlalchemy.sql.expression import and_, or_ import os -import traceback import time +import traceback log = CPLog(__name__) @@ -60,9 +60,9 @@ class Release(Plugin): done_status, snatched_status = fireEvent('status.get', ['done', 'snatched'], single = True) # Add movie - movie = db.query(Movie).filter_by(library_id = group['library'].get('id')).first() + movie = db.query(Media).filter_by(library_id = group['library'].get('id')).first() if not movie: - movie = Movie( + movie = Media( library_id = group['library'].get('id'), profile_id = 0, status_id = done_status.get('id') diff --git a/couchpotato/core/plugins/scanner/main.py b/couchpotato/core/plugins/scanner/main.py index 5862709..afbfa74 100644 --- a/couchpotato/core/plugins/scanner/main.py +++ b/couchpotato/core/plugins/scanner/main.py @@ -415,7 +415,7 @@ class Scanner(Plugin): if not group['library']: log.error('Unable to determine movie: %s', group['identifiers']) else: - movie = db.query(Movie).filter_by(library_id = group['library']['id']).first() + movie = db.query(Media).filter_by(library_id = group['library']['id']).first() group['movie_id'] = None if not movie else movie.id processed_movies[identifier] = group