A Discord permission name resolver for Pycord


Keywords
discord, permissions, aliases, pycord, python
License
MIT
Install
pip install alianator==3.3.0

Documentation

alianator

PyPI - Python Version PyPI GitHub release (latest SemVer) PyPI - License Black

alianator is a Discord permission name resolver for Pycord. It takes Discord's API permission flags (e.g. manage_guild) and resolves them to their user-facing aliases ( e.g. Manage Server).

Installation

$ pip install alianator

Usage

alianator can resolve aliases from discord.Permissions objects, integers, strings, tuples, lists of strings, and lists of tuples.

import alianator

alianator.resolve(arg, mode=mode)

The optional mode flag can be used to specify which permissions should be resolved. If mode is True, only granted permissions will be resolved; if mode is False, only denied permissions will be resolved; if mode is None, all permissions will be resolved. If mode is not explicitly specified, it will default to True.

import alianator
import discord

# Resolving from a discord.Permissions object
perms = discord.Permissions.general()
aliases = alianator.resolve(perms)
print(aliases)
# ['Manage Channels', 'Manage Server', 'View Audit Log', 'Read Messages', 'View Server Insights', 'Manage Roles', 'Manage Webhooks', 'Manage Emojis and Stickers']


# Resolving from an integer
perms = 3072
aliases = alianator.resolve(perms)
print(aliases)
# ['View Channel', 'Send Messages and Create Posts']


# Resolving from a string
perms = "send_tts_messages"
aliases = alianator.resolve(perms)
print(aliases)
# ['Send Text-To-Speech Messages']


# Resolving from a tuple
perms = ("moderate_members", True)
aliases = alianator.resolve(perms)
print(aliases)
# ['Timeout Members']


# Resolving from a list of strings
perms = ["manage_guild", "manage_emojis"]
aliases = alianator.resolve(perms)
print(aliases)
# ['Manage Server', 'Manage Emojis and Stickers']


# Resolving from a list of tuples
perms = [("use_slash_commands", True), ("use_voice_activation", True)]
aliases = alianator.resolve(perms)
print(aliases)
# ['Use Application Commands', 'Use Voice Activity']

That's about all there is to it. alianator does one thing and does it well.

License

alianator is released under the MIT License.