You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.0 KiB

from couchpotato.core.event import addEvent, fireEvent
14 years ago
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
14 years ago
import os.path
import shutil
import traceback
14 years ago
log = CPLog(__name__)
class MetaDataBase(Plugin):
enabled_option = 'meta_enabled'
14 years ago
def __init__(self):
14 years ago
addEvent('renamer.after', self.create)
14 years ago
def create(self, release):
if self.isDisabled(): return
log.info('Creating %s metadata.' % self.getName())
root = self.getRootName(release)
for type in ['nfo', 'thumbnail', 'fanart']:
try:
# Get file path
name = getattr(self, 'get' + type.capitalize() + 'Name')(root)
if name and self.conf('meta_' + type):
# Get file content
content = getattr(self, 'get' + type.capitalize())(release)
if content:
14 years ago
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:
14 years ago
log.error('Unable to create %s file: %s' % (type, traceback.format_exc()))
def getRootName(self, data):
return
def getFanartName(self, root):
return
def getThumbnailName(self, root):
return
14 years ago
def getNfoName(self, root):
14 years ago
return
def getNfo(self, data):
14 years ago
return
14 years ago
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')
14 years ago
def getFanart(self, data):
14 years ago
return self.getThumbnail(data, file_type = 'backdrop_original')