'use strict'; goog.provide('Blockly.Python.parking'); goog.require('Blockly.Python'); PythonToBlocks.KNOWN_MODULES['parking'] = { "today": ["datetime_day", ["DAY", "TODAY"]], "day_compare": ["datetime_check_day", "OP", {"type": "variable", "mode": "value", "name": "LEFT"}, {"type": "mapper", "name": "VALUE", "method": convertDate}], "Day": ["datetime_day", {"type": "mapper", "name": "DAY", "method": convertDate}], "now": ["datetime_time", ["HOUR", "NOW"]], "Time": ["datetime_time", {"type": "integer", "name": "HOUR", "add_mutation": {"name": "@isnow", "value": "false"}}, {"type": "integer_mapper", "name": "MINUTE", "method": convertMinute}, "MERIDIAN"], "time_compare": ["datetime_check_time", "OP", {"type": "variable", "mode": "value", "name": "LEFT"}, {"type": "integer", "name": "HOURS"}, {"type": "integer_mapper", "name": "MINUTES", "method": convertMinute}, "MERIDIANS"] }; Blockly.Python['datetime_day'] = function(block) { Blockly.Python.definitions_['import_parking'] = 'import parking'; var operator = DAYS_MAP[block.getFieldValue('DAY').slice(0, 3).toLowerCase()]; return [operator, Blockly.Python.ORDER_ATOMIC]; }; Blockly.Python['datetime_check_time'] = function(block) { Blockly.Python.definitions_['import_parking'] = 'import parking'; var hour = parseInt(block.getFieldValue('HOURS')); var minute = parseInt(block.getFieldValue('MINUTES')); var meridian = Blockly.Python.quote_(block.getFieldValue('MERIDIANS')); var operator = Blockly.Python.quote_(block.getFieldValue('OP')); var left = Blockly.Python.valueToCode(block, 'LEFT', Blockly.Python.ORDER_ATOMIC) var code = "parking.time_compare(" + operator+", "+left + ',' + hour + ',' + minute + ',' +meridian + ")"; return [code, Blockly.Python.ORDER_ATOMIC]; }; Blockly.Python['datetime_check_day'] = function(block) { Blockly.Python.definitions_['import_parking'] = 'import parking'; var value = Blockly.Python.quote_(block.getFieldValue('VALUE')); var operator = Blockly.Python.quote_(block.getFieldValue('OP')); var left = Blockly.Python.valueToCode(block, 'LEFT', Blockly.Python.ORDER_ATOMIC) || "___"; var code = "parking.day_compare(" + operator + ", " + left + ', ' + value + ")"; return [code, Blockly.Python.ORDER_ATOMIC]; }; Blockly.Python['datetime_time'] = function(block) { Blockly.Python.definitions_['import_parking'] = 'import parking'; var hour = block.getFieldValue('HOUR'); var code; if (hour == "NOW") { code = "parking.now()"; } else { var minute = parseInt(block.getFieldValue('MINUTE')); var meridian = Blockly.Python.quote_(block.getFieldValue('MERIDIAN')); code = 'parking.Time('+hour+','+minute+','+meridian+')'; } return [code, Blockly.Python.ORDER_ATOMIC]; };