Browse Source

XBMC Metadata

pull/51/merge
Ruud 14 years ago
parent
commit
bce5a9f8f9
  1. 2
      couchpotato/core/plugins/library/main.py
  2. 6
      couchpotato/core/plugins/metadata/__init__.py
  3. 16
      couchpotato/core/plugins/metadata/main.py
  4. 27
      couchpotato/core/providers/metadata/base.py
  5. 1
      couchpotato/core/providers/metadata/xbmc/main.py
  6. 23
      couchpotato/core/providers/movie/themoviedb/main.py

2
couchpotato/core/plugins/library/main.py

@ -110,7 +110,7 @@ class LibraryPlugin(Plugin):
continue continue
file_path = fireEvent('file.download', url = image, single = True) file_path = fireEvent('file.download', url = image, single = True)
file = fireEvent('file.add', path = file_path, type = ('image', type[:-1]), single = True) file = fireEvent('file.add', path = file_path, type = ('image', type), single = True)
try: try:
file = db.query(File).filter_by(id = file.get('id')).one() file = db.query(File).filter_by(id = file.get('id')).one()
library.files.append(file) library.files.append(file)

6
couchpotato/core/plugins/metadata/__init__.py

@ -1,6 +0,0 @@
from .main import MetaData
def start():
return MetaData()
config = []

16
couchpotato/core/plugins/metadata/main.py

@ -1,16 +0,0 @@
from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
log = CPLog(__name__)
class MetaData(Plugin):
def __init__(self):
addEvent('renamer.after', self.add)
def add(self, data = {}):
log.info('Getting meta data')
fireEvent('metadata.create', data)

27
couchpotato/core/providers/metadata/base.py

@ -1,6 +1,9 @@
from couchpotato.core.event import addEvent, fireEvent from couchpotato.core.event import addEvent, fireEvent
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
import os.path
import shutil
import traceback
log = CPLog(__name__) log = CPLog(__name__)
@ -10,7 +13,7 @@ class MetaDataBase(Plugin):
enabled_option = 'meta_enabled' enabled_option = 'meta_enabled'
def __init__(self): def __init__(self):
addEvent('metadata.create', self.create) addEvent('renamer.after', self.create)
def create(self, release): def create(self, release):
if self.isDisabled(): return if self.isDisabled(): return
@ -29,11 +32,14 @@ class MetaDataBase(Plugin):
# Get file content # Get file content
content = getattr(self, 'get' + type.capitalize())(release) content = getattr(self, 'get' + type.capitalize())(release)
if content: if content:
log.debug('Creating %s file: %s' % (type, name)) if os.path.isfile(content):
self.createFile(name, content) shutil.copy2(content, name)
else:
log.debug('Creating %s file: %s' % (type, name))
self.createFile(name, content)
except Exception, e: except Exception, e:
log.error('Unable to create %s file: %s' % (type, e)) log.error('Unable to create %s file: %s' % (type, traceback.format_exc()))
def getRootName(self, data): def getRootName(self, data):
return return
@ -50,8 +56,15 @@ class MetaDataBase(Plugin):
def getNfo(self, data): def getNfo(self, data):
return return
def getThumbnail(self, data): def getThumbnail(self, data, file_type = 'poster_original'):
return file_types = fireEvent('file.types', single = True)
for type in file_types:
if type.get('identifier') == file_type:
break
for file in data['library'].get('files'):
if file.get('type_id') is type.get('id'):
return file.get('path')
def getFanart(self, data): def getFanart(self, data):
return return self.getThumbnail(data, file_type = 'backdrop_original')

1
couchpotato/core/providers/metadata/xbmc/main.py

@ -1,3 +1,4 @@
from couchpotato.core.event import fireEvent
from couchpotato.core.helpers.encoding import toUnicode from couchpotato.core.helpers.encoding import toUnicode
from couchpotato.core.providers.metadata.base import MetaDataBase from couchpotato.core.providers.metadata.base import MetaDataBase
from xml.etree.ElementTree import Element, SubElement, tostring from xml.etree.ElementTree import Element, SubElement, tostring

23
couchpotato/core/providers/movie/themoviedb/main.py

@ -112,12 +112,19 @@ class TheMovieDb(MovieProvider):
def parseMovie(self, movie): def parseMovie(self, movie):
# Poster url # Images
poster = self.getImage(movie, type = 'poster') poster = self.getImage(movie, type = 'poster')
backdrop = self.getImage(movie, type = 'backdrop') backdrop = self.getImage(movie, type = 'backdrop')
poster_original = self.getImage(movie, type = 'poster', size = 'mid')
backdrop_original = self.getImage(movie, type = 'backdrop', size = 'w1280')
print poster_original, backdrop_original
# Genres # Genres
genres = self.getCategory(movie, 'genre') try:
genres = self.getCategory(movie, 'genre')
except:
genres = []
# 1900 is the same as None # 1900 is the same as None
year = str(movie.get('released', 'none'))[:4] year = str(movie.get('released', 'none'))[:4]
@ -129,8 +136,10 @@ class TheMovieDb(MovieProvider):
'titles': [toUnicode(movie.get('name'))], 'titles': [toUnicode(movie.get('name'))],
'original_title': movie.get('original_name'), 'original_title': movie.get('original_name'),
'images': { 'images': {
'posters': [poster], 'poster': [poster],
'backdrops': [backdrop], 'backdrop': [backdrop],
'poster_original': [poster_original],
'backdrop_original': [backdrop_original],
}, },
'imdb': movie.get('imdb_id'), 'imdb': movie.get('imdb_id'),
'runtime': movie.get('runtime'), 'runtime': movie.get('runtime'),
@ -149,12 +158,12 @@ class TheMovieDb(MovieProvider):
return movie_data return movie_data
def getImage(self, movie, type = 'poster'): def getImage(self, movie, type = 'poster', size = 'thumb'):
image = '' image = ''
for image in movie.get('images', []): for image in movie.get('images', []):
if(image.get('type') == type): if(image.get('type') == type) and image.get(size):
image = image.get('thumb') image = image.get(size)
break break
return image return image

Loading…
Cancel
Save