feat(bot):
This commit is contained in:
+44
-2
@@ -27,12 +27,14 @@ class Call(models.Model):
|
||||
channels: fields.BackwardFKRelation["Channel"]
|
||||
call_rss: fields.BackwardFKRelation["CallUserChannelRelationship"]
|
||||
report: fields.BackwardOneToOneRelation["Report"]
|
||||
messages: fields.BackwardFKRelation["Message"]
|
||||
|
||||
|
||||
class Profile(models.Model):
|
||||
user: fields.ForeignKeyRelation["User"] = fields.ForeignKeyField(
|
||||
"models.User", related_name="profiles", on_delete=fields.OnDelete.CASCADE
|
||||
)
|
||||
user_id: int
|
||||
server: fields.ForeignKeyNullableRelation["Server"] = fields.ForeignKeyField(
|
||||
"models.Server",
|
||||
related_name="profiles",
|
||||
@@ -45,6 +47,26 @@ class Profile(models.Model):
|
||||
|
||||
call_rss: fields.BackwardFKRelation["CallUserChannelRelationship"]
|
||||
|
||||
@property
|
||||
def jump_url(self) -> str:
|
||||
"""The URL that'll open the user in Discord.
|
||||
|
||||
Returns:
|
||||
str: The URL.
|
||||
"""
|
||||
|
||||
return f"discord://-/users/{self.user_id}"
|
||||
|
||||
@property
|
||||
def link(self) -> str:
|
||||
"""A markdown link that opens the user in Discord.
|
||||
|
||||
Returns:
|
||||
str: The markdown link.
|
||||
"""
|
||||
|
||||
return f"[{self.name}]({self.jump_url})"
|
||||
|
||||
class Meta:
|
||||
unique_together = [("user_id", "server_id")]
|
||||
|
||||
@@ -172,7 +194,8 @@ class Message(models.Model):
|
||||
"models.Channel", related_name="messages", on_delete=fields.OnDelete.CASCADE
|
||||
)
|
||||
user = fields.ForeignKeyRelation("models.User", on_delete=fields.OnDelete.CASCADE)
|
||||
profile = fields.ForeignKeyField(
|
||||
user_id: int
|
||||
profile: fields.ForeignKeyRelation["Profile"] = fields.ForeignKeyField(
|
||||
"models.Profile", on_delete=fields.OnDelete.CASCADE
|
||||
)
|
||||
replying_to: fields.ForeignKeyNullableRelation["Message"] = fields.ForeignKeyField(
|
||||
@@ -243,6 +266,25 @@ class Message(models.Model):
|
||||
|
||||
return f"<:{mask_name}:{self.mask}>"
|
||||
|
||||
def jump_url(self, is_this_channel: bool = True) -> str | None:
|
||||
"""Returns the jump URL for this message.
|
||||
|
||||
Args:
|
||||
is_this_channel (bool, optional): Whether the message sent in this channel or not.
|
||||
Defaults to True.
|
||||
|
||||
Returns:
|
||||
str | None: The URL, or None if the message was not propagated.
|
||||
"""
|
||||
|
||||
if not is_this_channel:
|
||||
return f"https://discord.com/channels/{self.channel.server_id}/{self.channel.id}/{self.id}"
|
||||
|
||||
if self.propagation_id is not None:
|
||||
return f"https://discord.com/channels/{self.propagation_channel.server_id}/{self.propagation_channel.id}/{self.propagation_id}"
|
||||
|
||||
return None
|
||||
|
||||
|
||||
class MessageContent(models.Model):
|
||||
message = fields.ForeignKeyField(
|
||||
@@ -269,7 +311,7 @@ class Report(models.Model):
|
||||
reason: str = fields.CharField(max_length=500)
|
||||
priority: int = fields.IntField()
|
||||
status: ReportStatus = fields.IntEnumField(
|
||||
ReportStatus, default=ReportStatus.ON_REVIEW
|
||||
ReportStatus, default=ReportStatus.ON_REVIEW, db_index=True
|
||||
)
|
||||
created_at: datetime = fields.DatetimeField(auto_now_add=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user