fix
This commit is contained in:
parent
bdc333292e
commit
56e36da13c
1 changed files with 20 additions and 20 deletions
40
main.py
40
main.py
|
@ -127,6 +127,22 @@ class MatrixClient(object):
|
||||||
event_id=message
|
event_id=message
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def webhook_send(self, author, avatar, message, event_id):
|
||||||
|
# Create webhook if it doesn't exist
|
||||||
|
hook_name = "matrix_bridge"
|
||||||
|
hooks = await channel.webhooks()
|
||||||
|
hook = discord.utils.get(hooks, name=hook_name)
|
||||||
|
if not hook:
|
||||||
|
hook = await channel.create_webhook(name=hook_name)
|
||||||
|
|
||||||
|
# 'wait=True' allows us to store the sent message
|
||||||
|
try:
|
||||||
|
hook = await hook.send(username=author, avatar_url=avatar,
|
||||||
|
content=message, wait=True)
|
||||||
|
message_store[event_id] = hook
|
||||||
|
except discord.errors.HTTPException as e:
|
||||||
|
matrix_logger.warning(f"Failed to send message {event_id}: {e}")
|
||||||
|
|
||||||
|
|
||||||
class DiscordClient(discord.Client):
|
class DiscordClient(discord.Client):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
@ -174,22 +190,6 @@ class DiscordClient(discord.Client):
|
||||||
# Send typing event
|
# Send typing event
|
||||||
await matrix_client.room_typing(config["room_id"], timeout=0)
|
await matrix_client.room_typing(config["room_id"], timeout=0)
|
||||||
|
|
||||||
async def webhook_send(self, author, avatar, message, event_id):
|
|
||||||
# Create webhook if it doesn't exist
|
|
||||||
hook_name = "matrix_bridge"
|
|
||||||
hooks = await channel.webhooks()
|
|
||||||
hook = discord.utils.get(hooks, name=hook_name)
|
|
||||||
if not hook:
|
|
||||||
hook = await channel.create_webhook(name=hook_name)
|
|
||||||
|
|
||||||
# 'wait=True' allows us to store the sent message
|
|
||||||
try:
|
|
||||||
hook = await hook.send(username=author, avatar_url=avatar,
|
|
||||||
content=message, wait=True)
|
|
||||||
message_store[event_id] = hook
|
|
||||||
except discord.errors.HTTPException as e:
|
|
||||||
matrix_logger.warning(f"Failed to send message {event_id}: {e}")
|
|
||||||
|
|
||||||
|
|
||||||
class Callbacks(object):
|
class Callbacks(object):
|
||||||
async def message_callback(self, room, event):
|
async def message_callback(self, room, event):
|
||||||
|
@ -245,7 +245,7 @@ class Callbacks(object):
|
||||||
avatar = f"{url}/{homeserver}/{avatar}"
|
avatar = f"{url}/{homeserver}/{avatar}"
|
||||||
break
|
break
|
||||||
|
|
||||||
await DiscordClient().webhook_send(
|
await MatrixClient().webhook_send(
|
||||||
author, avatar, message, event.event_id)
|
author, avatar, message, event.event_id)
|
||||||
|
|
||||||
async def redaction_callback(self, room, event):
|
async def redaction_callback(self, room, event):
|
||||||
|
@ -305,9 +305,6 @@ class Process(object):
|
||||||
return content, replied_event
|
return content, replied_event
|
||||||
|
|
||||||
async def matrix(self, message):
|
async def matrix(self, message):
|
||||||
message = message.replace("@everyone", "@\u200Beveryone")
|
|
||||||
message = message.replace("@here", "@\u200Bhere")
|
|
||||||
|
|
||||||
mentions = re.findall(r"(^|\s)(@(\w*))", message)
|
mentions = re.findall(r"(^|\s)(@(\w*))", message)
|
||||||
emotes = re.findall(r":(.*?):", message)
|
emotes = re.findall(r":(.*?):", message)
|
||||||
|
|
||||||
|
@ -323,6 +320,9 @@ class Process(object):
|
||||||
if member:
|
if member:
|
||||||
message = message.replace(mention[1], member[0].mention)
|
message = message.replace(mention[1], member[0].mention)
|
||||||
|
|
||||||
|
message = message.replace("@everyone", "@\u200Beveryone")
|
||||||
|
message = message.replace("@here", "@\u200Bhere")
|
||||||
|
|
||||||
return message
|
return message
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue