ASP.NET MVC架构 路由提取
工具箱界面
虎霸王
md.py代码
import os
import re
import tkinter as tk
from tkinter import messageboxprint("""_-' "'-,_-' | d$$b |_-' | $$$$ |_-' | Q$$P | \033[1;41m=== MVC 路由提取工具 ===\033[0m_-'| | |_-' _* | |_-' |_-" __--''\ /_-' __--' __*--'-' __-'' __--*__-"`
| _--'' __--*"__-'`
|_--" .--=`"__-||"
| | |\\\ ||
| .dUU | | \\\ //
| UUUU | _|___//
| UUUU | |
| UUUU | |
| UUUU | |
| UUUU | |
| UUUU | |
| UUP' | |
| ___^-"`""'
""")def generate_filename():filename = input(f"\033[91m[+] 请输入保存文件名: \033[00m").strip()if not filename:return "output.txt"if '.' not in filename:filename += '.txt'return filenamedef extract_controller_name(filename):if "Controller" in filename:base_name = os.path.basename(filename)controller_part = base_name.split("Controller")[0]return controller_part.strip()return Nonedef extract_action_methods(file_content):action_pattern = r'\bpublic\s+ActionResult\s+(\w+)\s*\('return re.findall(action_pattern, file_content)def process_controller_directory(directory_path):if not os.path.isdir(directory_path):messagebox.showerror("错误", "请输入有效的目录路径!")return Nonecontroller_files = []for root, _, files in os.walk(directory_path):for file in files:if "Controller" in file and file.endswith((".cs")):controller_files.append(os.path.join(root, file))if not controller_files:messagebox.showinfo("提示", "在指定目录中未找到包含Controller的文件!")return Noneresult_lines = []for file_path in controller_files:try:with open(file_path, 'r', encoding='utf-8') as f:content = f.read()controller_name = extract_controller_name(file_path)if not controller_name:continueaction_methods = extract_action_methods(content)for action in action_methods:result_lines.append(f"/{controller_name}/{action}")except Exception as e:print(f"处理文件 {file_path} 时出错: {str(e)}")continueif not result_lines:messagebox.showinfo("提示", "未从任何文件中提取到Action方法!")return Noneoutput_filename = generate_filename()output_path = os.path.join(os.getcwd(), output_filename)try:with open(output_path, 'w', encoding='utf-8') as f:f.write('\n'.join(result_lines))return output_pathexcept Exception as e:messagebox.showerror("错误", f"保存文件时出错: {str(e)}")return Nonedef main():# 使用input获取目录路径而不是GUI对话框directory_path = input(f"\033[91m[+] 请输入包含Controller文件的目录路径: \033[00m").strip()if not directory_path:print("已取消操作")returnoutput_path = process_controller_directory(directory_path)if output_path:print(f"\033[91m[+] 成功提取Action方法\033[00m")print(f"\033[91m[+] 保存路径: {output_path}\033[00m")else:print("处理过程中未生成输出文件")if __name__ == "__main__":main()
运行演示
1.txt