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")