#!/usr/bin/env python3 """ Remove duplicate routes that have been moved to blueprints """ import re # Read the current app.py with open('app.py', 'r') as f: content = f.read() # List of function names that have been moved to blueprints moved_functions = [ # Auth routes 'login', 'logout', 'verify_2fa', 'profile', 'change_password', 'setup_2fa', 'enable_2fa', 'disable_2fa', 'heartbeat', # Admin routes 'dashboard', 'audit_log', 'backups', 'create_backup_route', 'restore_backup_route', 'download_backup', 'delete_backup', 'blocked_ips', 'unblock_ip', 'clear_attempts' ] # Create a pattern to match route decorators and their functions for func_name in moved_functions: # Pattern to match from @app.route to the end of the function pattern = rf'@app\.route\([^)]+\)\s*(?:@login_required\s*)?def {func_name}\([^)]*\):.*?(?=\n@app\.route|\n@[a-zA-Z]|\nif __name__|$)' # Replace with a comment replacement = f'# Function {func_name} moved to blueprint' content = re.sub(pattern, replacement, content, flags=re.DOTALL) # Write the modified content with open('app_no_duplicates.py', 'w') as f: f.write(content) print("Created app_no_duplicates.py with duplicate routes removed") print("Please review the file before using it")