diff --git a/data_gateway.py b/data_gateway.py index 3c170a8..9434654 100644 --- a/data_gateway.py +++ b/data_gateway.py @@ -692,54 +692,57 @@ def decdeg2dms(dd): def user_setting_write(dmr_id, setting, value, call_type): ## try: - # Open file and load as dict for modification - logger.info(setting.upper()) - with open(user_settings_file, 'r') as f: -## if f.read() == '{}': -## user_dict = {} - user_dict = ast.literal_eval(f.read()) - logger.info('Current settings: ' + str(user_dict)) - if dmr_id not in user_dict: - user_dict[dmr_id] = [{'call': str(get_alias((dmr_id), subscriber_ids))}, {'ssid': ''}, {'icon': ''}, {'comment': ''}, {'pin': ''}, {'APRS': False}] - if setting.upper() == 'ICON': - user_dict[dmr_id][2]['icon'] = value - if setting.upper() == 'SSID': - user_dict[dmr_id][1]['ssid'] = value - if setting.upper() == 'COM': - user_comment = user_dict[dmr_id][3]['comment'] = value[0:35] - if setting.upper() == 'APRS ON': - user_dict[dmr_id][5] = {'APRS': True} - if call_type == 'unit': - send_sms(False, dmr_id, 0000, 0000, 'unit', 'APRS MSG TX/RX Enabled') - if call_type == 'vcsbk': - send_sms(False, 9, 0000, 0000, 'group', 'APRS MSG TX/RX Enabled') - if setting.upper() == 'APRS OFF': - user_dict[dmr_id][5] = {'APRS': False} - if call_type == 'unit': - send_sms(False, dmr_id, 0000, 0000, 'unit', 'APRS MSG TX/RX Disabled') - if call_type == 'vcsbk': - send_sms(False, 9, 0000, 0000, 'group', 'APRS MSG TX/RX Disabled') - if setting.upper() == 'PIN': - #try: - #if user_dict[dmr_id]: - user_dict[dmr_id][4]['pin'] = value - if call_type == 'unit': - send_sms(False, dmr_id, 0000, 0000, 'unit', 'You can now use your pin on the dashboard.') - if call_type == 'vcsbk': - send_sms(False, 9, 0000, 0000, 'group', 'You can now use your pin on the dashboard.') - #if not user_dict[dmr_id]: - # user_dict[dmr_id] = [{'call': str(get_alias((dmr_id), subscriber_ids))}, {'ssid': ''}, {'icon': ''}, {'comment': ''}, {'pin': pin}] - #except: - # user_dict[dmr_id].append({'pin': value}) - f.close() - logger.info('Loaded user settings. Write changes.') - # Write modified dict to file - with open(user_settings_file, 'w') as user_dict_file: - user_dict_file.write(str(user_dict)) - user_dict_file.close() - logger.info('User setting saved') - f.close() - packet_assembly = '' + if CONFIG['WEB_SERVICE']['REMOTE_CONFIG_ENABLED'] == True: + send_sms_cmd(CONFIG, dmr_id, 'APRS-' + setting + '=' + str(value)) + if CONFIG['WEB_SERVICE']['REMOTE_CONFIG_ENABLED'] == False: + # Open file and load as dict for modification + logger.info(setting.upper()) + with open(user_settings_file, 'r') as f: + ## if f.read() == '{}': + ## user_dict = {} + user_dict = ast.literal_eval(f.read()) + logger.info('Current settings: ' + str(user_dict)) + if dmr_id not in user_dict: + user_dict[dmr_id] = [{'call': str(get_alias((dmr_id), subscriber_ids))}, {'ssid': ''}, {'icon': ''}, {'comment': ''}, {'pin': ''}, {'APRS': False}] + if setting.upper() == 'ICON': + user_dict[dmr_id][2]['icon'] = value + if setting.upper() == 'SSID': + user_dict[dmr_id][1]['ssid'] = value + if setting.upper() == 'COM': + user_comment = user_dict[dmr_id][3]['comment'] = value[0:35] + if setting.upper() == 'APRS ON': + user_dict[dmr_id][5] = {'APRS': True} + if call_type == 'unit': + send_sms(False, dmr_id, 0000, 0000, 'unit', 'APRS MSG TX/RX Enabled') + if call_type == 'vcsbk': + send_sms(False, 9, 0000, 0000, 'group', 'APRS MSG TX/RX Enabled') + if setting.upper() == 'APRS OFF': + user_dict[dmr_id][5] = {'APRS': False} + if call_type == 'unit': + send_sms(False, dmr_id, 0000, 0000, 'unit', 'APRS MSG TX/RX Disabled') + if call_type == 'vcsbk': + send_sms(False, 9, 0000, 0000, 'group', 'APRS MSG TX/RX Disabled') + if setting.upper() == 'PIN': + #try: + #if user_dict[dmr_id]: + user_dict[dmr_id][4]['pin'] = value + if call_type == 'unit': + send_sms(False, dmr_id, 0000, 0000, 'unit', 'You can now use your pin on the dashboard.') + if call_type == 'vcsbk': + send_sms(False, 9, 0000, 0000, 'group', 'You can now use your pin on the dashboard.') + #if not user_dict[dmr_id]: + # user_dict[dmr_id] = [{'call': str(get_alias((dmr_id), subscriber_ids))}, {'ssid': ''}, {'icon': ''}, {'comment': ''}, {'pin': pin}] + #except: + # user_dict[dmr_id].append({'pin': value}) + f.close() + logger.info('Loaded user settings. Write changes.') + # Write modified dict to file + with open(user_settings_file, 'w') as user_dict_file: + user_dict_file.write(str(user_dict)) + user_dict_file.close() + logger.info('User setting saved') + f.close() + packet_assembly = '' # Process SMS, do something bases on message diff --git a/web/app.py b/web/app.py index d711f1c..baf8cfa 100644 --- a/web/app.py +++ b/web/app.py @@ -3225,6 +3225,33 @@ Name: ''' + p.name + '''  -  Port: ''' + str( ) db.session.add(add_ss) db.session.commit() + + def oo_server_add(_server, _other_options): + s = ServerList.query.filter_by(name=_server).first() + s.other_options = str(_other_options) + db.session.commit() + + def sms_aprs_edit(_user, _dmr_id, _setting, _value): + u = User.query.filter(User.username.ilike(_user)).first() + aprs_settings = ast.literal_eval(u.aprs) + print(_setting) + if _setting == 'ssid': + aprs_settings[_dmr_id][1][_setting] = _value + if _setting == 'icon': + aprs_settings[_dmr_id][2][_setting] = _value + if _setting == 'com': + aprs_settings[_dmr_id][3]['comment'] = _value + if _setting == 'pin': + aprs_settings[_dmr_id][4][_setting] = int(_value) + if _setting.upper() == 'APRS': + if _value.upper() == 'ON': + aprs_settings[_dmr_id][5][_setting] = True + if _value.upper() == 'OFF': + aprs_settings[_dmr_id][5][_setting] = False + print(aprs_settings[_dmr_id]) + + u.aprs = str(aprs_settings) + db.session.commit() def tp_del(_id): tpd = TinyPage.query.filter_by(id=_id).first() @@ -6890,10 +6917,10 @@ Name: ''' + p.name + '''  -  Port: ''' + str( ) sms_que_purge(hblink_req['get_sms_que']) elif 'sms_cmd' in hblink_req: - print(get_aprs_settings()) +## print(get_aprs_settings()) if hblink_req['sms_cmd']: split_cmd = str(hblink_req['cmd']).split(' ') - print(split_cmd) +## print(split_cmd) if hblink_req['cmd'][:1] == '?': ## tst = ServerList.query.filter(ServerList.other_options.ilike('%DATA_GATEWAY%')).first() ## print(tst) @@ -6943,6 +6970,18 @@ Name: ''' + p.name + '''  -  Port: ''' + str( sms_que_add('', '', 0, hblink_req['rf_id'], 'motorola', 'unit', hblink_req['sms_cmd'], '', str(i.snd_id) + ': ' + re.sub('<.*?>', '', str(i.message))) except: sms_que_add('', '', 0, hblink_req['rf_id'], 'motorola', 'unit', hblink_req['sms_cmd'], '', 'Not found or other error') + elif hblink_req['cmd'][:5] == 'APRS-': + if hblink_req['cmd'][5:9] == 'APRS': + if 'ON' in split_cmd[1]: + sms_aprs_edit(hblink_req['call'], hblink_req['rf_id'], 'APRS', 'ON') + if 'OFF' in split_cmd[1]: + sms_aprs_edit(hblink_req['call'], hblink_req['rf_id'], 'APRS', 'OFF') + + elif hblink_req['cmd'][5:9] != 'APRS': + + aprs_set = re.sub('APRS-|=.*','',split_cmd[0]) + aprs_val = re.sub('.*=|,','',split_cmd[0]) + sms_aprs_edit(hblink_req['call'], hblink_req['rf_id'], aprs_set.lower(), aprs_val)