def action(self, request): global utf8ToLatin global Manager if utf8ToLatin is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Utf8 import utf8ToLatin if Manager is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Manager import Manager finalOutput = WebHelper().getHtmlCore("Home") currentVersion = Update().getInstalledRevision() manager = Manager("WebIf:MainActions") movieCount = str(manager.getMoviesCount()) tvShowCount = str(manager.getSeriesCount()) episodeCount = str(manager.getEpisodesCount()) updateType = Update().getCurrentUpdateType() latestRevision = Update().getLatestRevision() finalOutput = finalOutput.replace("<!-- MOVIE_COUNT -->", movieCount) finalOutput = finalOutput.replace("<!-- TVSHOW_COUNT -->", tvShowCount) finalOutput = finalOutput.replace("<!-- EPISODE_COUNT -->", episodeCount) revisionText = """ <br> Your update type => %s.<br> The latest release for your update type is %s.<br> """ % (updateType, latestRevision) finalOutput = finalOutput.replace("<!-- CURRENT_VERSION -->", "Your installed revision => " + currentVersion) finalOutput = finalOutput.replace("<!-- LATEST_VERSION -->", revisionText) return utf8ToLatin(finalOutput)
def __init__(self, session): global Manager if Manager is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Manager import Manager self.manager = Manager("TVShows") DMC_Library.__init__(self, session, "tv shows")
def __init__(self, session): printl ("->", self) global Manager if Manager is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Manager import Manager printl ("Manager Imported") self.manager = Manager("Movies") DMC_Library.__init__(self, session, "movies")
class DMC_TvShowLibrary(DMC_Library): def __init__(self, session): global Manager if Manager is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Manager import Manager self.manager = Manager("TVShows") DMC_Library.__init__(self, session, "tv shows") ### # Return Value is expected to be: # (libraryArray, onEnterPrimaryKeys, onLeavePrimaryKeys, onLeaveSelectEntry def loadLibrary(self, params, seenPng=None, unseenPng=None): global Manager global utf8ToLatin if utf8ToLatin is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Utf8 import utf8ToLatin printl("DEBUG 3", self) printl("", self) printl("params=" + str(params), self) userId = config.plugins.pvmc.seenuserid.value # Diplay all TVShows if params is None: printl("Series", self) parsedLibrary = [] library = self.manager.getSeriesValues() tmpAbc = [] tmpGenres = [] for tvshow in library: d = {} d["ArtBackdropId"] = utf8ToLatin(tvshow.TheTvDbId) d["ArtPosterId"] = d["ArtBackdropId"] d["Id"] = tvshow.Id d["ImdbId"] = utf8ToLatin(tvshow.ImdbId) d["TheTvDbId"] = utf8ToLatin(tvshow.TheTvDbId) d["Title"] = " " + utf8ToLatin(tvshow.Title) if d["Title"][2].upper() not in tmpAbc: tmpAbc.append(d["Title"][2].upper()) d["Tag"] = utf8ToLatin(tvshow.Tag) d["Year"] = tvshow.Year d["Month"] = tvshow.Month d["Day"] = tvshow.Day d["Plot"] = utf8ToLatin(tvshow.Plot) d["Runtime"] = tvshow.Runtime d["Popularity"] = tvshow.Popularity d["Genres"] = utf8ToLatin(tvshow.Genres).split("|") for genre in d["Genres"]: if genre not in tmpGenres: tmpGenres.append(genre) if config.plugins.pvmc.showseenforshow.value is True: #if self.manager.is_Seen({"TheTvDbId": d["TheTvDbId"]}): if self.manager.isMediaSeen(d["Id"], userId): image = seenPng else: image = unseenPng else: image = None d["ScreenTitle"] = d["Title"] d["ScreenTitle"] = utf8ToLatin(d["ScreenTitle"]) d["ViewMode"] = "ShowSeasons" parsedLibrary.append((d["Title"], d, d["Title"].lower(), "50", image)) sort = (("Title", None, False), ("Popularity", "Popularity", True), ) filter = [("All", (None, False), ("", )), ] if len(tmpGenres) > 0: tmpGenres.sort() filter.append(("Genre", ("Genres", True), tmpGenres)) if len(tmpAbc) > 0: tmpAbc.sort() filter.append(("Abc", ("Title", False, 1), tmpAbc)) return ( parsedLibrary, #listViewList ("ViewMode", "Id", ), #onEnterPrimaryKeys None, #onLeavePrimaryKeyValuePair None, #onLeaveSelectKeyValuePair sort, #onSortKeyValuePair filter, #onFilterKeyValuePair ) # Display the Seasons Menu elif params["ViewMode"]=="ShowSeasons": printl("Seasons", self) parsedLibrary = [] tvshow = self.manager.getMedia(params["Id"]) d = {} d["ArtBackdropId"] = utf8ToLatin(tvshow.TheTvDbId) d["Id"] = tvshow.Id d["ImdbId"] = utf8ToLatin(tvshow.ImdbId) d["TheTvDbId"] = utf8ToLatin(tvshow.TheTvDbId) d["Tag"] = utf8ToLatin(tvshow.Tag) d["Year"] = tvshow.Year d["Month"] = tvshow.Month d["Day"] = tvshow.Day d["Plot"] = utf8ToLatin(tvshow.Plot) d["Runtime"] = tvshow.Runtime d["Popularity"] = tvshow.Popularity d["Genres"] = utf8ToLatin(tvshow.Genres).split("|") library = self.manager.getEpisodes(params["Id"]) seasons = [] for entry in library: season = entry.Season if season not in seasons: seasons.append(season) s = d.copy() if entry.Season is None: s["Title"] = " Special" s["Season"] = "" # for retrive data only with season=None else: s["Title"] = " Season %2d" % (season, ) s["Season"] = season s["ScreenTitle"] = tvshow.Title + " - " + s["Title"].strip() s["ScreenTitle"] = utf8ToLatin(s["ScreenTitle"]) s["ArtPosterId"] = d["ArtBackdropId"] + "_s" + str(season) if config.plugins.pvmc.showseenforseason.value is True: if self.manager.isMediaSeen(d["Id"], s["Season"], userId): image = seenPng else: image = unseenPng else: image = None s["ViewMode"] = "ShowEpisodes" parsedLibrary.append((s["Title"], s, season, "50", image)) sort = (("Title", None, False), ) filter = [("All", (None, False), ("", )), ] return (parsedLibrary, ("ViewMode", "Id", "Season", ), None, params, sort, filter) # (libraryArray, onEnterPrimaryKeys, onLeavePrimaryKeys, onLeaveSelectEntry # Display the Episodes Menu elif params["ViewMode"]=="ShowEpisodes": printl("EpisodesOfSeason", self) parsedLibrary = [] tvshow = self.manager.getMedia(params["Id"]) library = self.manager.getEpisodes(params["Id"], params["Season"]) for episode in library: try: d = {} d["ArtBackdropId"] = utf8ToLatin(tvshow.TheTvDbId) d["ArtPosterId"] = d["ArtBackdropId"] d["Id"] = episode.Id d["TVShowId"] = tvshow.Id d["ImdbId"] = utf8ToLatin(tvshow.ImdbId) d["TheTvDbId"] = utf8ToLatin(episode.TheTvDbId) d["Tag"] = utf8ToLatin(tvshow.Tag) #d["Title"] = " %dx%02d: %s" % (episode.Season, episode.Episode, utf8ToLatin(episode.Title), ) if episode.Season is None and episode.Disc is None and episode.Episode is not None: # # Only Episode d["Title"] = " %s: %s" % (episode.Episode, utf8ToLatin(episode.Title), ) elif episode.Season is None and episode.Disc is not None and episode.Episode is None: # Only Disc d["Title"] = " Disc %s: %s" % (episode.Disc, utf8ToLatin(episode.Title), ) elif episode.Season is not None and episode.Disc is None and episode.Episode is not None and episode.EpisodeLast is not None: # # Without Disc, With Episode And EpisodeLast d["Title"] = " %02d-%02d: %s" % (episode.Episode, episode.EpisodeLast, utf8ToLatin(episode.Title), ) elif episode.Season is not None and episode.Disc is None and episode.Episode is not None: # # Without Disc, With Episode d["Title"] = " %02d: %s" % (episode.Episode, utf8ToLatin(episode.Title), ) elif episode.Season is not None and episode.Disc is not None and episode.Episode is not None and episode.EpisodeLast is not None: # # With Disc, With Episode And EpisodeLast d["Title"] = " D%sE%s-E%s: %s" % (episode.Disc, episode.Episode, episode.EpisodeLast, utf8ToLatin(episode.Title) ) elif episode.Season is not None and episode.Disc is not None and episode.Episode is not None and episode.EpisodeLast is None: # # With Disc, Without EpisodeLast d["Title"] = " D%sE%s: %s" % (episode.Disc, episode.Episode, utf8ToLatin(episode.Title), ) elif episode.Season is not None and episode.Disc is not None and episode.Episode is None: # # With Disc, Without Episode d["Title"] = " Disc %s: %s" % (episode.Disc, utf8ToLatin(episode.Title), ) else: d["Title"] = " %s" % (utf8ToLatin(episode.Title), ) if episode.Season is None: d["ScreenTitle"] = tvshow.Title + " - " + "Special" else: d["ScreenTitle"] = tvshow.Title + " - " + "Season %2d" % (episode.Season, ) d["ScreenTitle"] = utf8ToLatin(d["ScreenTitle"]) d["Year"] = episode.Year d["Month"] = episode.Month d["Day"] = episode.Day d["Path"] = utf8ToLatin(episode.Path + "/" + episode.Filename + "." + episode.Extension) d["Creation"] = episode.FileCreation d["Season"] = episode.Season d["Episode"] = episode.Episode d["Plot"] = utf8ToLatin(episode.Plot) d["Runtime"] = episode.Runtime d["Popularity"] = episode.Popularity d["Genres"] = utf8ToLatin(episode.Genres).split("|") d["Resolution"] = utf8ToLatin(episode.Resolution) d["Sound"] = utf8ToLatin(episode.Sound) if self.manager.isMediaSeen(d["Id"], userId): image = seenPng d["Seen"] = "Seen" else: image = unseenPng d["Seen"] = "Unseen" d["ViewMode"] = "play" _season = episode.Season if _season is None: _season=0 _disc = episode.Disc if _disc is None: _disc=0 _episode = episode.Episode if _episode is None: _episode=0 printl("DISC: " + repr(_disc), self) _season = int(_season) _disc = int(_disc) _episode = int(_episode) parsedLibrary.append((d["Title"], d, _season * 100000 + _disc * 1000 + _episode, "50", image)) except Exception, ex: printl("Exception: " + str(ex), self, "E") printl("episode: " + str(episode), self, "E") sort = [("Title", None, False), ("Popularity", "Popularity", True), ] if self.checkFileCreationDate: sort.append(("File Creation", "Creation", True)) filter = [("All", (None, False), ("", )), ] filter.append(("Seen", ("Seen", False, 1), ("Seen", "Unseen", ))) return (parsedLibrary, ("ViewMode", "Id", "TVShowId", "Season", "Episode", ), \ dict({'ViewMode': "ShowSeasons", 'Id': params["Id"],}), \ params, sort, filter) # (libraryArray, onEnterPrimaryKeys, onLeavePrimaryKeys, onLeaveSelectEntry return None
class DMC_MovieLibrary(DMC_Library): def __init__(self, session): printl ("->", self) global Manager if Manager is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Manager import Manager printl ("Manager Imported") self.manager = Manager("Movies") DMC_Library.__init__(self, session, "movies") ### # Return Value is expected to be: # (libraryArray, onEnterPrimaryKeys, onLeavePrimaryKeys, onLeaveSelectEntry def loadLibrary(self, params, seenPng=None, unseenPng=None): global Manager global utf8ToLatin if utf8ToLatin is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Utf8 import utf8ToLatin userId = config.plugins.pvmc.seenuserid.value # Diplay all Movies if params is None: parsedLibrary = [] library = self.manager.getMoviesValues() tmpAbc = [] tmpGenres = [] for movie in library: # not needed anymore in my point of view #if len(str(movie.Title)) == 0: # or len(movie.ImdbId) == 0: # printl("Movie with empty Title in database!", self, "W") # continue d = {} d["ArtBackdropId"] = utf8ToLatin(movie.ImdbId) d["ArtPosterId"] = d["ArtBackdropId"] d["Id"] = movie.Id d["ImdbId"] = utf8ToLatin(movie.ImdbId) d["Title"] = " " + utf8ToLatin(movie.Title) if d["Title"][2].upper() not in tmpAbc: tmpAbc.append(d["Title"][2].upper()) d["Tag"] = utf8ToLatin(movie.Tag) d["Year"] = movie.Year d["Month"] = movie.Month d["Day"] = movie.Day d["Date"] = movie.getDate() d["Filename"] = utf8ToLatin(movie.Filename).lower() d["Path"] = utf8ToLatin(str(movie.Path) + "/" + str(movie.Filename) + "." + str(movie.Extension)) d["Creation"] = movie.FileCreation d["Plot"] = utf8ToLatin(movie.Plot) d["Runtime"] = movie.Runtime d["Popularity"] = movie.Popularity d["Genres"] = utf8ToLatin(movie.Genres).split("|") for genre in d["Genres"]: if genre not in tmpGenres: tmpGenres.append(genre) d["Resolution"] = utf8ToLatin(movie.Resolution) d["Sound"] = utf8ToLatin(movie.Sound) if self.manager.isMediaSeen(d["Id"], userId): image = seenPng d["Seen"] = "Seen" else: image = unseenPng d["Seen"] = "Unseen" d["ViewMode"] = "play" d["ScreenTitle"] = utf8ToLatin(movie.Title) parsedLibrary.append((d["Title"], d, d["Title"].lower(), "50", image)) sort = [("Title", None, False), ("Popularity", "Popularity", True), ("Aired", "Date", True), ] if self.checkFileCreationDate: sort.append(("File Creation", "Creation", True)) sort.append(("Filename", "Filename", False)) filter = [("All", (None, False), ("", )), ] filter.append(("Seen", ("Seen", False, 1), ("Seen", "Unseen", ))) if len(tmpGenres) > 0: tmpGenres.sort() filter.append(("Genre", ("Genres", True), tmpGenres)) if len(tmpAbc) > 0: tmpAbc.sort() filter.append(("Abc", ("Title", False, 1), tmpAbc)) return (parsedLibrary, ("ViewMode", "Id", ), None, None, sort, filter) elif params["ViewMode"] == "Tree": pass elif params["ViewMode"]=="ShowGroup": pass return None def buildInfoPlaybackArgs(self, entry): args = {} args["id"] = entry["Id"] args["title"] = entry["Title"] args["year"] = entry["Year"] args["imdbid"] = entry["ImdbId"] args["type"] = "movie" return args
def action(self, request): global Manager global utf8ToLatin global stringToUtf8 global MediaInfo if Manager is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Manager import Manager if stringToUtf8 is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Utf8 import stringToUtf8 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 printl("request: " + str(request), self) printl("request.args: " + str(request.args), self) printl("request.args[mode]: " + str(request.args["mode"]), self) ########################## # ADD SECTION # Argument: request.args["mode"][0] == "addMediaToDb" # Subargument: request.args["type"][0] == "isMovie" | "isTvShow" | "isEpisode" # request.args["ParentId"][0] == Integer ########################## if request.args["mode"][0] == "addMediaToDb": printl("mode (addMediaToDb)", self, "I") manager = Manager("WebIf:SubActions:MediaActions") type = request.args["type"][0] if (type == "isEpisode"): parentId = request.args["ParentId"][0] key_value_dict = {} for key in request.args.keys(): key_value_dict[key] = request.args[key][0] # add movies if type == "isMovie": printl ("INSERT MOVIE : " + str(key_value_dict), self, "I") result = manager.insertMediaWithDict(Manager.MOVIES, key_value_dict) if result["status"] > 0: return WebHelper().redirectMeTo("/movies?mode=showDoneForm&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isMovie&"+urlencode({'msg':result["message"]})) # add tvshows elif type == "isTvShow": printl ("INSERT TVSHOW : " + str(key_value_dict), self, "I") result = manager.insertMediaWithDict(Manager.TVSHOWS, key_value_dict) if result["status"] > 0: return WebHelper().redirectMeTo("/tvshows?mode=showDoneForm&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isTvShow&"+urlencode({'msg':result["message"]})) # add tvshowepisodes elif type == "isEpisode": printl ("INSERT EPISODE: " + str(key_value_dict), self, "I") result = manager.insertMediaWithDict(Manager.TVSHOWSEPISODES, key_value_dict) if result["status"] > 0: return WebHelper().redirectMeTo("/episodes?mode=showDoneForm&ParentId=" + parentId + "&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isEpisode&ParentId=" + parentId + "&"+urlencode({'msg':result["message"]})) ########################## # EDIT SECTION # Argument: request.args["mode"][0] == "alterMediaInDb" # Subargument: request.args["type"][0] == "isMovie" | "isTvShow" | "isEpisode" # request.args["Id"][0] == Integer # request.args["ParentId"][0] == Integer ########################## elif request.args["mode"][0] == "alterMediaInDb": printl("mode (alterMediaInDb)", self, "I") manager = Manager("WebIf:SubActions:MediaActions") type = stringToUtf8(request.args["type"][0]) Id = request.args["Id"][0] if (type == "isEpisode"): parentId = request.args["ParentId"][0] key_value_dict = {} for key in request.args.keys(): # key_value_dict[key] = stringToUtf8(request.args[key][0]) key_value_dict[key] = request.args[key][0] printl("Content: " + key + " => " + request.args[key][0], self, "I") if not "Seen" in request.args: WebData().getData("MediaInfo_markUnseen", Id) else: if (request.args["Seen"][0] == "on"): WebData().getData("MediaInfo_markSeen", Id) # edit movies if type == "isMovie": result = manager.updateMediaWithDict(Manager.MOVIES, key_value_dict) printl("alter Movie in Db", self, "I") if result is True: printl("TRUE", self, "I") return WebHelper().redirectMeTo("/movies?mode=showDoneForm&Id=" + Id + "&showSave=true") else: printl("FALSE", self, "I") return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isMovie&Id=" + Id) # edit tvshows elif type == "isTvShow": result = manager.updateMediaWithDict(Manager.TVSHOWS, key_value_dict) if result: return WebHelper().redirectMeTo("/tvshows?mode=showDoneForm&Id=" + Id + "&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isTvShow&Id=" + Id) # edit tvsshowepisodes elif type == "isEpisode": result = manager.updateMediaWithDict(Manager.TVSHOWSEPISODES, key_value_dict) if result: return WebHelper().redirectMeTo("/episodes?mode=showDoneForm&Id=" + Id + "&ParentId=" + parentId + "&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isEpisode&ParentId="+ parentId + "&Id=" + Id) ########################## # DELETE SECTION # Argument: request.args["mode"][0] == "deleteMediaFromDb" # Subargument: request.args["Id"][0] == Integer # request.args["ParentId"][0] == Integer # request.args["type"][0] == "isMovie" | "isTvShow" | "isEpisode" ########################## elif request.args["mode"][0] == "deleteMediaFromDb": printl("mode (deleteMediaFromDb)", self, "I") manager = Manager("WebIf:SubActions:MediaActions") id = request.args["Id"][0] type = request.args["type"][0] if (type == "isEpisode"): parentId = request.args["ParentId"][0] result = manager.deleteMedia(id) #delete movie if type == "isMovie": if result: return WebHelper().redirectMeTo("/movies?mode=showDoneForm&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isMovie") # delete tvshowepisodes elif type == "isEpisode": if result: return WebHelper().redirectMeTo("/episodes?mode=showDoneForm&ParentId=" + parentId + "&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&tpye=isEpisode&ParentId=" + parentId) # delete tvshow elif type == "isTvShow": if result: return WebHelper().redirectMeTo("/tvshows?mode=showDoneForm&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isTvShow") # delete failed elif type == "isFailed": if result: return WebHelper().redirectMeTo("/failed?showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isTvShow") ########################## # CHANGE ARTS SECTION # Argument: request.args["mode"][0] == "changeMediaArts" # Subargument: request.args["Id"][0] == Integer # request.args["type"][0] == "isMovie" | "isTvShow" | "isEpisode" # request.args["media_type"][0] == "poster" | "backdrop" # request.args["media_source"][0] == String ########################## elif request.args["mode"][0] == "changeMediaArts": printl("mode (changeMediaArts)", self, "I") manager = Manager("WebIf:SubActions:MediaActions") type = request.args["type"][0] media_source = request.args["media_source"][0] media_type = request.args["media_type"][0] Id = request.args["Id"][0] printl("media_source => " + media_source + ")", self, "I") if (media_source[0:7] != "user://"): if(media_source[0:7] == "http://" or media_source[0:8] == "https://" or media_source[0:1] == "/"): media_source = "user://" + media_source printl("media_source without user:// found => correcting to new value = " + media_source, self, "I") else: printl("media_source seems to have bad format at all - trying it anyway without warranty ;-)", self, "W") else: printl("media_source with user:// found => no changes needed", self, "I") #change movie art if type == "isMovie": t = Manager.MOVIES #change tvshow art elif type == "isTvShow": t = Manager.TVSHOWS #change episode art elif type == "isEpisode": t = Manager.TVSHOWSEPISODES else: return utf8ToLatin("error") if media_type == "poster": result = manager.changeMediaArts(t, Id, True, None, media_source) if result == True: return utf8ToLatin("success") else: return utf8ToLatin("error") elif media_type == "backdrop": result = manager.changeMediaArts(t, Id, True, media_source, None) if result == True: return utf8ToLatin("success") else: return utf8ToLatin("error") else: printl("no media type found", self) return utf8ToLatin("error") return utf8ToLatin("error") ########################## # SAVE TO DB # Argument: request.args["mode"][0] == "saveChangesToDb" ########################## elif request.args["mode"][0] == "saveChangesToDb": printl("mode (saveChangesToDb)", self, "I") manager = Manager("WebIf:SubActions:MediaActions") manager.finish() if request.args["return_to"][0] == "movies": return WebHelper().redirectMeTo("/movies") elif request.args["return_to"][0] == "tvshows": return WebHelper().redirectMeTo("/tvshows") elif request.args["return_to"][0] == "episodes": return WebHelper().redirectMeTo("/episodes") elif request.args["return_to"][0] == "failed": return WebHelper().redirectMeTo("/failed") ########################## # MOVE TO FAILED SECTION # Argument: request.args["mode"][0] == "moveToFailedSection" # Subargument: request.args["Id"][0] == Integer ########################## elif request.args["mode"][0] == "moveToFailedSection": manager = Manager("WebIf:SubActions:MediaActions") type = request.args["type"][0] Id = request.args["Id"][0] result = manager.moveToFailedSection(Id, type) if (type == "isEpisode"): parentId = request.args["ParentId"][0] #delete movie if type == "isMovie": if result: return WebHelper().redirectMeTo("/movies?mode=showDoneForm&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isMovie") # delete tvshowepisodes elif type == "isEpisode": if result: return WebHelper().redirectMeTo("/episodes?mode=showDoneForm&ParentId=" + parentId + "&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&tpye=isEpisode&ParentId=" + parentId) # delete tvshow elif type == "isTvShow": if result: return WebHelper().redirectMeTo("/tvshows?mode=showDoneForm&showSave=true") else: return WebHelper().redirectMeTo("/mediaForm?mode=showErrorForm&type=isTvShow")
def getData(self, type, param=None): global Manager if Manager is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Manager import Manager global ManagerInstance if ManagerInstance is None: ManagerInstance = Manager("WebIf:WebData") dataRows = [] printl("TYPE: " + type) if type == "movies": dataRows = ManagerInstance.getMoviesValues() elif type == "tvshows": dataRows = ManagerInstance.getSeriesValues() elif type == "episodes": if param != None: dataRows = ManagerInstance.getEpisodesWithTheTvDbId(param) else: dataRows = ManagerInstance.getEpisodes() elif type == "EpisodesOfSerie": dataRows = ManagerInstance.getEpisodes(param) elif type == "failed": dataRows = ManagerInstance.getFailedValues() elif type == "MediaInfo_isMovie": dataRows = ManagerInstance.getMedia(param) elif type == "MediaInfo_isTvShow": dataRows = ManagerInstance.getMedia(param) elif type == "MediaInfo_isEpisode": dataRows = ManagerInstance.getMedia(param) elif type == "MediaInfo_isFailed": dataRows = ManagerInstance.getMedia(param) elif type == "MediaInfo_isSeen": userId = config.plugins.pvmc.seenuserid.value dataRows = ManagerInstance.isMediaSeen(param, userId) elif type == "MediaInfo_markSeen": userId = config.plugins.pvmc.seenuserid.value dataRows = ManagerInstance.MarkAsSeen(param, userId) elif type == "MediaInfo_markUnseen": userId = config.plugins.pvmc.seenuserid.value dataRows = ManagerInstance.MarkAsUnseen(param, userId) elif type == "options.global": from Plugins.Extensions.PVMC.__plugin__ import getPlugins, Plugin dataRows = [] plugins = getPlugins(where=Plugin.SETTINGS) for plugin in plugins: pluginSettingsList = plugin.fnc() for pluginSetting in pluginSettingsList: if len(plugin.name) > 0: text = "[%s] %s" % (plugin.name, pluginSetting[0], ) else: text = "%s" % (pluginSetting[0], ) dataRows.append((text, pluginSetting[1])) elif type == "options.sync": from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.PathsConfig import PathsConfig dataRows = PathsConfig().getInstance() return dataRows
class DMC_NewestEpisodes(DMC_Library): def __init__(self, session): global Manager if Manager is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Manager import Manager self.manager = Manager("NewestEpisodes") DMC_Library.__init__(self, session, "tv shows - newest") ### # Return Value is expected to be: # (libraryArray, onEnterPrimaryKeys, onLeavePrimaryKeys, onLeaveSelectEntry def loadLibrary(self, primaryKeyValuePair, seenPng=None, unseenPng=None): printl("->", self) global Manager global utf8ToLatin if utf8ToLatin is None: from Plugins.Extensions.PVMC.DMC_Plugins.DMC_SyncExtras.Utf8 import utf8ToLatin start_time = time.time() userId = config.plugins.pvmc.seenuserid.value # Diplay all TVShows if primaryKeyValuePair is None: parsedLibrary = [] today = date.today() tmpGenres = [] shows = {} daysBack = config.plugins.pvmc.plugins.latestepisodes.daysback.value # episodes = self.manager.get.All(Manager.TVSHOWSEPISODES) episodes = self.manager.getAllEpisodes() for episode in episodes: try: fileCreationValidTime = False epDate = date(episode.Year, episode.Month, episode.Day) if self.checkFileCreationDate: try: creation = episode.FileCreation cDate = date.fromtimestamp(creation) if (today - cDate).days < daysBack: fileCreationValidTime = True except Exception, ex: printl("Exception(" + str(type(ex)) + "): " + str(ex), self, "W") creation = 0 if (today - epDate).days < daysBack or fileCreationValidTime: if not shows.has_key(episode.ParentId): tvshow = self.manager.getMedia(episode.ParentId) shows[episode.ParentId] = tvshow genres = utf8ToLatin(tvshow.Genres).split("|") for genre in genres: if genre not in tmpGenres: tmpGenres.append(genre) else: tvshow = shows[episode.ParentId] d = {} d["ArtBackdropId"] = utf8ToLatin(tvshow.TheTvDbId) d["ArtPosterId"] = d["ArtBackdropId"] d["Id"] = episode.Id d["ImdbId"] = utf8ToLatin(tvshow.ImdbId) d["TheTvDbId"] = utf8ToLatin(episode.TheTvDbId) d["Tag"] = utf8ToLatin(tvshow.Tag) d["Title"] = " %s %dx%02d: %s" % ( utf8ToLatin(tvshow.Title), episode.Season, episode.Episode, utf8ToLatin(episode.Title), ) d["ScreenTitle"] = d["Title"] d["ScreenTitle"] = utf8ToLatin(d["ScreenTitle"]) d["Year"] = episode.Year d["Month"] = episode.Month d["Day"] = episode.Day d["Date"] = episode.getDate() d["Creation"] = episode.FileCreation d["Path"] = utf8ToLatin(episode.Path + "/" + episode.Filename + "." + episode.Extension) d["Season"] = episode.Season d["Episode"] = episode.Episode d["Plot"] = utf8ToLatin(episode.Plot) d["Runtime"] = episode.Runtime d["Popularity"] = episode.Popularity d["Genres"] = utf8ToLatin(episode.Genres).split("|") d["Resolution"] = utf8ToLatin(episode.Resolution) d["Sound"] = utf8ToLatin(episode.Sound) if self.manager.isMediaSeen(d["Id"], userId): image = seenPng d["Seen"] = "Seen" else: image = unseenPng d["Seen"] = "Unseen" d["ViewMode"] = "play" parsedLibrary.append((d["Title"], d, episode.Season * 1000 + episode.Episode, "50", image)) except Exception, ex: printl("Exception while loading library: " + str(ex), self, "E") printl("\tEntry: " + str(episode), self, "E")