From fc972431ecaea32bb56f6b3206d983e2833915ef Mon Sep 17 00:00:00 2001 From: jshixiong <2645476194@qq.com> Date: Wed, 7 Aug 2024 14:23:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(virus):=20=E7=97=85=E6=AF=92=E5=92=8C?= =?UTF-8?q?=E6=BC=8F=E6=B4=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/imitate_thread.py | 70 +++++++++++++++++++++++++++++++++++++++++++ app/route/route.py | 26 +++++++++++++++- 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 app/imitate_thread.py diff --git a/app/imitate_thread.py b/app/imitate_thread.py new file mode 100644 index 0000000..77e5b6a --- /dev/null +++ b/app/imitate_thread.py @@ -0,0 +1,70 @@ +import threading +import time +import random +import string +from flask import jsonify + +# 模拟队列 +virus_queue = [] +bugs_queue = [] + +virus_prefix = "py-virus" +bugs_prefix = "sec-bugs" + +def generate_random_string(length=10): + letters = string.ascii_lowercase + return ''.join(random.choice(letters) for _ in range(length)) + +def initialize_virus_queue(): + global virus_queue + for _ in range(5): + random_string = generate_random_string() + virus_queue.append(f'{virus_prefix}-{random_string}') + +def initialize_bugs_queue(): + global bugs_queue + for _ in range(5): + random_string = generate_random_string() + bugs_queue.append(f'{bugs_prefix}-{random_string}') + +# 定时检查病毒和漏洞数量 +def check_queue_length(): + while True: + time.sleep(600) # 每10分钟检查一次 + if len(virus_queue) < 5: + for _ in range(5 - len(virus_queue)): + random_string = generate_random_string() + virus_queue.append(f'{virus_prefix}-{random_string}') + + if len(bugs_queue) < 5: + for _ in range(5 - len(bugs_queue)): + random_string = generate_random_string() + bugs_queue.append(f'{bugs_prefix}-{random_string}') + + +def get_virus_queue_data(): + return jsonify({"virus_queue": virus_queue}) + +def delete_virus_queue_data(names_list): + global virus_queue + for name in names_list: + virus_queue = [data for data in virus_queue if data != name] + return jsonify({"message": "Data deleted successfully"}) + +def get_bugs_queue_data(): + return jsonify({"bugs_queue": bugs_queue}) + +def delete_bugs_queue_data(names_list): + global bugs_queue + for name in names_list: + bugs_queue = [data for data in bugs_queue if data != name] + return jsonify({"message": "Data deleted successfully"}) + +# 初始化队列 +initialize_virus_queue() +initialize_bugs_queue() + +# 启动后台线程 +thread = threading.Thread(target=check_queue_length) +thread.daemon = True +thread.start() \ No newline at end of file diff --git a/app/route/route.py b/app/route/route.py index c338e6c..80690da 100644 --- a/app/route/route.py +++ b/app/route/route.py @@ -6,6 +6,7 @@ import app.memory_usage as memory_usage import app.network as network_usage import app.login_info as login_info import app.request_info as request_info +import app.imitate_thread as imitate_thread route_bp = Blueprint('route', __name__) @@ -44,4 +45,27 @@ def get_request_info(): page_index = int(request.args.get('page_index', 1)) page_size = int(request.args.get('page_size', 10)) data = request_info.get_request_info(page_index, page_size) - return jsonify(data) \ No newline at end of file + return jsonify(data) + +# 病毒列表 +@route_bp.route('/sys/virus_get', methods=['GET']) +def get_virus(): + return imitate_thread.get_virus_queue_data() + +# 清理病毒 +@route_bp.route('/sys/virus_clean', methods=['GET']) +def delete_virus(): + names_list = request.json.get('names_list', []) + return imitate_thread.delete_virus_queue_data(names_list) + + +# 漏洞列表 +@route_bp.route('/sys/bugs_get', methods=['GET']) +def get_bugs(): + return imitate_thread.get_bugs_queue_data() + +# 清理漏洞 +@route_bp.route('/sys/bugs_clean', methods=['GET']) +def delete_bugs(): + names_list = request.json.get('names_list', []) + return imitate_thread.delete_bugs_queue_data(names_list) \ No newline at end of file