Fixes & Updates - 2026-06-01: Integrate Back-End v3 updates, fix call/connection issues across apps
This commit is contained in:
79
compare_controllers.py
Normal file
79
compare_controllers.py
Normal file
@@ -0,0 +1,79 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
original_path = 'lib/controller/home/map_passenger_controller.dart'
|
||||
split_dir = 'lib/controller/home/map'
|
||||
|
||||
# Read original file
|
||||
with open(original_path, 'r', encoding='utf-8') as f:
|
||||
orig_content = f.read()
|
||||
|
||||
# Read all split files
|
||||
split_contents = {}
|
||||
for filename in os.listdir(split_dir):
|
||||
if filename.endswith('.dart') and filename != 'map_screen_binding.dart':
|
||||
filepath = os.path.join(split_dir, filename)
|
||||
with open(filepath, 'r', encoding='utf-8') as f:
|
||||
split_contents[filename] = f.read()
|
||||
|
||||
# Combined content of all split files
|
||||
combined_split_content = '\n'.join(split_contents.values())
|
||||
|
||||
# Regex to find method/function declarations inside a class in Dart
|
||||
keywords = {
|
||||
'if', 'for', 'while', 'switch', 'catch', 'super', 'await', 'print',
|
||||
'assert', 'dynamic', 'void', 'return', 'with', 'override', 'get', 'set',
|
||||
'class', 'import', 'extends', 'implements', 'mixin', 'this', 'else', 'try',
|
||||
'final', 'const', 'var', 'late', 'static', 'factory', 'new', 'abstract',
|
||||
'covariant', 'external', 'operator', 'part', 'required', 'typedef', 'yield'
|
||||
}
|
||||
|
||||
def strip_comments(text):
|
||||
text = re.sub(r'/\*.*?\*/', '', text, flags=re.DOTALL)
|
||||
text = re.sub(r'//.*', '', text)
|
||||
return text
|
||||
|
||||
orig_clean = strip_comments(orig_content)
|
||||
combined_split_clean = strip_comments(combined_split_content)
|
||||
|
||||
method_decl_pattern = re.compile(
|
||||
r'(?:[a-zA-Z0-9_<>\?\[\]]+(?:\s+[a-zA-Z0-9_<>\?\[\]]+)*\s+)?([a-zA-Z0-9_]+)\s*\([^\)]*\)\s*(?:async)?\s*(?:=>|\{)'
|
||||
)
|
||||
|
||||
original_methods = set()
|
||||
for match in method_decl_pattern.finditer(orig_clean):
|
||||
method_name = match.group(1)
|
||||
if method_name not in keywords and not method_name.isdigit():
|
||||
original_methods.add(method_name)
|
||||
|
||||
var_decl_pattern = re.compile(
|
||||
r'\b(?:var|final|const|late|Rx[a-zA-Z]+|String|int|double|bool|List|Map|Set|Timer|LatLng|Position|IntaleqMapController)\??\s+([a-zA-Z0-9_]+)\b'
|
||||
)
|
||||
|
||||
original_vars = set()
|
||||
for match in var_decl_pattern.finditer(orig_clean):
|
||||
var_name = match.group(1)
|
||||
if var_name not in keywords and not var_name.isdigit():
|
||||
original_vars.add(var_name)
|
||||
|
||||
missing_methods = []
|
||||
for method in sorted(original_methods):
|
||||
if not re.search(r'\b' + re.escape(method) + r'\b', combined_split_clean):
|
||||
missing_methods.append(method)
|
||||
|
||||
missing_vars = []
|
||||
for var in sorted(original_vars):
|
||||
if not re.search(r'\b' + re.escape(var) + r'\b', combined_split_clean):
|
||||
missing_vars.append(var)
|
||||
|
||||
print("--- MISSING METHODS ---")
|
||||
print(f"Total original methods found: {len(original_methods)}")
|
||||
print(f"Total missing: {len(missing_methods)}")
|
||||
for m in missing_methods:
|
||||
print(f" - {m}")
|
||||
|
||||
print("\n--- MISSING VARIABLES/FIELDS ---")
|
||||
print(f"Total original variables found: {len(original_vars)}")
|
||||
print(f"Total missing: {len(missing_vars)}")
|
||||
for v in missing_vars:
|
||||
print(f" - {v}")
|
||||
Reference in New Issue
Block a user