minor refactors, embeds
This commit is contained in:
parent
2958b1b90e
commit
7e454a14a5
3 changed files with 12 additions and 13 deletions
|
@ -23,7 +23,6 @@ class AppService(bottle.Bottle):
|
||||||
self.http = http
|
self.http = http
|
||||||
self.logger = logging.getLogger("appservice")
|
self.logger = logging.getLogger("appservice")
|
||||||
|
|
||||||
# TODO better method.
|
|
||||||
# Map events to functions.
|
# Map events to functions.
|
||||||
self.mapping = {
|
self.mapping = {
|
||||||
"m.room.member": "on_member",
|
"m.room.member": "on_member",
|
||||||
|
|
|
@ -33,8 +33,11 @@ class Gateway(object):
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
await self.gateway_handler(self.get_gateway_url())
|
await self.gateway_handler(self.get_gateway_url())
|
||||||
except websockets.ConnectionClosedError:
|
except (
|
||||||
# TODO reconnect ?
|
websockets.ConnectionClosedError,
|
||||||
|
websockets.InvalidMessage,
|
||||||
|
):
|
||||||
|
# TODO reconnect
|
||||||
self.logger.exception("Quitting, connection lost.")
|
self.logger.exception("Quitting, connection lost.")
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -63,9 +66,6 @@ class Gateway(object):
|
||||||
self.query_ev.set()
|
self.query_ev.set()
|
||||||
|
|
||||||
def handle_otype(self, data: dict, otype: str) -> None:
|
def handle_otype(self, data: dict, otype: str) -> None:
|
||||||
if data.get("embeds"):
|
|
||||||
return # TODO embeds
|
|
||||||
|
|
||||||
if otype == "MESSAGE_CREATE" or otype == "MESSAGE_UPDATE":
|
if otype == "MESSAGE_CREATE" or otype == "MESSAGE_UPDATE":
|
||||||
obj = discord.Message(data)
|
obj = discord.Message(data)
|
||||||
elif otype == "MESSAGE_DELETE":
|
elif otype == "MESSAGE_DELETE":
|
||||||
|
@ -193,6 +193,8 @@ class Gateway(object):
|
||||||
json.dumps(self.Payloads.QUERY(guild_id, name))
|
json.dumps(self.Payloads.QUERY(guild_id, name))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# TODO clean this mess.
|
||||||
|
|
||||||
# Wait for our websocket to receive the chunk.
|
# Wait for our websocket to receive the chunk.
|
||||||
await asyncio.wait_for(self.query_ev.wait(), timeout=5)
|
await asyncio.wait_for(self.query_ev.wait(), timeout=5)
|
||||||
|
|
||||||
|
|
|
@ -30,9 +30,6 @@ class MatrixClient(AppService):
|
||||||
self.emote_cache: Dict[str, str] = {}
|
self.emote_cache: Dict[str, str] = {}
|
||||||
self.format = "_discord_" # "{@,#}_discord_1234:localhost"
|
self.format = "_discord_" # "{@,#}_discord_1234:localhost"
|
||||||
|
|
||||||
def to_return(self, event: matrix.Event) -> bool:
|
|
||||||
return event.sender.startswith(("@_discord", self.user_id))
|
|
||||||
|
|
||||||
def handle_bridge(self, message: matrix.Event) -> None:
|
def handle_bridge(self, message: matrix.Event) -> None:
|
||||||
# Ignore events that aren't for us.
|
# Ignore events that aren't for us.
|
||||||
if message.sender.split(":")[
|
if message.sender.split(":")[
|
||||||
|
@ -77,7 +74,10 @@ class MatrixClient(AppService):
|
||||||
self.join_room(event.room_id)
|
self.join_room(event.room_id)
|
||||||
|
|
||||||
def on_message(self, message: matrix.Event) -> None:
|
def on_message(self, message: matrix.Event) -> None:
|
||||||
if self.to_return(message):
|
if (
|
||||||
|
message.sender.startswith((f"@{self.format}", self.user_id))
|
||||||
|
or not message.body
|
||||||
|
):
|
||||||
return
|
return
|
||||||
|
|
||||||
# Handle bridging commands.
|
# Handle bridging commands.
|
||||||
|
@ -106,9 +106,6 @@ class MatrixClient(AppService):
|
||||||
)
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if not message.body:
|
|
||||||
return
|
|
||||||
|
|
||||||
message.body = self.process_message(channel_id, message.body)
|
message.body = self.process_message(channel_id, message.body)
|
||||||
message_cache[message.event_id] = {
|
message_cache[message.event_id] = {
|
||||||
"message_id": self.discord.send_webhook(
|
"message_id": self.discord.send_webhook(
|
||||||
|
@ -428,6 +425,7 @@ class DiscordClient(Gateway):
|
||||||
def to_return(self, message: discord.Message) -> bool:
|
def to_return(self, message: discord.Message) -> bool:
|
||||||
return (
|
return (
|
||||||
message.channel_id not in self.app.db.list_channels()
|
message.channel_id not in self.app.db.list_channels()
|
||||||
|
or not message.content
|
||||||
or not message.author
|
or not message.author
|
||||||
or message.author.discriminator == "0000"
|
or message.author.discriminator == "0000"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue