Browse Source

Various Improvements

Convert del tags to ~~
Use usernames rather than nicknames on the matrix side
Attachments use the same prefix as normal messages
Alex Taber 6 years ago
parent
commit
947b912163
1 changed files with 10 additions and 4 deletions
  1. 10
    4
      app.py

+ 10
- 4
app.py View File

29
 
29
 
30
 matrix_file_types = ('m.file', 'm.image', 'm.video', 'm.audio')
30
 matrix_file_types = ('m.file', 'm.image', 'm.video', 'm.audio')
31
 
31
 
32
+def prepare_matrix_client(message):
33
+	attachments = "\n".join([x.url for x in message.attachments])
34
+	content = message.clean_content + ("\n" + attachments if attachments != "" else "")
35
+	return content
36
+
32
 @discord_client.event
37
 @discord_client.event
33
 async def on_message(message):
38
 async def on_message(message):
34
 	if message.author.discriminator == "0000" or message.channel.id != discord_channel: return
39
 	if message.author.discriminator == "0000" or message.channel.id != discord_channel: return
35
-	username = message.author.display_name[:1] + "\u200B" + message.author.display_name[1:]
36
-	attachments = "\n".join([x.url for x in message.attachments])
37
-	matrix_room.send_text("<{}> {}".format(username, message.clean_content + ("\n" + attachments if attachments != "" else "")))
40
+	username = message.author.name[:1] + "\u200B" + message.author.name[1:] + "#" + message.author.discriminator
41
+	content = prepare_matrix_client(message)
42
+	matrix_room.send_text("<{}> {}".format(username, content))
38
 
43
 
39
 def send_webhook(username, avatar_url, content):
44
 def send_webhook(username, avatar_url, content):
40
 	data = {'username': username, 'content': content}
45
 	data = {'username': username, 'content': content}
45
 def prepare_discord_content(content):
50
 def prepare_discord_content(content):
46
 	content = content.replace("@everyone", "@\u200Beveryone")
51
 	content = content.replace("@everyone", "@\u200Beveryone")
47
 	content = content.replace("@here", "@\u200Bhere")
52
 	content = content.replace("@here", "@\u200Bhere")
53
+	content = re.sub("</?del>", "~~", content)
48
 	mentions = re.findall("(^|\s)(@(\w*))", content)
54
 	mentions = re.findall("(^|\s)(@(\w*))", content)
49
 	guild = discord_client.get_channel(discord_channel).guild
55
 	guild = discord_client.get_channel(discord_channel).guild
50
 	for mention in mentions:
56
 	for mention in mentions:
62
 			content = prepare_discord_content(event['content']['body'])
68
 			content = prepare_discord_content(event['content']['body'])
63
 			send_webhook(username, avatar, content)
69
 			send_webhook(username, avatar, content)
64
 		if event['content']['msgtype'] in matrix_file_types:
70
 		if event['content']['msgtype'] in matrix_file_types:
65
-			username = "[Matrix] {}".format(user.get_display_name())
71
+			username = "{}{}".format(discord_prefix, user.get_display_name())
66
 			avatar = user.get_avatar_url()
72
 			avatar = user.get_avatar_url()
67
 			content = matrix_homeserver + "/_matrix/media/v1/download/" + event['content']['url'][6:]
73
 			content = matrix_homeserver + "/_matrix/media/v1/download/" + event['content']['url'][6:]
68
 			send_webhook(username, avatar, content)
74
 			send_webhook(username, avatar, content)