get identifier helper
This commit is contained in:
1 parent
a2d22b6feb
commit
be46ed12ac
12 files changed
+43
-37
No files matched your search
@@ -227,6 +227,10 @@ def toIterable(value):
|
|||||||
return [value]
|
return [value]
|
||||||
|
|
||||||
|
|
||||||
|
def getIdentifier(media):
|
||||||
|
return media.get('identifier') or media.get('identifiers', {}).get('imdb')
|
||||||
|
|
||||||
|
|
||||||
def getTitle(media_dict):
|
def getTitle(media_dict):
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
@@ -241,10 +245,10 @@ def getTitle(media_dict):
|
|||||||
try:
|
try:
|
||||||
return media_dict['media']['info']['titles'][0]
|
return media_dict['media']['info']['titles'][0]
|
||||||
except:
|
except:
|
||||||
log.error('Could not get title for %s', media_dict.get('identifier'))
|
log.error('Could not get title for %s', getIdentifier(media_dict))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
log.error('Could not get title for %s', media_dict['identifier'])
|
log.error('Could not get title for %s', getIdentifier(media_dict))
|
||||||
return None
|
return None
|
||||||
except:
|
except:
|
||||||
log.error('Could not get title for library item: %s', media_dict)
|
log.error('Could not get title for library item: %s', media_dict)
|
||||||
|
|||||||
@@ -99,13 +99,10 @@ class MediaPlugin(MediaBase):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
media = get_db().get('id', media_id)
|
media = get_db().get('id', media_id)
|
||||||
|
|
||||||
|
|
||||||
default_title = getTitle(media)
|
|
||||||
event = '%s.update_info' % media.get('type')
|
event = '%s.update_info' % media.get('type')
|
||||||
|
|
||||||
def handler():
|
def handler():
|
||||||
fireEvent(event, identifier = media.get('identifier'), default_title = default_title, on_complete = self.createOnComplete(media_id))
|
fireEvent(event, media_id = media_id, on_complete = self.createOnComplete(media_id))
|
||||||
|
|
||||||
if handler:
|
if handler:
|
||||||
return handler
|
return handler
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import re
|
|||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from couchpotato.core.helpers.variable import tryInt
|
from couchpotato.core.helpers.variable import tryInt, getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.media._base.providers.torrent.base import TorrentMagnetProvider
|
from couchpotato.core.media._base.providers.torrent.base import TorrentMagnetProvider
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ class Base(TorrentMagnetProvider):
|
|||||||
|
|
||||||
def _search(self, media, quality, results):
|
def _search(self, media, quality, results):
|
||||||
|
|
||||||
data = self.getHTMLData(self.urls['search'] % (self.getDomain(), 'm', media['identifier'].replace('tt', '')))
|
data = self.getHTMLData(self.urls['search'] % (self.getDomain(), 'm', getIdentifier(media).replace('tt', '')))
|
||||||
|
|
||||||
if data:
|
if data:
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import time
|
|||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from couchpotato.core.helpers.encoding import tryUrlencode
|
from couchpotato.core.helpers.encoding import tryUrlencode
|
||||||
from couchpotato.core.helpers.variable import getTitle, tryInt, mergeDicts
|
from couchpotato.core.helpers.variable import getTitle, tryInt, mergeDicts, getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.media._base.providers.torrent.base import TorrentProvider
|
from couchpotato.core.media._base.providers.torrent.base import TorrentProvider
|
||||||
from dateutil.parser import parse
|
from dateutil.parser import parse
|
||||||
@@ -36,7 +36,7 @@ class Base(TorrentProvider):
|
|||||||
params = mergeDicts(self.quality_search_params[quality_id].copy(), {
|
params = mergeDicts(self.quality_search_params[quality_id].copy(), {
|
||||||
'order_by': 'relevance',
|
'order_by': 'relevance',
|
||||||
'order_way': 'descending',
|
'order_way': 'descending',
|
||||||
'searchstr': media['identifier']
|
'searchstr': getIdentifier(media)
|
||||||
})
|
})
|
||||||
|
|
||||||
url = '%s?json=noredirect&%s' % (self.urls['torrent'], tryUrlencode(params))
|
url = '%s?json=noredirect&%s' % (self.urls['torrent'], tryUrlencode(params))
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from couchpotato import get_db
|
|||||||
from couchpotato.api import addApiView
|
from couchpotato.api import addApiView
|
||||||
from couchpotato.core.event import fireEvent, fireEventAsync, addEvent
|
from couchpotato.core.event import fireEvent, fireEventAsync, addEvent
|
||||||
from couchpotato.core.helpers.encoding import toUnicode
|
from couchpotato.core.helpers.encoding import toUnicode
|
||||||
from couchpotato.core.helpers.variable import splitString, getTitle, getImdb
|
from couchpotato.core.helpers.variable import splitString, getTitle, getImdb, getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.media.movie import MovieTypeBase
|
from couchpotato.core.media.movie import MovieTypeBase
|
||||||
import six
|
import six
|
||||||
@@ -266,7 +266,7 @@ class MovieBase(MovieTypeBase):
|
|||||||
else:
|
else:
|
||||||
media = db.get('media', 'imdb-%s' % identifier, with_doc = True)['doc']
|
media = db.get('media', 'imdb-%s' % identifier, with_doc = True)['doc']
|
||||||
|
|
||||||
info = fireEvent('movie.info', merge = True, extended = extended, identifier = media.get('identifier'))
|
info = fireEvent('movie.info', merge = True, extended = extended, identifier = getIdentifier(media))
|
||||||
|
|
||||||
# Don't need those here
|
# Don't need those here
|
||||||
try: del info['in_wanted']
|
try: del info['in_wanted']
|
||||||
@@ -275,7 +275,7 @@ class MovieBase(MovieTypeBase):
|
|||||||
except: pass
|
except: pass
|
||||||
|
|
||||||
if not info or len(info) == 0:
|
if not info or len(info) == 0:
|
||||||
log.error('Could not update, no movie info to work with: %s', media.get('identifier'))
|
log.error('Could not update, no movie info to work with: %s', identifier)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Update basic info
|
# Update basic info
|
||||||
@@ -285,19 +285,20 @@ class MovieBase(MovieTypeBase):
|
|||||||
log.debug('Adding titles: %s', titles)
|
log.debug('Adding titles: %s', titles)
|
||||||
|
|
||||||
# Define default title
|
# Define default title
|
||||||
def_title = None
|
|
||||||
if default_title:
|
if default_title:
|
||||||
counter = 0
|
def_title = None
|
||||||
for title in titles:
|
if default_title:
|
||||||
if title.lower() == toUnicode(default_title.lower()) or (toUnicode(default_title) == six.u('') and toUnicode(titles[0]) == title):
|
counter = 0
|
||||||
def_title = toUnicode(title)
|
for title in titles:
|
||||||
break
|
if title.lower() == toUnicode(default_title.lower()) or (toUnicode(default_title) == six.u('') and toUnicode(titles[0]) == title):
|
||||||
counter += 1
|
def_title = toUnicode(title)
|
||||||
|
break
|
||||||
|
counter += 1
|
||||||
|
|
||||||
if not def_title:
|
if not def_title:
|
||||||
def_title = toUnicode(titles[0])
|
def_title = toUnicode(titles[0])
|
||||||
|
|
||||||
media['title'] = def_title
|
media['title'] = def_title
|
||||||
|
|
||||||
# Files
|
# Files
|
||||||
images = info.get('images', [])
|
images = info.get('images', [])
|
||||||
@@ -357,7 +358,7 @@ class MovieBase(MovieTypeBase):
|
|||||||
dates = media.get('info').get('release_date')
|
dates = media.get('info').get('release_date')
|
||||||
|
|
||||||
if dates and (dates.get('expires', 0) < time.time() or dates.get('expires', 0) > time.time() + (604800 * 4)) or not dates:
|
if dates and (dates.get('expires', 0) < time.time() or dates.get('expires', 0) > time.time() + (604800 * 4)) or not dates:
|
||||||
dates = fireEvent('movie.info.release_date', identifier = media['identifier'], merge = True)
|
dates = fireEvent('movie.info.release_date', identifier = getIdentifier(media), merge = True)
|
||||||
media['info'].update({'release_date': dates})
|
media['info'].update({'release_date': dates})
|
||||||
db.update(media)
|
db.update(media)
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from couchpotato.core.helpers.encoding import tryUrlencode
|
from couchpotato.core.helpers.encoding import tryUrlencode
|
||||||
|
from couchpotato.core.helpers.variable import getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.media._base.providers.nzb.binsearch import Base
|
from couchpotato.core.media._base.providers.nzb.binsearch import Base
|
||||||
from couchpotato.core.media.movie.providers.base import MovieProvider
|
from couchpotato.core.media.movie.providers.base import MovieProvider
|
||||||
@@ -13,7 +14,7 @@ class BinSearch(MovieProvider, Base):
|
|||||||
|
|
||||||
def buildUrl(self, media, quality):
|
def buildUrl(self, media, quality):
|
||||||
query = tryUrlencode({
|
query = tryUrlencode({
|
||||||
'q': media['identifier'],
|
'q': getIdentifier(media),
|
||||||
'm': 'n',
|
'm': 'n',
|
||||||
'max': 400,
|
'max': 400,
|
||||||
'adv_age': Env.setting('retention', 'nzb'),
|
'adv_age': Env.setting('retention', 'nzb'),
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from couchpotato.core.helpers.encoding import tryUrlencode
|
from couchpotato.core.helpers.encoding import tryUrlencode
|
||||||
|
from couchpotato.core.helpers.variable import getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.media._base.providers.nzb.newznab import Base
|
from couchpotato.core.media._base.providers.nzb.newznab import Base
|
||||||
from couchpotato.core.media.movie.providers.base import MovieProvider
|
from couchpotato.core.media.movie.providers.base import MovieProvider
|
||||||
@@ -13,7 +14,7 @@ class Newznab(MovieProvider, Base):
|
|||||||
def buildUrl(self, media, api_key):
|
def buildUrl(self, media, api_key):
|
||||||
query = tryUrlencode({
|
query = tryUrlencode({
|
||||||
't': 'movie',
|
't': 'movie',
|
||||||
'imdbid': media['identifier'].replace('tt', ''),
|
'imdbid': getIdentifier(media).replace('tt', ''),
|
||||||
'apikey': api_key,
|
'apikey': api_key,
|
||||||
'extended': 1
|
'extended': 1
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from couchpotato.core.helpers.encoding import tryUrlencode
|
from couchpotato.core.helpers.encoding import tryUrlencode
|
||||||
|
from couchpotato.core.helpers.variable import getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.media._base.providers.torrent.torrentpotato import Base
|
from couchpotato.core.media._base.providers.torrent.torrentpotato import Base
|
||||||
from couchpotato.core.media.movie.providers.base import MovieProvider
|
from couchpotato.core.media.movie.providers.base import MovieProvider
|
||||||
@@ -14,6 +15,6 @@ class TorrentPotato(MovieProvider, Base):
|
|||||||
arguments = tryUrlencode({
|
arguments = tryUrlencode({
|
||||||
'user': host['name'],
|
'user': host['name'],
|
||||||
'passkey': host['pass_key'],
|
'passkey': host['pass_key'],
|
||||||
'imdbid': media['identifier']
|
'imdbid': getIdentifier(media),
|
||||||
})
|
})
|
||||||
return '%s?%s' % (host['host'], arguments)
|
return '%s?%s' % (host['host'], arguments)
|
||||||
@@ -8,7 +8,7 @@ from couchpotato import get_db
|
|||||||
from couchpotato.api import addApiView
|
from couchpotato.api import addApiView
|
||||||
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync
|
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync
|
||||||
from couchpotato.core.helpers.encoding import simplifyString
|
from couchpotato.core.helpers.encoding import simplifyString
|
||||||
from couchpotato.core.helpers.variable import getTitle, possibleTitles, getImdb
|
from couchpotato.core.helpers.variable import getTitle, possibleTitles, getImdb, getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.media._base.searcher.base import SearcherBase
|
from couchpotato.core.media._base.searcher.base import SearcherBase
|
||||||
from couchpotato.core.media.movie import MovieTypeBase
|
from couchpotato.core.media.movie import MovieTypeBase
|
||||||
@@ -95,10 +95,10 @@ class MovieSearcher(SearcherBase, MovieTypeBase):
|
|||||||
try:
|
try:
|
||||||
self.single(media, search_protocols)
|
self.single(media, search_protocols)
|
||||||
except IndexError:
|
except IndexError:
|
||||||
log.error('Forcing library update for %s, if you see this often, please report: %s', (media['identifier'], traceback.format_exc()))
|
log.error('Forcing library update for %s, if you see this often, please report: %s', (getIdentifier(media), traceback.format_exc()))
|
||||||
fireEvent('movie.update_info', media_id)
|
fireEvent('movie.update_info', media_id)
|
||||||
except:
|
except:
|
||||||
log.error('Search failed for %s: %s', (media['identifier'], traceback.format_exc()))
|
log.error('Search failed for %s: %s', (getIdentifier(media), traceback.format_exc()))
|
||||||
|
|
||||||
self.in_progress['to_go'] -= 1
|
self.in_progress['to_go'] -= 1
|
||||||
|
|
||||||
@@ -257,7 +257,7 @@ class MovieSearcher(SearcherBase, MovieTypeBase):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
# Check if nzb contains imdb link
|
# Check if nzb contains imdb link
|
||||||
if getImdb(nzb.get('description', '')) == media['identifier']:
|
if getImdb(nzb.get('description', '')) == getIdentifier(media):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
for raw_title in media['info']['titles']:
|
for raw_title in media['info']['titles']:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import urllib2
|
|||||||
from couchpotato.core.event import fireEvent, addEvent
|
from couchpotato.core.event import fireEvent, addEvent
|
||||||
from couchpotato.core.helpers.encoding import ss, toSafeString, \
|
from couchpotato.core.helpers.encoding import ss, toSafeString, \
|
||||||
toUnicode, sp
|
toUnicode, sp
|
||||||
from couchpotato.core.helpers.variable import getExt, md5, isLocalIP, scanForPassword, tryInt
|
from couchpotato.core.helpers.variable import getExt, md5, isLocalIP, scanForPassword, tryInt, getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.environment import Env
|
from couchpotato.environment import Env
|
||||||
import requests
|
import requests
|
||||||
@@ -338,7 +338,8 @@ class Plugin(object):
|
|||||||
|
|
||||||
def cpTag(self, media):
|
def cpTag(self, media):
|
||||||
if Env.setting('enabled', 'renamer'):
|
if Env.setting('enabled', 'renamer'):
|
||||||
return '.cp(' + media.get('identifier') + ')' if media.get('identifier') else ''
|
identifier = getIdentifier(media)
|
||||||
|
return '.cp(' + identifier + ')' if identifier else ''
|
||||||
|
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from couchpotato.api import addApiView
|
|||||||
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync
|
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync
|
||||||
from couchpotato.core.helpers.encoding import toUnicode, ss, sp
|
from couchpotato.core.helpers.encoding import toUnicode, ss, sp
|
||||||
from couchpotato.core.helpers.variable import getExt, mergeDicts, getTitle, \
|
from couchpotato.core.helpers.variable import getExt, mergeDicts, getTitle, \
|
||||||
getImdb, link, symlink, tryInt, splitString, fnEscape, isSubFolder
|
getImdb, link, symlink, tryInt, splitString, fnEscape, isSubFolder, getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.plugins.base import Plugin
|
from couchpotato.core.plugins.base import Plugin
|
||||||
from couchpotato.environment import Env
|
from couchpotato.environment import Env
|
||||||
@@ -1043,7 +1043,7 @@ Remove it if you want it to be renamed (again, or at least let it try again)
|
|||||||
if rls:
|
if rls:
|
||||||
media = db.get('id', rls['media_id'])
|
media = db.get('id', rls['media_id'])
|
||||||
release_download.update({
|
release_download.update({
|
||||||
'imdb_id': media['identifier'],
|
'imdb_id': getIdentifier(media),
|
||||||
'quality': rls['quality'],
|
'quality': rls['quality'],
|
||||||
'protocol': rls.get('info', {}).get('protocol') or rls.get('info', {}).get('type'),
|
'protocol': rls.get('info', {}).get('protocol') or rls.get('info', {}).get('type'),
|
||||||
'release_id': rls['_id'],
|
'release_id': rls['_id'],
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from couchpotato import get_db
|
|||||||
from couchpotato.core.event import fireEvent, addEvent
|
from couchpotato.core.event import fireEvent, addEvent
|
||||||
from couchpotato.core.helpers.encoding import toUnicode, simplifyString, sp
|
from couchpotato.core.helpers.encoding import toUnicode, simplifyString, sp
|
||||||
from couchpotato.core.helpers.variable import getExt, getImdb, tryInt, \
|
from couchpotato.core.helpers.variable import getExt, getImdb, tryInt, \
|
||||||
splitString
|
splitString, getIdentifier
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.plugins.base import Plugin
|
from couchpotato.core.plugins.base import Plugin
|
||||||
from enzyme.exceptions import NoParserError, ParseError
|
from enzyme.exceptions import NoParserError, ParseError
|
||||||
@@ -403,7 +403,7 @@ class Scanner(Plugin):
|
|||||||
if not group['media']:
|
if not group['media']:
|
||||||
log.error('Unable to determine media: %s', group['identifiers'])
|
log.error('Unable to determine media: %s', group['identifiers'])
|
||||||
else:
|
else:
|
||||||
group['identifier'] = group['media'].get('identifier') or group['media']['info'].get('imdb')
|
group['identifier'] = getIdentifier(group['media']) or group['media']['info'].get('imdb')
|
||||||
|
|
||||||
processed_movies[identifier] = group
|
processed_movies[identifier] = group
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user