def action(self, request): global MediaInfo if MediaInfo is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.MediaInfo import MediaInfo global utf8ToLatin if utf8ToLatin is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Utf8 import utf8ToLatin global Manager if Manager is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Manager import Manager finalOutput = WebHelper().getHtmlCore("MediaInfo", True) Id = None ParentId = None imdbId = u"" theTvDbId = u"" currentMode = request.args["mode"][0] if "type" in request.args: type = request.args["type"][0] else: type = u"" ####################### # DONE MODE ####################### if currentMode == "showDoneForm" : return finalOutput ####################### # GET MEDIA DETAILS FOR WEBIF ####################### elif currentMode == "getMediaDetails": Id = request.args["Id"][0] data = self._getMediaDetails(type, int(Id)) response = data.Path + "/" + data.Filename + "." + data.Extension return str(response) ####################### # ERROR MODE ###################### elif currentMode == "showErrorForm": return finalOutput ####################### # EDIT MODE ####################### elif currentMode == 'showEditForm': nextMode = "alterMediaInDb" finalOutput = finalOutput.replace("<!-- CUSTOM_TITLE -->", " - Edit Media") Id = request.args["Id"][0] m = self._getMediaDetails(type, int(Id)) ####################### # ADDBYIMDB MODE ####################### elif currentMode == 'showAddByImdbForm': fileData = None if "Id" in request.args: if request.args["Id"][0] == "": nextMode = "addMediaToDb" else: printl("ID => " + request.args["Id"][0], self, "D") nextMode = "alterMediaInDb" fileData = self._getMediaDetails(type, int(request.args["Id"][0])) else: nextMode = "addMediaToDb" finalOutput = finalOutput.replace("<!-- CUSTOM_TITLE -->", " - Add Media") m = MediaInfo() m.ImdbId = ""; m.SearchString = ""; if type == "isEpisode": type = "isSerie" # we need to do this because Manger.syncelemnts uses this name not the name till now isTvShow if fileData is not None: path = fileData.Path filename = fileData.Filename extension = fileData.Extension else: path = u"test" filename = u"test" extension = u"test" if type == "isMovie": m.ImdbId = request.args["ImdbId"][0] printl("showAddByImdbForm: "+str(request.args["ImdbId"][0]) + " " + str(type)) syncData = Manager("WebIf:SubActions:MediaForm").syncElement(path, filename, extension, m.ImdbId, False) m = syncData[0] if type == "isSerie": m.ImdbId = request.args["ImdbId"][0] printl("showAddByImdbForm: "+str(request.args["ImdbId"][0]) + " " + str(type)) syncData = Manager("WebIf:SubActions:MediaForm").syncElement(path, filename, extension, m.ImdbId, True) m = syncData[0] ####################### # ADDBYTITLE MODE ####################### elif currentMode == 'showAlternativesForm': nextMode = "showAddByImdbForm" finalOutput = finalOutput.replace("<!-- CUSTOM_TITLE -->", " - Add Media") mediainfo.SearchString = request.args["Title"][0] results = Manager("WebIf:SubActions:MediaForm").searchAlternatives(mediainfo) ####################### # MOVETOFAILED ####################### elif currentMode == 'moveToFailed': nextMode = "showAddByImdbForm" #hier sollte mehr stehen lol if "Id" in request.args: Id = request.args["Id"][0] else: Id = u"" if "ParentId" in request.args: ParentId = request.args["ParentId"][0] else: ParentId = u"" image = u"" backdrop = u"" mediaFolderPath = config.plugins.pvmc.mediafolderpath.value mediaForm = WebHelper().getHtmlForm("mediaForm") ####################### # ADD MODE ####################### if currentMode=="showManualAddForm": nextMode = "addMediaToDb" mediaForm = mediaForm % (type, nextMode ,u"", ParentId, type, u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", 0) else: if type == "isMovie": if os.path.isfile(mediaFolderPath + m.ImdbId + "_poster_195x267.png"): image = """<img id="duck_img" src="%s" width="78" height="107" alt="n/a"></img>""" % ("/media/" + str(m.ImdbId) + "_poster_195x267.png") else: image = """<img src=\"http://val.duckbox.info/convertImg2/poster/%s_195x267.png\" width="78" height="107" alt="n/a"></img>""" % (str(m.ImdbId)) if os.path.isfile(mediaFolderPath + str(m.ImdbId) + "_backdrop_320x180.png"): backdrop = """<img id="duck_backdrop_img" src="%s" width="160" height="90" alt="n/a"></img>""" % ("/media/" + str(m.ImdbId) + "_backdrop_320x180.png") else: backdrop = """<img src=\"http://val.duckbox.info/convertImg2/backdrop/%s_320x180.png\" width="160" height="90" alt="n/a">""" % (str(m.ImdbId)) elif type == "isTvShow" or type == "isEpisode": if os.path.isfile(mediaFolderPath + str(m.TheTvDbId) + "_poster_195x267.png"): image = """<img id="duck_img" src="%s" width="78" height="107" alt="n/a"></img>""" % ("/media/" + str(m.TheTvDbId) + "_poster_195x267.png") else: image = """<img src=\"http://val.duckbox.info/convertImg2/poster/%s_195x267.png\" width="78" height="107" alt="n/a"></img>""" % (str(m.TheTvDbId)) if os.path.isfile(mediaFolderPath + str(m.TheTvDbId) + "_backdrop_320x180.png"): backdrop = """<img id="duck_backdrop_img" src="%s" width="160" height="90" alt="n/a"></img>""" % ("/media/" + str(m.TheTvDbId) + "_backdrop_320x180.png") else: backdrop = """<img src=\"http://val.duckbox.info/convertImg2/backdrop/%s_320x180.png\" width="160" height="90" alt="n/a">""" % (str(m.TheTvDbId)) seenCheck = "" if WebData().getData("MediaInfo_isSeen", m.Id): seenCheck = 'checked' printl("nextMode = " + nextMode, self, "W") if m.ParentId == None: m.ParentId = u"" mediaForm = mediaForm % (type, nextMode, Id, m.ParentId, type, Id, m.ImdbId, m.TheTvDbId, m.Title, m.Tag, m.Season, m.Disc, m.Episode, m.EpisodeLast, m.Plot, m.Runtime, m.Year, m.Genres, self._getPopularity(m.Popularity), m.Path, m.Filename, m.Extension, seenCheck) finalOutput = finalOutput.replace("<!-- CUSTOM_IMAGE -->", image) finalOutput = finalOutput.replace("<!-- CUSTOM_BACKDROP -->", backdrop) finalOutput = finalOutput.replace("<!-- CUSTOM_FORM -->", mediaForm) return utf8ToLatin(finalOutput)
def action(self, request): global utf8ToLatin global MediaInfo global MobileImdbComProvider if utf8ToLatin is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Utf8 import utf8ToLatin if MediaInfo is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.MediaInfo import MediaInfo if MobileImdbComProvider is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.MobileImdbComProvider import MobileImdbComProvider finalOutput = WebHelper().getHtmlCore("Alternatives", True) tableHeader = WebHelper().readFileContent(u"/DMC_Plugins/DMC_WebInterfaceExtras/content/custom/Alternatives/Header.tpl") tableBody = u"" mediainfo = MediaInfo() mediainfo.ImdbId = ""; mediainfo.SearchString = ""; mediainfo.SearchString = request.args["searchString"][0] entries = MobileImdbComProvider().getAlternatives(mediainfo) if entries is not None: for entry in entries: entry.type = request.args["type"][0] if "Id" in request.args: entry.Id = request.args["Id"][0] else: entry.Id = u"" if "Path" in request.args: entry.Path = request.args["Path"][0] else: entry.Path = u"" if "Filename" in request.args: entry.Filename = request.args["Filename"][0] else: entry.Filename = u"" if "Extension" in request.args: entry.Extension = request.args["Extension"][0] else: entry.Extension = u"" evtApply = self._getApplyAlternativeString(entry) tableBody += u""" <tr> <td>%s</td> <td><a href=http://www.imdb.com/title/%s/ target="_blank">%s</a></td> <td>%s</td> <td>%s</td> <td> <a href="#" onclick="%s"><img class="action_img" src="/content/global/img/apply.png" alt="apply" title="apply" /></a> </td> </tr> """ % (entry.Year, entry.ImdbId, entry.ImdbId, utf8ToLatin(entry.Title), entry.IsTVSeries, evtApply) finalOutput = finalOutput.replace("<!-- CUSTOM_THEAD -->", tableHeader) finalOutput = finalOutput.replace("<!-- CUSTOM_TBODY -->", tableBody) return utf8ToLatin(finalOutput)