| import json |
| import os |
| from types import MethodType |
|
|
| from flask import request |
| from wptoolkitModel.base import wpbase |
| import requests |
| import panelSite |
| import public_wp as public |
| from wptoolkitModel import one_key_wp_v2, base |
|
|
| class main(wpbase): |
| def __init__(self, get=None): |
| super(main, self).__init__(get) |
|
|
| |
| def api(self, get): |
| query = request.args |
| if not query.get("action"): |
| return public.returnMsg(False, "参数错误") |
| action = query['action'] |
| get = public.to_dict_obj(vars(get)) |
| method = getattr(self, action) |
| try: |
| return method(get) |
| except public.HintException as e: |
| return public.return_message(-1, 0, str(e)) |
|
|
| |
| def AddWPSite(self, get): |
| public.set_module_logs('wp_toolkit', 'AddWPSite', 1) |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().AddWPSite(get) |
|
|
| |
| def reset_wp_password(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().reset_wp_password(get) |
|
|
| |
| def is_update(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().is_update(get) |
|
|
| |
| def purge_all_cache(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().purge_all_cache(get) |
|
|
| |
| def set_fastcgi_cache(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().set_fastcgi_cache(get) |
|
|
| |
| def update_wp(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().update_wp(get) |
|
|
| |
| def get_language(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().get_language(get) |
|
|
| |
| def get_wp_versions(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().get_wp_available_versions(get) |
|
|
| |
| def get_wp_configurations(self, args): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().get_wp_configurations(args) |
|
|
| |
| def save_wp_configurations(self, args): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().save_wp_configurations(args) |
|
|
| |
| def get_wp_security_info(self, get): |
| from wp_toolkit import wp_security |
| result = wp_security().get_security_info(get) |
| get.name = get.site_name |
| |
| from panelSite import panelSite |
| hotlink = panelSite().GetSecurity(get) |
| print(hotlink) |
| try: |
| result['msg']['hotlink_status'] = 1 if hotlink['status'] else 0 |
| except: |
| pass |
| return result |
|
|
| |
| def open_wp_file_protection(self, get): |
| from wp_toolkit import wp_security |
| return wp_security().open_file_protection(get) |
|
|
| |
| def close_wp_file_protection(self, get): |
| from wp_toolkit import wp_security |
| return wp_security().close_file_protection(get) |
|
|
| |
| def get_wp_file_info(self, get): |
| from wp_toolkit import wp_security |
| return wp_security().get_file_info(get) |
|
|
| |
| def open_wp_firewall_protection(self, get): |
| from wp_toolkit import wp_security |
| return wp_security().open_firewall_protection(get) |
|
|
| |
| def close_wp_firewall_protection(self, get): |
| from wp_toolkit import wp_security |
| return wp_security().close_firewall_protection(get) |
|
|
| def deploy_wp(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().deploy_wp(get) |
|
|
| def get_wp_username(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().get_wp_username(get) |
|
|
| def reset_wp_db(self, get): |
| import one_key_wp_v2 as one_key_wp |
| return one_key_wp.one_key_wp().reset_wp_db(get) |
|
|
| |
| def wp_backup(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('bak_type').Require().Integer('>', 0), |
| ]) |
|
|
| from wp_toolkit import wpbackup |
|
|
| bak_obj = wpbackup(args.s_id) |
| bak_type = int(args.bak_type) |
|
|
| if bak_type == 1: |
| ok, msg = bak_obj.backup_files() |
| elif bak_type == 2: |
| ok, msg = bak_obj.backup_database() |
| elif bak_type == 3: |
| ok, msg = bak_obj.backup_full() |
| else: |
| return public.fail_v2('备份类型无效 {}', (bak_type,)) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_restore(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('bak_id').Require().Integer('>', 0), |
| ]) |
|
|
| from wp_toolkit import wpbackup |
|
|
| bak_id = int(args.bak_id) |
| bak_obj = wpbackup(wpbackup.retrieve_site_id_with_bak_id(bak_id)) |
| ok, msg = bak_obj.restore_with_backup(bak_id) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_backup_list(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('p').Integer('>', 0), |
| public.Param('limit').Integer('>', 0), |
| public.Param('tojs').Regexp(r"^[\w\.\-]+$"), |
| public.Param('result').Regexp(r"^[\d\,]+$"), |
| ]) |
|
|
| from wp_toolkit import wpbackup |
|
|
| bak_obj = wpbackup(args.s_id) |
|
|
| return public.success_v2(bak_obj.backup_list(args)) |
|
|
| |
| def wp_remove_backup(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('bak_id').Require().Integer('>', 0), |
| ]) |
|
|
| from wp_toolkit import wpbackup |
|
|
| bak_id = int(args.bak_id) |
| bak_obj = wpbackup(wpbackup.retrieve_site_id_with_bak_id(bak_id)) |
| ok, msg = bak_obj.remove_backup(bak_id) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| def migrate_site_to_wptoolkit(self, args: public.dict_obj): |
| public.set_module_logs('wp_toolkit', 'migrate_site_to_wptoolkit', 1) |
| from wp_toolkit import wpmigration |
| ok, msg = wpmigration(args.site_id).migrate_site_to_wptoolkit(args) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_migrate_from_website_to_wptoolkit(self, args: public.dict_obj): |
| from wp_toolkit import wpmigration |
| ok, msg = wpmigration.migrate_aap_from_website_to_wptoolkit() |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_can_migrate_from_website_to_wptoolkit(self, args: public.dict_obj): |
| from wp_toolkit import wpmigration |
| return public.success_v2(wpmigration.can_migrations_of_aap_website()) |
|
|
| |
| def wp_create_with_aap_bak(self, args: public.dict_obj): |
| from wp_toolkit import wpbackup |
| ok, msg = wpbackup.wp_deploy_with_aap_bak(args) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_create_with_plesk_or_cpanel_bak(self, args: public.dict_obj): |
| from wp_toolkit import wpbackup |
| ok, msg = wpbackup.wp_deploy_with_plesk_or_cpanel_bak(args) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_clone(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| ]) |
|
|
| from wp_toolkit import wpbackup |
|
|
| ok, msg = wpbackup(args.s_id).clone(args) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_integrity_check(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| ok, msg = wpmgr(args.s_id).integrity_check() |
|
|
| if not ok: |
| _return = public.fail_v2(msg) |
| else: |
| _return = public.success_v2(msg) |
| _return['data'] = {} |
| _return['data']['msg'] = _return['msg'] |
| return _return |
|
|
| |
| def wp_reinstall_files(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| ok, msg = wpmgr(args.s_id).reinstall_package() |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_plugin_list(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Integer('>', 0).Filter(int), |
| public.Param('keyword'), |
| public.Param('p').Integer('>', 0).Filter(int), |
| public.Param('p_size').Integer('>', 0).Filter(int), |
| public.Param('set_id').Integer('>', 0).Filter(int), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| if 's_id' in args: |
| ok, msg = wpmgr(args.s_id).search_plugins(args.get('keyword', ''), args.get('p', 1), args.get('p_size', 20)) |
| else: |
| ok, msg = wpmgr.query_plugins(args.get('keyword', ''), args.get('p', 1), args.get('p_size', 20), |
| args.get('set_id', None)) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_install_plugin(self, args: public.dict_obj): |
| public.set_module_logs('wp_toolkit', 'wp_install_plugin', 1) |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('slug').Require().SafePath(), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| ok, msg = wpmgr(args.s_id).install_plugin(args.slug) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_installed_plugins(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('force_check_updates').Integer('in', [0, 1]), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| res = wpmgr(args.s_id).installed_plugins(bool(int(args.get('force_check_updates', 0)))) |
| if isinstance(res, str): |
| return public.fail_v2(res) |
|
|
| return public.success_v2(res) |
|
|
| |
| def wp_update_plugin(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('plugin_file').Require().SafePath(), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| ok, msg = wpmgr(args.s_id).update_plugin(args.plugin_file) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2('更新成功') |
|
|
| |
| def wp_set_plugin_auto_update(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('plugin_file').Require().SafePath(), |
| public.Param('enable').Require().Integer('in', [0, 1]), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| wpmgr_obj = wpmgr(args.s_id) |
|
|
| if int(args.enable) == 1: |
| fn = wpmgr_obj.enable_plugin_auto_update |
| else: |
| fn = wpmgr_obj.disable_plugin_auto_update |
|
|
| ok, msg = fn(args.plugin_file) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2('自动更新设置修改成功') |
|
|
| |
| def wp_set_plugin_status(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('plugin_file').Require().SafePath(), |
| public.Param('activate').Require().Integer('in', [0, 1]), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| wpmgr_obj = wpmgr(args.s_id) |
|
|
| if int(args.activate) == 1: |
| fn = wpmgr_obj.activate_plugins |
| errmsg = public.lang("激活失败,请稍后重试。") |
| else: |
| fn = wpmgr_obj.deactivate_plugins |
| errmsg = public.lang("禁用失败,请稍后重试。") |
|
|
| if not fn(args.plugin_file): |
| return public.fail_v2(errmsg) |
|
|
| return public.success_v2('插件状态修改成功') |
|
|
| |
| def wp_uninstall_plugin(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('plugin_file').Require().SafePath(), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| ok, msg = wpmgr(args.s_id).uninstall_plugin(args.plugin_file) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2('卸载成功') |
|
|
| |
| def wp_theme_list(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Integer('>', 0).Filter(int), |
| public.Param('keyword'), |
| public.Param('p').Integer('>', 0).Filter(int), |
| public.Param('p_size').Integer('>', 0).Filter(int), |
| public.Param('set_id').Integer('>', 0).Filter(int), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| if 's_id' in args: |
| ok, msg = wpmgr(args.s_id).search_themes(args.get('keyword', ''), args.get('p', 1), args.get('p_size', 20)) |
| else: |
| ok, msg = wpmgr.query_themes(args.get('keyword', ''), args.get('p', 1), args.get('p_size', 20), |
| args.get('set_id', None)) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_install_theme(self, args: public.dict_obj): |
| public.set_module_logs('wp_toolkit', 'wp_install_theme', 1) |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('slug').Require(), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| ok, msg = wpmgr(args.s_id).install_theme(args.slug) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
| def wp_installed_themes(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('force_check_updates').Integer('in', [0, 1]), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| res = wpmgr(args.s_id).installed_themes(bool(int(args.get('force_check_updates', 0)))) |
| if isinstance(res, str): |
| return public.fail_v2(res) |
|
|
| return public.success_v2(res) |
|
|
| |
| def wp_update_theme(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('stylesheet').Require(), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| ok, msg = wpmgr(args.s_id).update_theme(args.stylesheet) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2('更新成功') |
|
|
| |
| def wp_set_theme_auto_update(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('stylesheet').Require(), |
| public.Param('enable').Require().Integer('in', [0, 1]), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| wpmgr_obj = wpmgr(args.s_id) |
|
|
| if int(args.enable) == 1: |
| fn = wpmgr_obj.enable_theme_auto_update |
| else: |
| fn = wpmgr_obj.disable_theme_auto_update |
|
|
| ok, msg = fn(args.stylesheet) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2('自动更新设置修改成功') |
|
|
| |
| def wp_switch_theme(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('stylesheet').Require(), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| if not wpmgr(args.s_id).switch_theme(args.stylesheet): |
| return public.fail_v2('主题切换失败请稍后重试') |
|
|
| return public.success_v2('切换成功') |
|
|
| |
| def wp_uninstall_theme(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('s_id').Require().Integer('>', 0), |
| public.Param('stylesheet').Require(), |
| ]) |
|
|
| from wp_toolkit import wpmgr |
|
|
| ok, msg = wpmgr(args.s_id).uninstall_theme(args.stylesheet) |
|
|
| if not ok: |
| return public.fail_v2(msg) |
|
|
| return public.success_v2('卸载成功') |
|
|
| |
| def wp_all_sites(self, args: public.dict_obj): |
| from wp_toolkit import wpmgr |
| return public.success_v2(wpmgr.all_sites()) |
|
|
| |
| def wp_set_list(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('keyword'), |
| public.Param('p').Filter(int), |
| public.Param('p_size').Filter(int), |
| ]) |
|
|
| from wp_toolkit import wp_sets |
| return public.success_v2( |
| wp_sets().fetch_list(args.get('keyword', ''), args.get('p', 1), args.get('p_size', 20))) |
|
|
| |
| def wp_create_set(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('name').Require(), |
| ]) |
|
|
| from wp_toolkit import wp_sets |
|
|
| if wp_sets().create_set(args.name) < 1: |
| raise public.HintException(public.lang("创建失败")) |
|
|
| return public.success_v2('创建成功') |
|
|
| |
| def wp_remove_set(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('set_id').Require().Regexp(r'^\d+(?:,\d+)*$'), |
| ]) |
|
|
| from wp_toolkit import wp_sets |
|
|
| if not wp_sets().remove_set(list(map(lambda x: int(x), str(args.set_id).split(',')))): |
| raise public.HintException(public.lang("删除失败")) |
|
|
| return public.success_v2('删除成功') |
|
|
| |
| def wp_get_items_from_set(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('set_id').Require().Integer('>', 0).Filter(int), |
| public.Param('type').Require().Integer('in', [1, 2]).Filter(int), |
| ]) |
|
|
| from wp_toolkit import wp_sets |
|
|
| return public.success_v2(wp_sets().get_items(args.set_id, args.type)) |
|
|
| |
| def wp_add_items_to_set(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('set_id').Require().Integer('>', 0).Filter(int), |
| public.Param('items').Require().Array(), |
| public.Param('type').Require().Integer('in', [1, 2]).Filter(int), |
| ]) |
|
|
| from wp_toolkit import wp_sets |
|
|
| typ = int(args.type) |
|
|
| |
| if typ == 1: |
| ok, msg = wp_sets().add_plugins(int(args.set_id), json.loads(args.items)) |
|
|
| |
| elif typ == 2: |
| ok, msg = wp_sets().add_themes(int(args.set_id), json.loads(args.items)) |
|
|
| |
| else: |
| raise public.HintException(public.lang("无效类型")) |
|
|
| if not ok: |
| raise public.HintException(msg) |
|
|
| return public.success_v2('添加成功') |
|
|
| |
| def wp_remove_items_from_set(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('item_ids').Require().Regexp(r'^\d+(?:,\d+)*$'), |
| public.Param('type').Require().Integer('in', [1, 2]).Filter(int), |
| ]) |
|
|
| from wp_toolkit import wp_sets |
|
|
| item_ids = list(map(lambda x: int(x), str(args.item_ids).split(','))) |
| typ = int(args.type) |
|
|
| |
| if typ == 1: |
| ok = wp_sets().remove_plugins(item_ids) |
|
|
| |
| elif typ == 2: |
| ok = wp_sets().remove_themes(item_ids) |
|
|
| |
| else: |
| raise public.HintException(public.lang("无效类型")) |
|
|
| if not ok: |
| raise public.HintException(public.lang("删除失败")) |
|
|
| return public.success_v2('删除成功') |
|
|
| |
| def wp_update_item_state_with_set(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('item_ids').Require().Regexp(r'^\d+(?:,\d+)*$'), |
| public.Param('state').Require().Integer('in', [0, 1]), |
| public.Param('type').Require().Integer('in', [1, 2]).Filter(int), |
| ]) |
|
|
| from wp_toolkit import wp_sets |
|
|
| item_ids = list(map(lambda x: int(x), str(args.item_ids).split(','))) |
| state = int(args.state) |
| typ = int(args.type) |
|
|
| |
| if typ == 1: |
| ok = wp_sets().update_plugins_state(state, item_ids) |
|
|
| |
| elif typ == 2: |
| ok = wp_sets().update_theme_state(state, item_ids[0]) |
|
|
| |
| else: |
| raise public.HintException(public.lang("无效类型")) |
|
|
| if not ok: |
| raise public.HintException(public.lang("修改失败")) |
|
|
| return public.success_v2('修改成功') |
|
|
| |
| def wp_install_with_set(self, args: public.dict_obj): |
| public.set_module_logs('wp_toolkit', 'wp_install_with_set', 1) |
| |
| args.validate([ |
| public.Param('set_id').Require().Integer('>', 0), |
| public.Param('site_ids').Require().Regexp(r'^\d+(?:,\d+)*$'), |
| ]) |
|
|
| from wp_toolkit import wp_sets |
|
|
| set_id = int(args.set_id) |
| site_ids = list(map(lambda x: int(x), str(args.site_ids).split(','))) |
|
|
| ok, msg = wp_sets().install(set_id, site_ids) |
|
|
| if not ok: |
| return public.returnMsg(False, msg) |
|
|
| return public.success_v2(msg) |
|
|
| |
|
|
| |
| def wp_remote_add(self, args: public.dict_obj): |
| public.set_module_logs('wp_toolkit', 'wp_remote_add', 1) |
|
|
| |
| args.validate([ |
| public.Param('login_url').Require().Url(), |
| public.Param('username').Require(), |
| public.Param('password').Require(), |
| ]) |
| try: |
| from wp_toolkit import wpmgr_remote |
| wpmgr_remote().add(args.login_url, args.username, args.password) |
| except Exception as e: |
| return public.returnMsg(False, str(e)) |
|
|
| return public.success_v2('Success') |
|
|
| |
| def wp_remote_add_manually(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('login_url').Require().Url(), |
| public.Param('security_key').Require(), |
| public.Param('security_token').Require(), |
| ]) |
|
|
| from wp_toolkit import wpmgr_remote |
| wpmgr_remote().add_manually(args.login_url, args.security_key, args.security_token) |
|
|
| return public.success_v2('添加成功') |
|
|
| |
| def wp_remote_remove(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('remote_id').Require().Integer('>', 0), |
| ]) |
|
|
| from wp_toolkit import wpmgr_remote |
| if not wpmgr_remote(args.remote_id).remove(): |
| raise public.HintException(public.lang('Remove wordpress remote site failed')) |
|
|
| return public.success_v2('Success') |
|
|
| |
| def wp_remote_sites(self, args: public.dict_obj): |
| |
| args.validate([ |
| public.Param('keyword'), |
| public.Param('p').Filter(int), |
| public.Param('p_size').Filter(int), |
| ]) |
|
|
| from wp_toolkit import wpmgr_remote |
| return public.success_v2(wpmgr_remote().list(args.get('keyword', ''), args.get('p', 1), args.get('p_size', 20))) |
|
|
| |
|
|
| @staticmethod |
| def test_domains_api(get): |
| try: |
| domains = json.loads(get.domains.strip()) |
| except (json.JSONDecodeError, AttributeError, KeyError): |
| return public.return_message(-1, 0, public.lang("参数错误")) |
| try: |
| from panel_dns_api_v2 import DnsMager |
| public.print_log("开始测试域名解析---- {}") |
| |
|
|
| return DnsMager().test_domains_api(domains) |
| except: |
| pass |
| public.return_message(0, 0, "") |
|
|
| def site_rname(self, get): |
| try: |
| if not (hasattr(get, "id") and hasattr(get, "rname")): |
| return public.return_message(-1, 0, public.lang("parameter error")) |
| id = get.id |
| rname = get.rname |
| data = public.M('sites').where("id=?", (id,)).select() |
| if not data: |
| return public.return_message(-1, 0, public.lang("The site does not exist!")) |
| data = data[0] |
| name = data['rname'] if 'rname' in data.keys() and data.get('rname', '') else data['name'] |
| if 'rname' not in data.keys(): |
| public.M('sites').execute("ALTER TABLE 'sites' ADD 'rname' text DEFAULT ''", ()) |
| public.M('sites').where('id=?', data['id']).update({'rname': rname}) |
| |
| return public.return_message(0, 0, public.lang("Website [{}] renamed: [{}]", name, rname)) |
| except: |
| return public.return_message(-1, 0, traceback.format_exc()) |
|
|
| |
| def wordpress_vulnerabilities_scan(self, get): |
| from wp_toolkit import wordpress_scan |
| if 'path' not in get: public.return_message(0, 0, public.lang("Parameter error")) |
| return public.return_message(0, 0, wordpress_scan.wordpress_scan().scan(get.path)) |
|
|
| def wordpress_vulnerabilities_time(self, get): |
| from wp_toolkit import wordpress_scan |
| return public.return_message(0, 0, wordpress_scan.wordpress_scan().get_vlu_time()) |
|
|
| def ignore_vuln(self, get): |
| from wp_toolkit import wordpress_scan |
| return wordpress_scan.wordpress_scan().ignore_vuln(get) |
|
|
| def get_ignore_vuln(self, get): |
| from wp_toolkit import wordpress_scan |
| return wordpress_scan.wordpress_scan().get_ignore_vuln(get) |
|
|
| def set_auth_scan(self, get): |
| if 'path' not in get: public.return_message(0, 0, public.lang("Parameter error")) |
| from wp_toolkit import wordpress_scan |
| return wordpress_scan.wordpress_scan().set_auth_scan(get.path) |
|
|
| def get_auth_scan_status(self, get): |
| if 'path' not in get: public.return_message(0, 0, public.lang("Parameter error")) |
| from wp_toolkit import wordpress_scan |
| return wordpress_scan.wordpress_scan().get_auth_scan_status(get.path) |
|
|
| def auto_login(self, get): |
| if get.site_type == "local": |
| from wp_toolkit import wpmgr |
| return wpmgr(get.site_id).auto_login() |
| elif get.site_type.lower() == 'remote': |
| from wp_toolkit import wpmgr_remote |
| return wpmgr_remote(get.site_id).auto_login() |
| else: |
| return public.returnMsg(False, "错误的类型") |