Browse Source

get identifier helper

pull/2993/head
Ruud 11 years ago
parent
commit
be46ed12ac
  1. 8
      couchpotato/core/helpers/variable.py
  2. 5
      couchpotato/core/media/_base/media/main.py
  3. 4
      couchpotato/core/media/_base/providers/torrent/kickasstorrents.py
  4. 4
      couchpotato/core/media/_base/providers/torrent/passthepopcorn.py
  5. 9
      couchpotato/core/media/movie/_base/main.py
  6. 3
      couchpotato/core/media/movie/providers/nzb/binsearch.py
  7. 3
      couchpotato/core/media/movie/providers/nzb/newznab.py
  8. 3
      couchpotato/core/media/movie/providers/torrent/torrentpotato.py
  9. 8
      couchpotato/core/media/movie/searcher.py
  10. 5
      couchpotato/core/plugins/base.py
  11. 4
      couchpotato/core/plugins/renamer.py
  12. 4
      couchpotato/core/plugins/scanner.py

8
couchpotato/core/helpers/variable.py

@ -227,6 +227,10 @@ def toIterable(value):
return [value]
def getIdentifier(media):
return media.get('identifier') or media.get('identifiers', {}).get('imdb')
def getTitle(media_dict):
try:
try:
@ -241,10 +245,10 @@ def getTitle(media_dict):
try:
return media_dict['media']['info']['titles'][0]
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
log.error('Could not get title for %s', media_dict['identifier'])
log.error('Could not get title for %s', getIdentifier(media_dict))
return None
except:
log.error('Could not get title for library item: %s', media_dict)

5
couchpotato/core/media/_base/media/main.py

@ -99,13 +99,10 @@ class MediaPlugin(MediaBase):
try:
media = get_db().get('id', media_id)
default_title = getTitle(media)
event = '%s.update_info' % media.get('type')
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:
return handler

4
couchpotato/core/media/_base/providers/torrent/kickasstorrents.py

@ -2,7 +2,7 @@ import re
import traceback
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.media._base.providers.torrent.base import TorrentMagnetProvider
@ -38,7 +38,7 @@ class Base(TorrentMagnetProvider):
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:

4
couchpotato/core/media/_base/providers/torrent/passthepopcorn.py

@ -5,7 +5,7 @@ import time
import traceback
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.media._base.providers.torrent.base import TorrentProvider
from dateutil.parser import parse
@ -36,7 +36,7 @@ class Base(TorrentProvider):
params = mergeDicts(self.quality_search_params[quality_id].copy(), {
'order_by': 'relevance',
'order_way': 'descending',
'searchstr': media['identifier']
'searchstr': getIdentifier(media)
})
url = '%s?json=noredirect&%s' % (self.urls['torrent'], tryUrlencode(params))

9
couchpotato/core/media/movie/_base/main.py

@ -6,7 +6,7 @@ from couchpotato import get_db
from couchpotato.api import addApiView
from couchpotato.core.event import fireEvent, fireEventAsync, addEvent
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.media.movie import MovieTypeBase
import six
@ -266,7 +266,7 @@ class MovieBase(MovieTypeBase):
else:
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
try: del info['in_wanted']
@ -275,7 +275,7 @@ class MovieBase(MovieTypeBase):
except: pass
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
# Update basic info
@ -285,6 +285,7 @@ class MovieBase(MovieTypeBase):
log.debug('Adding titles: %s', titles)
# Define default title
if default_title:
def_title = None
if default_title:
counter = 0
@ -357,7 +358,7 @@ class MovieBase(MovieTypeBase):
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:
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})
db.update(media)

3
couchpotato/core/media/movie/providers/nzb/binsearch.py

