def LoadPixmap(path, desktop=None, cached=None, width=0, height=0): if path[-4:] == ".png": # cache unless caller explicity requests to not cache ptr = loadPNG(path, 0, 0 if cached is False else 1) elif path[-4:] == ".jpg": # don't cache unless caller explicity requests caching ptr = loadJPG(path, 1 if cached is True else 0) elif path[-4:] == ".svg": from skin import parameters, getSkinFactor # imported here to avoid circular import autoscale = int(parameters.get( "AutoscaleSVG", -1)) # skin_default only == -1, disabled == 0 or enabled == 1 scale = height == 0 and (autoscale == -1 and "/skin_default/" in path or autoscale == 1) and getSkinFactor() or 0 ptr = loadSVG(path, 0 if cached is False else 1, width, height, scale) elif path[-1:] == ".": # caching mechanism isn't suitable for multi file images, so it's explicitly disabled alpha = loadPNG(path + "a.png", 0, 0) ptr = loadJPG(path + "rgb.jpg", alpha, 0) else: raise Exception( "Neither .png nor .jpg nor .svg, please fix file extension") if ptr and desktop: desktop.makeCompatiblePixmap(ptr) return ptr
def showPicture(self): movieNm = "" try: service = self.source.getCurrentService() if service: evnt = service.getPath() movieNm = evnt.split('-')[-1].split(".")[0].strip() movieNm = re.sub( "([\(\[]).*?([\)\]])|(: odc.\d+)|(\d+: odc.\d+)|(\d+ odc.\d+)|(:)|( -(.*?).*)|(,)|!", "", movieNm) pstrNm = "{}xtraEvent/EMC/{}-backdrop.jpg".format( pathLoc, movieNm.strip()) if fileExists(pstrNm): self.instance.setScale(2) self.instance.setPixmap(loadJPG(pstrNm)) self.instance.show() else: self.instance.setScale(2) self.instance.setPixmap( loadJPG( "/usr/lib/enigma2/python/Plugins/Extensions/xtraEvent/pic/noMovie.jpg" )) self.instance.show() else: self.instance.hide() except: pass
def LoadPixmap(path, desktop = None, cached = False): if path[-4:] == '.png': ptr = loadPNG(path) elif path[-4:] == '.jpg': ptr = loadJPG(path) elif path[-1:] == '.': alpha = loadPNG(path + 'a.png') ptr = loadJPG(path + 'rgb.jpg', alpha) else: raise Exception('neither .png nor .jpg, please fix file extension') if ptr and desktop: desktop.makeCompatiblePixmap(ptr) return ptr
def LoadPixmap(path, desktop=None, cached=False): if path[-4:] == '.png': ptr = loadPNG(path) elif path[-4:] == '.jpg': ptr = loadJPG(path) elif path[-1:] == '.': alpha = loadPNG(path + 'a.png') ptr = loadJPG(path + 'rgb.jpg', alpha) else: raise Exception('neither .png nor .jpg, please fix file extension') if ptr and desktop: desktop.makeCompatiblePixmap(ptr) return ptr
def LoadPixmap(path, desktop = None, cached = False): if path[-4:] == ".png": ptr = loadPNG(path) elif path[-4:] == ".jpg": ptr = loadJPG(path) elif path[-1:] == ".": alpha = loadPNG(path + "a.png") ptr = loadJPG(path + "rgb.jpg", alpha) else: raise Exception("neither .png nor .jpg, please fix file extension") if ptr and desktop: desktop.makeCompatiblePixmap(ptr) return ptr
def LoadPixmap(path, desktop=None, cached=False): if path[-4:] == ".png": ptr = loadPNG(path) elif path[-4:] == ".jpg": ptr = loadJPG(path) elif path[-1:] == ".": alpha = loadPNG(path + "a.png") ptr = loadJPG(path + "rgb.jpg", alpha) else: raise Exception("neither .png nor .jpg, please fix file extension") if ptr and desktop: desktop.makeCompatiblePixmap(ptr) return ptr
def showBackdrop(self): try: service = self.source.getCurrentService() if service: evnt = service.getPath() movieNm = evnt.split('-')[-1].split(".")[0].strip() pstrNm = pathLoc + "xtraEvent/EMC/{}-backdrop.jpg".format(movieNm) if fileExists(pstrNm): self.instance.setPixmap(loadJPG(pstrNm)) self.instance.show() else: self.instance.setPixmap(loadJPG("/usr/lib/enigma2/python/Plugins/Extensions/xtraEvent/pic/noMovie.jpg")) self.instance.show() except: return
def LoadPixmap(path, desktop=None, cached=None): if path[-4:] == ".png": # cache unless caller explicity requests to not cache ptr = loadPNG(path, 0, 0 if cached == False else 1) elif path[-4:] == ".jpg": # don't cache unless caller explicity requests caching ptr = loadJPG(path, 1 if cached == True else 0) elif path[-1:] == ".": # caching mechanism isn't suitable for multi file images, so it's explicitly disabled alpha = loadPNG(path + "a.png", 0, 0) ptr = loadJPG(path + "rgb.jpg", alpha, 0) else: raise Exception("neither .png nor .jpg, please fix file extension") if ptr and desktop: desktop.makeCompatiblePixmap(ptr) return ptr
def showSmallImage(self, startTime, eventId): smallImage = getEventImage(self, startTime, eventId, self.log, self.logPrefix) if (smallImage != None): # Bild bis Download abgeschlossen ist self.image.setPixmap(loadJPG(smallImage)) self.image.setScale(self.scaletype) self.showimage() else: self.hideimage()
def LoadPixmap(path, desktop=None, cached=None, width=0, height=0): if path[-4:] == ".png": # cache unless caller explicity requests to not cache ptr = loadPNG(path, 0, 0 if cached == False else 1) elif path[-4:] == ".jpg": # don't cache unless caller explicity requests caching ptr = loadJPG(path, 1 if cached == True else 0) elif path[-4:] == ".svg": scale = getDesktop(0).size().height() / 720.0 if height == 0 else 0 ptr = loadSVG(path, 0 if cached == False else 1, width, height, scale) elif path[-1:] == ".": # caching mechanism isn't suitable for multi file images, so it's explicitly disabled alpha = loadPNG(path + "a.png", 0, 0) ptr = loadJPG(path + "rgb.jpg", alpha, 0) else: raise Exception( _("Neither .png nor .jpg nor .svg, please fix file extension")) if ptr and desktop: desktop.makeCompatiblePixmap(ptr) return ptr
def showPoster(self, dest): try: if self.instance: if dest is not None: if self.image in dest: self.instance.setPixmap(loadJPG(dest)) self.instance.show() self.__isHide = False elif not self.__isHide: self.instance.hide() self.__isHide = True except: pass
def list_charts(self, token, title, place, jpg_store, runtime): res = [ (token, title, place, jpg_store, runtime) ] #old infos = re.findall('(.*?).-.(.*[a-zA-Z0-9])', title, re.S) infos = re.findall('(.*?)(.*[a-zA-Z0-9])', title, re.S) (artist, songname) = infos[0] place = "%s." % str(place) if fileExists(jpg_store): #old res.append(MultiContentEntryPixmapAlphaTest(pos=(0, 0), size=(200, 110), png=loadJPG(jpg_store))) res.append(MultiContentEntryPixmapAlphaTest(pos=(0, 0), size=(300, 210), png=loadJPG(jpg_store))) res.append(MultiContentEntryText(pos=(300, 10), size=(65, 33), font=6, text=place, color=0x00dab329, flags=RT_HALIGN_LEFT)) res.append(MultiContentEntryText(pos=(300, 55), size=(700, 28), font=4, text=artist, flags=RT_HALIGN_LEFT)) res.append(MultiContentEntryText(pos=(300, 55), size=(700, 28), font=4, text=songname, flags=RT_HALIGN_LEFT)) res.append(MultiContentEntryText(pos=(795, 85), size=(120, 18), font=2, text=runtime, flags=RT_HALIGN_RIGHT)) return res
def changed(self, what): try: eventName = self.source.text if eventName: poster = '/tmp/poster/poster.jpg' if os.path.exists(poster): self.instance.setPixmap(loadJPG(poster)) self.instance.show() else: self.instance.hide() else: self.instance.hide() except: pass
def loadPicture(filename): printl2("", "__common__::loadPicture", "S") ptr = None if filename[-4:] == ".png": ptr = loadPNG(filename) elif filename[-4:] == ".jpg": ptr = loadJPG(filename) if not ptr: # kind of fallback if filetype is declared wrong ptr = loadPNG(filename) printl2("filename: " + str(filename), "__common__::loadPicture", "D") printl2("", "__common__::loadPicture", "S") return ptr
def loadPicture(filename): EnigmaLight_log("",None,"__common__::loadPicture()") ptr = None if filename is None: return ptr if filename[-4:] == ".png": ptr = loadPNG(filename) elif filename[-4:] == ".jpg": ptr = loadJPG(filename) if not ptr: # kind of fallback if filetype is declared wrong ptr = loadPNG(filename) return ptr
def loadPicture(filename): EnigmaLight_log("", None, "__common__::loadPicture()") ptr = None if filename is None: return ptr if filename[-4:] == ".png": ptr = loadPNG(filename) elif filename[-4:] == ".jpg": ptr = loadJPG(filename) if not ptr: # kind of fallback if filetype is declared wrong ptr = loadPNG(filename) return ptr
def changed(self, what): try: eventName = self.source.text if eventName: posterNm = re.sub('\s+', '+', eventName) pstrNm = "/media/hdd/" + self.path + posterNm + ".jpg" if os.path.exists(pstrNm): self.instance.setPixmap(loadJPG(pstrNm)) self.instance.show() else: self.instance.hide() else: self.instance.hide() except: pass
def buildList(self, entry): print entry width = self.l.getItemSize().width() res = [ None ] (token, title, place, jpg_store, runtime) = entry jpg = loadJPG(jpg_store) # infos = re.findall('(.*?).-.(.*[a-zA-Z0-9])', title, re.S) infos = re.findall('(.*?)(.*[a-zA-Z0-9])', title, re.S) (artist, songname) = infos[0] place = "%s." % str(place) # res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 200, 110, jpg)) res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 300, 210, jpg)) res.append((eListboxPythonMultiContent.TYPE_TEXT, 300, 10, 65, 33, 6, RT_HALIGN_LEFT, place)) res.append((eListboxPythonMultiContent.TYPE_TEXT, 300, 55, 700, 28, 4, RT_HALIGN_LEFT, artist)) res.append((eListboxPythonMultiContent.TYPE_TEXT, 300, 55, 700, 28, 4, RT_HALIGN_LEFT, songname)) res.append((eListboxPythonMultiContent.TYPE_TEXT, 795, 85, 120, 18, 2, RT_HALIGN_RIGHT, runtime)) return res
def loadPicture(filename): printl2("", "__common__::loadPicture", "S") ptr = None if filename is None: printl2("", "__common__::loadPicture", "C") return ptr if filename[-4:] == ".png": ptr = loadPNG(filename) elif filename[-4:] == ".jpg": ptr = loadJPG(filename) if not ptr: # kind of fallback if filetype is declared wrong ptr = loadPNG(filename) printl2("filename: " + str(filename), "__common__::loadPicture", "D") printl2("", "__common__::loadPicture", "C") return ptr
def showPicture(self): movieNm = "" try: service = self.source.getCurrentService() if service: evnt = service.getPath() movieNm = evnt.split('-')[-1].split(".")[0].strip().lower() movieNm = re.sub("([\(\[]).*?([\)\]])|(: odc.\d+)|(\d+: odc.\d+)|(\d+ odc.\d+)|(:)|( -(.*?).*)|(,)|!", "", movieNm) pstrNm = "{}xtraEvent/EMC/{}-poster.jpg".format(pathLoc, movieNm.strip()) if fileExists(pstrNm): self.instance.setScale(1) self.instance.setPixmap(loadJPG(pstrNm)) self.instance.show() else: self.instance.hide() else: self.instance.hide() except: pass
def buildList(self, entry): print entry width = self.l.getItemSize().width() res = [None] (token, title, place, jpg_store, runtime) = entry jpg = loadJPG(jpg_store) # infos = re.findall('(.*?).-.(.*[a-zA-Z0-9])', title, re.S) infos = re.findall('(.*?)(.*[a-zA-Z0-9])', title, re.S) (artist, songname) = infos[0] place = "%s." % str(place) # res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 200, 110, jpg)) res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 300, 210, jpg)) res.append((eListboxPythonMultiContent.TYPE_TEXT, 300, 10, 65, 33, 6, RT_HALIGN_LEFT, place)) res.append((eListboxPythonMultiContent.TYPE_TEXT, 300, 55, 700, 28, 4, RT_HALIGN_LEFT, artist)) res.append((eListboxPythonMultiContent.TYPE_TEXT, 300, 55, 700, 28, 4, RT_HALIGN_LEFT, songname)) res.append((eListboxPythonMultiContent.TYPE_TEXT, 795, 85, 120, 18, 2, RT_HALIGN_RIGHT, runtime)) return res
def list_charts(self, token, title, place, jpg_store, runtime): res = [(token, title, place, jpg_store, runtime)] #old infos = re.findall('(.*?).-.(.*[a-zA-Z0-9])', title, re.S) infos = re.findall('(.*?)(.*[a-zA-Z0-9])', title, re.S) (artist, songname) = infos[0] place = "%s." % str(place) if fileExists(jpg_store): #old res.append(MultiContentEntryPixmapAlphaTest(pos=(0, 0), size=(200, 110), png=loadJPG(jpg_store))) res.append( MultiContentEntryPixmapAlphaTest(pos=(0, 0), size=(300, 210), png=loadJPG(jpg_store))) res.append( MultiContentEntryText(pos=(300, 10), size=(65, 33), font=6, text=place, color=0x00dab329, flags=RT_HALIGN_LEFT)) res.append( MultiContentEntryText(pos=(300, 55), size=(700, 28), font=4, text=artist, flags=RT_HALIGN_LEFT)) res.append( MultiContentEntryText(pos=(300, 55), size=(700, 28), font=4, text=songname, flags=RT_HALIGN_LEFT)) res.append( MultiContentEntryText(pos=(795, 85), size=(120, 18), font=2, text=runtime, flags=RT_HALIGN_RIGHT)) return res
def showPoster(self): self.event = self.source.event if self.event: evnt = self.event.getEventName() evntN = re.sub( "([\(\[]).*?([\)\]])|(: odc.\d+)|(\d+: odc.\d+)|(\d+ odc.\d+)|(:)|( -(.*?).*)|(,)|!", "", evnt) evntNm = evntN.replace("Die ", "The ").replace("Das ", "The ").replace( "und ", "and ").replace("LOS ", "The ").rstrip() self.evntNm = evntNm pstrNm = path_folder + evntNm + ".jpg" if os.path.exists(pstrNm): self.instance.setPixmap(loadJPG(pstrNm)) self.instance.show() else: self.downloadPoster() self.instance.hide() else: self.instance.hide() return
def response(self, data, response, eventId, startTime, event): # Antwort für Async Task size = '_%s_%s' % (str(self.WCover), str(self.HCover)) path = os.path.join( getEpgShareImagePath(self), str(time.strftime('%D', time.localtime(startTime))).replace('/', '.')) imageFileName = '%s/%s%s.jpg' % (path, eventId, size) if (response == self.DOWNOAD_IMAGE): # Image downloaden try: values = self.deserializeJson(data) if (values != None and len(values) > 0): # Images sind verfügbar url = None if 'previewImage' in values: url = str(values['previewImage']['id']) elif 'images' in values: url = str(values['images'][0]['id']) if (url != None): # Images sind zum download verfügbar url = 'http://images.tvmovie.de/%sx%s/Center/%s' % ( str(self.WCover), str(self.HCover), url) # Image downloaden self.log.debug( "%schanged: download image for '%s' (size: %sx%s)", self.logPrefix, event.getEventName(), self.WCover, self.HCover) downloadPage(url, imageFileName).addCallback( self.response, self.SHOW_IMAGE, eventId, startTime, event).addErrback(self.responseError, response, startTime) else: # Kein Bild zum donwload vorhanden, auf Platte zurück greifen self.log.debug( "%schanged: no online image exist for '%s'", self.logPrefix, event.getEventName()) self.showSmallImage(startTime, eventId) # TODO: Hier noch als alternative wenn Daten nicht vefügbar sind, smallImage von Platte laden except Exception as e: self.log.exception("%sresponse: [%s] %s", self.logPrefix, response, str(e)) self.hideimage() if (response == self.SHOW_IMAGE): # Image wurde heruntergeladen -> anzeigen try: if (os.path.exists(imageFileName)): if (eventId == self.id): self.log.debug( "%schanged: load downloaded image for '%s' (size: %sx%s)", self.logPrefix, event.getEventName(), self.WCover, self.HCover) self.image.setPixmap(loadJPG(imageFileName)) self.image.setScale(self.scaletype) self.showimage() else: # Kein Bild vorhanden, auf Platte zurück greifen self.showSmallImage(startTime, eventId) except Exception as e: self.log.exception("%sresponse: [%s] %s", self.logPrefix, response, str(e)) self.hideimage()
def showPoster(self, posterFileName): self.image.setPixmap(loadJPG(posterFileName)) self.image.setScale(self.scaletype) self.showimage()
def changed(self, what): try: if not self.instance: return self.hideimage() if hasattr(self.source, 'getEvent'): # source is 'extEventInfo' event = self.source.getEvent() else: # source is 'ServiceEvent' / 'ExtEvent' event = self.source.event # Prüfen ob event tuple ist if (isinstance(event, tuple)): event = event[0] if event is None: self.hideimage() self.eventid = None self.instance.hide() return if what[0] == self.CHANGED_CLEAR: self.hideimage() self.eventid = None if what[0] != self.CHANGED_CLEAR: self.logPrefix = "[%s, %s, %s] " % ( self.screenName, type( self.source).__name__, getChannelName(self.source)) if event: if hasattr(self.source, 'getEvent'): eventid = self.source.getEventId() else: eventid = event.getEventId() self.smallptr = False startTime = event.getBeginTime() title = event.getEventName() # ExtraDaten aus db holen values = self.deserializeJson( getExtraData(self.source, self.log, self.logPrefix)) try: if (self.imageType == self.IMAGE): # Default Image aus Folder 'Default' über Title defaultImage = getDefaultImage(self, title) if (defaultImage != None): self.log.debug( "%schanged: load default image for '%s'", self.logPrefix, title) self.smallptr = True self.image.setPixmap(loadJPG(defaultImage)) self.image.setScale(self.scaletype) self.showimage() return if (values != None and len(values) > 0 and eventid): # EpgShare Daten sind vorhanden if eventid != self.eventid: self.id = str(values['id']) sizedImage = getEventImage( self, startTime, self.id, self.log, self.logPrefix, True) if (sizedImage != None): # Image mit size des Widgets laden, sofern verfügbar self.log.debug( "%schanged: load local image for '%s' (size: %sx%s)", self.logPrefix, title, self.WCover, self.HCover) self.image.setPixmap( loadJPG(sizedImage)) self.image.setScale(self.scaletype) self.showimage() return else: # Image downloaden if (isOnlineMode()): self.downloadImage( str(values['id']), int(startTime), event) # Bild bis Download abgeschlossen ist self.showSmallImage( startTime, self.id) else: self.showSmallImage( startTime, self.id) self.log.debug( "%schanged: image: online mode is deactivated", self.logPrefix) else: self.hideimage() elif (self.imageType == self.POSTER): # Prüfen ob Poster lokal existiert posterFileName = os.path.join( getPosterDircetory(), getPosterFileName(title)) if (os.path.exists(posterFileName)): self.log.debug( "%schanged: poster exist local ('%s')", self.logPrefix, posterFileName) self.showPoster(posterFileName) else: # Poster muss heruntergeladen werden if (isOnlineMode()): if (isDownloadPoster()): self.useMetrixReloadedExtEventEpg( values, event, event.getEventName()) else: self.log.debug( "%schanged: poster: download posters is deactivated", self.logPrefix) self.hideimage() else: self.log.debug( "%schanged: poster: online mode is deactivated", self.logPrefix) self.hideimage() else: self.log.warn( "%schanged: imageType '%s' is unknown!", self.logPrefix, self.imageType) self.hideimage() except Exception as e: self.log.exception("%schanged (1): %s", self.logPrefix, str(e)) self.hideimage() else: self.hideimage() except Exception as e: self.log.exception("%schanged: %s", self.logPrefix, str(e)) self.hideimage() return