Move around items between scanner and renamer
This commit is contained in:
@@ -2,12 +2,12 @@ from couchpotato import get_session
|
||||
from couchpotato.api import addApiView
|
||||
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync
|
||||
from couchpotato.core.helpers.encoding import toUnicode, ss
|
||||
from couchpotato.core.helpers.request import getParams, jsonified, getParam
|
||||
from couchpotato.core.helpers.request import getParams, jsonified
|
||||
from couchpotato.core.helpers.variable import getExt, mergeDicts, getTitle, \
|
||||
getImdb
|
||||
from couchpotato.core.logger import CPLog
|
||||
from couchpotato.core.plugins.base import Plugin
|
||||
from couchpotato.core.settings.model import Library, File, Profile, Release
|
||||
from couchpotato.core.settings.model import Library, File, Profile, Release, ReleaseInfo
|
||||
from couchpotato.environment import Env
|
||||
import errno
|
||||
import os
|
||||
@@ -118,15 +118,28 @@ class Renamer(Plugin):
|
||||
except:
|
||||
log.error('Failed getting files from %s: %s', (movie_folder, traceback.format_exc()))
|
||||
|
||||
groups = fireEvent('scanner.scan', folder = folder if folder else self.conf('from'), files = movie_files, downloader = downloader, download_id = download_id, single = True)
|
||||
db = get_session()
|
||||
|
||||
# Make sure only one movie was found if a download ID is provided
|
||||
if downloader and download_id and not len(groups) == 1:
|
||||
log.info('Download ID provided (%s), but more than one group found (%s). Ignoring Download ID...', (download_id, len(groups)))
|
||||
downloader = None
|
||||
download_id = None
|
||||
groups = fireEvent('scanner.scan', folder = folder if folder else self.conf('from'), files = movie_files, single = True)
|
||||
# Get the release with the downloader ID that was downloded by the downloader
|
||||
download_quality = None
|
||||
download_imdb_id = None
|
||||
if downloader and download_id:
|
||||
# NOTE TO RUUD: Don't really know how to do this better... but there must be a way...?
|
||||
rlsnfo_dwnlds = db.query(ReleaseInfo).filter_by(identifier = 'download_downloader', value = downloader)
|
||||
rlsnfo_ids = db.query(ReleaseInfo).filter_by(identifier = 'download_id', value = download_id)
|
||||
for rlsnfo_dwnld in rlsnfo_dwnlds:
|
||||
for rlsnfo_id in rlsnfo_ids:
|
||||
if rlsnfo_id.release == rlsnfo_dwnld.release:
|
||||
rls = rlsnfo_id.release
|
||||
|
||||
if rls:
|
||||
download_imdb_id = rls.movie.library.identifier
|
||||
download_quality = rls.quality.identifier
|
||||
else:
|
||||
log.error('Download ID %s from downloader %s not found in releases', (download_id, downloader))
|
||||
|
||||
groups = fireEvent('scanner.scan', folder = folder if folder else self.conf('from'), files = movie_files, download_quality = download_quality, download_imdb_id = download_imdb_id, single = True)
|
||||
|
||||
destination = self.conf('to')
|
||||
folder_name = self.conf('folder_name')
|
||||
file_name = self.conf('file_name')
|
||||
@@ -140,8 +153,6 @@ class Renamer(Plugin):
|
||||
downloaded_status = fireEvent('status.get', 'downloaded', single = True)
|
||||
snatched_status = fireEvent('status.get', 'snatched', single = True)
|
||||
|
||||
db = get_session()
|
||||
|
||||
for group_identifier in groups:
|
||||
|
||||
group = groups[group_identifier]
|
||||
|
||||
@@ -4,7 +4,7 @@ from couchpotato.core.helpers.encoding import toUnicode, simplifyString, ss
|
||||
from couchpotato.core.helpers.variable import getExt, getImdb, tryInt
|
||||
from couchpotato.core.logger import CPLog
|
||||
from couchpotato.core.plugins.base import Plugin
|
||||
from couchpotato.core.settings.model import File, Movie, Release, ReleaseInfo
|
||||
from couchpotato.core.settings.model import File, Movie
|
||||
from enzyme.exceptions import NoParserError, ParseError
|
||||
from guessit import guess_movie_info
|
||||
from subliminal.videos import Video
|
||||
@@ -101,7 +101,7 @@ class Scanner(Plugin):
|
||||
addEvent('scanner.name_year', self.getReleaseNameYear)
|
||||
addEvent('scanner.partnumber', self.getPartNumber)
|
||||
|
||||
def scan(self, folder = None, files = None, downloader = None, download_id = None, simple = False, newer_than = 0, on_found = None):
|
||||
def scan(self, folder = None, files = None, download_imdb_id = None, download_quality = None, simple = False, newer_than = 0, on_found = None):
|
||||
|
||||
folder = ss(os.path.normpath(folder))
|
||||
|
||||
@@ -128,24 +128,6 @@ class Scanner(Plugin):
|
||||
|
||||
db = get_session()
|
||||
|
||||
# Get the release with the downloader ID that was downloded by the downloader
|
||||
download_quality = None
|
||||
download_imdb_id = None
|
||||
if downloader and download_id:
|
||||
# NOTE TO RUUD: Don't really know how to do this better... but there must be a way...?
|
||||
rlsnfo_dwnlds = db.query(ReleaseInfo).filter_by(identifier = 'download_downloader', value = downloader)
|
||||
rlsnfo_ids = db.query(ReleaseInfo).filter_by(identifier = 'download_id', value = download_id)
|
||||
for rlsnfo_dwnld in rlsnfo_dwnlds:
|
||||
for rlsnfo_id in rlsnfo_ids:
|
||||
if rlsnfo_id.release == rlsnfo_dwnld.release:
|
||||
rls = rlsnfo_id.release
|
||||
|
||||
if rls:
|
||||
download_imdb_id = rls.movie.library.identifier
|
||||
download_quality = rls.quality.identifier
|
||||
else:
|
||||
log.error('Download ID %s from downloader %s not found in releases', (download_id, downloader))
|
||||
|
||||
for file_path in files:
|
||||
|
||||
if not os.path.exists(file_path):
|
||||
@@ -330,6 +312,12 @@ class Scanner(Plugin):
|
||||
valid_files[identifier] = group
|
||||
|
||||
del movie_files
|
||||
|
||||
# Make sure only one movie was found if a download ID is provided
|
||||
if download_imdb_id and download_quality and not len(valid_files) == 1:
|
||||
log.info('Download ID provided (%s), but more than one group found (%s). Ignoring Download ID...', (download_imdb_id, len(valid_files)))
|
||||
download_imdb_id = None
|
||||
download_quality = None
|
||||
|
||||
# Determine file types
|
||||
processed_movies = {}
|
||||
|
||||
Reference in New Issue
Block a user