XBMC Metadata
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
from .main import MetaData
|
|
||||||
|
|
||||||
def start():
|
|
||||||
return MetaData()
|
|
||||||
|
|
||||||
config = []
|
|
||||||
@@ -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)
|
|
||||||
@@ -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,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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user