81 lines
3.0 KiB
Python
81 lines
3.0 KiB
Python
import sys
|
|
import re
|
|
|
|
def refactor_widget(filepath):
|
|
with open(filepath, 'r') as f:
|
|
content = f.read()
|
|
|
|
# Refactor _getPassengerPriceText
|
|
price_text_pattern = re.compile(r'String _getPassengerPriceText\(\s*CarType carType, RideLifecycleController mapPassengerController\) \{.*?return formatter\.format\(roundedPrice\);\s*\}', re.DOTALL)
|
|
|
|
new_price_text = '''String _getPassengerPriceText(
|
|
CarType carType, RideLifecycleController mapPassengerController) {
|
|
String rawPrice;
|
|
switch (carType.carType) {
|
|
case 'Comfort':
|
|
rawPrice = mapPassengerController.totalPassengerComfort;
|
|
break;
|
|
case 'Fixed Price':
|
|
rawPrice = mapPassengerController.totalPassengerSpeed;
|
|
break;
|
|
case 'Electric':
|
|
rawPrice = mapPassengerController.totalPassengerElectric;
|
|
break;
|
|
case 'Awfar Car':
|
|
rawPrice = mapPassengerController.totalPassengerBalash;
|
|
break;
|
|
case 'Scooter':
|
|
case 'Pink Bike':
|
|
rawPrice = mapPassengerController.totalPassengerScooter;
|
|
break;
|
|
case 'Van':
|
|
rawPrice = mapPassengerController.totalPassengerVan;
|
|
break;
|
|
case 'Lady':
|
|
rawPrice = mapPassengerController.totalPassengerLady;
|
|
break;
|
|
case 'Rayeh Gai':
|
|
rawPrice = mapPassengerController.totalPassengerRayehGai;
|
|
break;
|
|
default:
|
|
return '...';
|
|
}
|
|
return rawPrice;
|
|
}'''
|
|
content = price_text_pattern.sub(new_price_text, content)
|
|
|
|
# Refactor _getOriginalPrice
|
|
original_price_pattern = re.compile(r'double _getOriginalPrice\(\s*CarType carType, RideLifecycleController mapPassengerController\) \{.*?return 0\.0;\s*\}\s*\}', re.DOTALL)
|
|
|
|
new_original_price = '''String _getOriginalPrice(
|
|
CarType carType, RideLifecycleController mapPassengerController) {
|
|
switch (carType.carType) {
|
|
case 'Comfort':
|
|
return mapPassengerController.totalPassengerComfort;
|
|
case 'Fixed Price':
|
|
return mapPassengerController.totalPassengerSpeed;
|
|
case 'Electric':
|
|
return mapPassengerController.totalPassengerElectric;
|
|
case 'Awfar Car':
|
|
return mapPassengerController.totalPassengerBalash;
|
|
case 'Van':
|
|
return mapPassengerController.totalPassengerVan;
|
|
case 'Lady':
|
|
return mapPassengerController.totalPassengerLady;
|
|
default:
|
|
return '0';
|
|
}
|
|
}'''
|
|
content = original_price_pattern.sub(new_original_price, content)
|
|
|
|
# Refactor _buildRayehGaiOption
|
|
rayeh_gai_pattern = re.compile(r'Widget _buildRayehGaiOption\(\s*BuildContext context,\s*RideLifecycleController mapPassengerController,\s*String carTypeName,\s*double price\)')
|
|
content = rayeh_gai_pattern.sub(r'Widget _buildRayehGaiOption(BuildContext context, RideLifecycleController mapPassengerController, String carTypeName, String price)', content)
|
|
|
|
with open(filepath, 'w') as f:
|
|
f.write(content)
|
|
print(f"Refactored {filepath}")
|
|
|
|
if __name__ == '__main__':
|
|
refactor_widget(sys.argv[1])
|