Variable renaming movie to media
This commit is contained in:
1 parent
bde6de1789
commit
2fc4809821
15 files changed
+68
-60
No files matched your search
@@ -49,13 +49,13 @@ class Downloader(Provider):
|
|||||||
|
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def _download(self, data = None, movie = None, manual = False, filedata = None):
|
def _download(self, data = None, media = None, manual = False, filedata = None):
|
||||||
if not movie: movie = {}
|
if not media: media = {}
|
||||||
if not data: data = {}
|
if not data: data = {}
|
||||||
|
|
||||||
if self.isDisabled(manual, data):
|
if self.isDisabled(manual, data):
|
||||||
return
|
return
|
||||||
return self.download(data = data, movie = movie, filedata = filedata)
|
return self.download(data = data, media = media, filedata = filedata)
|
||||||
|
|
||||||
def _getAllDownloadStatus(self):
|
def _getAllDownloadStatus(self):
|
||||||
if self.isDisabled(manual = True, data = {}):
|
if self.isDisabled(manual = True, data = {}):
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ class Blackhole(Downloader):
|
|||||||
|
|
||||||
protocol = ['nzb', 'torrent', 'torrent_magnet']
|
protocol = ['nzb', 'torrent', 'torrent_magnet']
|
||||||
|
|
||||||
def download(self, data = None, movie = None, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
if not movie: movie = {}
|
if not media: media = {}
|
||||||
if not data: data = {}
|
if not data: data = {}
|
||||||
|
|
||||||
directory = self.conf('directory')
|
directory = self.conf('directory')
|
||||||
@@ -33,7 +33,7 @@ class Blackhole(Downloader):
|
|||||||
log.error('No nzb/torrent available: %s', data.get('url'))
|
log.error('No nzb/torrent available: %s', data.get('url'))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
file_name = self.createFileName(data, filedata, movie)
|
file_name = self.createFileName(data, filedata, media)
|
||||||
full_path = os.path.join(directory, file_name)
|
full_path = os.path.join(directory, file_name)
|
||||||
|
|
||||||
if self.conf('create_subdir'):
|
if self.conf('create_subdir'):
|
||||||
|
|||||||
@@ -32,7 +32,10 @@ class Deluge(Downloader):
|
|||||||
|
|
||||||
return self.drpc
|
return self.drpc
|
||||||
|
|
||||||
def download(self, data, movie, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
|
if not media: media = {}
|
||||||
|
if not data: data = {}
|
||||||
|
|
||||||
log.info('Sending "%s" (%s) to Deluge.', (data.get('name'), data.get('protocol')))
|
log.info('Sending "%s" (%s) to Deluge.', (data.get('name'), data.get('protocol')))
|
||||||
|
|
||||||
if not self.connect():
|
if not self.connect():
|
||||||
@@ -73,7 +76,7 @@ class Deluge(Downloader):
|
|||||||
if data.get('protocol') == 'torrent_magnet':
|
if data.get('protocol') == 'torrent_magnet':
|
||||||
remote_torrent = self.drpc.add_torrent_magnet(data.get('url'), options)
|
remote_torrent = self.drpc.add_torrent_magnet(data.get('url'), options)
|
||||||
else:
|
else:
|
||||||
filename = self.createFileName(data, filedata, movie)
|
filename = self.createFileName(data, filedata, media)
|
||||||
remote_torrent = self.drpc.add_torrent_file(filename, filedata, options)
|
remote_torrent = self.drpc.add_torrent_file(filename, filedata, options)
|
||||||
|
|
||||||
if not remote_torrent:
|
if not remote_torrent:
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ class NZBGet(Downloader):
|
|||||||
|
|
||||||
url = 'http://%(username)s:%(password)s@%(host)s/xmlrpc'
|
url = 'http://%(username)s:%(password)s@%(host)s/xmlrpc'
|
||||||
|
|
||||||
def download(self, data = None, movie = None, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
if not movie: movie = {}
|
if not media: media = {}
|
||||||
if not data: data = {}
|
if not data: data = {}
|
||||||
|
|
||||||
if not filedata:
|
if not filedata:
|
||||||
@@ -30,7 +30,7 @@ class NZBGet(Downloader):
|
|||||||
log.info('Sending "%s" to NZBGet.', data.get('name'))
|
log.info('Sending "%s" to NZBGet.', data.get('name'))
|
||||||
|
|
||||||
url = self.url % {'host': self.conf('host'), 'username': self.conf('username'), 'password': self.conf('password')}
|
url = self.url % {'host': self.conf('host'), 'username': self.conf('username'), 'password': self.conf('password')}
|
||||||
nzb_name = ss('%s.nzb' % self.createNzbName(data, movie))
|
nzb_name = ss('%s.nzb' % self.createNzbName(data, media))
|
||||||
|
|
||||||
rpc = xmlrpclib.ServerProxy(url)
|
rpc = xmlrpclib.ServerProxy(url)
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -23,13 +23,13 @@ class NZBVortex(Downloader):
|
|||||||
api_level = None
|
api_level = None
|
||||||
session_id = None
|
session_id = None
|
||||||
|
|
||||||
def download(self, data = None, movie = None, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
if not movie: movie = {}
|
if not media: media = {}
|
||||||
if not data: data = {}
|
if not data: data = {}
|
||||||
|
|
||||||
# Send the nzb
|
# Send the nzb
|
||||||
try:
|
try:
|
||||||
nzb_filename = self.createFileName(data, filedata, movie)
|
nzb_filename = self.createFileName(data, filedata, media)
|
||||||
self.call('nzb/add', params = {'file': (nzb_filename, filedata)}, multipart = True)
|
self.call('nzb/add', params = {'file': (nzb_filename, filedata)}, multipart = True)
|
||||||
|
|
||||||
raw_statuses = self.call('nzb')
|
raw_statuses = self.call('nzb')
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ class Pneumatic(Downloader):
|
|||||||
protocol = ['nzb']
|
protocol = ['nzb']
|
||||||
strm_syntax = 'plugin://plugin.program.pneumatic/?mode=strm&type=add_file&nzb=%s&nzbname=%s'
|
strm_syntax = 'plugin://plugin.program.pneumatic/?mode=strm&type=add_file&nzb=%s&nzbname=%s'
|
||||||
|
|
||||||
def download(self, data = None, movie = None, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
if not movie: movie = {}
|
if not media: media = {}
|
||||||
if not data: data = {}
|
if not data: data = {}
|
||||||
|
|
||||||
directory = self.conf('directory')
|
directory = self.conf('directory')
|
||||||
@@ -25,7 +25,7 @@ class Pneumatic(Downloader):
|
|||||||
log.error('No nzb available!')
|
log.error('No nzb available!')
|
||||||
return False
|
return False
|
||||||
|
|
||||||
fullPath = os.path.join(directory, self.createFileName(data, filedata, movie))
|
fullPath = os.path.join(directory, self.createFileName(data, filedata, media))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not os.path.isfile(fullPath):
|
if not os.path.isfile(fullPath):
|
||||||
@@ -33,7 +33,7 @@ class Pneumatic(Downloader):
|
|||||||
with open(fullPath, 'wb') as f:
|
with open(fullPath, 'wb') as f:
|
||||||
f.write(filedata)
|
f.write(filedata)
|
||||||
|
|
||||||
nzb_name = self.createNzbName(data, movie)
|
nzb_name = self.createNzbName(data, media)
|
||||||
strm_path = os.path.join(directory, nzb_name)
|
strm_path = os.path.join(directory, nzb_name)
|
||||||
|
|
||||||
strm_file = open(strm_path + '.strm', 'wb')
|
strm_file = open(strm_path + '.strm', 'wb')
|
||||||
|
|||||||
@@ -77,7 +77,10 @@ class rTorrent(Downloader):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def download(self, data, movie, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
|
if not media: media = {}
|
||||||
|
if not data: data = {}
|
||||||
|
|
||||||
log.debug('Sending "%s" to rTorrent.', (data.get('name')))
|
log.debug('Sending "%s" to rTorrent.', (data.get('name')))
|
||||||
|
|
||||||
if not self.connect():
|
if not self.connect():
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ class Sabnzbd(Downloader):
|
|||||||
|
|
||||||
protocol = ['nzb']
|
protocol = ['nzb']
|
||||||
|
|
||||||
def download(self, data = None, movie = None, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
if not movie: movie = {}
|
if not media: media = {}
|
||||||
if not data: data = {}
|
if not data: data = {}
|
||||||
|
|
||||||
log.info('Sending "%s" to SABnzbd.', data.get('name'))
|
log.info('Sending "%s" to SABnzbd.', data.get('name'))
|
||||||
@@ -25,7 +25,7 @@ class Sabnzbd(Downloader):
|
|||||||
req_params = {
|
req_params = {
|
||||||
'cat': self.conf('category'),
|
'cat': self.conf('category'),
|
||||||
'mode': 'addurl',
|
'mode': 'addurl',
|
||||||
'nzbname': self.createNzbName(data, movie),
|
'nzbname': self.createNzbName(data, media),
|
||||||
'priority': self.conf('priority'),
|
'priority': self.conf('priority'),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ class Sabnzbd(Downloader):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
# If it's a .rar, it adds the .rar extension, otherwise it stays .nzb
|
# If it's a .rar, it adds the .rar extension, otherwise it stays .nzb
|
||||||
nzb_filename = self.createFileName(data, filedata, movie)
|
nzb_filename = self.createFileName(data, filedata, media)
|
||||||
req_params['mode'] = 'addfile'
|
req_params['mode'] = 'addfile'
|
||||||
else:
|
else:
|
||||||
req_params['name'] = data.get('url')
|
req_params['name'] = data.get('url')
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ class Synology(Downloader):
|
|||||||
protocol = ['nzb', 'torrent', 'torrent_magnet']
|
protocol = ['nzb', 'torrent', 'torrent_magnet']
|
||||||
log = CPLog(__name__)
|
log = CPLog(__name__)
|
||||||
|
|
||||||
def download(self, data = None, movie = None, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
if not movie: movie = {}
|
if not media: media = {}
|
||||||
if not data: data = {}
|
if not data: data = {}
|
||||||
|
|
||||||
response = False
|
response = False
|
||||||
|
|||||||
@@ -31,7 +31,9 @@ class Transmission(Downloader):
|
|||||||
|
|
||||||
return self.trpc
|
return self.trpc
|
||||||
|
|
||||||
def download(self, data, movie, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
|
if not media: media = {}
|
||||||
|
if not data: data = {}
|
||||||
|
|
||||||
log.info('Sending "%s" (%s) to Transmission.', (data.get('name'), data.get('protocol')))
|
log.info('Sending "%s" (%s) to Transmission.', (data.get('name'), data.get('protocol')))
|
||||||
|
|
||||||
|
|||||||
@@ -36,8 +36,8 @@ class uTorrent(Downloader):
|
|||||||
|
|
||||||
return self.utorrent_api
|
return self.utorrent_api
|
||||||
|
|
||||||
def download(self, data = None, movie = None, filedata = None):
|
def download(self, data = None, media = None, filedata = None):
|
||||||
if not movie: movie = {}
|
if not media: media = {}
|
||||||
if not data: data = {}
|
if not data: data = {}
|
||||||
|
|
||||||
log.debug('Sending "%s" (%s) to uTorrent.', (data.get('name'), data.get('protocol')))
|
log.debug('Sending "%s" (%s) to uTorrent.', (data.get('name'), data.get('protocol')))
|
||||||
@@ -78,7 +78,7 @@ class uTorrent(Downloader):
|
|||||||
info = bdecode(filedata)["info"]
|
info = bdecode(filedata)["info"]
|
||||||
torrent_hash = sha1(benc(info)).hexdigest().upper()
|
torrent_hash = sha1(benc(info)).hexdigest().upper()
|
||||||
|
|
||||||
torrent_filename = self.createFileName(data, filedata, movie)
|
torrent_filename = self.createFileName(data, filedata, media)
|
||||||
|
|
||||||
if data.get('seed_ratio'):
|
if data.get('seed_ratio'):
|
||||||
torrent_params['seed_override'] = 1
|
torrent_params['seed_override'] = 1
|
||||||
|
|||||||
@@ -115,11 +115,11 @@ class MediaPlugin(MediaBase):
|
|||||||
|
|
||||||
def getView(self, id = None, **kwargs):
|
def getView(self, id = None, **kwargs):
|
||||||
|
|
||||||
movie = self.get(id) if id else None
|
media = self.get(id) if id else None
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'success': movie is not None,
|
'success': media is not None,
|
||||||
'movie': movie,
|
'media': media,
|
||||||
}
|
}
|
||||||
|
|
||||||
def list(self, types = None, status = None, release_status = None, limit_offset = None, starts_with = None, search = None, order = None):
|
def list(self, types = None, status = None, release_status = None, limit_offset = None, starts_with = None, search = None, order = None):
|
||||||
@@ -367,20 +367,20 @@ class MediaPlugin(MediaBase):
|
|||||||
|
|
||||||
db = get_session()
|
db = get_session()
|
||||||
|
|
||||||
movie = db.query(Media).filter_by(id = media_id).first()
|
media = db.query(Media).filter_by(id = media_id).first()
|
||||||
if movie:
|
if media:
|
||||||
deleted = False
|
deleted = False
|
||||||
if delete_from == 'all':
|
if delete_from == 'all':
|
||||||
db.delete(movie)
|
db.delete(media)
|
||||||
db.commit()
|
db.commit()
|
||||||
deleted = True
|
deleted = True
|
||||||
else:
|
else:
|
||||||
done_status = fireEvent('status.get', 'done', single = True)
|
done_status = fireEvent('status.get', 'done', single = True)
|
||||||
|
|
||||||
total_releases = len(movie.releases)
|
total_releases = len(media.releases)
|
||||||
total_deleted = 0
|
total_deleted = 0
|
||||||
new_movie_status = None
|
new_movie_status = None
|
||||||
for release in movie.releases:
|
for release in media.releases:
|
||||||
if delete_from in ['wanted', 'snatched', 'late']:
|
if delete_from in ['wanted', 'snatched', 'late']:
|
||||||
if release.status_id != done_status.get('id'):
|
if release.status_id != done_status.get('id'):
|
||||||
db.delete(release)
|
db.delete(release)
|
||||||
@@ -394,19 +394,19 @@ class MediaPlugin(MediaBase):
|
|||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
if total_releases == total_deleted:
|
if total_releases == total_deleted:
|
||||||
db.delete(movie)
|
db.delete(media)
|
||||||
db.commit()
|
db.commit()
|
||||||
deleted = True
|
deleted = True
|
||||||
elif new_movie_status:
|
elif new_movie_status:
|
||||||
new_status = fireEvent('status.get', new_movie_status, single = True)
|
new_status = fireEvent('status.get', new_movie_status, single = True)
|
||||||
movie.profile_id = None
|
media.profile_id = None
|
||||||
movie.status_id = new_status.get('id')
|
media.status_id = new_status.get('id')
|
||||||
db.commit()
|
db.commit()
|
||||||
else:
|
else:
|
||||||
fireEvent('media.restatus', movie.id, single = True)
|
fireEvent('media.restatus', media.id, single = True)
|
||||||
|
|
||||||
if deleted:
|
if deleted:
|
||||||
fireEvent('notify.frontend', type = 'movie.deleted', data = movie.to_dict())
|
fireEvent('notify.frontend', type = 'movie.deleted', data = media.to_dict())
|
||||||
|
|
||||||
db.expire_all()
|
db.expire_all()
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -289,19 +289,19 @@ class Plugin(object):
|
|||||||
Env.get('cache').set(cache_key_md5, value, timeout)
|
Env.get('cache').set(cache_key_md5, value, timeout)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def createNzbName(self, data, movie):
|
def createNzbName(self, data, media):
|
||||||
tag = self.cpTag(movie)
|
tag = self.cpTag(media)
|
||||||
return '%s%s' % (toSafeString(toUnicode(data.get('name'))[:127 - len(tag)]), tag)
|
return '%s%s' % (toSafeString(toUnicode(data.get('name'))[:127 - len(tag)]), tag)
|
||||||
|
|
||||||
def createFileName(self, data, filedata, movie):
|
def createFileName(self, data, filedata, media):
|
||||||
name = sp(os.path.join(self.createNzbName(data, movie)))
|
name = sp(os.path.join(self.createNzbName(data, media)))
|
||||||
if data.get('protocol') == 'nzb' and 'DOCTYPE nzb' not in filedata and '</nzb>' not in filedata:
|
if data.get('protocol') == 'nzb' and 'DOCTYPE nzb' not in filedata and '</nzb>' not in filedata:
|
||||||
return '%s.%s' % (name, 'rar')
|
return '%s.%s' % (name, 'rar')
|
||||||
return '%s.%s' % (name, data.get('protocol'))
|
return '%s.%s' % (name, data.get('protocol'))
|
||||||
|
|
||||||
def cpTag(self, movie):
|
def cpTag(self, media):
|
||||||
if Env.setting('enabled', 'renamer'):
|
if Env.setting('enabled', 'renamer'):
|
||||||
return '.cp(' + movie['library'].get('identifier') + ')' if movie['library'].get('identifier') else ''
|
return '.cp(' + media['library'].get('identifier') + ')' if media['library'].get('identifier') else ''
|
||||||
|
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|||||||
@@ -100,14 +100,14 @@ class Release(Plugin):
|
|||||||
done_status, snatched_status = fireEvent('status.get', ['done', 'snatched'], single = True)
|
done_status, snatched_status = fireEvent('status.get', ['done', 'snatched'], single = True)
|
||||||
|
|
||||||
# Add movie
|
# Add movie
|
||||||
movie = db.query(Media).filter_by(library_id = group['library'].get('id')).first()
|
media = db.query(Media).filter_by(library_id = group['library'].get('id')).first()
|
||||||
if not movie:
|
if not media:
|
||||||
movie = Media(
|
media = Media(
|
||||||
library_id = group['library'].get('id'),
|
library_id = group['library'].get('id'),
|
||||||
profile_id = 0,
|
profile_id = 0,
|
||||||
status_id = done_status.get('id')
|
status_id = done_status.get('id')
|
||||||
)
|
)
|
||||||
db.add(movie)
|
db.add(media)
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
# Add Release
|
# Add Release
|
||||||
@@ -120,7 +120,7 @@ class Release(Plugin):
|
|||||||
if not rel:
|
if not rel:
|
||||||
rel = Relea(
|
rel = Relea(
|
||||||
identifier = identifier,
|
identifier = identifier,
|
||||||
movie = movie,
|
movie = media,
|
||||||
quality_id = group['meta_data']['quality'].get('id'),
|
quality_id = group['meta_data']['quality'].get('id'),
|
||||||
status_id = done_status.get('id')
|
status_id = done_status.get('id')
|
||||||
)
|
)
|
||||||
@@ -142,7 +142,7 @@ class Release(Plugin):
|
|||||||
except:
|
except:
|
||||||
log.debug('Failed to attach "%s" to release: %s', (added_files, traceback.format_exc()))
|
log.debug('Failed to attach "%s" to release: %s', (added_files, traceback.format_exc()))
|
||||||
|
|
||||||
fireEvent('media.restatus', movie.id)
|
fireEvent('media.restatus', media.id)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -269,7 +269,7 @@ class Release(Plugin):
|
|||||||
if filedata == 'try_next':
|
if filedata == 'try_next':
|
||||||
return filedata
|
return filedata
|
||||||
|
|
||||||
download_result = fireEvent('download', data = data, movie = media, manual = manual, filedata = filedata, single = True)
|
download_result = fireEvent('download', data = data, media = media, manual = manual, filedata = filedata, single = True)
|
||||||
log.debug('Downloader result: %s', download_result)
|
log.debug('Downloader result: %s', download_result)
|
||||||
|
|
||||||
if download_result:
|
if download_result:
|
||||||
|
|||||||
@@ -264,14 +264,14 @@ class ResultList(list):
|
|||||||
|
|
||||||
result_ids = None
|
result_ids = None
|
||||||
provider = None
|
provider = None
|
||||||
movie = None
|
media = None
|
||||||
quality = None
|
quality = None
|
||||||
|
|
||||||
def __init__(self, provider, movie, quality, **kwargs):
|
def __init__(self, provider, media, quality, **kwargs):
|
||||||
|
|
||||||
self.result_ids = []
|
self.result_ids = []
|
||||||
self.provider = provider
|
self.provider = provider
|
||||||
self.movie = movie
|
self.media = media
|
||||||
self.quality = quality
|
self.quality = quality
|
||||||
self.kwargs = kwargs
|
self.kwargs = kwargs
|
||||||
|
|
||||||
@@ -285,13 +285,13 @@ class ResultList(list):
|
|||||||
|
|
||||||
new_result = self.fillResult(result)
|
new_result = self.fillResult(result)
|
||||||
|
|
||||||
is_correct = fireEvent('searcher.correct_release', new_result, self.movie, self.quality,
|
is_correct = fireEvent('searcher.correct_release', new_result, self.media, self.quality,
|
||||||
imdb_results = self.kwargs.get('imdb_results', False), single = True)
|
imdb_results = self.kwargs.get('imdb_results', False), single = True)
|
||||||
|
|
||||||
if is_correct and new_result['id'] not in self.result_ids:
|
if is_correct and new_result['id'] not in self.result_ids:
|
||||||
is_correct_weight = float(is_correct)
|
is_correct_weight = float(is_correct)
|
||||||
|
|
||||||
new_result['score'] += fireEvent('score.calculate', new_result, self.movie, single = True)
|
new_result['score'] += fireEvent('score.calculate', new_result, self.media, single = True)
|
||||||
|
|
||||||
old_score = new_result['score']
|
old_score = new_result['score']
|
||||||
new_result['score'] = int(old_score * is_correct_weight)
|
new_result['score'] = int(old_score * is_correct_weight)
|
||||||
|
|||||||
Reference in new issue
Block a user