|
@ -103,7 +103,7 @@ class Renamer(Plugin): |
|
|
|
|
|
|
|
|
# make sure the movie folder name is included in the search |
|
|
# make sure the movie folder name is included in the search |
|
|
folder = None |
|
|
folder = None |
|
|
movie_files = [] |
|
|
files = [] |
|
|
if movie_folder: |
|
|
if movie_folder: |
|
|
log.info('Scanning movie folder %s...', movie_folder) |
|
|
log.info('Scanning movie folder %s...', movie_folder) |
|
|
movie_folder = movie_folder.rstrip(os.path.sep) |
|
|
movie_folder = movie_folder.rstrip(os.path.sep) |
|
@ -112,38 +112,17 @@ class Renamer(Plugin): |
|
|
# Get all files from the specified folder |
|
|
# Get all files from the specified folder |
|
|
try: |
|
|
try: |
|
|
for root, folders, names in os.walk(movie_folder): |
|
|
for root, folders, names in os.walk(movie_folder): |
|
|
movie_files.extend([os.path.join(root, name) for name in names]) |
|
|
files.extend([os.path.join(root, name) for name in names]) |
|
|
except: |
|
|
except: |
|
|
log.error('Failed getting files from %s: %s', (movie_folder, traceback.format_exc())) |
|
|
log.error('Failed getting files from %s: %s', (movie_folder, traceback.format_exc())) |
|
|
|
|
|
|
|
|
db = get_session() |
|
|
db = get_session() |
|
|
|
|
|
|
|
|
# Get the release with the downloader ID that was downloaded by the downloader |
|
|
# Get the download info stored in the downloaded release |
|
|
download_info = None |
|
|
download_info = getDownloadInfo(download_id = download_id, downloader = downloader) |
|
|
if download_id and downloader: |
|
|
|
|
|
rls = None |
|
|
|
|
|
|
|
|
|
|
|
rlsnfo_dwnlds = db.query(ReleaseInfo).filter_by(identifier = 'download_downloader', value = downloader).all() |
|
|
|
|
|
rlsnfo_ids = db.query(ReleaseInfo).filter_by(identifier = 'download_id', value = download_id).all() |
|
|
|
|
|
|
|
|
|
|
|
for rlsnfo_dwnld in rlsnfo_dwnlds: |
|
|
|
|
|
for rlsnfo_id in rlsnfo_ids: |
|
|
|
|
|
if rlsnfo_id.release == rlsnfo_dwnld.release: |
|
|
|
|
|
rls = rlsnfo_id.release |
|
|
|
|
|
break |
|
|
|
|
|
if rls: break |
|
|
|
|
|
|
|
|
|
|
|
if rls: |
|
|
|
|
|
download_info = { |
|
|
|
|
|
'imdb_id': rls.movie.library.identifier, |
|
|
|
|
|
'quality': rls.quality.identifier, |
|
|
|
|
|
'is_torrent': any(downloader_type in fireEvent('download.downloader_type', downloader = downloader) for downloader_type in ['torrent', 'torrent_magnet']) |
|
|
|
|
|
} |
|
|
|
|
|
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'), |
|
|
groups = fireEvent('scanner.scan', folder = folder if folder else self.conf('from'), |
|
|
files = movie_files, download_info = download_info, return_ignored = False, single = True) |
|
|
files = files, download_info = download_info, return_ignored = False, single = True) |
|
|
|
|
|
|
|
|
destination = self.conf('to') |
|
|
destination = self.conf('to') |
|
|
folder_name = self.conf('folder_name') |
|
|
folder_name = self.conf('folder_name') |
|
@ -678,7 +657,7 @@ Remove it if you want it to be renamed (again, or at least let it try again) |
|
|
elif item['status'] == 'completed': |
|
|
elif item['status'] == 'completed': |
|
|
log.info('Download of %s completed!', item['name']) |
|
|
log.info('Download of %s completed!', item['name']) |
|
|
if item['id'] and item['downloader'] and item['folder']: |
|
|
if item['id'] and item['downloader'] and item['folder']: |
|
|
fireEventAsync('renamer.scan', movie_folder = item['folder'], downloader = item['downloader'], download_id = item['id']) |
|
|
fireEvent('renamer.scan', movie_folder = item['folder'], downloader = item['downloader'], download_id = item['id']) |
|
|
else: |
|
|
else: |
|
|
scan_required = True |
|
|
scan_required = True |
|
|
|
|
|
|
|
@ -697,3 +676,35 @@ Remove it if you want it to be renamed (again, or at least let it try again) |
|
|
self.checking_snatched = False |
|
|
self.checking_snatched = False |
|
|
|
|
|
|
|
|
return True |
|
|
return True |
|
|
|
|
|
|
|
|
|
|
|
def getDownloadInfo(self, download_id, downloader): |
|
|
|
|
|
|
|
|
|
|
|
rls = None |
|
|
|
|
|
download_info = None |
|
|
|
|
|
|
|
|
|
|
|
if download_id and downloader: |
|
|
|
|
|
|
|
|
|
|
|
db = get_session() |
|
|
|
|
|
|
|
|
|
|
|
rlsnfo_dwnlds = db.query(ReleaseInfo).filter_by(identifier = 'download_downloader', value = downloader).all() |
|
|
|
|
|
rlsnfo_ids = db.query(ReleaseInfo).filter_by(identifier = 'download_id', value = download_id).all() |
|
|
|
|
|
|
|
|
|
|
|
for rlsnfo_dwnld in rlsnfo_dwnlds: |
|
|
|
|
|
for rlsnfo_id in rlsnfo_ids: |
|
|
|
|
|
if rlsnfo_id.release == rlsnfo_dwnld.release: |
|
|
|
|
|
rls = rlsnfo_id.release |
|
|
|
|
|
break |
|
|
|
|
|
if rls: break |
|
|
|
|
|
|
|
|
|
|
|
if not rls: |
|
|
|
|
|
log.error('Download ID %s from downloader %s not found in releases', (download_id, downloader)) |
|
|
|
|
|
|
|
|
|
|
|
if rls: |
|
|
|
|
|
download_info = { |
|
|
|
|
|
'imdb_id': rls.movie.library.identifier, |
|
|
|
|
|
'quality': rls.quality.identifier, |
|
|
|
|
|
'is_torrent': any(downloader_type in fireEvent('download.downloader_type', downloader = downloader) for downloader_type in ['torrent', 'torrent_magnet']) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return download_info |
|
|
|
|
|
|
|
|