feat(bot): ✨ Support for banning and warning by username.
This commit is contained in:
@@ -55,6 +55,11 @@ class DiscordUserID(converter.Converter):
|
|||||||
):
|
):
|
||||||
return int(argument.split("?", 1)[0].rsplit("/", 1)[1])
|
return int(argument.split("?", 1)[0].rsplit("/", 1)[1])
|
||||||
|
|
||||||
|
user = await models.User.get_or_none(username=argument)
|
||||||
|
|
||||||
|
if user is not None:
|
||||||
|
return user.id
|
||||||
|
|
||||||
if argument.lower() in ["reply", "."]:
|
if argument.lower() in ["reply", "."]:
|
||||||
if ctx.message.reference is not None:
|
if ctx.message.reference is not None:
|
||||||
ref = ctx.message.reference
|
ref = ctx.message.reference
|
||||||
@@ -73,7 +78,6 @@ class DiscordUserID(converter.Converter):
|
|||||||
|
|
||||||
raise converter.BadArgument()
|
raise converter.BadArgument()
|
||||||
|
|
||||||
else:
|
|
||||||
return msg.author.id
|
return msg.author.id
|
||||||
|
|
||||||
raise converter.BadArgument()
|
raise converter.BadArgument()
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
from tortoise import BaseDBAsyncClient
|
||||||
|
|
||||||
|
|
||||||
|
async def upgrade(db: BaseDBAsyncClient) -> str:
|
||||||
|
return """
|
||||||
|
CREATE INDEX "idx_user_usernam_9987ab" ON "user" ("username");"""
|
||||||
|
|
||||||
|
|
||||||
|
async def downgrade(db: BaseDBAsyncClient) -> str:
|
||||||
|
return """
|
||||||
|
DROP INDEX "idx_user_usernam_9987ab";"""
|
||||||
@@ -13,7 +13,7 @@ from payphone.core import config, constants
|
|||||||
|
|
||||||
class User(models.Model):
|
class User(models.Model):
|
||||||
id: int = fields.BigIntField(primary_key=True)
|
id: int = fields.BigIntField(primary_key=True)
|
||||||
username: str = fields.CharField(max_length=32)
|
username: str = fields.CharField(max_length=32, db_index=True)
|
||||||
is_masked: bool = fields.BooleanField(default=False)
|
is_masked: bool = fields.BooleanField(default=False)
|
||||||
is_moderator: bool = fields.BooleanField(default=False)
|
is_moderator: bool = fields.BooleanField(default=False)
|
||||||
profiles: fields.BackwardFKRelation["Profile"]
|
profiles: fields.BackwardFKRelation["Profile"]
|
||||||
@@ -21,9 +21,7 @@ class User(models.Model):
|
|||||||
leaderboard_position: int | None = fields.IntField(
|
leaderboard_position: int | None = fields.IntField(
|
||||||
default=None, null=True, db_index=True
|
default=None, null=True, db_index=True
|
||||||
)
|
)
|
||||||
leaderboard_calls_count: int | None = fields.IntField(
|
leaderboard_calls_count: int | None = fields.IntField(default=None, null=True)
|
||||||
default=None, null=True
|
|
||||||
)
|
|
||||||
joined_at: datetime = fields.DatetimeField(auto_now_add=True)
|
joined_at: datetime = fields.DatetimeField(auto_now_add=True)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user