This commit is contained in:
夜坂雅 2022-12-25 09:47:24 +08:00
parent 8f87fb95a7
commit 871decdf86
4 changed files with 38 additions and 3 deletions

View file

@ -446,6 +446,11 @@ Outside of a reply, send the avatar of the command sender.\
content["m.relates_to"] = {
"m.in_reply_to": {"event_id": self.event.event_id}
}
# Add custom data for tracking bot message.
content["io.github.shadowrz.nyx_bot"] = {
"in_reply_to": self.event.event_id,
"type": "as_sticker",
}
await self.client.room_send(
self.room.room_id, message_type="m.sticker", content=content
)

View file

@ -159,6 +159,12 @@ async def send_text_to_room(
if reply_to_event_id:
content["m.relates_to"] = {"m.in_reply_to": {"event_id": reply_to_event_id}}
# Add custom data for tracking bot message.
content["io.github.shadowrz.nyx_bot"] = {
"in_reply_to": reply_to_event_id,
"type": "text",
}
try:
return await client.room_send(
room_id,
@ -333,6 +339,9 @@ async def send_sticker_image(
if reply_to:
content["m.relates_to"] = {"m.in_reply_to": {"event_id": reply_to}}
# Add custom data for tracking bot message.
content["io.github.shadowrz.nyx_bot"] = {"in_reply_to": reply_to, "type": "sticker"}
try:
await client.room_send(room_id, message_type="m.sticker", content=content)
print("Image was sent successfully")
@ -416,6 +425,12 @@ async def send_user_image(
content["m.relates_to"] = {"m.in_reply_to": {"event_id": event.event_id}}
# Add custom data for tracking bot message.
content["io.github.shadowrz.nyx_bot"] = {
"in_reply_to": event.event_id,
"type": "avatar",
}
await client.room_send(room.room_id, message_type="m.room.message", content=content)

View file

@ -1,8 +1,12 @@
# Used for migrations
import logging
from peewee import PostgresqlDatabase, SqliteDatabase
from playhouse.migrate import PostgresqlMigrator, SqliteMigrator, migrate
from nyx_bot.storage import DatabaseVersion, UserTag
from nyx_bot.storage import DatabaseVersion, UserTag, MatrixMessage
logger = logging.getLogger(__name__)
def migrate_db(db):
@ -14,9 +18,16 @@ def migrate_db(db):
version_item = DatabaseVersion.get_or_none()
if version_item is None:
version_item = DatabaseVersion()
version_item.version = 1
version_item.version = 3
version_item.save()
return
logger.info(f"Database version: {version_item.version}")
if version_item.version == 1:
migrate(migrator.add_column("usertag", "locked", UserTag.locked))
elif version_item.version == 2:
migrate(migrator.add_column("matrixmessage", "body", MatrixMessage.body))
migrate(migrator.add_column("matrixmessage", "gormatted_body", MatrixMessage.formatted_body))
version_item.version = 2
version_item.version = 3
version_item.save()

View file

@ -25,6 +25,8 @@ class MatrixMessage(Model):
origin_server_ts = IntegerField()
external_url = CharField(null=True)
sender = CharField()
body = TextField(null=True)
formatted_body = TextField(null=True)
replaced_by = CharField(null=True)
is_replacement = BooleanField(default=False)
date = DateField()
@ -46,6 +48,8 @@ class MatrixMessage(Model):
message_db_item = MatrixMessage()
message_db_item.room_id = room.room_id
message_db_item.event_id = event.event_id
message_db_item.body = event.body
message_db_item.formatted_body = event.formatted_body
message_db_item.origin_server_ts = event.server_timestamp
message_db_item.external_url = external_url
message_db_item.sender = event.sender