From 8176f78a7b97b1618dff2387136d3413c6cfb822 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Mon, 2 Mar 2009 17:48:05 +0100 Subject: AlbumCover: handle streams and files not in collection. --- nephilim/plugins/AlbumCover.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'nephilim') diff --git a/nephilim/plugins/AlbumCover.py b/nephilim/plugins/AlbumCover.py index cf1cdbe..a1e9981 100644 --- a/nephilim/plugins/AlbumCover.py +++ b/nephilim/plugins/AlbumCover.py @@ -2,6 +2,7 @@ from PyQt4 import QtGui, QtCore from PyQt4.QtCore import QVariant from traceback import print_exc import logging +import os from ..clPlugin import Plugin from ..misc import ORGNAME, APPNAME, expand_tags @@ -47,7 +48,8 @@ class wgAlbumCover(QtGui.QLabel): self.setPixmap(cover.scaled(self.size(), QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)) logging.info('Cover set.') - if write and self.p.settings.value(self.p.getName() + '/store').toBool(): + if (write and self.p.settings.value(self.p.getName() + '/store').toBool() + and self.cover_filepath): if cover.save(self.cover_filepath, 'png'): logging.info('Cover saved.') else: @@ -66,11 +68,18 @@ class wgAlbumCover(QtGui.QLabel): self.cover_loaded = False return - dirname = self.p.settings.value(self.p.getName() + '/coverdir').toString() - self.cover_dirname = expand_tags(dirname, (self.p.winMain, song)) - filebase = self.p.settings.value(self.p.getName() + '/covername').toString() - self.cover_filepath = '%s/%s'%(self.cover_dirname, - expand_tags(filebase, (self.p.winMain, song)).replace('/', '_')) + if QtCore.QDir.isAbsolutePath(song.getFilepath()): + self.cover_dirname = os.path.dirname(song.getFilepath()) + self.cover_filepath = '' + elif '://' in song.getFilepath(): # we are streaming + self.cover_dirname = '' + self.cover_filepath = '' + else: + dirname = self.p.settings.value(self.p.getName() + '/coverdir').toString() + self.cover_dirname = expand_tags(dirname, (self.p.winMain, song)) + filebase = self.p.settings.value(self.p.getName() + '/covername').toString() + self.cover_filepath = '%s/%s'%(self.cover_dirname, + expand_tags(filebase, (self.p.winMain, song)).replace('/', '_')) self.fetch_cover(song) def fetch_cover(self, song): @@ -78,7 +87,7 @@ class wgAlbumCover(QtGui.QLabel): if not QtCore.QFile.exists(self.cover_filepath): for i in (0, 1): src = self.p.settings.value(self.p.getName() + '/method%i'%i).toInt()[0] - if src == AC_FETCH_LOCAL_DIR: + if src == AC_FETCH_LOCAL_DIR and self.cover_dirname: cover = self.fetch_local(song) elif src == AC_FETCH_AMAZON: cover = self.fetch_amazon(song) -- cgit v1.2.3