# -*- coding: utf8 -*-
from Plugins.Plugin import PluginDescriptor
from twisted.web.client import downloadPage
-from enigma import loadPic
+from enigma import ePicLoad
from Screens.Screen import Screen
from Components.ActionMap import ActionMap
from Components.Pixmap import Pixmap
from Components.MenuList import MenuList
from Components.Language import language
from Components.ProgressBar import ProgressBar
+from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
+from Tools.LoadPixmap import LoadPixmap
import re
import htmlentitydefs
import urllib
self.dictionary_init()
self["poster"] = Pixmap()
+ self.picload = ePicLoad()
+ self.picload.PictureData.get().append(self.paintPosterPixmapCB)
self["stars"] = ProgressBar()
self["starsbg"] = Pixmap()
link = self["menu"].getCurrent()[1]
title = self["menu"].getCurrent()[0]
self["statusbar"].setText("Re-Query IMDb: "+title+"...")
- localfile = "/home/root/imdbquery2.html"
+ localfile = "/tmp/imdbquery2.html"
fetchurl = "http://" + self.IMDBlanguage + "imdb.com/title/" + link
print "[IMDB] downloading query " + fetchurl + " to " + localfile
downloadPage(fetchurl,localfile).addCallback(self.IMDBquery2).addErrback(self.fetchFailed)
if self.eventName is not "":
self["statusbar"].setText("Query IMDb: " + self.eventName + "...")
event_quoted = urllib.quote(self.eventName.decode('utf8').encode('latin-1','ignore'))
- localfile = "/home/root/imdbquery.html"
+ localfile = "/tmp/imdbquery.html"
fetchurl = "http://" + self.IMDBlanguage + "imdb.com/find?q=" + event_quoted + "&s=tt&site=aka"
print "[IMDB] Downloading Query " + fetchurl + " to " + localfile
downloadPage(fetchurl,localfile).addCallback(self.IMDBquery).addErrback(self.fetchFailed)
print "[IMDBquery]"
self["statusbar"].setText("IMDb Download completed")
- self.html2utf8(open("/home/root/imdbquery.html", "r").read())
+ self.html2utf8(open("/tmp/imdbquery.html", "r").read())
self.generalinfos = self.generalinfomask.search(self.inhtml)
self.eventName = self.eventName[splitpos+1:-1]
self["statusbar"].setText("Re-Query IMDb: " + self.eventName + "...")
event_quoted = urllib.quote(self.eventName.decode('utf8').encode('latin-1','ignore'))
- localfile = "/home/root/imdbquery.html"
+ localfile = "/tmp/imdbquery.html"
fetchurl = "http://" + self.IMDBlanguage + "imdb.com/find?q=" + event_quoted + "&s=tt&site=aka"
print "[IMDB] Downloading Query " + fetchurl + " to " + localfile
downloadPage(fetchurl,localfile).addCallback(self.IMDBquery).addErrback(self.fetchFailed)
def IMDBquery2(self,string):
self["statusbar"].setText("IMDb Re-Download completed")
- self.html2utf8(open("/home/root/imdbquery2.html", "r").read())
+ self.html2utf8(open("/tmp/imdbquery2.html", "r").read())
self.generalinfos = self.generalinfomask.search(self.inhtml)
self.IMDBparse()
if self.generalinfos:
self["key_yellow"].setText(self._("Details"))
self["statusbar"].setText("IMDb Details parsed ^^")
-
Titeltext = self.generalinfos.group("title")
if len(Titeltext) > 57:
Titeltext = Titeltext[0:54] + "..."
Detailstext += "Genre: "
for x in genres:
Detailstext += x.group(1) + " "
-
detailscategories = ["director", "creator", "writer", "premiere", "seasons", "country"]
for category in detailscategories:
self["stars"].setValue(self.ratingstars)
self["starsbg"].show()
self["ratinglabel"].setText(Ratingtext)
-
castmask = re.compile('<td class="nm">.*?>(.*?)</a>.*?<td class="char">(?:<a.*?>)?(.*?)(?:</a>)?</td>', re.DOTALL)
castresult = castmask.finditer(self.inhtml)
if castresult:
else:
Casttext = self._("No cast list found in the database.")
self["castlabel"].setText(Casttext)
-
postermask = re.compile('<div class="photo">.*?<img .*? src=\"(http.*?)\" .*?>', re.DOTALL)
- posterurl = postermask.search(self.inhtml).group(1)
- if posterurl.find("jpg") > 0:
+ posterurl = postermask.search(self.inhtml)
+ if posterurl and posterurl.group(1).find("jpg") > 0:
+ posterurl = posterurl.group(1)
self["statusbar"].setText("Downloading Movie Poster: "+posterurl+"...")
- localfile = "/home/root/poster.jpg"
+ localfile = "/tmp/poster.jpg"
print "[IMDB] downloading poster " + posterurl + " to " + localfile
downloadPage(posterurl,localfile).addCallback(self.IMDBPoster).addErrback(self.fetchFailed)
else:
self.IMDBPoster("kein Poster")
-
extrainfos = self.extrainfomask.search(self.inhtml)
if extrainfos:
def IMDBPoster(self,string):
self["statusbar"].setText("IMDb Details parsed ^^")
if not string:
- filename = "/home/root/poster.jpg"
+ filename = "/tmp/poster.jpg"
else:
- filename = "/usr/lib/enigma2/python/Plugins/Extensions/IMDb/no_poster.png"
- pixmap = loadPic(filename, 96,140, AVSwitch().getAspectRatioSetting()/2,1,0,0)
- if pixmap is not None:
- self["poster"].instance.setPixmap(pixmap.__deref__())
+ filename = resolveFilename(SCOPE_PLUGINS, "Extensions/IMDb/no_poster.png")
+ sc = AVSwitch().getFramebufferScale()
+ self.picload.setPara((self["poster"].instance.size().width(), self["poster"].instance.size().height(), sc[0], sc[1], False, 1, "#00000000"))
+ self.picload.startDecode(filename)
+
+ def paintPosterPixmapCB(self, picInfo=None):
+ ptr = self.picload.getData()
+ if ptr != None:
+ self["poster"].instance.setPixmap(ptr.__deref__())
self["poster"].show()
def createSummary(self):