Update: 2026-06-11 18:22:57
This commit is contained in:
133
refactor_controller.py
Normal file
133
refactor_controller.py
Normal file
@@ -0,0 +1,133 @@
|
||||
import sys
|
||||
import re
|
||||
|
||||
def refactor_controller(filepath):
|
||||
with open(filepath, 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
# 1. Change double to String for pricing variables
|
||||
content = re.sub(r'double totalPassengerSpeed = 0;', "String totalPassengerSpeed = '0';", content)
|
||||
content = re.sub(r'double totalPassengerBalash = 0;', "String totalPassengerBalash = '0';", content)
|
||||
content = re.sub(r'double totalPassengerComfort = 0;', "String totalPassengerComfort = '0';", content)
|
||||
content = re.sub(r'double totalPassengerElectric = 0;', "String totalPassengerElectric = '0';", content)
|
||||
content = re.sub(r'double totalPassengerLady = 0;', "String totalPassengerLady = '0';", content)
|
||||
content = re.sub(r'double totalPassengerScooter = 0;', "String totalPassengerScooter = '0';", content)
|
||||
content = re.sub(r'double totalPassengerVan = 0;', "String totalPassengerVan = '0';", content)
|
||||
content = re.sub(r'double totalPassengerRayehGai = 0;', "String totalPassengerRayehGai = '0';", content)
|
||||
content = re.sub(r'double totalPassengerRayehGaiComfort = 0;', "String totalPassengerRayehGaiComfort = '0';", content)
|
||||
content = re.sub(r'double totalPassengerRayehGaiBalash = 0;', "String totalPassengerRayehGaiBalash = '0';", content)
|
||||
|
||||
content = re.sub(r'double totalPassenger = 0;', "String totalPassenger = '0';", content)
|
||||
content = re.sub(r'double totalCostPassenger = 0;', "String totalCostPassenger = '0';", content)
|
||||
|
||||
# 2. Replace bottomSheet method
|
||||
bottom_sheet_pattern = re.compile(r'Future bottomSheet\(\) async \{.*?(?=update\(\);\n\s*mapEngine\.changeBottomSheetShown\(forceValue: true\);\n\s*\})', re.DOTALL)
|
||||
|
||||
new_bottom_sheet = '''Future bottomSheet() async {
|
||||
durationToAdd = Duration(seconds: durationToRide);
|
||||
hours = durationToAdd.inHours;
|
||||
minutes = (durationToAdd.inMinutes % 60).round();
|
||||
final DateTime currentTime = DateTime.now();
|
||||
newTime = currentTime.add(durationToAdd);
|
||||
|
||||
try {
|
||||
final res = await CRUD().post(link: AppLink.getPrices, payload: {
|
||||
'distance': distance.toString(),
|
||||
'durationToRide': durationToRide.toString(),
|
||||
'startNameAddress': startNameAddress,
|
||||
'endNameAddress': endNameAddress,
|
||||
'destLat': myDestination.latitude.toString(),
|
||||
'destLng': myDestination.longitude.toString(),
|
||||
'passengerLat': newMyLocation.latitude.toString(),
|
||||
'passengerLng': newMyLocation.longitude.toString(),
|
||||
'walletVal': box.read(BoxName.passengerWalletTotal)?.toString() ?? '0',
|
||||
'activeMenuWaypointCount': activeMenuWaypointCount.toString(),
|
||||
});
|
||||
|
||||
if (res != 'failure') {
|
||||
var response = jsonDecode(res);
|
||||
if (response['status'] == 'success') {
|
||||
var data = response['data'];
|
||||
totalPassengerSpeed = data['totalPassengerSpeed']?.toString() ?? '0';
|
||||
totalPassengerBalash = data['totalPassengerBalash']?.toString() ?? '0';
|
||||
totalPassengerComfort = data['totalPassengerComfort']?.toString() ?? '0';
|
||||
totalPassengerElectric = data['totalPassengerElectric']?.toString() ?? '0';
|
||||
totalPassengerLady = data['totalPassengerLady']?.toString() ?? '0';
|
||||
totalPassengerScooter = data['totalPassengerScooter']?.toString() ?? '0';
|
||||
totalPassengerVan = data['totalPassengerVan']?.toString() ?? '0';
|
||||
totalPassengerRayehGai = data['totalPassengerRayehGai']?.toString() ?? '0';
|
||||
totalPassengerRayehGaiComfort = data['totalPassengerRayehGaiComfort']?.toString() ?? '0';
|
||||
totalPassengerRayehGaiBalash = data['totalPassengerRayehGaiBalash']?.toString() ?? '0';
|
||||
|
||||
totalPassenger = totalPassengerSpeed;
|
||||
totalCostPassenger = totalPassenger;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
Log.print("Error fetching prices: $e");
|
||||
}
|
||||
|
||||
'''
|
||||
content = bottom_sheet_pattern.sub(new_bottom_sheet, content)
|
||||
|
||||
# 3. Replace applyPromoCodeToPassenger
|
||||
promo_pattern = re.compile(r'void applyPromoCodeToPassenger\(BuildContext context\) async \{.*?(?=Get\.back\(\);\n\s*await Future\.delayed\(const Duration\(milliseconds: 120\)\);\n\s*\} catch \(e\) \{)', re.DOTALL)
|
||||
|
||||
new_promo = '''void applyPromoCodeToPassenger(BuildContext context) async {
|
||||
if (promoTaken == true) {
|
||||
MyDialog().getDialog('Promo Already Used'.tr, 'You have already used this promo code.'.tr, () => Get.back());
|
||||
return;
|
||||
}
|
||||
if (!promoFormKey.currentState!.validate()) return;
|
||||
|
||||
try {
|
||||
final res = await CRUD().post(link: AppLink.getPrices, payload: {
|
||||
'distance': distance.toString(),
|
||||
'durationToRide': durationToRide.toString(),
|
||||
'startNameAddress': startNameAddress,
|
||||
'endNameAddress': endNameAddress,
|
||||
'destLat': myDestination.latitude.toString(),
|
||||
'destLng': myDestination.longitude.toString(),
|
||||
'passengerLat': newMyLocation.latitude.toString(),
|
||||
'passengerLng': newMyLocation.longitude.toString(),
|
||||
'walletVal': box.read(BoxName.passengerWalletTotal)?.toString() ?? '0',
|
||||
'activeMenuWaypointCount': activeMenuWaypointCount.toString(),
|
||||
'promo_code': promo.text,
|
||||
});
|
||||
|
||||
if (res != 'failure') {
|
||||
var response = jsonDecode(res);
|
||||
if (response['status'] == 'success') {
|
||||
var data = response['data'];
|
||||
totalPassengerSpeed = data['totalPassengerSpeed']?.toString() ?? '0';
|
||||
totalPassengerBalash = data['totalPassengerBalash']?.toString() ?? '0';
|
||||
totalPassengerComfort = data['totalPassengerComfort']?.toString() ?? '0';
|
||||
totalPassengerElectric = data['totalPassengerElectric']?.toString() ?? '0';
|
||||
totalPassengerLady = data['totalPassengerLady']?.toString() ?? '0';
|
||||
totalPassengerScooter = data['totalPassengerScooter']?.toString() ?? '0';
|
||||
totalPassengerVan = data['totalPassengerVan']?.toString() ?? '0';
|
||||
totalPassengerRayehGai = data['totalPassengerRayehGai']?.toString() ?? '0';
|
||||
totalPassengerRayehGaiComfort = data['totalPassengerRayehGaiComfort']?.toString() ?? '0';
|
||||
totalPassengerRayehGaiBalash = data['totalPassengerRayehGaiBalash']?.toString() ?? '0';
|
||||
|
||||
promoTaken = true;
|
||||
update();
|
||||
|
||||
Confetti.launch(
|
||||
context,
|
||||
options: const ConfettiOptions(particleCount: 100, spread: 70, y: 0.6),
|
||||
);
|
||||
} else {
|
||||
MyDialog().getDialog('Promo Error'.tr, response['message']?.toString() ?? 'Invalid Promo'.tr, () => Get.back());
|
||||
return;
|
||||
}
|
||||
}
|
||||
'''
|
||||
content = promo_pattern.sub(new_promo, content)
|
||||
|
||||
with open(filepath, 'w') as f:
|
||||
f.write(content)
|
||||
print(f"Refactored {filepath}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
refactor_controller(sys.argv[1])
|
||||
Reference in New Issue
Block a user