XBMC Metadata fixes

This commit is contained in:
Ruud
2012-02-10 15:27:22 +01:00
parent 780fb35b45
commit 154a5dc099
10 changed files with 91 additions and 73 deletions
+7 -6
View File
@@ -31,17 +31,18 @@ class FileManager(Plugin):
def download(self, url = '', dest = None, overwrite = False):
if not dest: # to Cache
dest = os.path.join(Env.get('cache_dir'), '%s.%s' % (md5(url), getExt(url)))
if not overwrite and os.path.isfile(dest):
return dest
try:
filedata = self.urlopen(url)
except:
return False
if not dest: # to Cache
dest = os.path.join(Env.get('cache_dir'), '%s.%s' % (md5(url), getExt(url)))
if overwrite or not os.path.isfile(dest):
self.createFile(dest, filedata, binary = True)
self.createFile(dest, filedata, binary = True)
return dest
def add(self, path = '', part = 1, type = (), available = 1, properties = {}):
+4 -17
View File
@@ -3,16 +3,16 @@ from couchpotato.core.event import addEvent, fireEventAsync, fireEvent
from couchpotato.core.helpers.encoding import toUnicode, simplifyString
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
from couchpotato.core.settings.model import Library, LibraryTitle, File, \
LibraryGenre
from couchpotato.core.settings.model import Library, LibraryTitle, File
from string import ascii_letters
import json
import traceback
log = CPLog(__name__)
class LibraryPlugin(Plugin):
default_dict = {'titles': {}, 'files':{}, 'info':{}, 'genres':{}}
default_dict = {'titles': {}, 'files':{}}
def __init__(self):
addEvent('library.add', self.add)
@@ -75,6 +75,7 @@ class LibraryPlugin(Plugin):
library.tagline = toUnicode(info.get('tagline', ''))
library.year = info.get('year', 0)
library.status_id = done_status.get('id')
library.info = toUnicode(json.dumps(info))
db.commit()
# Titles
@@ -93,20 +94,6 @@ class LibraryPlugin(Plugin):
db.commit()
# Genres
[db.delete(genre) for genre in library.genres]
db.commit()
genres = info.get('genres', [])
log.debug('Adding genres: %s' % genres)
for genre in genres:
g = LibraryGenre(
name = toUnicode(genre)
)
library.genres.append(g)
db.commit()
# Files
images = info.get('images', [])
for type in images:
+2 -2
View File
@@ -8,7 +8,7 @@ from couchpotato.core.plugins.base import Plugin
from couchpotato.core.settings.model import Movie, Library, LibraryTitle
from couchpotato.environment import Env
from sqlalchemy.orm import joinedload_all
from sqlalchemy.sql.expression import func, or_, asc, not_
from sqlalchemy.sql.expression import or_, asc, not_
from string import ascii_lowercase
from urllib import urlencode
@@ -43,7 +43,7 @@ class MoviePlugin(Plugin):
def get(self, movie_id):
db = get_session()
m = db.query(Movie).filter_by(movie_id = movie_id).first()
m = db.query(Movie).filter_by(id = movie_id).first()
return m.to_dict(self.default_dict)
@@ -211,7 +211,7 @@ Block.Search.Item = new Class({
if(info.actors){
Object.each(info.actors, function(actor){
new Element('span', {
'text': actor.name
'text': actor
}).inject(self.starring)
})
}
+4 -3
View File
@@ -100,7 +100,7 @@ class Scanner(Plugin):
if group['library']:
fireEvent('release.add', group = group)
def scanFolderToLibrary(self, folder = None):
def scanFolderToLibrary(self, folder = None, newer_as = None):
if not os.path.isdir(folder):
return
@@ -322,6 +322,7 @@ class Scanner(Plugin):
data['audio'] = meta.get('audio', self.getCodec(cur_file, self.codecs['audio']))
data['resolution_width'] = meta.get('resolution_width', 720)
data['resolution_height'] = meta.get('resolution_height', 480)
data['aspect'] = meta.get('resolution_width', 720) / meta.get('resolution_height', 480)
except:
log.debug('Error parsing metadata: %s %s' % (cur_file, traceback.format_exc()))
pass
@@ -348,8 +349,8 @@ class Scanner(Plugin):
return {
'video': p.video[0].codec,
'audio': p.audio[0].codec,
'resolution_width': p.video[0].width,
'resolution_height': p.video[0].height,
'resolution_width': tryInt(p.video[0].width),
'resolution_height': tryInt(p.video[0].height),
}
except ParseError:
log.debug('Failed to parse meta for %s' % filename)