XBMC Metadata fixes
This commit is contained in:
@@ -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 = {}):
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user