@ -1,4 +1,5 @@
from couchpotato.core.helpers.encoding import tryUrlencode
from couchpotato.core.helpers.variable import getIdentifier
from couchpotato.core.logger import CPLog
from couchpotato.core.media._base.providers.nzb.binsearch import Base
from couchpotato.core.media.movie.providers.base import MovieProvider
@ -13,7 +14,7 @@ class BinSearch(MovieProvider, Base):
def buildUrl(self, media, quality):
query = tryUrlencode({
'q': media['identifier'],
'q': getIdentifier(media),
'm': 'n',
'max': 400,
'adv_age': Env.setting('retention', 'nzb'),

3
couchpotato/core/media/movie/providers/nzb/newznab.py

@ -1,4 +1,5 @@
from couchpotato.core.helpers.encoding import tryUrlencode
from couchpotato.core.helpers.variable import getIdentifier
from couchpotato.core.logger import CPLog
from couchpotato.core.media._base.providers.nzb.newznab import Base
from couchpotato.core.media.movie.providers.base import MovieProvider
@ -13,7 +14,7 @@ class Newznab(MovieProvider, Base):
def buildUrl(self, media, api_key):
query = tryUrlencode({
't': 'movie',
'imdbid': media['identifier'].replace('tt', ''),
'imdbid': getIdentifier(media).replace('tt', ''),
'apikey': api_key,
'extended': 1
})

3
couchpotato/core/media/movie/providers/torrent/torrentpotato.py

@ -1,4 +1,5 @@
from couchpotato.core.helpers.encoding import tryUrlencode
from couchpotato.core.helpers.variable import getIdentifier
from couchpotato.core.logger import CPLog
from couchpotato.core.media._base.providers.torrent.torrentpotato import Base
from couchpotato.core.media.movie.providers.base import MovieProvider
@ -14,6 +15,6 @@ class TorrentPotato(MovieProvider, Base):
arguments = tryUrlencode({
'user': host['name'],
'passkey': host['pass_key'],
'imdbid': media['identifier']
'imdbid': getIdentifier(media),
})
return '%s?%s' % (host['host'], arguments)

8
couchpotato/core/media/movie/searcher.py

@ -8,7 +8,7 @@ from couchpotato import get_db
from couchpotato.api import addApiView
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync
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.media._base.searcher.base import SearcherBase
from couchpotato.core.media.movie import MovieTypeBase
@ -95,10 +95,10 @@ class MovieSearcher(SearcherBase, MovieTypeBase):
try:
self.single(media, search_protocols)
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)
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
@ -257,7 +257,7 @@ class MovieSearcher(SearcherBase, MovieTypeBase):
return True
# Check if nzb contains imdb link
if getImdb(nzb.get('description', '')) == media['identifier']:
if getImdb(nzb.get('description', '')) == getIdentifier(media):
return True
for raw_title in media['info']['titles']:

5
couchpotato/core/plugins/base.py

@ -10,7 +10,7 @@ import urllib2
from couchpotato.core.event import fireEvent, addEvent
from couchpotato.core.helpers.encoding import ss, toSafeString, \
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.environment import Env
import requests
@ -338,7 +338,8 @@ class Plugin(object):
def cpTag(self, media):
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 ''

4
couchpotato/core/plugins/renamer.py

@ -10,7 +10,7 @@ from couchpotato.api import addApiView
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync
from couchpotato.core.helpers.encoding import toUnicode, ss, sp
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.plugins.base import Plugin
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:
media = db.get('id', rls['media_id'])
release_download.update({
'imdb_id': media['identifier'],
'imdb_id': getIdentifier(media),
'quality': rls['quality'],
'protocol': rls.get('info', {}).get('protocol') or rls.get('info', {}).get('type'),
'release_id': rls['_id'],

4
couchpotato/core/plugins/scanner.py

@ -8,7 +8,7 @@ from couchpotato import get_db
from couchpotato.core.event import fireEvent, addEvent
from couchpotato.core.helpers.encoding import toUnicode, simplifyString, sp
from couchpotato.core.helpers.variable import getExt, getImdb, tryInt, \
splitString
splitString, getIdentifier
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
from enzyme.exceptions import NoParserError, ParseError
@ -403,7 +403,7 @@ class Scanner(Plugin):
if not group['media']:
log.error('Unable to determine media: %s', group['identifiers'])
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

Loading…
Cancel
Save