feat(bot): ✨ Add server's vanity invite in leaderboard.
This commit is contained in:
@@ -61,20 +61,25 @@ class Admin(base.Cog):
|
|||||||
for server_map in server_counts[:10]:
|
for server_map in server_counts[:10]:
|
||||||
if servers_map[server_map[0]].name is None:
|
if servers_map[server_map[0]].name is None:
|
||||||
try:
|
try:
|
||||||
servers_map[server_map[0]].name = (
|
guild = await self.bot.fetch_guild(server_map[0])
|
||||||
await self.bot.fetch_guild(server_map[0])
|
|
||||||
).name
|
|
||||||
|
|
||||||
except errors.DiscordException:
|
except errors.DiscordException:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
servers_map[server_map[0]].name = guild.name
|
||||||
|
|
||||||
|
vanity = await guild.vanity_invite()
|
||||||
|
|
||||||
|
if vanity is not None:
|
||||||
|
servers_map[server_map[0]].vanity_code = vanity.code
|
||||||
|
|
||||||
for i, server_map in enumerate(server_counts):
|
for i, server_map in enumerate(server_counts):
|
||||||
servers_map[server_map[0]].leaderboard_position = i + 1
|
servers_map[server_map[0]].leaderboard_position = i + 1
|
||||||
servers_map[server_map[0]].leaderboard_calls_count = server_map[1]
|
servers_map[server_map[0]].leaderboard_calls_count = server_map[1]
|
||||||
|
|
||||||
await models.Server.bulk_update(
|
await models.Server.bulk_update(
|
||||||
servers_map.values(),
|
servers_map.values(),
|
||||||
["name", "leaderboard_position", "leaderboard_calls_count"],
|
["name", "vanity_code", "leaderboard_position", "leaderboard_calls_count"],
|
||||||
500,
|
500,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -89,7 +94,15 @@ class Admin(base.Cog):
|
|||||||
after (discord.Guild): The server after it being updated.
|
after (discord.Guild): The server after it being updated.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
await models.Server.update_or_create({"name": after.name}, id=after.id)
|
vanity = await after.vanity_invite()
|
||||||
|
vanity_code = None
|
||||||
|
|
||||||
|
if vanity is not None:
|
||||||
|
vanity_code = vanity.code
|
||||||
|
|
||||||
|
await models.Server.update_or_create(
|
||||||
|
{"name": after.name, "vanity_code": vanity_code}, id=after.id
|
||||||
|
)
|
||||||
|
|
||||||
@commands.group(invoke_without_command=True)
|
@commands.group(invoke_without_command=True)
|
||||||
@commands.guild_only()
|
@commands.guild_only()
|
||||||
|
|||||||
@@ -512,7 +512,7 @@ class Users(base.Cog):
|
|||||||
.limit(10)
|
.limit(10)
|
||||||
)
|
)
|
||||||
server_rows = [
|
server_rows = [
|
||||||
f"**#{pos + 1} - {server.name or "Updating..."}**{" (Here!)" if ctx.guild is not None and server.id == ctx.guild.id else ""}\nParticipated in {server.leaderboard_calls_count} calls."
|
f"**#{pos + 1} - {server.name or "Updating..."}{f" .gg/{server.vanity_code}" if server.vanity_code else ""}**{" (Here!)" if ctx.guild is not None and server.id == ctx.guild.id else ""}\nParticipated in {server.leaderboard_calls_count} calls."
|
||||||
for pos, server in enumerate(top_servers)
|
for pos, server in enumerate(top_servers)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
from tortoise import BaseDBAsyncClient
|
||||||
|
|
||||||
|
|
||||||
|
async def upgrade(db: BaseDBAsyncClient) -> str:
|
||||||
|
return """
|
||||||
|
ALTER TABLE "server" ADD "vanity_code" VARCHAR(32);"""
|
||||||
|
|
||||||
|
|
||||||
|
async def downgrade(db: BaseDBAsyncClient) -> str:
|
||||||
|
return """
|
||||||
|
ALTER TABLE "server" DROP COLUMN "vanity_code";"""
|
||||||
@@ -93,6 +93,7 @@ class Server(models.Model):
|
|||||||
prefix: str = fields.CharField(max_length=5, default="p.")
|
prefix: str = fields.CharField(max_length=5, default="p.")
|
||||||
leaderboard_position: int = fields.IntField(default=0, db_index=True)
|
leaderboard_position: int = fields.IntField(default=0, db_index=True)
|
||||||
leaderboard_calls_count: int = fields.IntField(default=0)
|
leaderboard_calls_count: int = fields.IntField(default=0)
|
||||||
|
vanity_code: str = fields.CharField(max_length=32, null=True, default=None)
|
||||||
channels: fields.BackwardFKRelation["Channel"]
|
channels: fields.BackwardFKRelation["Channel"]
|
||||||
profiles: fields.BackwardFKRelation["Profile"]
|
profiles: fields.BackwardFKRelation["Profile"]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user