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
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:
file = db.query(File).filter_by(id = file.get('id')).one()
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.logger import CPLog
from couchpotato.core.plugins.base import Plugin
import os.path
import shutil
import traceback
log = CPLog(__name__)
@ -10,7 +13,7 @@ class MetaDataBase(Plugin):
enabled_option = 'meta_enabled'
def __init__(self):
addEvent('metadata.create', self.create)
addEvent('renamer.after', self.create)
def create(self, release):
if self.isDisabled(): return
@ -29,11 +32,14 @@ class MetaDataBase(Plugin):
# Get file content
content = getattr(self, 'get' + type.capitalize())(release)
if content:
log.debug('Creating %s file: %s' % (type, name))
self.createFile(name, content)
if os.path.isfile(content):
shutil.copy2(content, name)
else:
log.debug('Creating %s file: %s' % (type, name))
self.createFile(name, content)
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):
return
@ -50,8 +56,15 @@ class MetaDataBase(Plugin):
def getNfo(self, data):
return
def getThumbnail(self, data):
return
def getThumbnail(self, data, file_type = 'poster_original'):
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):
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.providers.metadata.base import MetaDataBase
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):
# Poster url
# Images
poster = self.getImage(movie, type = 'poster')
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 = self.getCategory(movie, 'genre')
try:
genres = self.getCategory(movie, 'genre')
except:
genres = []
# 1900 is the same as None
year = str(movie.get('released', 'none'))[:4]
@ -129,8 +136,10 @@ class TheMovieDb(MovieProvider):
'titles': [toUnicode(movie.get('name'))],
'original_title': movie.get('original_name'),
'images': {
'posters': [poster],
'backdrops': [backdrop],
'poster': [poster],
'backdrop': [backdrop],
'poster_original': [poster_original],
'backdrop_original': [backdrop_original],
},
'imdb': movie.get('imdb_id'),
'runtime': movie.get('runtime'),
@ -149,12 +158,12 @@ class TheMovieDb(MovieProvider):
return movie_data
def getImage(self, movie, type = 'poster'):
def getImage(self, movie, type = 'poster', size = 'thumb'):
image = ''
for image in movie.get('images', []):
if(image.get('type') == type):
image = image.get('thumb')
if(image.get('type') == type) and image.get(size):
image = image.get(size)
break
return image

Loading…
Cancel
Save