|
|
|
@ -102,6 +102,14 @@ def remove_emoji(string): |
|
|
|
|
return emoji_pattern.sub(r'', string) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def escape_markdown(string): |
|
|
|
|
# Absolutely needs to go first or it will replace our escaping slashes! |
|
|
|
|
string = string.replace("\\", "\\\\") |
|
|
|
|
string = string.replace("_", "\\_") |
|
|
|
|
string = string.replace("*", "\\*") |
|
|
|
|
return string |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def strip_colour(string): |
|
|
|
|
colour_pattern = re.compile( |
|
|
|
|
u"\U000000A7" # selection symbol |
|
|
|
@ -249,10 +257,9 @@ def main(): |
|
|
|
|
global TAB_FOOTER, TAB_HEADER |
|
|
|
|
logging.debug("Got Tablist H/F Update: header={}".format(header_footer_packet.header)) |
|
|
|
|
logging.debug("Got Tablist H/F Update: footer={}".format(header_footer_packet.footer)) |
|
|
|
|
# Strip out colour codes |
|
|
|
|
|
|
|
|
|
TAB_HEADER = strip_colour(json.loads(header_footer_packet.header)["text"]) |
|
|
|
|
TAB_FOOTER = strip_colour(json.loads(header_footer_packet.footer)["text"]) |
|
|
|
|
# Strip out colour codes and some markdown |
|
|
|
|
TAB_HEADER = escape_markdown(strip_colour(json.loads(header_footer_packet.header)["text"])) |
|
|
|
|
TAB_FOOTER = escape_markdown(strip_colour(json.loads(header_footer_packet.footer)["text"])) |
|
|
|
|
|
|
|
|
|
def handle_tab_list(tab_list_packet): |
|
|
|
|
logging.debug("Processing tab list packet") |
|
|
|
@ -333,7 +340,7 @@ def main(): |
|
|
|
|
return |
|
|
|
|
logging.info("Username: {} Message: {}".format(username, original_message)) |
|
|
|
|
logging.debug("msg: {}".format(repr(original_message))) |
|
|
|
|
message = remove_emoji(original_message.strip().replace("@", "@\N{zero width space}")) |
|
|
|
|
message = escape_markdown(remove_emoji(original_message.strip().replace("@", "@\N{zero width space}"))) |
|
|
|
|
webhook_payload = { |
|
|
|
|
'username': username, |
|
|
|
|
'avatar_url': "https://visage.surgeplay.com/face/160/{}".format(player_uuid), |
|
|
|
|