mirror of
https://github.com/markqvist/LXMF-Tools.git
synced 2025-06-21 12:44:11 -04:00
Message fields improved
This commit is contained in:
parent
2ce31fcee2
commit
16887b5dd1
11 changed files with 321 additions and 156 deletions
|
@ -838,9 +838,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
title = message.title.decode('utf-8').strip()
|
title = message.title.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "lxmf_to_matrix_deny_title")
|
denys = config_getarray(CONFIG, "message", "lxmf_to_matrix_deny_title")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -848,9 +847,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
content = message.content.decode('utf-8').strip()
|
content = message.content.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "lxmf_to_matrix_deny_content")
|
denys = config_getarray(CONFIG, "message", "lxmf_to_matrix_deny_content")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -858,9 +856,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
if message.fields:
|
if message.fields:
|
||||||
denys = config_get(CONFIG, "message", "lxmf_to_matrix_deny_fields")
|
denys = config_getarray(CONFIG, "message", "lxmf_to_matrix_deny_fields")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -881,9 +878,9 @@ def lxmf_message_received_callback(message):
|
||||||
source_name = ""
|
source_name = ""
|
||||||
|
|
||||||
if message.fields:
|
if message.fields:
|
||||||
if "src" in message.fields:
|
if 0xAF in message.fields:
|
||||||
source_address = RNS.hexrep(message.fields["src"]["h"], False)
|
source_address = RNS.hexrep(message.fields[0xAF]["h"], False)
|
||||||
source_name = message.fields["src"]["n"]
|
source_name = message.fields[0xAF]["n"]
|
||||||
|
|
||||||
routing_destination = ROUTING_TABLE[destination_address][0]
|
routing_destination = ROUTING_TABLE[destination_address][0]
|
||||||
routing_table = ROUTING_TABLE[destination_address][1]
|
routing_table = ROUTING_TABLE[destination_address][1]
|
||||||
|
@ -903,16 +900,16 @@ def lxmf_message_received_callback(message):
|
||||||
|
|
||||||
content = content_prefix + content + content_suffix
|
content = content_prefix + content + content_suffix
|
||||||
|
|
||||||
if message.fields and "hash" in message.fields:
|
if message.fields and 0xA7 in message.fields:
|
||||||
hash = message.fields["hash"]
|
hash = message.fields[0xA7]
|
||||||
else:
|
else:
|
||||||
hash = message.hash
|
hash = message.hash
|
||||||
|
|
||||||
if message.fields and "edit" in message.fields and "hash" in message.fields and message.fields["hash"] in DATA:
|
if message.fields and 0xA5 in message.fields and 0xA7 in message.fields and message.fields[0xA7] in DATA:
|
||||||
content = {"msgtype": "m.text", "body": "", "m.new_content": {"body": content, "msgtype": "m.text"}, "m.relates_to": {"event_id": DATA[message.fields["hash"]][0], "rel_type": "m.replace"}}
|
content = {"msgtype": "m.text", "body": "", "m.new_content": {"body": content, "msgtype": "m.text"}, "m.relates_to": {"event_id": DATA[message.fields[0xA7]][0], "rel_type": "m.replace"}}
|
||||||
elif message.fields and "delete" in message.fields and "hash" in message.fields and message.fields["hash"] in DATA:
|
elif message.fields and 0xA4 in message.fields and 0xA7 in message.fields and message.fields[0xA7] in DATA:
|
||||||
content = {"msgtype": "m.text", "body": "", "m.new_content": {"body": config_get(CONFIG, "message", "lxmf_to_matrix_deleted", "-"), "msgtype": "m.text"}, "m.relates_to": {"event_id": DATA[message.fields["hash"]][0], "rel_type": "m.replace"}}
|
content = {"msgtype": "m.text", "body": "", "m.new_content": {"body": config_get(CONFIG, "message", "lxmf_to_matrix_deleted", "-"), "msgtype": "m.text"}, "m.relates_to": {"event_id": DATA[message.fields[0xA7]][0], "rel_type": "m.replace"}}
|
||||||
elif message.fields and "answer" in message.fields and message.fields["answer"] in DATA:
|
elif message.fields and 0xA0 in message.fields and message.fields[0xA0] in DATA:
|
||||||
content = {"msgtype": "m.text", "body": content, "m.relates_to": {"m.in_reply_to": {"event_id": DATA[message.fields["answer"]][0]}}}
|
content = {"msgtype": "m.text", "body": content, "m.relates_to": {"m.in_reply_to": {"event_id": DATA[message.fields["answer"]][0]}}}
|
||||||
else:
|
else:
|
||||||
content = {"msgtype": "m.text", "body": content}
|
content = {"msgtype": "m.text", "body": content}
|
||||||
|
@ -920,8 +917,8 @@ def lxmf_message_received_callback(message):
|
||||||
MATRIX_CONNECTION.send(routing_destination, content, hash)
|
MATRIX_CONNECTION.send(routing_destination, content, hash)
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
#if message.fields and "attachment" in message.fields:
|
#if message.fields and 0xA1 in message.fields:
|
||||||
# for attachment in message.fields["attachment"]:
|
# for attachment in message.fields[0xA1]:
|
||||||
# MATRIX_CONNECTION.send_file(routing_destination, attachment["name"], attachment["size"], attachment["data"])
|
# MATRIX_CONNECTION.send_file(routing_destination, attachment["name"], attachment["size"], attachment["data"])
|
||||||
else:
|
else:
|
||||||
log("LXMF - Source " + RNS.prettyhexrep(message.source_hash) + " not allowed", LOG_DEBUG)
|
log("LXMF - Source " + RNS.prettyhexrep(message.source_hash) + " not allowed", LOG_DEBUG)
|
||||||
|
@ -959,16 +956,16 @@ def matrix_message_received_callback(room: MatrixRoom, event: RoomMessage):
|
||||||
content = content_dict["m.new_content"]["body"]
|
content = content_dict["m.new_content"]["body"]
|
||||||
event_id = content_dict["m.relates_to"]["event_id"]
|
event_id = content_dict["m.relates_to"]["event_id"]
|
||||||
if event_id in DATA:
|
if event_id in DATA:
|
||||||
fields["hash"] = DATA[event_id][0]
|
fields[0xA7] = DATA[event_id][0]
|
||||||
if DATA[event_id][1]:
|
if DATA[event_id][1]:
|
||||||
fields["answer"] = DATA[event_id][1]
|
fields[0xA0] = DATA[event_id][1]
|
||||||
fields["edit"] = time.time()
|
fields[0xA5] = time.time()
|
||||||
elif "m.relates_to" in content_dict and "m.in_reply_to" in content_dict["m.relates_to"]:
|
elif "m.relates_to" in content_dict and "m.in_reply_to" in content_dict["m.relates_to"]:
|
||||||
content = content_dict["formatted_body"]
|
content = content_dict["formatted_body"]
|
||||||
content = re.sub(r'<mx-reply>.*<\/mx-reply>', '', content)
|
content = re.sub(r'<mx-reply>.*<\/mx-reply>', '', content)
|
||||||
event_id = content_dict["m.relates_to"]["m.in_reply_to"]["event_id"]
|
event_id = content_dict["m.relates_to"]["m.in_reply_to"]["event_id"]
|
||||||
if event_id in DATA:
|
if event_id in DATA:
|
||||||
fields["answer"] = DATA[event_id][0]
|
fields[0xA0] = DATA[event_id][0]
|
||||||
else:
|
else:
|
||||||
content = event.body
|
content = event.body
|
||||||
except:
|
except:
|
||||||
|
@ -1004,15 +1001,15 @@ def matrix_message_received_callback(room: MatrixRoom, event: RoomMessage):
|
||||||
|
|
||||||
content = content_prefix + content + content_suffix
|
content = content_prefix + content + content_suffix
|
||||||
|
|
||||||
fields["src"] = {}
|
fields[0xAF] = {}
|
||||||
fields["src"]["h"] = b''
|
fields[0xAF]["h"] = b''
|
||||||
fields["src"]["n"] = replace(config_get(CONFIG, "message", "matrix_to_lxmf"), source_address=event.sender, source_name=user_name, destination_address=room.room_id, destination_name=room.display_name, routing_table=routing_table)
|
fields[0xAF]["n"] = replace(config_get(CONFIG, "message", "matrix_to_lxmf"), source_address=event.sender, source_name=user_name, destination_address=room.room_id, destination_name=room.display_name, routing_table=routing_table)
|
||||||
|
|
||||||
result = LXMF_CONNECTION.send(routing_destination, content, "", fields=fields)
|
result = LXMF_CONNECTION.send(routing_destination, content, "", fields=fields)
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
if "answer" in fields:
|
if 0xA0 in fields:
|
||||||
answer = fields["answer"]
|
answer = fields[0xA0]
|
||||||
else:
|
else:
|
||||||
answer = None
|
answer = None
|
||||||
DATA[result] = [event.event_id, answer]
|
DATA[result] = [event.event_id, answer]
|
||||||
|
@ -1071,6 +1068,23 @@ def config_get(config, section, key, default="", lng_key=""):
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def config_getarray(config, section, key, default=[], lng_key=""):
|
||||||
|
if not config or section == "" or key == "": return default
|
||||||
|
if not config.has_section(section): return default
|
||||||
|
value = ""
|
||||||
|
if config.has_option(section, key+lng_key):
|
||||||
|
value = config[section][key+lng_key]
|
||||||
|
elif config.has_option(section, key):
|
||||||
|
value = config[section][key]
|
||||||
|
if value != "":
|
||||||
|
values_return = []
|
||||||
|
values = value.split(",")
|
||||||
|
for value in values:
|
||||||
|
values_return.append(val_to_val(value.strip()))
|
||||||
|
return values_return
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def config_getint(config, section, key, default=0, lng_key=""):
|
def config_getint(config, section, key, default=0, lng_key=""):
|
||||||
if not config or section == "" or key == "": return default
|
if not config or section == "" or key == "": return default
|
||||||
if not config.has_section(section): return default
|
if not config.has_section(section): return default
|
||||||
|
@ -1309,8 +1323,13 @@ def val_to_val(val):
|
||||||
return True
|
return True
|
||||||
elif val.lower() == "false":
|
elif val.lower() == "false":
|
||||||
return False
|
return False
|
||||||
else:
|
elif val.startswith("0x") or val.startswith("0X"):
|
||||||
return val
|
try:
|
||||||
|
val_int = int(val, 16)
|
||||||
|
return val_int
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
##############################################################################################################
|
##############################################################################################################
|
||||||
|
|
|
@ -681,9 +681,8 @@ def lxmf_message_received_callback(message):
|
||||||
if CONFIG.has_option("allowed", "any") or CONFIG.has_option("allowed", "all") or CONFIG.has_option("allowed", "anybody") or CONFIG.has_option("allowed", RNS.hexrep(message.source_hash, False)) or CONFIG.has_option("allowed", RNS.prettyhexrep(message.source_hash)):
|
if CONFIG.has_option("allowed", "any") or CONFIG.has_option("allowed", "all") or CONFIG.has_option("allowed", "anybody") or CONFIG.has_option("allowed", RNS.hexrep(message.source_hash, False)) or CONFIG.has_option("allowed", RNS.prettyhexrep(message.source_hash)):
|
||||||
|
|
||||||
title = message.title.decode('utf-8').strip()
|
title = message.title.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "lxmf_to_mqtt_deny_title")
|
denys = config_getarray(CONFIG, "message", "lxmf_to_mqtt_deny_title")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -691,9 +690,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
content = message.content.decode('utf-8').strip()
|
content = message.content.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "lxmf_to_mqtt_deny_content")
|
denys = config_getarray(CONFIG, "message", "lxmf_to_mqtt_deny_content")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -701,9 +699,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
if message.fields:
|
if message.fields:
|
||||||
denys = config_get(CONFIG, "message", "lxmf_to_mqtt_deny_fields")
|
denys = config_getarray(CONFIG, "message", "lxmf_to_mqtt_deny_fields")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -927,6 +924,23 @@ def config_get(config, section, key, default="", lng_key=""):
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def config_getarray(config, section, key, default=[], lng_key=""):
|
||||||
|
if not config or section == "" or key == "": return default
|
||||||
|
if not config.has_section(section): return default
|
||||||
|
value = ""
|
||||||
|
if config.has_option(section, key+lng_key):
|
||||||
|
value = config[section][key+lng_key]
|
||||||
|
elif config.has_option(section, key):
|
||||||
|
value = config[section][key]
|
||||||
|
if value != "":
|
||||||
|
values_return = []
|
||||||
|
values = value.split(",")
|
||||||
|
for value in values:
|
||||||
|
values_return.append(val_to_val(value.strip()))
|
||||||
|
return values_return
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def config_getint(config, section, key, default=0, lng_key=""):
|
def config_getint(config, section, key, default=0, lng_key=""):
|
||||||
if not config or section == "" or key == "": return default
|
if not config or section == "" or key == "": return default
|
||||||
if not config.has_section(section): return default
|
if not config.has_section(section): return default
|
||||||
|
@ -1104,8 +1118,13 @@ def val_to_val(val):
|
||||||
return True
|
return True
|
||||||
elif val.lower() == "false":
|
elif val.lower() == "false":
|
||||||
return False
|
return False
|
||||||
else:
|
elif val.startswith("0x") or val.startswith("0X"):
|
||||||
return val
|
try:
|
||||||
|
val_int = int(val, 16)
|
||||||
|
return val_int
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
##############################################################################################################
|
##############################################################################################################
|
||||||
|
|
|
@ -653,9 +653,8 @@ def lxmf_message_received_callback(message):
|
||||||
if CONFIG.has_option("allowed", "any") or CONFIG.has_option("allowed", "all") or CONFIG.has_option("allowed", "anybody") or CONFIG.has_option("allowed", RNS.hexrep(message.source_hash, False)) or CONFIG.has_option("allowed", RNS.prettyhexrep(message.source_hash)):
|
if CONFIG.has_option("allowed", "any") or CONFIG.has_option("allowed", "all") or CONFIG.has_option("allowed", "anybody") or CONFIG.has_option("allowed", RNS.hexrep(message.source_hash, False)) or CONFIG.has_option("allowed", RNS.prettyhexrep(message.source_hash)):
|
||||||
|
|
||||||
title = message.title.decode('utf-8').strip()
|
title = message.title.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_title")
|
denys = config_getarray(CONFIG, "message", "deny_title")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -663,9 +662,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
content = message.content.decode('utf-8').strip()
|
content = message.content.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_content")
|
denys = config_getarray(CONFIG, "message", "deny_content")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -673,9 +671,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
if message.fields:
|
if message.fields:
|
||||||
denys = config_get(CONFIG, "message", "deny_fields")
|
denys = config_getarray(CONFIG, "message", "deny_fields")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -751,6 +748,23 @@ def config_get(config, section, key, default="", lng_key=""):
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def config_getarray(config, section, key, default=[], lng_key=""):
|
||||||
|
if not config or section == "" or key == "": return default
|
||||||
|
if not config.has_section(section): return default
|
||||||
|
value = ""
|
||||||
|
if config.has_option(section, key+lng_key):
|
||||||
|
value = config[section][key+lng_key]
|
||||||
|
elif config.has_option(section, key):
|
||||||
|
value = config[section][key]
|
||||||
|
if value != "":
|
||||||
|
values_return = []
|
||||||
|
values = value.split(",")
|
||||||
|
for value in values:
|
||||||
|
values_return.append(val_to_val(value.strip()))
|
||||||
|
return values_return
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def config_getint(config, section, key, default=0, lng_key=""):
|
def config_getint(config, section, key, default=0, lng_key=""):
|
||||||
if not config or section == "" or key == "": return default
|
if not config or section == "" or key == "": return default
|
||||||
if not config.has_section(section): return default
|
if not config.has_section(section): return default
|
||||||
|
@ -930,8 +944,13 @@ def val_to_val(val):
|
||||||
return True
|
return True
|
||||||
elif val.lower() == "false":
|
elif val.lower() == "false":
|
||||||
return False
|
return False
|
||||||
else:
|
elif val.startswith("0x") or val.startswith("0X"):
|
||||||
return val
|
try:
|
||||||
|
val_int = int(val, 16)
|
||||||
|
return val_int
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
##############################################################################################################
|
##############################################################################################################
|
||||||
|
|
|
@ -651,9 +651,8 @@ def lxmf_message_received_callback(message):
|
||||||
if CONFIG.has_option("allowed", "any") or CONFIG.has_option("allowed", "all") or CONFIG.has_option("allowed", "anybody") or CONFIG.has_option("allowed", RNS.hexrep(message.source_hash, False)) or CONFIG.has_option("allowed", RNS.prettyhexrep(message.source_hash)):
|
if CONFIG.has_option("allowed", "any") or CONFIG.has_option("allowed", "all") or CONFIG.has_option("allowed", "anybody") or CONFIG.has_option("allowed", RNS.hexrep(message.source_hash, False)) or CONFIG.has_option("allowed", RNS.prettyhexrep(message.source_hash)):
|
||||||
|
|
||||||
title = message.title.decode('utf-8').strip()
|
title = message.title.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_title")
|
denys = config_getarray(CONFIG, "message", "deny_title")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -661,9 +660,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
content = message.content.decode('utf-8').strip()
|
content = message.content.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_content")
|
denys = config_getarray(CONFIG, "message", "deny_content")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -671,9 +669,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
if message.fields:
|
if message.fields:
|
||||||
denys = config_get(CONFIG, "message", "deny_fields")
|
denys = config_getarray(CONFIG, "message", "deny_fields")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -785,6 +782,23 @@ def config_get(config, section, key, default="", lng_key=""):
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def config_getarray(config, section, key, default=[], lng_key=""):
|
||||||
|
if not config or section == "" or key == "": return default
|
||||||
|
if not config.has_section(section): return default
|
||||||
|
value = ""
|
||||||
|
if config.has_option(section, key+lng_key):
|
||||||
|
value = config[section][key+lng_key]
|
||||||
|
elif config.has_option(section, key):
|
||||||
|
value = config[section][key]
|
||||||
|
if value != "":
|
||||||
|
values_return = []
|
||||||
|
values = value.split(",")
|
||||||
|
for value in values:
|
||||||
|
values_return.append(val_to_val(value.strip()))
|
||||||
|
return values_return
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def config_getint(config, section, key, default=0, lng_key=""):
|
def config_getint(config, section, key, default=0, lng_key=""):
|
||||||
if not config or section == "" or key == "": return default
|
if not config or section == "" or key == "": return default
|
||||||
if not config.has_section(section): return default
|
if not config.has_section(section): return default
|
||||||
|
@ -962,8 +976,13 @@ def val_to_val(val):
|
||||||
return True
|
return True
|
||||||
elif val.lower() == "false":
|
elif val.lower() == "false":
|
||||||
return False
|
return False
|
||||||
else:
|
elif val.startswith("0x") or val.startswith("0X"):
|
||||||
return val
|
try:
|
||||||
|
val_int = int(val, 16)
|
||||||
|
return val_int
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
##############################################################################################################
|
##############################################################################################################
|
||||||
|
|
|
@ -43,7 +43,7 @@ enabled = False
|
||||||
|
|
||||||
#### Message settings ####
|
#### Message settings ####
|
||||||
[message]
|
[message]
|
||||||
deny_fields = ts
|
deny_fields = 0x09,0xAD
|
||||||
|
|
||||||
send_title_prefix =
|
send_title_prefix =
|
||||||
send_prefix =
|
send_prefix =
|
||||||
|
@ -54,8 +54,8 @@ cluster_receive_prefix = @!cluster_source!->
|
||||||
cluster_send_title_prefix = !source_name! <!source_address!>
|
cluster_send_title_prefix = !source_name! <!source_address!>
|
||||||
cluster_send_prefix = @!cluster_destination!!n!
|
cluster_send_prefix = @!cluster_destination!!n!
|
||||||
|
|
||||||
fields_remove = gps
|
fields_remove = 0x02,0x03,0x04,0xA6
|
||||||
fields_remove_anonymous = src,gps
|
fields_remove_anonymous = 0x02,0x03,0x04,0xAF,0xA6
|
||||||
|
|
||||||
|
|
||||||
#### Statistic/Counter settings ####
|
#### Statistic/Counter settings ####
|
||||||
|
|
|
@ -43,7 +43,7 @@ enabled = False
|
||||||
|
|
||||||
#### Message settings ####
|
#### Message settings ####
|
||||||
[message]
|
[message]
|
||||||
deny_fields = ts
|
deny_fields = 0x09,0xAD
|
||||||
|
|
||||||
send_title_prefix = !source_name! <!source_address!>
|
send_title_prefix = !source_name! <!source_address!>
|
||||||
send_prefix =
|
send_prefix =
|
||||||
|
@ -55,7 +55,7 @@ cluster_send_title_prefix = !source_name! <!source_address!>
|
||||||
cluster_send_prefix = @!cluster_destination!!n!
|
cluster_send_prefix = @!cluster_destination!!n!
|
||||||
|
|
||||||
fields_remove =
|
fields_remove =
|
||||||
fields_remove_anonymous = src,gps
|
fields_remove_anonymous = 0x02,0x03,0x04,0xAF,0xA6
|
||||||
|
|
||||||
|
|
||||||
#### Statistic/Counter settings ####
|
#### Statistic/Counter settings ####
|
||||||
|
|
|
@ -870,9 +870,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
title = message.title.decode('utf-8').strip()
|
title = message.title.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_title")
|
denys = config_getarray(CONFIG, "message", "deny_title")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -880,9 +879,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
content = message.content.decode('utf-8').strip()
|
content = message.content.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_content")
|
denys = config_getarray(CONFIG, "message", "deny_content")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -890,9 +888,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
if message.fields:
|
if message.fields:
|
||||||
denys = config_get(CONFIG, "message", "deny_fields")
|
denys = config_getarray(CONFIG, "message", "deny_fields")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -1263,12 +1260,12 @@ def lxmf_message_received_callback(message):
|
||||||
else:
|
else:
|
||||||
fields = {}
|
fields = {}
|
||||||
if CONFIG["main"].getboolean("fields_message"):
|
if CONFIG["main"].getboolean("fields_message"):
|
||||||
if not "hash" in fields:
|
if not 0xA7 in fields:
|
||||||
fields["hash"] = message.hash
|
fields[0xA7] = message.hash
|
||||||
if not "anonymous" in source_rights and "src" not in fields:
|
if not "anonymous" in source_rights and 0xAF not in fields:
|
||||||
fields["src"] = {}
|
fields[0xAF] = {}
|
||||||
fields["src"]["h"] = message.source_hash
|
fields[0xAF]["h"] = message.source_hash
|
||||||
fields["src"]["n"] = source_name
|
fields[0xAF]["n"] = source_name
|
||||||
fields["c_n"] = CONFIG["cluster"]["name"]
|
fields["c_n"] = CONFIG["cluster"]["name"]
|
||||||
fields["c_t"] = CONFIG["cluster"]["type"]
|
fields["c_t"] = CONFIG["cluster"]["type"]
|
||||||
|
|
||||||
|
@ -1313,13 +1310,13 @@ def lxmf_message_received_callback(message):
|
||||||
|
|
||||||
if CONFIG["main"].getboolean("fields_message"):
|
if CONFIG["main"].getboolean("fields_message"):
|
||||||
if CONFIG["lxmf"]["destination_type_conv"] != "":
|
if CONFIG["lxmf"]["destination_type_conv"] != "":
|
||||||
fields["type"] = CONFIG["lxmf"].getint("destination_type_conv")
|
fields[0xB3] = CONFIG["lxmf"].getint("destination_type_conv")
|
||||||
if not "hash" in fields:
|
if not 0xA7 in fields:
|
||||||
fields["hash"] = message.hash
|
fields[0xA7] = message.hash
|
||||||
if not "anonymous" in source_rights and "src" not in fields:
|
if not "anonymous" in source_rights and 0xAF not in fields:
|
||||||
fields["src"] = {}
|
fields[0xAF] = {}
|
||||||
fields["src"]["h"] = message.source_hash
|
fields[0xAF]["h"] = message.source_hash
|
||||||
fields["src"]["n"] = source_name
|
fields[0xAF]["n"] = source_name
|
||||||
|
|
||||||
for section in sections:
|
for section in sections:
|
||||||
if "receive_cluster_send" in config_get(CONFIG, "rights", section).split(",") or (cluster_loop and "receive_cluster_loop" in config_get(CONFIG, "rights", section).split(",")):
|
if "receive_cluster_send" in config_get(CONFIG, "rights", section).split(",") or (cluster_loop and "receive_cluster_loop" in config_get(CONFIG, "rights", section).split(",")):
|
||||||
|
@ -1388,13 +1385,13 @@ def lxmf_message_received_callback(message):
|
||||||
|
|
||||||
if CONFIG["main"].getboolean("fields_message"):
|
if CONFIG["main"].getboolean("fields_message"):
|
||||||
if CONFIG["lxmf"]["destination_type_conv"] != "":
|
if CONFIG["lxmf"]["destination_type_conv"] != "":
|
||||||
fields["type"] = CONFIG["lxmf"].getint("destination_type_conv")
|
fields[0xB3] = CONFIG["lxmf"].getint("destination_type_conv")
|
||||||
if not "hash" in fields:
|
if not 0xA7 in fields:
|
||||||
fields["hash"] = message.hash
|
fields[0xA7] = message.hash
|
||||||
if not "anonymous" in source_rights and "src" not in fields:
|
if not "anonymous" in source_rights and 0xAF not in fields:
|
||||||
fields["src"] = {}
|
fields[0xAF] = {}
|
||||||
fields["src"]["h"] = message.source_hash
|
fields[0xAF]["h"] = message.source_hash
|
||||||
fields["src"]["n"] = source_name
|
fields[0xAF]["n"] = source_name
|
||||||
|
|
||||||
if config_get(CONFIG, "message", "timestamp", "", lng_key) == "client":
|
if config_get(CONFIG, "message", "timestamp", "", lng_key) == "client":
|
||||||
timestamp = message.timestamp
|
timestamp = message.timestamp
|
||||||
|
@ -1608,7 +1605,7 @@ def interface(cmd, source_hash, source_name, source_right, source_rights, lng_ke
|
||||||
content = config_get(CONFIG, "interface_menu", "leave_ok", "", lng_key)
|
content = config_get(CONFIG, "interface_menu", "leave_ok", "", lng_key)
|
||||||
content = replace(content, source_hash, source_name, source_right, lng_key)
|
content = replace(content, source_hash, source_name, source_right, lng_key)
|
||||||
if content != "":
|
if content != "":
|
||||||
LXMF_CONNECTION.send(source_hash, content, "", {"data": None, "tpl": "info"}, None, "interface_send")
|
LXMF_CONNECTION.send(source_hash, content, "", {0xA3: None, 0xB1: "info"}, None, "interface_send")
|
||||||
content = ""
|
content = ""
|
||||||
|
|
||||||
if CONFIG["main"].getboolean("auto_save_data"):
|
if CONFIG["main"].getboolean("auto_save_data"):
|
||||||
|
@ -2905,7 +2902,7 @@ def interface(cmd, source_hash, source_name, source_right, source_rights, lng_ke
|
||||||
|
|
||||||
#### Fields #####
|
#### Fields #####
|
||||||
def fields_remove(fields=None, key="fields_remove"):
|
def fields_remove(fields=None, key="fields_remove"):
|
||||||
search = config_get(CONFIG, "message", key).split(",")
|
search = config_getarray(CONFIG, "message", key)
|
||||||
|
|
||||||
delete = []
|
delete = []
|
||||||
for field in fields:
|
for field in fields:
|
||||||
|
@ -2927,64 +2924,64 @@ def fields_generate(lng_key, fields=None, h=None, n=None, m=False, d=False, r=Fa
|
||||||
fields = {}
|
fields = {}
|
||||||
|
|
||||||
if CONFIG["lxmf"]["destination_type_conv"] != "":
|
if CONFIG["lxmf"]["destination_type_conv"] != "":
|
||||||
fields["type"] = CONFIG["lxmf"].getint("destination_type_conv")
|
fields[0xB3] = CONFIG["lxmf"].getint("destination_type_conv")
|
||||||
|
|
||||||
if h:
|
if h:
|
||||||
fields["src"] = {}
|
fields[0xAF] = {}
|
||||||
fields["src"]["h"] = h
|
fields[0xAF]["h"] = h
|
||||||
if n:
|
if n:
|
||||||
fields["src"]["n"] = n
|
fields[0xAF]["n"] = n
|
||||||
else:
|
else:
|
||||||
fields["src"]["n"] = ""
|
fields[0xAF]["n"] = ""
|
||||||
|
|
||||||
if m or d or r or cmd or config:
|
if m or d or r or cmd or config:
|
||||||
fields["data"] = {}
|
fields[0xA3] = {}
|
||||||
|
|
||||||
if m:
|
if m:
|
||||||
fields["data"]["m"] = {}
|
fields[0xA3]["m"] = {}
|
||||||
for (key, val) in CONFIG.items("rights"):
|
for (key, val) in CONFIG.items("rights"):
|
||||||
if DATA.has_section(key):
|
if DATA.has_section(key):
|
||||||
fields["data"]["m"][key] = {}
|
fields[0xA3]["m"][key] = {}
|
||||||
for (section_key, section_val) in DATA.items(key):
|
for (section_key, section_val) in DATA.items(key):
|
||||||
try:
|
try:
|
||||||
h = bytes.fromhex(LXMF_CONNECTION.destination_correct(section_key))
|
h = bytes.fromhex(LXMF_CONNECTION.destination_correct(section_key))
|
||||||
fields["data"]["m"][key][h] = section_val
|
fields[0xA3]["m"][key][h] = section_val
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if d:
|
if d:
|
||||||
fields["data"]["d"] = config_get(DATA, "main", "description", "", lng_key).replace(CONFIG["interface"]["delimiter_output"]+"n"+CONFIG["interface"]["delimiter_output"], "\n")
|
fields[0xA3]["d"] = config_get(DATA, "main", "description", "", lng_key).replace(CONFIG["interface"]["delimiter_output"]+"n"+CONFIG["interface"]["delimiter_output"], "\n")
|
||||||
|
|
||||||
if r:
|
if r:
|
||||||
fields["data"]["r"] = config_get(DATA, "main", "rules", "", lng_key).replace(CONFIG["interface"]["delimiter_output"]+"n"+CONFIG["interface"]["delimiter_output"], "\n")
|
fields[0xA3]["r"] = config_get(DATA, "main", "rules", "", lng_key).replace(CONFIG["interface"]["delimiter_output"]+"n"+CONFIG["interface"]["delimiter_output"], "\n")
|
||||||
|
|
||||||
if cmd:
|
if cmd:
|
||||||
fields["data"]["cmd"] = []
|
fields[0xA3]["cmd"] = []
|
||||||
if CONFIG.has_option("cmds", cmd):
|
if CONFIG.has_option("cmds", cmd):
|
||||||
cmds = config_get(CONFIG, "cmds", cmd).split(",")
|
cmds = config_get(CONFIG, "cmds", cmd).split(",")
|
||||||
for cmd in cmds:
|
for cmd in cmds:
|
||||||
fields["data"]["cmd"].append({"c": "/"+cmd})
|
fields[0xA3]["cmd"].append({"c": "/"+cmd})
|
||||||
|
|
||||||
if config:
|
if config:
|
||||||
fields["data"]["config"] = {}
|
fields[0xA3]["config"] = {}
|
||||||
if CONFIG.has_option("configs", config):
|
if CONFIG.has_option("configs", config):
|
||||||
configs = config_get(CONFIG, "configs", config).split(",")
|
configs = config_get(CONFIG, "configs", config).split(",")
|
||||||
for config in configs:
|
for config in configs:
|
||||||
if config != "":
|
if config != "":
|
||||||
key, value = config.split("=", 1)
|
key, value = config.split("=", 1)
|
||||||
fields["data"]["config"][key] = val_to_val(value)
|
fields[0xA3]["config"][key] = val_to_val(value)
|
||||||
|
|
||||||
if cmd or config:
|
if cmd or config:
|
||||||
if DATA.has_section("topics"):
|
if DATA.has_section("topics"):
|
||||||
fields["data"]["topics"] = {}
|
fields[0xA3]["topics"] = {}
|
||||||
for (key, val) in DATA.items("topics"):
|
for (key, val) in DATA.items("topics"):
|
||||||
try:
|
try:
|
||||||
fields["data"]["topics"][int(key)] = val
|
fields[0xA3]["topics"][int(key)] = val
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if tpl:
|
if tpl:
|
||||||
fields["tpl"] = tpl
|
fields[0xB1] = tpl
|
||||||
|
|
||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
@ -3040,6 +3037,23 @@ def config_get(config, section, key, default="", lng_key=""):
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def config_getarray(config, section, key, default=[], lng_key=""):
|
||||||
|
if not config or section == "" or key == "": return default
|
||||||
|
if not config.has_section(section): return default
|
||||||
|
value = ""
|
||||||
|
if config.has_option(section, key+lng_key):
|
||||||
|
value = config[section][key+lng_key]
|
||||||
|
elif config.has_option(section, key):
|
||||||
|
value = config[section][key]
|
||||||
|
if value != "":
|
||||||
|
values_return = []
|
||||||
|
values = value.split(",")
|
||||||
|
for value in values:
|
||||||
|
values_return.append(val_to_val(value.strip()))
|
||||||
|
return values_return
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def config_getint(config, section, key, default=0, lng_key=""):
|
def config_getint(config, section, key, default=0, lng_key=""):
|
||||||
if not config or section == "" or key == "": return default
|
if not config or section == "" or key == "": return default
|
||||||
if not config.has_section(section): return default
|
if not config.has_section(section): return default
|
||||||
|
@ -3578,8 +3592,13 @@ def val_to_val(val):
|
||||||
return True
|
return True
|
||||||
elif val.lower() == "false":
|
elif val.lower() == "false":
|
||||||
return False
|
return False
|
||||||
else:
|
elif val.startswith("0x") or val.startswith("0X"):
|
||||||
return val
|
try:
|
||||||
|
val_int = int(val, 16)
|
||||||
|
return val_int
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
##############################################################################################################
|
##############################################################################################################
|
||||||
|
@ -3771,7 +3790,7 @@ def setup(path=None, path_rns=None, path_log=None, loglevel=None, service=False)
|
||||||
if CONFIG["lxmf"]["destination_type_conv"] != "":
|
if CONFIG["lxmf"]["destination_type_conv"] != "":
|
||||||
try:
|
try:
|
||||||
if CONFIG["main"].getboolean("fields_announce"):
|
if CONFIG["main"].getboolean("fields_announce"):
|
||||||
announce_data = umsgpack.packb({"c": CONFIG["lxmf"]["display_name"].encode("utf-8"), "t": None, "f": {"type": CONFIG["lxmf"].getint("destination_type_conv")}})
|
announce_data = umsgpack.packb({"c": CONFIG["lxmf"]["display_name"].encode("utf-8"), "t": None, "f": {0xB3: CONFIG["lxmf"].getint("destination_type_conv")}})
|
||||||
else:
|
else:
|
||||||
display_name += chr(CONFIG["lxmf"].getint("destination_type_conv"))
|
display_name += chr(CONFIG["lxmf"].getint("destination_type_conv"))
|
||||||
except:
|
except:
|
||||||
|
|
|
@ -654,9 +654,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
title = message.title.decode('utf-8').strip()
|
title = message.title.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_title")
|
denys = config_getarray(CONFIG, "message", "deny_title")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -664,9 +663,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
content = message.content.decode('utf-8').strip()
|
content = message.content.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_content")
|
denys = config_getarray(CONFIG, "message", "deny_content")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -674,9 +672,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
if message.fields:
|
if message.fields:
|
||||||
denys = config_get(CONFIG, "message", "deny_fields")
|
denys = config_getarray(CONFIG, "message", "deny_fields")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -792,6 +789,23 @@ def config_get(config, section, key, default="", lng_key=""):
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def config_getarray(config, section, key, default=[], lng_key=""):
|
||||||
|
if not config or section == "" or key == "": return default
|
||||||
|
if not config.has_section(section): return default
|
||||||
|
value = ""
|
||||||
|
if config.has_option(section, key+lng_key):
|
||||||
|
value = config[section][key+lng_key]
|
||||||
|
elif config.has_option(section, key):
|
||||||
|
value = config[section][key]
|
||||||
|
if value != "":
|
||||||
|
values_return = []
|
||||||
|
values = value.split(",")
|
||||||
|
for value in values:
|
||||||
|
values_return.append(val_to_val(value.strip()))
|
||||||
|
return values_return
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def config_getint(config, section, key, default=0, lng_key=""):
|
def config_getint(config, section, key, default=0, lng_key=""):
|
||||||
if not config or section == "" or key == "": return default
|
if not config or section == "" or key == "": return default
|
||||||
if not config.has_section(section): return default
|
if not config.has_section(section): return default
|
||||||
|
@ -1053,8 +1067,13 @@ def val_to_val(val):
|
||||||
return True
|
return True
|
||||||
elif val.lower() == "false":
|
elif val.lower() == "false":
|
||||||
return False
|
return False
|
||||||
else:
|
elif val.startswith("0x") or val.startswith("0X"):
|
||||||
return val
|
try:
|
||||||
|
val_int = int(val, 16)
|
||||||
|
return val_int
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
##############################################################################################################
|
##############################################################################################################
|
||||||
|
|
13
lxmf_echo/Examples/Communicator_Software/config.cfg.owr
Normal file
13
lxmf_echo/Examples/Communicator_Software/config.cfg.owr
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# This is the user configuration file to override the default configuration file.
|
||||||
|
# All settings made here have precedence.
|
||||||
|
# This file can be used to clearly summarize all settings that deviate from the default.
|
||||||
|
# This also has the advantage that all changed settings can be kept when updating the program.
|
||||||
|
[lxmf]
|
||||||
|
display_name = Echo Test
|
||||||
|
announce_startup = Yes
|
||||||
|
announce_periodic = Yes
|
||||||
|
announce_periodic_interval = 30 #Minutes
|
||||||
|
|
||||||
|
[message]
|
||||||
|
deny_fields = 0x09,0xB2,0xA4,0xA5,0xAD
|
||||||
|
fields_remove = 0x02,0x03,0x04,0xA6,0xAB
|
|
@ -647,9 +647,8 @@ def lxmf_message_received_callback(message):
|
||||||
if CONFIG.has_option("allowed", "any") or CONFIG.has_option("allowed", "all") or CONFIG.has_option("allowed", "anybody") or CONFIG.has_option("allowed", RNS.hexrep(message.source_hash, False)) or CONFIG.has_option("allowed", RNS.prettyhexrep(message.source_hash)):
|
if CONFIG.has_option("allowed", "any") or CONFIG.has_option("allowed", "all") or CONFIG.has_option("allowed", "anybody") or CONFIG.has_option("allowed", RNS.hexrep(message.source_hash, False)) or CONFIG.has_option("allowed", RNS.prettyhexrep(message.source_hash)):
|
||||||
|
|
||||||
title = message.title.decode('utf-8').strip()
|
title = message.title.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_title")
|
denys = config_getarray(CONFIG, "message", "deny_title")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -657,9 +656,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
content = message.content.decode('utf-8').strip()
|
content = message.content.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_content")
|
denys = config_getarray(CONFIG, "message", "deny_content")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -667,9 +665,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
if message.fields:
|
if message.fields:
|
||||||
denys = config_get(CONFIG, "message", "deny_fields")
|
denys = config_getarray(CONFIG, "message", "deny_fields")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -728,7 +725,7 @@ def lxmf_message_received_callback(message):
|
||||||
if CONFIG["message"].getboolean("fields"):
|
if CONFIG["message"].getboolean("fields"):
|
||||||
fields = message.fields
|
fields = message.fields
|
||||||
if fields:
|
if fields:
|
||||||
search = config_get(CONFIG, "message", "fields_remove").split(",")
|
search = config_getarray(CONFIG, "message", "fields_remove")
|
||||||
delete = []
|
delete = []
|
||||||
for field in fields:
|
for field in fields:
|
||||||
if field in search:
|
if field in search:
|
||||||
|
@ -759,6 +756,23 @@ def config_get(config, section, key, default="", lng_key=""):
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def config_getarray(config, section, key, default=[], lng_key=""):
|
||||||
|
if not config or section == "" or key == "": return default
|
||||||
|
if not config.has_section(section): return default
|
||||||
|
value = ""
|
||||||
|
if config.has_option(section, key+lng_key):
|
||||||
|
value = config[section][key+lng_key]
|
||||||
|
elif config.has_option(section, key):
|
||||||
|
value = config[section][key]
|
||||||
|
if value != "":
|
||||||
|
values_return = []
|
||||||
|
values = value.split(",")
|
||||||
|
for value in values:
|
||||||
|
values_return.append(val_to_val(value.strip()))
|
||||||
|
return values_return
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def config_getint(config, section, key, default=0, lng_key=""):
|
def config_getint(config, section, key, default=0, lng_key=""):
|
||||||
if not config or section == "" or key == "": return default
|
if not config or section == "" or key == "": return default
|
||||||
if not config.has_section(section): return default
|
if not config.has_section(section): return default
|
||||||
|
@ -936,8 +950,13 @@ def val_to_val(val):
|
||||||
return True
|
return True
|
||||||
elif val.lower() == "false":
|
elif val.lower() == "false":
|
||||||
return False
|
return False
|
||||||
else:
|
elif val.startswith("0x") or val.startswith("0X"):
|
||||||
return val
|
try:
|
||||||
|
val_int = int(val, 16)
|
||||||
|
return val_int
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
##############################################################################################################
|
##############################################################################################################
|
||||||
|
|
|
@ -753,9 +753,8 @@ def lxmf_message_received_callback(message):
|
||||||
SESSION["source"] = message.source_hash
|
SESSION["source"] = message.source_hash
|
||||||
|
|
||||||
title = message.title.decode('utf-8').strip()
|
title = message.title.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_title")
|
denys = config_getarray(CONFIG, "message", "deny_title")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -763,9 +762,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
content = message.content.decode('utf-8').strip()
|
content = message.content.decode('utf-8').strip()
|
||||||
denys = config_get(CONFIG, "message", "deny_content")
|
denys = config_getarray(CONFIG, "message", "deny_content")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -773,9 +771,8 @@ def lxmf_message_received_callback(message):
|
||||||
return
|
return
|
||||||
|
|
||||||
if message.fields:
|
if message.fields:
|
||||||
denys = config_get(CONFIG, "message", "deny_fields")
|
denys = config_getarray(CONFIG, "message", "deny_fields")
|
||||||
if denys != "":
|
if len(denys) > 0:
|
||||||
denys = denys.split(",")
|
|
||||||
if "*" in denys:
|
if "*" in denys:
|
||||||
return
|
return
|
||||||
for deny in denys:
|
for deny in denys:
|
||||||
|
@ -920,6 +917,23 @@ def config_get(config, section, key, default="", lng_key=""):
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def config_getarray(config, section, key, default=[], lng_key=""):
|
||||||
|
if not config or section == "" or key == "": return default
|
||||||
|
if not config.has_section(section): return default
|
||||||
|
value = ""
|
||||||
|
if config.has_option(section, key+lng_key):
|
||||||
|
value = config[section][key+lng_key]
|
||||||
|
elif config.has_option(section, key):
|
||||||
|
value = config[section][key]
|
||||||
|
if value != "":
|
||||||
|
values_return = []
|
||||||
|
values = value.split(",")
|
||||||
|
for value in values:
|
||||||
|
values_return.append(val_to_val(value.strip()))
|
||||||
|
return values_return
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def config_getint(config, section, key, default=0, lng_key=""):
|
def config_getint(config, section, key, default=0, lng_key=""):
|
||||||
if not config or section == "" or key == "": return default
|
if not config or section == "" or key == "": return default
|
||||||
if not config.has_section(section): return default
|
if not config.has_section(section): return default
|
||||||
|
@ -1097,8 +1111,13 @@ def val_to_val(val):
|
||||||
return True
|
return True
|
||||||
elif val.lower() == "false":
|
elif val.lower() == "false":
|
||||||
return False
|
return False
|
||||||
else:
|
elif val.startswith("0x") or val.startswith("0X"):
|
||||||
return val
|
try:
|
||||||
|
val_int = int(val, 16)
|
||||||
|
return val_int
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
##############################################################################################################
|
##############################################################################################################
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue