diff --git a/logic_ohli24.py b/logic_ohli24.py index e78367b..6259855 100644 --- a/logic_ohli24.py +++ b/logic_ohli24.py @@ -225,10 +225,76 @@ class LogicOhli24(LogicModuleBase): return jsonify(ModelOhli24Item.web_list(request)) elif sub == "db_remove": return jsonify(ModelOhli24Item.delete_by_id(req.form["id"])) + elif sub == "add_whitelist": + try: + # params = request.get_data() + # logger.debug(f"params: {params}") + # data_code = request.args.get("data_code") + params = request.get_json() + logger.debug(f"params:: {params}") + if params is not None: + code = params["data_code"] + logger.debug(f"params: {code}") + ret = LogicOhli24.add_whitelist(code) + else: + ret = LogicOhli24.add_whitelist() + return jsonify(ret) + except Exception as e: + logger.error("Exception:%s", e) + logger.error(traceback.format_exc()) except Exception as e: P.logger.error("Exception:%s", e) P.logger.error(traceback.format_exc()) + @staticmethod + def add_whitelist(*args): + ret = {} + + logger.debug(f"args: {args}") + try: + + if len(args) == 0: + code = str(LogicOhli24.current_data["code"]) + else: + code = str(args[0]) + + print(code) + + whitelist_program = P.ModelSetting.get("ohli24_auto_code_list") + whitelist_programs = [ + str(x.strip().replace(" ", "")) + for x in whitelist_program.replace("\n", "|").split("|") + ] + if code not in whitelist_programs: + whitelist_programs.append(code) + whitelist_programs = filter( + lambda x: x != "", whitelist_programs + ) # remove blank code + whitelist_program = "|".join(whitelist_programs) + entity = ( + db.session.query(P.ModelSetting) + .filter_by(key="ohli24_auto_code_list") + .with_for_update() + .first() + ) + entity.value = whitelist_program + db.session.commit() + ret["ret"] = True + ret["code"] = code + if len(args) == 0: + return LogicOhli24.current_data + else: + return ret + else: + ret["ret"] = False + ret["log"] = "이미 추가되어 있습니다." + except Exception as e: + logger.error("Exception:%s", e) + logger.error(traceback.format_exc()) + ret["ret"] = False + ret["log"] = str(e) + return ret + def setting_save_after(self): if self.queue.get_max_ffmpeg_count() != P.ModelSetting.get_int( "ohli24_max_ffmpeg_process_count" diff --git a/templates/anime_downloader_ohli24_category.html b/templates/anime_downloader_ohli24_category.html index b18c225..4e7d5a2 100644 --- a/templates/anime_downloader_ohli24_category.html +++ b/templates/anime_downloader_ohli24_category.html @@ -145,9 +145,15 @@ // {#tmp += '';#} tmp += '
' + data.anime_list[i].code + '
'; + tmp += '' + data.anime_list[i].code + '
'; tmp += '' + data.anime_list[i].title + ''; - tmp += ''; + // tmp += + // ''; + tmp += ''; tmp += ''; tmp += ''; str += tmp @@ -394,6 +400,32 @@ window.open("{{arg['anilife_url']}}", "_blank"); }); + $("body").on("click", "#add_whitelist", function (e) { + e.preventDefault(); + let data_code = $(this).attr("data-code"); + console.log(data_code); + $.ajax({ + url: "/" + package_name + "/ajax/"+sub+"/add_whitelist", + type: "POST", + cache: false, + data: JSON.stringify({data_code: data_code}), + contentType: "application/json;charset=UTF-8", + dataType: "json", + success: function (ret) { + if (ret.ret) { + $.notify("추가하였습니다.