describe slash command parameters and use english names in code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
leanderandClaude Opus 5.5 committed 2026-11-03 01:56:37 +01:00
1 parent 52bbf74e47
commit 75a1524f0e
2 files changed
+101 -89

No files matched your search

+92 -82
View File
@@ -359,102 +359,108 @@ class Info(commands.Cog):
@app_commands.checks.bot_has_permissions(embed_links=True)
@app_commands.checks.cooldown(1, 2)
@guild_group.command(name="rolle", description="Hent informasjon om en rolle på serveren")
async def guild_role(self, interaction: discord.Interaction, rolle: discord.Role):
@app_commands.rename(role="rolle")
@app_commands.describe(role="Rollen du vil se informasjon om")
async def guild_role(self, interaction: discord.Interaction, role: discord.Role):
"""
Get information about a role
Parameters
----------
interaction (discord.Interaction): Slash command context object
rolle (discord.Role): Role to fetch information about
role (discord.Role): Role to fetch information about
"""
if rolle.is_default():
if role.is_default():
embed = embed_templates.error_warning("Skriv inn en annen rolle enn `@everyone`")
return await interaction.response.send_message(embed=embed)
# Timestamp and days since creation
created_at_timestamp = discord.utils.format_dt(rolle.created_at, style="F")
since_created_days = (interaction.created_at - rolle.created_at).days
created_at_timestamp = discord.utils.format_dt(role.created_at, style="F")
since_created_days = (interaction.created_at - role.created_at).days
# List of members with the role
members = self.construct_member_string(rolle.members)
members = self.construct_member_string(role.members)
members = members if len(members) < 1024 else "For mange medlemmer for å vise her"
# List of permissions
permissions = ", ".join([permission for permission, value in iter(rolle.permissions) if value is True])
permissions = ", ".join([permission for permission, value in iter(role.permissions) if value is True])
embed = discord.Embed(title=rolle.name, description=f"{rolle.mention}\n**ID:** {rolle.id}", color=rolle.color)
embed.set_author(name=rolle.guild.name, icon_url=rolle.guild.icon)
embed.add_field(name="Fargekode", value=str(rolle.color))
embed = discord.Embed(title=role.name, description=f"{role.mention}\n**ID:** {role.id}", color=role.color)
embed.set_author(name=role.guild.name, icon_url=role.guild.icon)
embed.add_field(name="Fargekode", value=str(role.color))
embed.add_field(
name="Opprettet",
value=f"{created_at_timestamp}\n{since_created_days} "
+ f'{"dager" if since_created_days != 1 else "dag"} siden',
)
embed.add_field(name="Posisjon", value=rolle.position)
embed.add_field(name="Nevnbar", value="Ja" if rolle.mentionable else "Nei")
embed.add_field(name="Vises separat i medlemsliste", value="Ja" if rolle.hoist else "Nei")
embed.add_field(name="Posisjon", value=role.position)
embed.add_field(name="Nevnbar", value="Ja" if role.mentionable else "Nei")
embed.add_field(name="Vises separat i medlemsliste", value="Ja" if role.hoist else "Nei")
if permissions:
embed.add_field(name="Tillatelser", value=permissions, inline=False)
embed.add_field(name=f"Brukere med rollen ({len(rolle.members)})", value=members, inline=False)
embed.add_field(name=f"Brukere med rollen ({len(role.members)})", value=members, inline=False)
await interaction.response.send_message(embed=embed)
@app_commands.checks.bot_has_permissions(embed_links=True)
@app_commands.checks.cooldown(1, 2)
@guild_group.command(name="tekstkanal", description="Hent informasjon om en tekstkanal")
async def guild_text_channel(self, interaction: discord.Interaction, kanal: discord.TextChannel):
@app_commands.rename(channel="kanal")
@app_commands.describe(channel="Tekstkanalen du vil se informasjon om")
async def guild_text_channel(self, interaction: discord.Interaction, channel: discord.TextChannel):
"""
Get information about a text channel
Parameters
----------
interaction (discord.Interaction): Slash command context object
kanal (discord.TextChannel): Text channel to fetch information about
channel (discord.TextChannel): Text channel to fetch information about
"""
members = self.construct_member_string(kanal.members)
members = self.construct_member_string(channel.members)
if len(members) > 1024:
members = "For mange for å vise her"
embed = discord.Embed(
color=interaction.guild.me.color, title=kanal.name, description=f"{kanal.mention}\nID: {kanal.id}"
color=interaction.guild.me.color, title=channel.name, description=f"{channel.mention}\nID: {channel.id}"
)
embed.set_author(name=kanal.guild.name, icon_url=kanal.guild.icon)
embed.add_field(name="Beskrivelse", value=kanal.topic if kanal.topic else "**Ingen**", inline=False)
embed.add_field(name="Opprettet", value=discord.utils.format_dt(kanal.created_at, style="F"))
embed.add_field(name="NSFW", value="Ja" if kanal.is_nsfw() else "Nei")
embed.set_author(name=channel.guild.name, icon_url=channel.guild.icon)
embed.add_field(name="Beskrivelse", value=channel.topic if channel.topic else "**Ingen**", inline=False)
embed.add_field(name="Opprettet", value=discord.utils.format_dt(channel.created_at, style="F"))
embed.add_field(name="NSFW", value="Ja" if channel.is_nsfw() else "Nei")
embed.add_field(
name="Saktemodus", value=f"Ja ({kanal.slowmode_delay} sekunder)" if kanal.slowmode_delay else "Nei"
name="Saktemodus", value=f"Ja ({channel.slowmode_delay} sekunder)" if channel.slowmode_delay else "Nei"
)
if kanal.category:
embed.add_field(name="Kategori", value=kanal.category.name)
embed.add_field(name=f"Antall med tilgang ({len(kanal.members)})", value=members)
if channel.category:
embed.add_field(name="Kategori", value=channel.category.name)
embed.add_field(name=f"Antall med tilgang ({len(channel.members)})", value=members)
await interaction.response.send_message(embed=embed)
@app_commands.checks.bot_has_permissions(embed_links=True)
@app_commands.checks.cooldown(1, 2)
@guild_group.command(name="talekanal", description="Hent informasjon om en talekanal")
async def guild_voice_channel(self, interaction: discord.Interaction, kanal: discord.VoiceChannel):
@app_commands.rename(channel="kanal")
@app_commands.describe(channel="Talekanalen du vil se informasjon om")
async def guild_voice_channel(self, interaction: discord.Interaction, channel: discord.VoiceChannel):
"""
Get information about a voice channel
Parameters
----------
interaction (discord.Interaction): Slash command context object
kanal (discord.VoiceChannel): Voice channel to fetch information about
channel (discord.VoiceChannel): Voice channel to fetch information about
"""
embed = discord.Embed(color=interaction.guild.me.color, title=kanal.name, description=f"ID: {kanal.id}")
embed.set_author(name=kanal.guild.name, icon_url=kanal.guild.icon)
embed.add_field(name="Opprettet", value=discord.utils.format_dt(kanal.created_at, style="F"))
embed.add_field(name="Bitrate", value=f"{int(kanal.bitrate / 1000)}kbps")
embed = discord.Embed(color=interaction.guild.me.color, title=channel.name, description=f"ID: {channel.id}")
embed.set_author(name=channel.guild.name, icon_url=channel.guild.icon)
embed.add_field(name="Opprettet", value=discord.utils.format_dt(channel.created_at, style="F"))
embed.add_field(name="Bitrate", value=f"{int(channel.bitrate / 1000)}kbps")
embed.add_field(
name="Maksgrense", value=f"{kanal.user_limit} personer" if kanal.user_limit != 0 else "∞ personer"
name="Maksgrense", value=f"{channel.user_limit} personer" if channel.user_limit != 0 else "∞ personer"
)
if kanal.category:
embed.add_field(name="Kategori", value=kanal.category.name)
embed.add_field(name="Antall koblet til", value=len(kanal.members))
if channel.category:
embed.add_field(name="Kategori", value=channel.category.name)
embed.add_field(name="Antall koblet til", value=len(channel.members))
await interaction.response.send_message(embed=embed)
@app_commands.checks.bot_has_permissions(embed_links=True)
@@ -583,49 +589,49 @@ class Info(commands.Cog):
@app_commands.checks.bot_has_permissions(embed_links=True, external_emojis=True)
@app_commands.checks.cooldown(1, 2)
@user_group.command(name="info", description="Hent informasjon om en bruker")
async def user_info(self, interaction: discord.Interaction, *, bruker: discord.Member | None = None):
@app_commands.rename(user="bruker")
@app_commands.describe(user="Brukeren du vil se informasjon om. Standard er deg selv")
async def user_info(self, interaction: discord.Interaction, *, user: discord.Member | None = None):
"""
Get information about a user
Parameters
----------
interaction (discord.Interaction): Slash command context object
bruker (discord.Member, optional): User to get information about. Defaults to None (invoker).
user (discord.Member, optional): User to get information about. Defaults to None (invoker).
"""
if not bruker:
bruker = interaction.user
if not user:
user = interaction.user
# Get device(s) that is currently used by the user
app = ""
if str(bruker.mobile_status) != "offline":
if str(user.mobile_status) != "offline":
app += "📱 "
if str(bruker.web_status) != "offline":
if str(user.web_status) != "offline":
app += "🌐 "
if str(bruker.desktop_status) != "offline":
if str(user.desktop_status) != "offline":
app += "💻"
# Get index of join, creation and/or boost date in comparison to other users in the guild
join_index = sorted(interaction.guild.members, key=lambda m: m.joined_at).index(bruker) + 1
creation_index = sorted(interaction.guild.members, key=lambda m: m.created_at).index(bruker) + 1
if bruker.premium_since:
premium_index = (
sorted(interaction.guild.premium_subscribers, key=lambda m: m.premium_since).index(bruker) + 1
)
join_index = sorted(interaction.guild.members, key=lambda m: m.joined_at).index(user) + 1
creation_index = sorted(interaction.guild.members, key=lambda m: m.created_at).index(user) + 1
if user.premium_since:
premium_index = sorted(interaction.guild.premium_subscribers, key=lambda m: m.premium_since).index(user) + 1
# Creation/join date & days ago
created_timestamp = discord.utils.format_dt(bruker.created_at, style="F")
joined_timestamp = discord.utils.format_dt(bruker.joined_at, style="F")
joined_days = (interaction.created_at - bruker.joined_at).days
created_days = (interaction.created_at - bruker.created_at).days
created_timestamp = discord.utils.format_dt(user.created_at, style="F")
joined_timestamp = discord.utils.format_dt(user.joined_at, style="F")
joined_days = (interaction.created_at - user.joined_at).days
created_days = (interaction.created_at - user.created_at).days
# Boost date & days ago
if bruker.premium_since:
premium_since = discord.utils.format_dt(bruker.premium_since, style="F")
premium_since_days = (interaction.created_at - bruker.premium_since).days
if user.premium_since:
premium_since = discord.utils.format_dt(user.premium_since, style="F")
premium_since_days = (interaction.created_at - user.premium_since).days
# Get user roles
roles = self.construct_role_string(bruker.roles)
roles = self.construct_role_string(user.roles)
roles = (
roles
@@ -639,14 +645,14 @@ class Info(commands.Cog):
"dnd": f'{self.bot.emoji["dnd"]} Ikke forstyrr',
"offline": f'{self.bot.emoji["offline"]} Frakoblet',
}
status = statuses[str(bruker.status)]
status = statuses[str(user.status)]
embed = discord.Embed(color=bruker.color, description=f"{bruker.mention}\nID: {bruker.id}\n{status}\n{app}")
if bruker.display_name == bruker.name:
embed.set_author(name=bruker.name, icon_url=bruker.display_avatar)
embed = discord.Embed(color=user.color, description=f"{user.mention}\nID: {user.id}\n{status}\n{app}")
if user.display_name == user.name:
embed.set_author(name=user.name, icon_url=user.display_avatar)
else:
embed.set_author(name=f"{bruker.name} | {bruker.display_name}", icon_url=bruker.display_avatar)
embed.set_thumbnail(url=bruker.display_avatar)
embed.set_author(name=f"{user.name} | {user.display_name}", icon_url=user.display_avatar)
embed.set_thumbnail(url=user.display_avatar)
embed.add_field(
name="Opprettet",
value=f"{created_timestamp}\n{created_days} " + f'{"dag" if created_days == 1 else "dager"} siden',
@@ -655,7 +661,7 @@ class Info(commands.Cog):
name="Ble med i serveren",
value=f"{joined_timestamp}\n{joined_days} " + f'{"dag" if joined_days == 1 else "dager"} siden',
)
if bruker.premium_since:
if user.premium_since:
embed.add_field(
name="Boost",
value=f"{premium_since}\n{premium_since_days} "
@@ -663,13 +669,13 @@ class Info(commands.Cog):
+ f"Booster #{premium_index} av serveren",
inline=False,
)
embed.add_field(name=f"Roller ({len(bruker.roles)})", value=roles, inline=False)
embed.add_field(name=f"Roller ({len(user.roles)})", value=roles, inline=False)
embed.set_footer(text=f"#{join_index} Medlem av serveren | #{creation_index} Eldste brukeren på serveren")
# Playing activity
if bruker.activities:
if user.activities:
games = ""
for activity in bruker.activities:
for activity in user.activities:
games += f"{activity.name}\n"
if games:
embed.add_field(name="Spiller", value=games, inline=False)
@@ -679,20 +685,22 @@ class Info(commands.Cog):
@app_commands.checks.bot_has_permissions(embed_links=True)
@app_commands.checks.cooldown(1, 2)
@user_group.command(name="roller", description="Hent roller til en bruker")
async def user_roles(self, interaction: discord.Interaction, bruker: discord.Member | None = None):
@app_commands.rename(user="bruker")
@app_commands.describe(user="Brukeren du vil se rollene til. Standard er deg selv")
async def user_roles(self, interaction: discord.Interaction, user: discord.Member | None = None):
"""
Get roles of a user
Parameters
----------
interaction (discord.Interaction): Slash command context object
bruker (discord.Member, optional): User to get roles of. Defaults to None (invoker).
user (discord.Member, optional): User to get roles of. Defaults to None (invoker).
"""
if not bruker:
bruker = interaction.user
if not user:
user = interaction.user
roles = self.construct_role_string(bruker.roles)
roles = self.construct_role_string(user.roles)
# If the list of roles is too long, send it as a file
if len(roles) > 2048:
@@ -700,30 +708,32 @@ class Info(commands.Cog):
interaction, roles, f"{interaction.guild.id}_{interaction.user.id}_roles.txt"
)
else:
embed = discord.Embed(color=bruker.color, description=roles)
embed.set_author(name=f"Roller ({len(bruker.roles)})", icon_url=bruker.display_avatar)
embed.set_footer(text=bruker.name, icon_url=bruker.display_avatar)
embed = discord.Embed(color=user.color, description=roles)
embed.set_author(name=f"Roller ({len(user.roles)})", icon_url=user.display_avatar)
embed.set_footer(text=user.name, icon_url=user.display_avatar)
await interaction.response.send_message(embed=embed)
@app_commands.checks.bot_has_permissions(embed_links=True)
@app_commands.checks.cooldown(1, 2)
@user_group.command(name="avatar", description="Hent avatar til en bruker")
async def user_avatar(self, interaction: discord.Interaction, bruker: discord.User | discord.Member | None = None):
@app_commands.rename(user="bruker")
@app_commands.describe(user="Brukeren du vil se avataren til. Standard er deg selv")
async def user_avatar(self, interaction: discord.Interaction, user: discord.User | discord.Member | None = None):
"""
Get avatar of a user
Parameters
----------
interaction (discord.Interaction): Slash command context object
bruker (discord.User, optional): User to get avatar of. Defaults to None (invoker).
user (discord.User, optional): User to get avatar of. Defaults to None (invoker).
"""
if not bruker:
bruker = interaction.user
if not user:
user = interaction.user
embed = discord.Embed(color=bruker.color, description=f"[Lenke]({bruker.display_avatar})")
embed.set_author(name=bruker.name, icon_url=bruker.display_avatar)
embed.set_image(url=bruker.display_avatar)
embed = discord.Embed(color=user.color, description=f"[Lenke]({user.display_avatar})")
embed.set_author(name=user.name, icon_url=user.display_avatar)
embed.set_image(url=user.display_avatar)
await interaction.response.send_message(embed=embed)
+9 -7
View File
@@ -135,14 +135,16 @@ class Viteboka(commands.Cog):
@app_commands.checks.bot_has_permissions(embed_links=True, attach_files=True)
@app_commands.checks.cooldown(1, 10)
@viteboka_group.command(name="søk", description="Søk etter en artikkel i Viteboka")
async def search(self, interaction: discord.Interaction, søkestreng: str):
@app_commands.rename(query="søkestreng")
@app_commands.describe(query="Det du vil søke etter")
async def search(self, interaction: discord.Interaction, query: str):
"""
Search for an article in Viteboka
Parameters
----------
interaction (discord.Interaction): Slash command context object
søkestreng (str): The search query
query (str): The search query
"""
await interaction.response.defer()
@@ -151,19 +153,19 @@ class Viteboka(commands.Cog):
"action": "query",
"format": "json",
"list": "search",
"srsearch": søkestreng,
"srsearch": query,
}
try:
data = await query_api(self.bot.http_session, params)
except VitebokaException as e:
self.bot.logger.error(f"Failed to search for articles with query {søkestreng}: {e}")
self.bot.logger.error(f"Failed to search for articles with query {query}: {e}")
embed = embed_templates.error_fatal("Klarte ikke å søke etter artikler")
return await interaction.followup.send(embed=embed)
search_results = data["query"]["search"]
if not search_results:
self.bot.logger.info(f"No articles found with query {søkestreng}")
self.bot.logger.info(f"No articles found with query {query}")
embed = embed_templates.error_warning("Fant ingen artikler som matcher søket")
return await interaction.followup.send(embed=embed)
@@ -182,9 +184,9 @@ class Viteboka(commands.Cog):
return await interaction.followup.send(embed=embed, view=view)
try:
title, url, text, image = await fetch_article(self.bot.http_session, søkestreng)
title, url, text, image = await fetch_article(self.bot.http_session, query)
except VitebokaException as e:
self.bot.logger.error(f"Failed to fetch article {søkestreng}: {e}")
self.bot.logger.error(f"Failed to fetch article {query}: {e}")
embed = embed_templates.error_fatal(str(e))
return await interaction.followup.send(embed=embed)