Add Activepieces integration for workflow automation

- Add Activepieces fork with SmoothSchedule custom piece
- Create integrations app with Activepieces service layer
- Add embed token endpoint for iframe integration
- Create Automations page with embedded workflow builder
- Add sidebar visibility fix for embed mode
- Add list inactive customers endpoint to Public API
- Include SmoothSchedule triggers: event created/updated/cancelled
- Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-18 22:59:37 -05:00
parent 9848268d34
commit 3aa7199503
16292 changed files with 1284892 additions and 4708 deletions

View File

@@ -0,0 +1,3 @@
{
"presets": [["@nx/js/babel", { "useBuiltIns": "usage" }]]
}

View File

@@ -0,0 +1,18 @@
{
"extends": ["../../../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
}
]
}

View File

@@ -0,0 +1,7 @@
# pieces-discord
This library was generated with [Nx](https://nx.dev).
## Running lint
Run `nx lint pieces-discord` to execute the lint via [ESLint](https://eslint.org/).

View File

@@ -0,0 +1,4 @@
{
"name": "@activepieces/piece-discord",
"version": "0.3.24"
}

View File

@@ -0,0 +1,51 @@
{
"name": "pieces-discord",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/discord/src",
"projectType": "library",
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/discord",
"tsConfig": "packages/pieces/community/discord/tsconfig.lib.json",
"packageJson": "packages/pieces/community/discord/package.json",
"main": "packages/pieces/community/discord/src/index.ts",
"assets": [
"packages/pieces/community/discord/*.md",
{
"input": "packages/pieces/community/discord/src/i18n",
"output": "./src/i18n",
"glob": "**/!(i18n.json)"
}
],
"buildableProjectDepsInPackageJsonType": "dependencies",
"updateBuildableProjectDepsInPackageJson": true
},
"dependsOn": [
"^build",
"prebuild"
]
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
]
},
"prebuild": {
"executor": "nx:run-commands",
"options": {
"cwd": "packages/pieces/community/discord",
"command": "bun install --no-save --silent"
},
"dependsOn": [
"^build"
]
}
},
"tags": []
}

View File

@@ -0,0 +1,101 @@
{
"Discord": "Discord",
"Instant messaging and VoIP social platform": "Instant messaging and VoIP social platform",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n",
"Send Message with Bot": "Send Message with Bot",
"Send Message Webhook": "Send Message Webhook",
"Request Approval in a Channel": "Request Approval in a Channel",
"Add role to member": "Add role to member",
"Remove role from member": "Remove role from member",
"Remove member from guild": "Remove member from guild",
"List guild members": "List guild members",
"Rename channel": "Rename channel",
"Create channel": "Create channel",
"Delete channel": "Delete channel",
"Find channel": "Find channel",
"Remove ban from user": "Remove ban from user",
"Create guild role": "Create guild role",
"Delete guild role": "Delete guild role",
"Ban guild member": "Ban guild member",
"Custom API Call": "Custom API Call",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Send messages via bot to any channel or thread you want, with an optional file attachment.",
"Send a discord message via webhook": "Send a discord message via webhook",
"send a message to a channel asking for approval and wait for a response": "send a message to a channel asking for approval and wait for a response",
"Add Guild Member Role": "Add Guild Member Role",
"Remove Guild Member Role": "Remove Guild Member Role",
"Remove Guild Member": "Remove Guild Member",
"List Guild Members": "List Guild Members",
"rename a channel": "rename a channel",
"create a channel": "create a channel",
"delete a channel": "delete a channel",
"find a channel by name": "find a channel by name",
"Removes the guild ban from a user": "Removes the guild ban from a user",
"Creates a new role on the specified guild": "Creates a new role on the specified guild",
"Deletes the specified role from the specified guild": "Deletes the specified role from the specified guild",
"Bans a guild member": "Bans a guild member",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Channel": "Channel",
"Message": "Message",
"Attachments": "Attachments",
"Webhook URL": "Webhook URL",
"Name": "Name",
"Avatar URL": "Avatar URL",
"embeds": "embeds",
"Text to speech": "Text to speech",
"Guilds": "Guilds",
"User ID": "User ID",
"Roles": "Roles",
"Search": "Search",
"Unban Reason": "Unban Reason",
"Role Name": "Role Name",
"Role Color": "Role Color",
"Display Separated": "Display Separated",
"Mentionable": "Mentionable",
"Creation Reason": "Creation Reason",
"Deletion reason": "Deletion reason",
"Ban Reason": "Ban Reason",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"List of channels": "List of channels",
"Message content to send.": "Message content to send.",
"The avatar url for webhook": "The avatar url for webhook",
"Embeds to send along with the message": "Embeds to send along with the message",
"Robot reads the message": "Robot reads the message",
"The message you want to send": "The message you want to send",
"List of guilds": "List of guilds",
"The user id of the member": "The user id of the member",
"List of roles": "List of roles",
"Search for a member": "Search for a member",
"The new name of the channel": "The new name of the channel",
"The name of the new channel": "The name of the new channel",
"The name of the channel": "The name of the channel",
"The ID of the user": "The ID of the user",
"The reason for unbanning the user": "The reason for unbanning the user",
"The name of the role": "The name of the role",
"The RGB color of the role (may be better to set manually on the server)": "The RGB color of the role (may be better to set manually on the server)",
"Whether the role should be displayed separately in the sidebar": "Whether the role should be displayed separately in the sidebar",
"Whether the role can be mentioned by other users": "Whether the role can be mentioned by other users",
"The reason for creating the role": "The reason for creating the role",
"The reason for deleting the role": "The reason for deleting the role",
"The reason for banning the member": "The reason for banning the member",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"New message": "New message",
"New Member": "New Member",
"Triggers when a message is sent in a channel": "Triggers when a message is sent in a channel",
"Triggers when a new member joins a guild": "Triggers when a new member joins a guild",
"Limit": "Limit",
"Guild ID": "Guild ID",
"The number of messages to fetch": "The number of messages to fetch",
"The number of members to fetch (max 1000)": "The number of members to fetch (max 1000)",
"The ID of the Discord guild (server)": "The ID of the Discord guild (server)"
}

View File

@@ -0,0 +1,102 @@
{
"Instant messaging and VoIP social platform": "Instant Messaging und VoIP soziale Plattform",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nUm ein Token zu erhalten, folgen Sie diesen Schritten:\n1. Gehen Sie zu https://discord.com/developers/applications\n2. Klicken Sie auf Anwendung (oder erstellen Sie eine Anwendung, wenn Sie keine haben)\n3. Klicken Sie auf Bot\n4. Kopieren Sie den Token\n",
"Send Message with Bot": "Nachricht mit Bot senden",
"Send Message Webhook": "Nachricht Webhook senden",
"Request Approval in a Channel": "Genehmigung in einem Kanal anfordern",
"Add role to member": "Rolle zu Mitglied hinzufügen",
"Remove role from member": "Rolle vom Mitglied entfernen",
"Remove member from guild": "Mitglied aus Gilde entfernen",
"List guild members": "Gildenmitglieder auflisten",
"Rename channel": "Kanal umbenennen",
"Create channel": "Kanal erstellen",
"Delete channel": "Kanal löschen",
"Find channel": "Kanal finden",
"Remove ban from user": "Sperre vom Benutzer entfernen",
"Create guild role": "Gildenrolle erstellen",
"Delete guild role": "Gildenrolle löschen",
"Ban guild member": "Gildenmitglied bannen",
"Custom API Call": "Eigener API-Aufruf",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Senden Sie Nachrichten per Bot an jeden gewünschten Kanal oder Thread mit einem optionalen Dateianhang.",
"Send a discord message via webhook": "Sende eine Discord Nachricht über webhook",
"send a message to a channel asking for approval and wait for a response": "schicke eine Nachricht an einen Kanal, der um Genehmigung bittet und warte auf eine Antwort",
"Add Guild Member Role": "Gildenmitglieder Rolle hinzufügen",
"Remove Guild Member Role": "Gildenmitgliedrolle entfernen",
"Remove Guild Member": "Gildenmitglied entfernen",
"List Guild Members": "Gildenmitglieder auflisten",
"rename a channel": "einen Kanal umbenennen",
"create a channel": "erstelle einen Kanal",
"delete a channel": "lösche einen Kanal",
"find a channel by name": "finde einen Kanal nach Namen",
"Removes the guild ban from a user": "Entfernt den Bann der Gilde von einem Benutzer",
"Creates a new role on the specified guild": "Erstellt eine neue Rolle auf der angegebenen Gilde",
"Deletes the specified role from the specified guild": "Löscht die angegebene Rolle aus der angegebenen Gilde",
"Bans a guild member": "Sperrt ein Gildenmitglied",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Channel": "Kanal",
"Message": "Nachricht",
"Attachments": "Anhänge",
"Webhook URL": "Webhook-URL",
"Name": "Name",
"Avatar URL": "Avatar-URL",
"embeds": "embeds",
"Text to speech": "Text zu Sprache",
"Guilds": "Gilden",
"User ID": "Benutzer-ID",
"Roles": "Rollen",
"Search": "Suche",
"Unban Reason": "Entbannungsgrund",
"Role Name": "Rollenname",
"Role Color": "Rollenfarbe",
"Display Separated": "Separierte Anzeige",
"Mentionable": "Erwähnbar",
"Creation Reason": "Erstellungsgrund",
"Deletion reason": "Löschgrund",
"Ban Reason": "Sperrgrund",
"Method": "Methode",
"Headers": "Kopfzeilen",
"Query Parameters": "Abfrageparameter",
"Body": "Körper",
"Response is Binary ?": "Antwort ist binär?",
"No Error on Failure": "Kein Fehler bei Fehler",
"Timeout (in seconds)": "Timeout (in Sekunden)",
"List of channels": "Liste der Kanäle",
"Message content to send.": "Zu sendende Nachrichteninhalte.",
"The avatar url for webhook": "Die Avatar-URL für Webhook",
"Embeds to send along with the message": "Bette, die zusammen mit der Nachricht gesendet werden sollen",
"Robot reads the message": "Roboter liest die Nachricht",
"The message you want to send": "Die Nachricht die Sie senden möchten",
"List of guilds": "Liste der Gilden",
"The user id of the member": "Die Benutzer-Id des Mitglieds",
"List of roles": "Liste der Rollen",
"Search for a member": "Nach einem Mitglied suchen",
"The new name of the channel": "Der neue Name des Kanals",
"The name of the new channel": "Der Name des neuen Kanals",
"The name of the channel": "Der Name des Kanals",
"The ID of the user": "Die ID des Benutzers",
"The reason for unbanning the user": "Der Grund für das Entsperren des Benutzers",
"The name of the role": "Der Name der Rolle",
"The RGB color of the role (may be better to set manually on the server)": "Die RGB-Farbe der Rolle (sollte besser manuell auf dem Server gesetzt werden)",
"Whether the role should be displayed separately in the sidebar": "Ob die Rolle separat in der Seitenleiste angezeigt werden soll",
"Whether the role can be mentioned by other users": "Ob die Rolle von anderen Benutzern erwähnt werden kann",
"The reason for creating the role": "Der Grund für die Erstellung der Rolle",
"The reason for deleting the role": "Der Grund für das Löschen der Rolle",
"The reason for banning the member": "Der Grund für das Verbot des Mitglieds",
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
"GET": "ERHALTEN",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "LÖSCHEN",
"HEAD": "HEAD",
"New message": "Neue Nachricht",
"New Member": "Neues Mitglied",
"Triggers when a message is sent in a channel": "Wird ausgelöst, wenn eine Nachricht in einem Kanal gesendet wird",
"Triggers when a new member joins a guild": "Löst aus, wenn ein neues Mitglied einer Gilde beitritt",
"Limit": "Limit",
"Guild ID": "Gilden-ID",
"The number of messages to fetch": "Die Anzahl der zu holenden Nachrichten",
"The number of members to fetch (max 1000)": "Die Anzahl der abzuholenden Mitglieder (max. 1000)",
"The ID of the Discord guild (server)": "Die ID der Discord Gilde (Server)"
}

View File

@@ -0,0 +1,102 @@
{
"Instant messaging and VoIP social platform": "Plataforma social de mensajería instantánea y VoIP",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nPara obtener un token, sigue estos pasos:\n1. Ve a https://discord.com/developeropers/applications\n2. Haga clic en Aplicación (o cree una si no tiene una)\n3. Haga clic en Bot\n4. Copie el token\n",
"Send Message with Bot": "Enviar mensaje con boot",
"Send Message Webhook": "Enviar mensaje Webhook",
"Request Approval in a Channel": "Solicitar aprobación en un canal",
"Add role to member": "Añadir rol al miembro",
"Remove role from member": "Eliminar rol del miembro",
"Remove member from guild": "Eliminar miembro de la guild",
"List guild members": "Listar miembros del gremio",
"Rename channel": "Cambiar el nombre del canal",
"Create channel": "Crear canal",
"Delete channel": "Eliminar canal",
"Find channel": "Buscar canal",
"Remove ban from user": "Eliminar ban del usuario",
"Create guild role": "Crear rol de guild",
"Delete guild role": "Eliminar rol de guild",
"Ban guild member": "Banear miembro del gremio",
"Custom API Call": "Llamada API personalizada",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Envía mensajes vía bot a cualquier canal o hilo que quieras, con un archivo adjunto opcional.",
"Send a discord message via webhook": "Enviar un mensaje de discord a través de webhook",
"send a message to a channel asking for approval and wait for a response": "enviar un mensaje a un canal pidiendo aprobación y esperar una respuesta",
"Add Guild Member Role": "Añadir rol de miembro del gremio",
"Remove Guild Member Role": "Quitar rol de miembro del gremio",
"Remove Guild Member": "Quitar miembro del gremio",
"List Guild Members": "Listar miembros del gremio",
"rename a channel": "renombrar un canal",
"create a channel": "crear un canal",
"delete a channel": "borrar un canal",
"find a channel by name": "encontrar un canal por nombre",
"Removes the guild ban from a user": "Elimina el ban del gremio de un usuario",
"Creates a new role on the specified guild": "Crea un nuevo rol en el gremio especificado",
"Deletes the specified role from the specified guild": "Elimina el rol especificado de la guild especificada",
"Bans a guild member": "Bloquea a un miembro del gremio",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Channel": "Canal",
"Message": "Mensaje",
"Attachments": "Adjuntos",
"Webhook URL": "URL de Webhook",
"Name": "Nombre",
"Avatar URL": "URL del avatar",
"embeds": "embeds",
"Text to speech": "Texto a voz",
"Guilds": "Gremios",
"User ID": "ID Usuario",
"Roles": "Roles",
"Search": "Buscar",
"Unban Reason": "Razón de desbaneo",
"Role Name": "Nombre del Rol",
"Role Color": "Color del rol",
"Display Separated": "Mostrar separados",
"Mentionable": "Mencionable",
"Creation Reason": "Razón de Creación",
"Deletion reason": "Razón de eliminación",
"Ban Reason": "Razón de ban",
"Method": "Método",
"Headers": "Encabezados",
"Query Parameters": "Parámetros de consulta",
"Body": "Cuerpo",
"Response is Binary ?": "¿Respuesta es binaria?",
"No Error on Failure": "No hay ningún error en fallo",
"Timeout (in seconds)": "Tiempo de espera (en segundos)",
"List of channels": "Lista de canales",
"Message content to send.": "Contenido del mensaje a enviar.",
"The avatar url for webhook": "La url del avatar para webhook",
"Embeds to send along with the message": "Incorpora para enviar junto con el mensaje",
"Robot reads the message": "Robot lee el mensaje",
"The message you want to send": "El mensaje que desea enviar",
"List of guilds": "Lista de gremios",
"The user id of the member": "El id de usuario del miembro",
"List of roles": "Lista de roles",
"Search for a member": "Buscar un miembro",
"The new name of the channel": "El nuevo nombre del canal",
"The name of the new channel": "El nombre del nuevo canal",
"The name of the channel": "El nombre del canal",
"The ID of the user": "El ID del usuario",
"The reason for unbanning the user": "La razón para desbanear al usuario",
"The name of the role": "El nombre del rol",
"The RGB color of the role (may be better to set manually on the server)": "El color RGB del rol (puede ser mejor establecer manualmente en el servidor)",
"Whether the role should be displayed separately in the sidebar": "Si el rol debe mostrarse por separado en la barra lateral",
"Whether the role can be mentioned by other users": "Si el rol puede ser mencionado por otros usuarios",
"The reason for creating the role": "La razón para crear el rol",
"The reason for deleting the role": "La razón para eliminar el rol",
"The reason for banning the member": "La razón para prohibir al miembro",
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDFs, imágenes, etc.",
"GET": "RECOGER",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "BORRAR",
"HEAD": "LIMPIO",
"New message": "Nuevo mensaje",
"New Member": "Nuevo miembro",
"Triggers when a message is sent in a channel": "Dispara cuando un mensaje es enviado en un canal",
"Triggers when a new member joins a guild": "Dispara cuando un nuevo miembro se une a una guild",
"Limit": "Límite",
"Guild ID": "ID de Gremio",
"The number of messages to fetch": "El número de mensajes a buscar",
"The number of members to fetch (max 1000)": "El número de miembros a buscar (máx. 1000)",
"The ID of the Discord guild (server)": "El ID de la guild de Discord (servidor)"
}

View File

@@ -0,0 +1,102 @@
{
"Instant messaging and VoIP social platform": "Messagerie instantanée et plateforme sociale VoIP",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nPour obtenir un jeton, suivez ces étapes :\n1. Allez sur https://discord.com/developers/applications\n2. Cliquez sur Application (ou créez une application si vous n'en avez pas une)\n3. Cliquez sur Bot\n4. Copiez le jeton\n",
"Send Message with Bot": "Envoyer un message avec le Bot",
"Send Message Webhook": "Envoyer un message Webhook",
"Request Approval in a Channel": "Demander l'approbation dans un canal",
"Add role to member": "Ajouter un rôle au membre",
"Remove role from member": "Retirer le rôle du membre",
"Remove member from guild": "Retirer un membre de la guilde",
"List guild members": "Liste des membres de la guilde",
"Rename channel": "Renommer le canal",
"Create channel": "Créer un canal",
"Delete channel": "Supprimer le canal",
"Find channel": "Trouver un canal",
"Remove ban from user": "Retirer le ban de l'utilisateur",
"Create guild role": "Créer un rôle de guilde",
"Delete guild role": "Supprimer le rôle de guilde",
"Ban guild member": "Bannir un membre de la guilde",
"Custom API Call": "Appel API personnalisé",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Envoyez des messages via le bot à n'importe quel canal ou fil de discussion que vous voulez, avec une pièce jointe facultative.",
"Send a discord message via webhook": "Envoyer un message discord via webhook",
"send a message to a channel asking for approval and wait for a response": "envoyer un message à un canal demandant son approbation et en attendant une réponse",
"Add Guild Member Role": "Ajouter un rôle de membre de guilde",
"Remove Guild Member Role": "Supprimer le rôle de membre de la guilde",
"Remove Guild Member": "Retirer le membre de la guilde",
"List Guild Members": "Lister les membres de la guilde",
"rename a channel": "renommer un canal",
"create a channel": "créer un canal",
"delete a channel": "supprimer un canal",
"find a channel by name": "trouver un canal par nom",
"Removes the guild ban from a user": "Retire le bannissement de guilde d'un utilisateur",
"Creates a new role on the specified guild": "Crée un nouveau rôle sur la guilde spécifiée",
"Deletes the specified role from the specified guild": "Supprime le rôle spécifié de la guilde spécifiée",
"Bans a guild member": "Bannit un membre de la guilde",
"Make a custom API call to a specific endpoint": "Passez un appel API personnalisé à un point de terminaison spécifique",
"Channel": "Chaîne",
"Message": "Message",
"Attachments": "Fichiers joints",
"Webhook URL": "URL du Webhook",
"Name": "Nom",
"Avatar URL": "URL de l'avatar",
"embeds": "embeds",
"Text to speech": "Texte de synthèse vocale",
"Guilds": "Guildes",
"User ID": "Identifiant de l'utilisateur",
"Roles": "Rôles",
"Search": "Rechercher",
"Unban Reason": "Raison de dé-bannissement",
"Role Name": "Nom du rôle",
"Role Color": "Couleur du rôle",
"Display Separated": "Affichage séparé",
"Mentionable": "Mentionnable",
"Creation Reason": "Raison de la création",
"Deletion reason": "Raison de la suppression",
"Ban Reason": "Raison du bannissement",
"Method": "Méthode",
"Headers": "En-têtes",
"Query Parameters": "Paramètres de requête",
"Body": "Corps",
"Response is Binary ?": "La réponse est Binaire ?",
"No Error on Failure": "Aucune erreur en cas d'échec",
"Timeout (in seconds)": "Délai d'attente (en secondes)",
"List of channels": "Liste des channels",
"Message content to send.": "Message à envoyer.",
"The avatar url for webhook": "L'url de l'avatar pour le webhook",
"Embeds to send along with the message": "Intégrer à envoyer avec le message",
"Robot reads the message": "Le robot lit le message",
"The message you want to send": "Le message que vous souhaitez envoyer",
"List of guilds": "Liste des guildes",
"The user id of the member": "L'identifiant de l'utilisateur du membre",
"List of roles": "Liste des rôles",
"Search for a member": "Rechercher un membre",
"The new name of the channel": "Le nouveau nom du canal",
"The name of the new channel": "Le nom du nouveau canal",
"The name of the channel": "Le nom du canal",
"The ID of the user": "L'ID de l'utilisateur",
"The reason for unbanning the user": "La raison de dé-bannissement de l'utilisateur",
"The name of the role": "Le nom du rôle",
"The RGB color of the role (may be better to set manually on the server)": "La couleur RVB du rôle (peut être mieux à définir manuellement sur le serveur)",
"Whether the role should be displayed separately in the sidebar": "Si le rôle doit être affiché séparément dans la barre latérale",
"Whether the role can be mentioned by other users": "Si le rôle peut être mentionné par d'autres utilisateurs",
"The reason for creating the role": "La raison de la création du rôle",
"The reason for deleting the role": "La raison de la suppression du rôle",
"The reason for banning the member": "La raison du bannissement du membre",
"Authorization headers are injected automatically from your connection.": "Les en-têtes d'autorisation sont injectés automatiquement à partir de votre connexion.",
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
"GET": "OBTENIR",
"POST": "POSTER",
"PATCH": "PATCH",
"PUT": "EFFACER",
"DELETE": "SUPPRIMER",
"HEAD": "TÊTE",
"New message": "Nouveau message",
"New Member": "Nouveau membre",
"Triggers when a message is sent in a channel": "Déclenche lorsqu'un message est envoyé dans un canal",
"Triggers when a new member joins a guild": "Déclenche lorsqu'un nouveau membre rejoint une guilde",
"Limit": "Limite",
"Guild ID": "ID de guilde",
"The number of messages to fetch": "Le nombre de messages à récupérer",
"The number of members to fetch (max 1000)": "Le nombre de membres à récupérer (max 1000)",
"The ID of the Discord guild (server)": "L'ID de la guilde Discord (serveur)"
}

View File

@@ -0,0 +1,101 @@
{
"Discord": "Discord",
"Instant messaging and VoIP social platform": "Instant messaging and VoIP social platform",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n",
"Send Message with Bot": "Send Message with Bot",
"Send Message Webhook": "Send Message Webhook",
"Request Approval in a Channel": "Request Approval in a Channel",
"Add role to member": "Add role to member",
"Remove role from member": "Remove role from member",
"Remove member from guild": "Remove member from guild",
"List guild members": "List guild members",
"Rename channel": "Rename channel",
"Create channel": "Create channel",
"Delete channel": "Delete channel",
"Find channel": "Find channel",
"Remove ban from user": "Remove ban from user",
"Create guild role": "Create guild role",
"Delete guild role": "Delete guild role",
"Ban guild member": "Ban guild member",
"Custom API Call": "Custom API Call",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Send messages via bot to any channel or thread you want, with an optional file attachment.",
"Send a discord message via webhook": "Send a discord message via webhook",
"send a message to a channel asking for approval and wait for a response": "send a message to a channel asking for approval and wait for a response",
"Add Guild Member Role": "Add Guild Member Role",
"Remove Guild Member Role": "Remove Guild Member Role",
"Remove Guild Member": "Remove Guild Member",
"List Guild Members": "List Guild Members",
"rename a channel": "rename a channel",
"create a channel": "create a channel",
"delete a channel": "delete a channel",
"find a channel by name": "find a channel by name",
"Removes the guild ban from a user": "Removes the guild ban from a user",
"Creates a new role on the specified guild": "Creates a new role on the specified guild",
"Deletes the specified role from the specified guild": "Deletes the specified role from the specified guild",
"Bans a guild member": "Bans a guild member",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Channel": "Channel",
"Message": "Message",
"Attachments": "Attachments",
"Webhook URL": "Webhook URL",
"Name": "Name",
"Avatar URL": "Avatar URL",
"embeds": "embeds",
"Text to speech": "Text to speech",
"Guilds": "Guilds",
"User ID": "User ID",
"Roles": "Roles",
"Search": "Search",
"Unban Reason": "Unban Reason",
"Role Name": "Role Name",
"Role Color": "Role Color",
"Display Separated": "Display Separated",
"Mentionable": "Mentionable",
"Creation Reason": "Creation Reason",
"Deletion reason": "Deletion reason",
"Ban Reason": "Ban Reason",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"List of channels": "List of channels",
"Message content to send.": "Message content to send.",
"The avatar url for webhook": "The avatar url for webhook",
"Embeds to send along with the message": "Embeds to send along with the message",
"Robot reads the message": "Robot reads the message",
"The message you want to send": "The message you want to send",
"List of guilds": "List of guilds",
"The user id of the member": "The user id of the member",
"List of roles": "List of roles",
"Search for a member": "Search for a member",
"The new name of the channel": "The new name of the channel",
"The name of the new channel": "The name of the new channel",
"The name of the channel": "The name of the channel",
"The ID of the user": "The ID of the user",
"The reason for unbanning the user": "The reason for unbanning the user",
"The name of the role": "The name of the role",
"The RGB color of the role (may be better to set manually on the server)": "The RGB color of the role (may be better to set manually on the server)",
"Whether the role should be displayed separately in the sidebar": "Whether the role should be displayed separately in the sidebar",
"Whether the role can be mentioned by other users": "Whether the role can be mentioned by other users",
"The reason for creating the role": "The reason for creating the role",
"The reason for deleting the role": "The reason for deleting the role",
"The reason for banning the member": "The reason for banning the member",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"New message": "New message",
"New Member": "New Member",
"Triggers when a message is sent in a channel": "Triggers when a message is sent in a channel",
"Triggers when a new member joins a guild": "Triggers when a new member joins a guild",
"Limit": "Limit",
"Guild ID": "Guild ID",
"The number of messages to fetch": "The number of messages to fetch",
"The number of members to fetch (max 1000)": "The number of members to fetch (max 1000)",
"The ID of the Discord guild (server)": "The ID of the Discord guild (server)"
}

View File

@@ -0,0 +1,101 @@
{
"Discord": "Discord",
"Instant messaging and VoIP social platform": "Instant messaging and VoIP social platform",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n",
"Send Message with Bot": "Send Message with Bot",
"Send Message Webhook": "Send Message Webhook",
"Request Approval in a Channel": "Request Approval in a Channel",
"Add role to member": "Add role to member",
"Remove role from member": "Remove role from member",
"Remove member from guild": "Remove member from guild",
"List guild members": "List guild members",
"Rename channel": "Rename channel",
"Create channel": "Create channel",
"Delete channel": "Delete channel",
"Find channel": "Find channel",
"Remove ban from user": "Remove ban from user",
"Create guild role": "Create guild role",
"Delete guild role": "Delete guild role",
"Ban guild member": "Ban guild member",
"Custom API Call": "Custom API Call",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Send messages via bot to any channel or thread you want, with an optional file attachment.",
"Send a discord message via webhook": "Send a discord message via webhook",
"send a message to a channel asking for approval and wait for a response": "send a message to a channel asking for approval and wait for a response",
"Add Guild Member Role": "Add Guild Member Role",
"Remove Guild Member Role": "Remove Guild Member Role",
"Remove Guild Member": "Remove Guild Member",
"List Guild Members": "List Guild Members",
"rename a channel": "rename a channel",
"create a channel": "create a channel",
"delete a channel": "delete a channel",
"find a channel by name": "find a channel by name",
"Removes the guild ban from a user": "Removes the guild ban from a user",
"Creates a new role on the specified guild": "Creates a new role on the specified guild",
"Deletes the specified role from the specified guild": "Deletes the specified role from the specified guild",
"Bans a guild member": "Bans a guild member",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Channel": "Channel",
"Message": "Message",
"Attachments": "Attachments",
"Webhook URL": "Webhook URL",
"Name": "Name",
"Avatar URL": "Avatar URL",
"embeds": "embeds",
"Text to speech": "Text to speech",
"Guilds": "Guilds",
"User ID": "User ID",
"Roles": "Roles",
"Search": "Search",
"Unban Reason": "Unban Reason",
"Role Name": "Role Name",
"Role Color": "Role Color",
"Display Separated": "Display Separated",
"Mentionable": "Mentionable",
"Creation Reason": "Creation Reason",
"Deletion reason": "Deletion reason",
"Ban Reason": "Ban Reason",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"List of channels": "List of channels",
"Message content to send.": "Message content to send.",
"The avatar url for webhook": "The avatar url for webhook",
"Embeds to send along with the message": "Embeds to send along with the message",
"Robot reads the message": "Robot reads the message",
"The message you want to send": "The message you want to send",
"List of guilds": "List of guilds",
"The user id of the member": "The user id of the member",
"List of roles": "List of roles",
"Search for a member": "Search for a member",
"The new name of the channel": "The new name of the channel",
"The name of the new channel": "The name of the new channel",
"The name of the channel": "The name of the channel",
"The ID of the user": "The ID of the user",
"The reason for unbanning the user": "The reason for unbanning the user",
"The name of the role": "The name of the role",
"The RGB color of the role (may be better to set manually on the server)": "The RGB color of the role (may be better to set manually on the server)",
"Whether the role should be displayed separately in the sidebar": "Whether the role should be displayed separately in the sidebar",
"Whether the role can be mentioned by other users": "Whether the role can be mentioned by other users",
"The reason for creating the role": "The reason for creating the role",
"The reason for deleting the role": "The reason for deleting the role",
"The reason for banning the member": "The reason for banning the member",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"New message": "New message",
"New Member": "New Member",
"Triggers when a message is sent in a channel": "Triggers when a message is sent in a channel",
"Triggers when a new member joins a guild": "Triggers when a new member joins a guild",
"Limit": "Limit",
"Guild ID": "Guild ID",
"The number of messages to fetch": "The number of messages to fetch",
"The number of members to fetch (max 1000)": "The number of members to fetch (max 1000)",
"The ID of the Discord guild (server)": "The ID of the Discord guild (server)"
}

View File

@@ -0,0 +1,102 @@
{
"Instant messaging and VoIP social platform": "インスタントメッセージングとVoIPソーシャルプラットフォーム",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n",
"Send Message with Bot": "ボットでメッセージを送信",
"Send Message Webhook": "メッセージ Webhook を送信",
"Request Approval in a Channel": "チャネルで承認を要求する",
"Add role to member": "役割をメンバーに追加",
"Remove role from member": "メンバーからロールを削除",
"Remove member from guild": "ギルドからメンバーを削除する",
"List guild members": "ギルドメンバーの一覧",
"Rename channel": "チャンネル名の変更",
"Create channel": "チャンネルを作成",
"Delete channel": "チャンネルを削除",
"Find channel": "チャンネルを検索",
"Remove ban from user": "ユーザーからBANを解除する",
"Create guild role": "ギルドの役割を作成",
"Delete guild role": "ギルドの役割を削除",
"Ban guild member": "BANギルドメンバー",
"Custom API Call": "カスタムAPI通話",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "任意の添付ファイルを含む任意のチャンネルまたはスレッドにボットを介してメッセージを送信します。",
"Send a discord message via webhook": "Webhook経由でDiscordメッセージを送信する",
"send a message to a channel asking for approval and wait for a response": "承認を求めるチャンネルにメッセージを送信し、応答を待つ",
"Add Guild Member Role": "ギルドメンバーの役割を追加",
"Remove Guild Member Role": "ギルドメンバーの役割を削除",
"Remove Guild Member": "ギルドメンバーを削除",
"List Guild Members": "ギルドメンバー一覧",
"rename a channel": "チャンネル名を変更する",
"create a channel": "チャンネルを作成",
"delete a channel": "チャンネルの削除",
"find a channel by name": "名前でチャンネルを検索",
"Removes the guild ban from a user": "ギルドBANをユーザーから削除します。",
"Creates a new role on the specified guild": "指定されたギルドの上に新しい役割を作成します",
"Deletes the specified role from the specified guild": "指定されたギルドから指定されたロールを削除します",
"Bans a guild member": "ギルドメンバーをBANしました",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Channel": "チャンネル",
"Message": "メッセージ",
"Attachments": "添付ファイル",
"Webhook URL": "Webhook URL",
"Name": "Name",
"Avatar URL": "アバター URL",
"embeds": "embeds",
"Text to speech": "テキストから発話する",
"Guilds": "Guild",
"User ID": "ユーザー ID",
"Roles": "ロール",
"Search": "検索",
"Unban Reason": "BANの理由を解除",
"Role Name": "役割名",
"Role Color": "ロールの色",
"Display Separated": "別々の表示",
"Mentionable": "メンション可能",
"Creation Reason": "作成の理由",
"Deletion reason": "削除の理由",
"Ban Reason": "禁止の理由",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Body": "本文",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"List of channels": "チャンネル一覧",
"Message content to send.": "送信するコンテンツにメッセージを送信します。",
"The avatar url for webhook": "WebhookのアバターURL",
"Embeds to send along with the message": "メッセージと一緒に送信する埋め込み",
"Robot reads the message": "ロボットはメッセージを読み込みます",
"The message you want to send": "送信したいメッセージ",
"List of guilds": "ギルド一覧",
"The user id of the member": "メンバーのユーザー ID",
"List of roles": "ロールのリスト",
"Search for a member": "メンバーを検索",
"The new name of the channel": "チャンネルの新しい名前",
"The name of the new channel": "新しいチャンネルの名前",
"The name of the channel": "チャンネル名",
"The ID of the user": "利用者のID",
"The reason for unbanning the user": "ユーザーのBANを解除する理由",
"The name of the role": "役割の名前",
"The RGB color of the role (may be better to set manually on the server)": "ロールの RGB 色(サーバー上で手動で設定する方が良い場合があります)",
"Whether the role should be displayed separately in the sidebar": "ロールをサイドバーに個別に表示するかどうか",
"Whether the role can be mentioned by other users": "ロールが他のユーザーによって言及されるかどうか",
"The reason for creating the role": "役割を作成する理由",
"The reason for deleting the role": "ロールを削除する理由",
"The reason for banning the member": "メンバーを禁止する理由",
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
"GET": "取得",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "削除",
"HEAD": "頭",
"New message": "新しいメッセージ",
"New Member": "新規メンバー",
"Triggers when a message is sent in a channel": "チャンネルでメッセージが送信されたときにトリガーします",
"Triggers when a new member joins a guild": "新しいメンバーがギルドに参加したときにトリガーします",
"Limit": "制限",
"Guild ID": "ギルドID",
"The number of messages to fetch": "取得するメッセージ数",
"The number of members to fetch (max 1000)": "フェッチするメンバーの数 (最大 1000)",
"The ID of the Discord guild (server)": "DiscordギルドのIDサーバー"
}

View File

@@ -0,0 +1,102 @@
{
"Instant messaging and VoIP social platform": "Directe berichten en een VoIP social platform",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nOm een token te verkrijgen, volg deze stappen:\n1. Ga naar https://discord.com/developers/applications\n2. Klik op Toepassing (of maak er een aan als je er geen hebt)\n3. Klik op Bot\n4. Kopieer de token\n",
"Send Message with Bot": "Stuur een bericht met bot",
"Send Message Webhook": "Verstuur bericht webhook",
"Request Approval in a Channel": "Verzoek om goedkeuring in een Kanaal",
"Add role to member": "Rol toevoegen aan lid",
"Remove role from member": "Rol van lid verwijderen",
"Remove member from guild": "Verwijder lid uit de gilde",
"List guild members": "Lijst van gilde leden",
"Rename channel": "Kanaal hernoemen",
"Create channel": "Kanaal aanmaken",
"Delete channel": "Kanaal verwijderen",
"Find channel": "Zender zoeken",
"Remove ban from user": "Verwijder ban van gebruiker",
"Create guild role": "Gilde rol aanmaken",
"Delete guild role": "Gilde rol verwijderen",
"Ban guild member": "Blokkeer gilde lid",
"Custom API Call": "Custom API Call",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Stuur berichten via bot naar elk kanaal of thread die je wilt, met een optionele bestandsbijlage.",
"Send a discord message via webhook": "Stuur een discord bericht via webhook",
"send a message to a channel asking for approval and wait for a response": "stuur een bericht naar een kanaal om goedkeuring te vragen en wacht op een reactie",
"Add Guild Member Role": "Gilde Lid Rol toevoegen",
"Remove Guild Member Role": "Verwijder Gilde Lid Rol",
"Remove Guild Member": "Gilde Lid Verwijderen",
"List Guild Members": "Lijst van Guild Leden",
"rename a channel": "een kanaal hernoemen",
"create a channel": "kanaal aanmaken",
"delete a channel": "verwijder een kanaal",
"find a channel by name": "zoek een kanaal op naam",
"Removes the guild ban from a user": "Verwijdert de gilde ban van een gebruiker",
"Creates a new role on the specified guild": "Maakt een nieuwe rol aan op de opgegeven gilde",
"Deletes the specified role from the specified guild": "Verwijdert een specifieke rol van de opgegeven gilde",
"Bans a guild member": "Verban een gilde lid",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Channel": "Kanaal",
"Message": "bericht",
"Attachments": "Bijlagen",
"Webhook URL": "Webhook URL",
"Name": "Naam",
"Avatar URL": "Avatar URL",
"embeds": "embeds",
"Text to speech": "Tekst naar spraak",
"Guilds": "Gildes",
"User ID": "Gebruiker ID",
"Roles": "Rollen",
"Search": "Zoeken",
"Unban Reason": "De-ban reden",
"Role Name": "Rol naam",
"Role Color": "Rol kleur",
"Display Separated": "Weergave gescheiden",
"Mentionable": "Vermeldbaar",
"Creation Reason": "Creatie reden",
"Deletion reason": "Reden voor verwijdering",
"Ban Reason": "Ban reden",
"Method": "Methode",
"Headers": "Kopteksten",
"Query Parameters": "Query parameters",
"Body": "Lichaam",
"Response is Binary ?": "Antwoord is binair?",
"No Error on Failure": "Geen fout bij fout",
"Timeout (in seconds)": "Time-out (in seconden)",
"List of channels": "Lijst van kanalen",
"Message content to send.": "Bericht inhoud om te verzenden.",
"The avatar url for webhook": "De avatar url voor webhook",
"Embeds to send along with the message": "Embeds voor verzenden met het bericht",
"Robot reads the message": "Robot leest het bericht",
"The message you want to send": "Het bericht dat u wilt verzenden",
"List of guilds": "Lijst van gilden",
"The user id of the member": "De gebruikers-id van het lid",
"List of roles": "Lijst met rollen",
"Search for a member": "Een lid zoeken",
"The new name of the channel": "De nieuwe naam van het kanaal",
"The name of the new channel": "De naam van het nieuwe kanaal",
"The name of the channel": "De naam van het kanaal",
"The ID of the user": "Het ID van de gebruiker",
"The reason for unbanning the user": "De reden voor het opheffen van de gebruiker",
"The name of the role": "De naam van de rol",
"The RGB color of the role (may be better to set manually on the server)": "De RGB kleur van de rol (kan beter zijn om handmatig in te stellen op de server)",
"Whether the role should be displayed separately in the sidebar": "Of de rol apart in de zijbalk moet worden weergegeven",
"Whether the role can be mentioned by other users": "Of de rol kan worden vermeld door andere gebruikers",
"The reason for creating the role": "De reden voor het creëren van de rol",
"The reason for deleting the role": "De reden voor het verwijderen van de rol",
"The reason for banning the member": "De reden om het lid te verbieden",
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
"GET": "KRIJG",
"POST": "POSTE",
"PATCH": "BEKIJK",
"PUT": "PUT",
"DELETE": "VERWIJDEREN",
"HEAD": "HOOFD",
"New message": "Nieuw bericht",
"New Member": "Nieuw lid",
"Triggers when a message is sent in a channel": "Triggert wanneer een bericht wordt verzonden in een kanaal",
"Triggers when a new member joins a guild": "Activeert wanneer een nieuw lid toetreedt tot een gilde",
"Limit": "Limiet",
"Guild ID": "Gilde ID",
"The number of messages to fetch": "Het aantal berichten dat moet worden opgehaald",
"The number of members to fetch (max 1000)": "Het aantal leden om op te halen (max 1000)",
"The ID of the Discord guild (server)": "Het ID van de Discord guild (server)"
}

View File

@@ -0,0 +1,102 @@
{
"Instant messaging and VoIP social platform": "Mensagens instantâneas e plataforma social VoIP",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n",
"Send Message with Bot": "Enviar mensagem com o Bot",
"Send Message Webhook": "Enviar Mensagem Webhook",
"Request Approval in a Channel": "Solicitação de aprovação em um canal",
"Add role to member": "Adicionar função ao membro",
"Remove role from member": "Remover função do membro",
"Remove member from guild": "Remover membro da guilda",
"List guild members": "Listar membros da guild",
"Rename channel": "Renomear canal",
"Create channel": "Criar canal",
"Delete channel": "Excluir canal",
"Find channel": "Procurar canal",
"Remove ban from user": "Remover banimento do usuário",
"Create guild role": "Criar cargo da guilda",
"Delete guild role": "Excluir cargo de guilda",
"Ban guild member": "Banir membro da guilda",
"Custom API Call": "Chamada de API personalizada",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Envie mensagens via bot para qualquer canal ou tópico que queira, com um anexo de arquivo opcional.",
"Send a discord message via webhook": "Enviar uma mensagem discord via webhook",
"send a message to a channel asking for approval and wait for a response": "enviar uma mensagem para um canal pedindo aprovação e aguarde uma resposta",
"Add Guild Member Role": "Adicionar Função de Membro da Guilda",
"Remove Guild Member Role": "Remover Função de Membro da Guilda",
"Remove Guild Member": "Remover Membro da Guilda",
"List Guild Members": "Listar Membros da Guilda",
"rename a channel": "renomeie um canal",
"create a channel": "criar um canal",
"delete a channel": "excluir um canal",
"find a channel by name": "encontrar um canal por nome",
"Removes the guild ban from a user": "Remove o banimento de guilda de um usuário",
"Creates a new role on the specified guild": "Cria um novo cargo na guild especificada",
"Deletes the specified role from the specified guild": "Exclui o cargo especificado da guild especificada",
"Bans a guild member": "Bane um membro da guild",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Channel": "Canal",
"Message": "mensagem",
"Attachments": "Anexos",
"Webhook URL": "URL do webhook",
"Name": "Nome",
"Avatar URL": "URL do avatar",
"embeds": "embeds",
"Text to speech": "Texto para fala",
"Guilds": "Guildas",
"User ID": "ID de usuário",
"Roles": "Papéis",
"Search": "Pesquisar",
"Unban Reason": "Razão de desbloqueio",
"Role Name": "Nome da Função",
"Role Color": "Cor do cargo",
"Display Separated": "Exibir Separados",
"Mentionable": "Mencionável",
"Creation Reason": "Motivo da criação",
"Deletion reason": "Motivo da exclusão",
"Ban Reason": "Motivo do banimento",
"Method": "Método",
"Headers": "Cabeçalhos",
"Query Parameters": "Parâmetros da consulta",
"Body": "Conteúdo",
"Response is Binary ?": "A resposta é binária ?",
"No Error on Failure": "Nenhum erro no Failure",
"Timeout (in seconds)": "Tempo limite (em segundos)",
"List of channels": "Lista de canais",
"Message content to send.": "Conteúdo da mensagem a enviar.",
"The avatar url for webhook": "A url do avatar para o webhook",
"Embeds to send along with the message": "Incorpore para enviar junto com a mensagem",
"Robot reads the message": "O robô lê a mensagem",
"The message you want to send": "A mensagem que você deseja enviar",
"List of guilds": "Lista de guildas",
"The user id of the member": "A identificação do usuário do membro",
"List of roles": "Lista de funções",
"Search for a member": "Buscar um membro",
"The new name of the channel": "O novo nome do canal",
"The name of the new channel": "O nome do novo canal",
"The name of the channel": "O nome do canal",
"The ID of the user": "A ID do usuário",
"The reason for unbanning the user": "O motivo para desbanir o usuário",
"The name of the role": "O nome da função",
"The RGB color of the role (may be better to set manually on the server)": "A cor RGB do cargo (pode ser melhor configurar manualmente no servidor)",
"Whether the role should be displayed separately in the sidebar": "Se o papel deve ser exibido separadamente na barra lateral",
"Whether the role can be mentioned by other users": "Se o papel pode ser mencionado por outros usuários",
"The reason for creating the role": "O motivo para criar o papel",
"The reason for deleting the role": "A razão para excluir a função",
"The reason for banning the member": "O motivo para banir o membro",
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
"GET": "OBTER",
"POST": "POSTAR",
"PATCH": "COMPRAR",
"PUT": "COLOCAR",
"DELETE": "EXCLUIR",
"HEAD": "CABEÇA",
"New message": "Nova mensagem",
"New Member": "Novo Membro",
"Triggers when a message is sent in a channel": "Dispara quando uma mensagem é enviada em um canal",
"Triggers when a new member joins a guild": "Aciona quando um novo membro entra em uma guild",
"Limit": "Limitar",
"Guild ID": "ID da Guilda",
"The number of messages to fetch": "O número de mensagens a buscar",
"The number of members to fetch (max 1000)": "O número de membros para buscar (máximo 1000)",
"The ID of the Discord guild (server)": "A ID da guilda do Discord (servidor)"
}

View File

@@ -0,0 +1,101 @@
{
"Discord": "Discord",
"Instant messaging and VoIP social platform": "Обмен мгновенными сообщениями и VoIP социальная платформа",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n",
"Send Message with Bot": "Отправить сообщение с ботом",
"Send Message Webhook": "Отправить сообщение Webhook",
"Request Approval in a Channel": "Запрос одобрения в канале",
"Add role to member": "Добавить роль участнику",
"Remove role from member": "Удалить роль из участника",
"Remove member from guild": "Удалить участника из гильдии",
"List guild members": "Список участников гильдии",
"Rename channel": "Переименовать канал",
"Create channel": "Создать канал",
"Delete channel": "Удалить канал",
"Find channel": "Найти канал",
"Remove ban from user": "Удалить бан из пользователя",
"Create guild role": "Создать роль гильдии",
"Delete guild role": "Удалить роль гильдии",
"Ban guild member": "Заблокировать участника гильдии",
"Custom API Call": "Пользовательский вызов API",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Отправлять сообщения через бота любому каналу или потоку с дополнительным вложением файла.",
"Send a discord message via webhook": "Отправить сообщение discord через webhook",
"send a message to a channel asking for approval and wait for a response": "отправить сообщение в канал, запрашивающий одобрение и ожидающий ответа",
"Add Guild Member Role": "Добавить роль участника гильдии",
"Remove Guild Member Role": "Удалить роль участника гильдии",
"Remove Guild Member": "Удалить участника гильдии",
"List Guild Members": "Список участников гильдии",
"rename a channel": "переименовать канал",
"create a channel": "создать канал",
"delete a channel": "удалить канал",
"find a channel by name": "найти канал по имени",
"Removes the guild ban from a user": "Удаляет бан гильдии с пользователя",
"Creates a new role on the specified guild": "Создать новую роль в указанной гильдии",
"Deletes the specified role from the specified guild": "Удаляет указанную роль из указанной гильдии",
"Bans a guild member": "Банирует участника гильдии",
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
"Channel": "Канал",
"Message": "Сообщение",
"Attachments": "Вложения",
"Webhook URL": "URL вебхука",
"Name": "Наименование",
"Avatar URL": "URL аватара",
"embeds": "embeds",
"Text to speech": "Текст в речь",
"Guilds": "Гильдии",
"User ID": "ID пользователя",
"Roles": "Роли",
"Search": "Search",
"Unban Reason": "Причина Разбана",
"Role Name": "Название роли",
"Role Color": "Цвет роли",
"Display Separated": "Показать разделенные",
"Mentionable": "Упоминаемый",
"Creation Reason": "Причина создания",
"Deletion reason": "Причина удаления",
"Ban Reason": "Причина бана",
"Method": "Метод",
"Headers": "Заголовки",
"Query Parameters": "Параметры запроса",
"Body": "Тело",
"No Error on Failure": "Нет ошибок при ошибке",
"Timeout (in seconds)": "Таймаут (в секундах)",
"List of channels": "Список каналов",
"Message content to send.": "Содержание сообщения для отправки.",
"The avatar url for webhook": "URL-адрес аватара для вебхука",
"Embeds to send along with the message": "Встраивает отправку вместе с сообщением",
"Robot reads the message": "Робот читает сообщение",
"The message you want to send": "Сообщение, которое вы хотите отправить",
"List of guilds": "Список гильдий",
"The user id of the member": "Идентификатор пользователя участника",
"List of roles": "Список ролей",
"Search for a member": "Поиск участника",
"The new name of the channel": "Новое имя канала",
"The name of the new channel": "Название нового канала",
"The name of the channel": "Название канала",
"The ID of the user": "ID пользователя",
"The reason for unbanning the user": "Причина разблокировки пользователя",
"The name of the role": "Название роли",
"The RGB color of the role (may be better to set manually on the server)": "Цвет роли RGB (лучше вручную установить на сервере)",
"Whether the role should be displayed separately in the sidebar": "Должна ли роль отображаться отдельно в боковой панели",
"Whether the role can be mentioned by other users": "Можно ли упомянуть роль другими пользователями",
"The reason for creating the role": "Причина создания роли",
"The reason for deleting the role": "Причина удаления роли",
"The reason for banning the member": "Причина блокировки участника",
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
"GET": "ПОЛУЧИТЬ",
"POST": "ПОСТ",
"PATCH": "ПАТЧ",
"PUT": "ПОКУПИТЬ",
"DELETE": "УДАЛИТЬ",
"HEAD": "HEAD",
"New message": "Новое сообщение",
"New Member": "Новый участник",
"Triggers when a message is sent in a channel": "Включает при отправке сообщения в канале",
"Triggers when a new member joins a guild": "Срабатывать, когда новый участник присоединяется к гильдии",
"Limit": "Лимит",
"Guild ID": "ID гильдии",
"The number of messages to fetch": "Количество сообщений для получения",
"The number of members to fetch (max 1000)": "Количество членов для получения (максимум 1000)",
"The ID of the Discord guild (server)": "ID гильдии Discord (сервер)"
}

View File

@@ -0,0 +1,102 @@
{
"Instant messaging and VoIP social platform": "Instant messaging and VoIP social platform",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n",
"Send Message with Bot": "Send Message with Bot",
"Send Message Webhook": "Send Message Webhook",
"Request Approval in a Channel": "Request Approval in a Channel",
"Add role to member": "Add role to member",
"Remove role from member": "Remove role from member",
"Remove member from guild": "Remove member from guild",
"List guild members": "List guild members",
"Rename channel": "Rename channel",
"Create channel": "Create channel",
"Delete channel": "Delete channel",
"Find channel": "Find channel",
"Remove ban from user": "Remove ban from user",
"Create guild role": "Create guild role",
"Delete guild role": "Delete guild role",
"Ban guild member": "Ban guild member",
"Custom API Call": "Custom API Call",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Send messages via bot to any channel or thread you want, with an optional file attachment.",
"Send a discord message via webhook": "Send a discord message via webhook",
"send a message to a channel asking for approval and wait for a response": "send a message to a channel asking for approval and wait for a response",
"Add Guild Member Role": "Add Guild Member Role",
"Remove Guild Member Role": "Remove Guild Member Role",
"Remove Guild Member": "Remove Guild Member",
"List Guild Members": "List Guild Members",
"rename a channel": "rename a channel",
"create a channel": "create a channel",
"delete a channel": "delete a channel",
"find a channel by name": "find a channel by name",
"Removes the guild ban from a user": "Removes the guild ban from a user",
"Creates a new role on the specified guild": "Creates a new role on the specified guild",
"Deletes the specified role from the specified guild": "Deletes the specified role from the specified guild",
"Bans a guild member": "Bans a guild member",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Channel": "Channel",
"Message": "Message",
"Attachments": "Attachments",
"Webhook URL": "Webhook URL",
"Name": "Name",
"Avatar URL": "Avatar URL",
"embeds": "embeds",
"Text to speech": "Text to speech",
"Guilds": "Guilds",
"User ID": "User ID",
"Roles": "Roles",
"Search": "Search",
"Unban Reason": "Unban Reason",
"Role Name": "Role Name",
"Role Color": "Role Color",
"Display Separated": "Display Separated",
"Mentionable": "Mentionable",
"Creation Reason": "Creation Reason",
"Deletion reason": "Deletion reason",
"Ban Reason": "Ban Reason",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"List of channels": "List of channels",
"Message content to send.": "Message content to send.",
"The avatar url for webhook": "The avatar url for webhook",
"Embeds to send along with the message": "Embeds to send along with the message",
"Robot reads the message": "Robot reads the message",
"The message you want to send": "The message you want to send",
"List of guilds": "List of guilds",
"The user id of the member": "The user id of the member",
"List of roles": "List of roles",
"Search for a member": "Search for a member",
"The new name of the channel": "The new name of the channel",
"The name of the new channel": "The name of the new channel",
"The name of the channel": "The name of the channel",
"The ID of the user": "The ID of the user",
"The reason for unbanning the user": "The reason for unbanning the user",
"The name of the role": "The name of the role",
"The RGB color of the role (may be better to set manually on the server)": "The RGB color of the role (may be better to set manually on the server)",
"Whether the role should be displayed separately in the sidebar": "Whether the role should be displayed separately in the sidebar",
"Whether the role can be mentioned by other users": "Whether the role can be mentioned by other users",
"The reason for creating the role": "The reason for creating the role",
"The reason for deleting the role": "The reason for deleting the role",
"The reason for banning the member": "The reason for banning the member",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"New message": "New message",
"New Member": "New Member",
"Triggers when a message is sent in a channel": "Triggers when a message is sent in a channel",
"Triggers when a new member joins a guild": "Triggers when a new member joins a guild",
"Limit": "Limit",
"Guild ID": "Guild ID",
"The number of messages to fetch": "The number of messages to fetch",
"The number of members to fetch (max 1000)": "The number of members to fetch (max 1000)",
"The ID of the Discord guild (server)": "The ID of the Discord guild (server)"
}

View File

@@ -0,0 +1,101 @@
{
"Discord": "Discord",
"Instant messaging and VoIP social platform": "Instant messaging and VoIP social platform",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n",
"Send Message with Bot": "Send Message with Bot",
"Send Message Webhook": "Send Message Webhook",
"Request Approval in a Channel": "Request Approval in a Channel",
"Add role to member": "Add role to member",
"Remove role from member": "Remove role from member",
"Remove member from guild": "Remove member from guild",
"List guild members": "List guild members",
"Rename channel": "Rename channel",
"Create channel": "Create channel",
"Delete channel": "Delete channel",
"Find channel": "Find channel",
"Remove ban from user": "Remove ban from user",
"Create guild role": "Create guild role",
"Delete guild role": "Delete guild role",
"Ban guild member": "Ban guild member",
"Custom API Call": "Custom API Call",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Send messages via bot to any channel or thread you want, with an optional file attachment.",
"Send a discord message via webhook": "Send a discord message via webhook",
"send a message to a channel asking for approval and wait for a response": "send a message to a channel asking for approval and wait for a response",
"Add Guild Member Role": "Add Guild Member Role",
"Remove Guild Member Role": "Remove Guild Member Role",
"Remove Guild Member": "Remove Guild Member",
"List Guild Members": "List Guild Members",
"rename a channel": "rename a channel",
"create a channel": "create a channel",
"delete a channel": "delete a channel",
"find a channel by name": "find a channel by name",
"Removes the guild ban from a user": "Removes the guild ban from a user",
"Creates a new role on the specified guild": "Creates a new role on the specified guild",
"Deletes the specified role from the specified guild": "Deletes the specified role from the specified guild",
"Bans a guild member": "Bans a guild member",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Channel": "Channel",
"Message": "Message",
"Attachments": "Attachments",
"Webhook URL": "Webhook URL",
"Name": "Name",
"Avatar URL": "Avatar URL",
"embeds": "embeds",
"Text to speech": "Text to speech",
"Guilds": "Guilds",
"User ID": "User ID",
"Roles": "Roles",
"Search": "Search",
"Unban Reason": "Unban Reason",
"Role Name": "Role Name",
"Role Color": "Role Color",
"Display Separated": "Display Separated",
"Mentionable": "Mentionable",
"Creation Reason": "Creation Reason",
"Deletion reason": "Deletion reason",
"Ban Reason": "Ban Reason",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"List of channels": "List of channels",
"Message content to send.": "Message content to send.",
"The avatar url for webhook": "The avatar url for webhook",
"Embeds to send along with the message": "Embeds to send along with the message",
"Robot reads the message": "Robot reads the message",
"The message you want to send": "The message you want to send",
"List of guilds": "List of guilds",
"The user id of the member": "The user id of the member",
"List of roles": "List of roles",
"Search for a member": "Search for a member",
"The new name of the channel": "The new name of the channel",
"The name of the new channel": "The name of the new channel",
"The name of the channel": "The name of the channel",
"The ID of the user": "The ID of the user",
"The reason for unbanning the user": "The reason for unbanning the user",
"The name of the role": "The name of the role",
"The RGB color of the role (may be better to set manually on the server)": "The RGB color of the role (may be better to set manually on the server)",
"Whether the role should be displayed separately in the sidebar": "Whether the role should be displayed separately in the sidebar",
"Whether the role can be mentioned by other users": "Whether the role can be mentioned by other users",
"The reason for creating the role": "The reason for creating the role",
"The reason for deleting the role": "The reason for deleting the role",
"The reason for banning the member": "The reason for banning the member",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"New message": "New message",
"New Member": "New Member",
"Triggers when a message is sent in a channel": "Triggers when a message is sent in a channel",
"Triggers when a new member joins a guild": "Triggers when a new member joins a guild",
"Limit": "Limit",
"Guild ID": "Guild ID",
"The number of messages to fetch": "The number of messages to fetch",
"The number of members to fetch (max 1000)": "The number of members to fetch (max 1000)",
"The ID of the Discord guild (server)": "The ID of the Discord guild (server)"
}

View File

@@ -0,0 +1,102 @@
{
"Instant messaging and VoIP social platform": "Instant messaging and VoIP social platform",
"\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n": "\nTo obtain a token, follow these steps:\n1. Go to https://discord.com/developers/applications\n2. Click on Application (or create one if you don't have one)\n3. Click on Bot\n4. Copy the token\n",
"Send Message with Bot": "Send Message with Bot",
"Send Message Webhook": "Send Message Webhook",
"Request Approval in a Channel": "Request Approval in a Channel",
"Add role to member": "Add role to member",
"Remove role from member": "Remove role from member",
"Remove member from guild": "Remove member from guild",
"List guild members": "List guild members",
"Rename channel": "Rename channel",
"Create channel": "Create channel",
"Delete channel": "Delete channel",
"Find channel": "Find channel",
"Remove ban from user": "Remove ban from user",
"Create guild role": "Create guild role",
"Delete guild role": "Delete guild role",
"Ban guild member": "Ban guild member",
"Custom API Call": "自定义 API 呼叫",
"Send messages via bot to any channel or thread you want, with an optional file attachment.": "Send messages via bot to any channel or thread you want, with an optional file attachment.",
"Send a discord message via webhook": "Send a discord message via webhook",
"send a message to a channel asking for approval and wait for a response": "send a message to a channel asking for approval and wait for a response",
"Add Guild Member Role": "Add Guild Member Role",
"Remove Guild Member Role": "Remove Guild Member Role",
"Remove Guild Member": "Remove Guild Member",
"List Guild Members": "List Guild Members",
"rename a channel": "rename a channel",
"create a channel": "create a channel",
"delete a channel": "delete a channel",
"find a channel by name": "find a channel by name",
"Removes the guild ban from a user": "Removes the guild ban from a user",
"Creates a new role on the specified guild": "Creates a new role on the specified guild",
"Deletes the specified role from the specified guild": "Deletes the specified role from the specified guild",
"Bans a guild member": "Bans a guild member",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Channel": "Channel",
"Message": "Message",
"Attachments": "Attachments",
"Webhook URL": "Webhook URL",
"Name": "名称",
"Avatar URL": "Avatar URL",
"embeds": "embeds",
"Text to speech": "Text to speech",
"Guilds": "Guilds",
"User ID": "User ID",
"Roles": "角色",
"Search": "Search",
"Unban Reason": "Unban Reason",
"Role Name": "角色名称",
"Role Color": "Role Color",
"Display Separated": "Display Separated",
"Mentionable": "Mentionable",
"Creation Reason": "Creation Reason",
"Deletion reason": "Deletion reason",
"Ban Reason": "Ban Reason",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Body": "正文内容",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"List of channels": "List of channels",
"Message content to send.": "Message content to send.",
"The avatar url for webhook": "The avatar url for webhook",
"Embeds to send along with the message": "Embeds to send along with the message",
"Robot reads the message": "Robot reads the message",
"The message you want to send": "The message you want to send",
"List of guilds": "List of guilds",
"The user id of the member": "The user id of the member",
"List of roles": "List of roles",
"Search for a member": "Search for a member",
"The new name of the channel": "The new name of the channel",
"The name of the new channel": "The name of the new channel",
"The name of the channel": "The name of the channel",
"The ID of the user": "The ID of the user",
"The reason for unbanning the user": "The reason for unbanning the user",
"The name of the role": "The name of the role",
"The RGB color of the role (may be better to set manually on the server)": "The RGB color of the role (may be better to set manually on the server)",
"Whether the role should be displayed separately in the sidebar": "Whether the role should be displayed separately in the sidebar",
"Whether the role can be mentioned by other users": "Whether the role can be mentioned by other users",
"The reason for creating the role": "The reason for creating the role",
"The reason for deleting the role": "The reason for deleting the role",
"The reason for banning the member": "The reason for banning the member",
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"GET": "获取",
"POST": "帖子",
"PATCH": "PATCH",
"PUT": "弹出",
"DELETE": "删除",
"HEAD": "黑色",
"New message": "New message",
"New Member": "New Member",
"Triggers when a message is sent in a channel": "Triggers when a message is sent in a channel",
"Triggers when a new member joins a guild": "Triggers when a new member joins a guild",
"Limit": "Limit",
"Guild ID": "Guild ID",
"The number of messages to fetch": "The number of messages to fetch",
"The number of members to fetch (max 1000)": "The number of members to fetch (max 1000)",
"The ID of the Discord guild (server)": "The ID of the Discord guild (server)"
}

View File

@@ -0,0 +1,85 @@
import { createCustomApiCallAction } from '@activepieces/pieces-common';
import { PieceAuth, createPiece } from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { discordAddRoleToMember } from './lib/actions/add-role-to-member';
import { discordFindChannel } from './lib/actions/find-channel';
import { discordFindGuildMemberByUsername } from './lib/actions/find-guild-member';
import { discordRemoveMemberFromGuild } from './lib/actions/remove-member-from-guild';
import { discordRemoveRoleFromMember } from './lib/actions/remove-role-from-member';
import { discordRenameChannel } from './lib/actions/rename-channel';
import { discordCreateChannel } from './lib/actions/create-channel';
import { discordDeleteChannel } from './lib/actions/delete-channel';
import { discordSendApprovalMessage } from './lib/actions/send-approval-message';
import { discordSendMessageWebhook } from './lib/actions/send-message-webhook';
import { newMessage } from './lib/triggers/new-message';
import { discordRemoveBanFromUser } from './lib/actions/remove-ban-from-user';
import { discordCreateGuildRole } from './lib/actions/create-guild-role';
import { discordDeleteGuildRole } from './lib/actions/delete-guild-role';
import { discordBanGuildMember } from './lib/actions/ban-a-guild-member';
import { newMember } from './lib/triggers/new-member';
import { sendMessageWithBot } from './lib/actions/send-message-with-bot'
const markdown = `
To obtain a token, follow these steps:
1. Go to https://discord.com/developers/applications
2. Click on Application (or create one if you don't have one)
3. Click on Bot
4. Copy the token
`;
export const discordAuth = PieceAuth.SecretText({
displayName: 'Bot Token',
description: markdown,
required: true,
});
export const discord = createPiece({
displayName: 'Discord',
description: 'Instant messaging and VoIP social platform',
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/discord.png',
categories: [PieceCategory.COMMUNICATION],
auth: discordAuth,
actions: [
sendMessageWithBot,
discordSendMessageWebhook,
discordSendApprovalMessage,
discordAddRoleToMember,
discordRemoveRoleFromMember,
discordRemoveMemberFromGuild,
discordFindGuildMemberByUsername,
discordRenameChannel,
discordCreateChannel,
discordDeleteChannel,
discordFindChannel,
discordRemoveBanFromUser,
discordCreateGuildRole,
discordDeleteGuildRole,
discordBanGuildMember,
createCustomApiCallAction({
auth:discordAuth,
baseUrl: () => {
return 'https://discord.com/api/v9';
},
authMapping: async (auth) => {
return {
Authorization: `Bot ${auth.secret_text}`,
};
},
}),
],
authors: [
'creed983',
'TaskMagicKyle',
'karimkhaleel',
'Abdallah-Alwarawreh',
'kishanprmr',
'MoShizzle',
'AbdulTheActivePiecer',
'khaledmashaly',
'abuaboud',
'tintinthedev',
'AshotZaqoyan'
],
triggers: [newMessage, newMember],
});

View File

@@ -0,0 +1,41 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
export const discordAddRoleToMember = createAction({
auth: discordAuth,
name: 'add_role_to_member',
description: 'Add Guild Member Role',
displayName: 'Add role to member',
props: {
guild_id: discordCommon.guilds,
user_id: Property.ShortText({
displayName: 'User ID',
description: 'The user id of the member',
required: true,
}),
role_id: discordCommon.roles,
},
async run(configValue) {
const request: HttpRequest<any> = {
method: HttpMethod.PUT,
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/members/${configValue.propsValue.user_id}/roles/${configValue.propsValue.role_id}`,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
},
};
const res = await httpClient.sendRequest<never>(request);
return {
success: res.status === 204,
};
},
});

View File

@@ -0,0 +1,49 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
export const discordBanGuildMember = createAction({
auth: discordAuth,
name: 'ban_guild_member',
description: 'Bans a guild member',
displayName: 'Ban guild member',
props: {
guild_id: discordCommon.guilds,
user_id: Property.ShortText({
displayName: 'User ID',
description: 'The user id of the member',
required: true,
}),
ban_reason: Property.ShortText({
displayName: 'Ban Reason',
description: 'The reason for banning the member',
required: false,
}),
},
async run(configValue) {
const request: HttpRequest<any> = {
method: HttpMethod.PUT,
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/bans/${configValue.propsValue.user_id}`,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
'X-Audit-Log-Reason': `${configValue.propsValue.ban_reason}`,
},
body: {
reason: `${configValue.propsValue.ban_reason}`,
},
};
const res = await httpClient.sendRequest<never>(request);
return {
success: res.status === 204,
};
},
});

View File

@@ -0,0 +1,47 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
export const discordCreateChannel = createAction({
auth: discordAuth,
name: 'create_channel',
description: 'create a channel',
displayName: 'Create channel',
props: {
guild_id: discordCommon.guilds,
name: Property.ShortText({
displayName: 'Name',
description: 'The name of the new channel',
required: true,
}),
},
async run(configValue) {
const request: HttpRequest = {
method: HttpMethod.POST,
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/channels`,
body: {
name: configValue.propsValue.name,
},
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
},
};
const res = await httpClient.sendRequest(request);
return {
success: res.status === 201,
channel: {
id: res.body.id,
name: res.body.name,
},
};
},
});

View File

@@ -0,0 +1,71 @@
import {
HttpMethod,
HttpRequest,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { createAction, Property } from '@activepieces/pieces-framework';
import { discordCommon } from '../common';
export const discordCreateGuildRole = createAction({
auth: discordAuth,
name: 'createGuildRole',
displayName: 'Create guild role',
description: 'Creates a new role on the specified guild',
props: {
guild_id: discordCommon.guilds,
role_name: Property.ShortText({
displayName: 'Role Name',
description: 'The name of the role',
required: true,
}),
role_color: Property.ShortText({
displayName: 'Role Color',
description: `The RGB color of the role (may be better to set manually on the server)`,
required: false,
}),
display_separated: Property.Checkbox({
displayName: 'Display Separated',
description:
'Whether the role should be displayed separately in the sidebar',
required: false,
}),
role_mentionable: Property.Checkbox({
displayName: 'Mentionable',
description: 'Whether the role can be mentioned by other users',
required: false,
}),
creation_reason: Property.ShortText({
displayName: 'Creation Reason',
description: 'The reason for creating the role',
required: false,
}),
},
async run(configValue) {
const request: HttpRequest = {
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/roles`,
method: HttpMethod.POST,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
'X-Audit-Log-Reason': `${configValue.propsValue.creation_reason}`,
},
body: {
name: configValue.propsValue.role_name,
color: configValue.propsValue.role_color,
hoist: configValue.propsValue.display_separated,
mentionable: configValue.propsValue.role_mentionable,
},
};
const res = await httpClient.sendRequest(request);
return {
success: res.status === 201,
role: {
id: res.body.id,
name: res.body.name,
},
};
},
});

View File

@@ -0,0 +1,33 @@
import {
HttpMethod,
HttpRequest,
httpClient,
} from '@activepieces/pieces-common';
import { createAction } from '@activepieces/pieces-framework';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
export const discordDeleteChannel = createAction({
auth: discordAuth,
name: 'delete_channel',
description: 'delete a channel',
displayName: 'Delete channel',
props: {
channel_id: discordCommon.channel,
},
async run(configValue) {
const request: HttpRequest = {
method: HttpMethod.DELETE,
url: `https://discord.com/api/v9/channels/${configValue.propsValue.channel_id}`,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
},
};
const res = await httpClient.sendRequest<never>(request);
return res.body;
},
});

View File

@@ -0,0 +1,41 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { discordCommon } from '../common';
import { discordAuth } from '../../index';
import {
httpClient,
HttpMethod,
HttpRequest,
} from '@activepieces/pieces-common';
export const discordDeleteGuildRole = createAction({
auth: discordAuth,
name: 'deleteGuildRole',
displayName: 'Delete guild role',
description: 'Deletes the specified role from the specified guild',
props: {
guild_id: discordCommon.guilds,
role_id: discordCommon.roles,
deletion_reason: Property.ShortText({
displayName: 'Deletion reason',
description: 'The reason for deleting the role',
required: false,
}),
},
async run(configValue) {
const request: HttpRequest = {
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/roles/${configValue.propsValue.role_id}`,
method: HttpMethod.DELETE,
headers: {
Authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
'X-Audit-Log-Reason': `${configValue.propsValue.deletion_reason}`,
},
};
const res = await httpClient.sendRequest(request);
return {
success: res.status === 204,
};
},
});

View File

@@ -0,0 +1,46 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
import { Channel } from '../common/models';
export const discordFindChannel = createAction({
auth: discordAuth,
name: 'find_channel',
description: 'find a channel by name',
displayName: 'Find channel',
props: {
guild_id: discordCommon.guilds,
name: Property.ShortText({
displayName: 'Name',
description: 'The name of the channel',
required: true,
}),
},
async run(configValue) {
const request: HttpRequest<any> = {
method: HttpMethod.GET,
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/channels`,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
},
};
const res = await httpClient.sendRequest<Channel[]>(request);
const channel = res.body.find(
(channel) => channel.name === configValue.propsValue.name
);
return {
success: res.status === 200 && !!channel,
channel_id: channel?.id,
};
},
});

View File

@@ -0,0 +1,59 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
import { Member } from '../common/models';
export const discordFindGuildMemberByUsername = createAction({
auth: discordAuth,
name: 'list_guild_members',
description: 'List Guild Members',
displayName: 'List guild members',
props: {
guild_id: discordCommon.guilds,
shortText: Property.ShortText({
displayName: 'Search',
description: 'Search for a member',
required: true,
}),
},
async run(configValue) {
const request: HttpRequest<any> = {
method: HttpMethod.GET,
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/members`,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
},
};
const res = await httpClient.sendRequest<Member[]>(request);
const options: { options: { value: string; label: string }[] } = {
options: [],
};
if (res.body.length === 0)
return {
disabled: true,
options: [],
placeholder: 'No members found, please add the bot to a guild first',
};
await Promise.all(
res.body.map(async (member) => {
options.options.push({
value: member.user.id,
label: member.user.username,
});
})
);
return options;
},
});

View File

@@ -0,0 +1,48 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { discordCommon } from '../common';
import { discordAuth } from '../../index';
import {
httpClient,
HttpMethod,
HttpRequest,
} from '@activepieces/pieces-common';
export const discordRemoveBanFromUser = createAction({
auth: discordAuth,
name: 'remove_ban_from_user',
displayName: 'Remove ban from user',
description: 'Removes the guild ban from a user',
props: {
guild_id: discordCommon.guilds,
user_id: Property.ShortText({
displayName: 'User ID',
description: 'The ID of the user',
required: true,
}),
unban_reason: Property.ShortText({
displayName: 'Unban Reason',
description: 'The reason for unbanning the user',
required: false,
}),
},
async run(configValue) {
const request: HttpRequest<any> = {
method: HttpMethod.DELETE,
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/bans/${configValue.propsValue.user_id}`,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
'X-Audit-Log-Reason': `${configValue.propsValue.unban_reason}`,
},
body: {
reason: `${configValue.propsValue.unban_reason}`,
},
};
const res = await httpClient.sendRequest<never>(request);
return {
success: res.status === 204,
};
},
});

View File

@@ -0,0 +1,40 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
export const discordRemoveMemberFromGuild = createAction({
auth: discordAuth,
name: 'remove_member_from_guild',
description: 'Remove Guild Member',
displayName: 'Remove member from guild',
props: {
guild_id: discordCommon.guilds,
user_id: Property.ShortText({
displayName: 'User ID',
description: 'The user id of the member',
required: true,
}),
},
async run(configValue) {
const request: HttpRequest<any> = {
method: HttpMethod.DELETE,
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/members/${configValue.propsValue.user_id}`,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
},
};
const res = await httpClient.sendRequest<never>(request);
return {
success: res.status === 204,
};
},
});

View File

@@ -0,0 +1,41 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
export const discordRemoveRoleFromMember = createAction({
auth: discordAuth,
name: 'remove_role_from_member',
description: 'Remove Guild Member Role',
displayName: 'Remove role from member',
props: {
guild_id: discordCommon.guilds,
user_id: Property.ShortText({
displayName: 'User ID',
description: 'The user id of the member',
required: true,
}),
role_id: discordCommon.roles,
},
async run(configValue) {
const request: HttpRequest<any> = {
method: HttpMethod.DELETE,
url: `https://discord.com/api/v9/guilds/${configValue.propsValue.guild_id}/members/${configValue.propsValue.user_id}/roles/${configValue.propsValue.role_id}`,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
},
};
const res = await httpClient.sendRequest<never>(request);
return {
success: res.status === 204,
};
},
});

View File

@@ -0,0 +1,43 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
export const discordRenameChannel = createAction({
auth: discordAuth,
name: 'rename_channel',
description: 'rename a channel',
displayName: 'Rename channel',
props: {
channel_id: discordCommon.channel,
name: Property.ShortText({
displayName: 'Name',
description: 'The new name of the channel',
required: true,
}),
},
async run(configValue) {
const request: HttpRequest<any> = {
method: HttpMethod.PATCH,
url: `https://discord.com/api/v9/channels/${configValue.propsValue.channel_id}`,
body: {
name: configValue.propsValue.name,
},
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'application/json',
},
};
const res = await httpClient.sendRequest<never>(request);
return {
success: res.status === 204,
};
},
});

View File

@@ -0,0 +1,82 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { ExecutionType, PauseType } from '@activepieces/shared';
import { discordCommon } from '../common';
export const discordSendApprovalMessage = createAction({
auth: discordAuth,
name: 'request_approval_message',
description:
'send a message to a channel asking for approval and wait for a response',
displayName: 'Request Approval in a Channel',
props: {
content: Property.LongText({
displayName: 'Message',
description: 'The message you want to send',
required: true,
}),
channel: discordCommon.channel,
},
async run(ctx) {
if (ctx.executionType === ExecutionType.BEGIN) {
ctx.run.pause({
pauseMetadata: {
type: PauseType.WEBHOOK,
response: {},
},
});
const approvalLink = ctx.generateResumeUrl({
queryParams: { action: 'approve' },
})
const disapprovalLink = ctx.generateResumeUrl({
queryParams: { action: 'disapprove' },
})
const request: HttpRequest<any> = {
method: HttpMethod.POST,
url: `https://discord.com/api/v9/channels/${ctx.propsValue.channel}/messages`,
body: {
content: ctx.propsValue.content,
components: [
{
type: 1,
components: [
{
type: 2,
label: 'Approve',
style: 5,
url: approvalLink,
},
{
type: 2,
label: 'Disapprove',
style: 5,
url: disapprovalLink,
},
],
},
],
},
headers: {
authorization: `Bot ${ctx.auth.secret_text}`,
'Content-Type': 'application/json',
},
};
await httpClient.sendRequest<never>(request);
return {};
} else {
return {
approved: ctx.resumePayload.queryParams['action'] === 'approve',
};
}
},
});

View File

@@ -0,0 +1,63 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
export const discordSendMessageWebhook = createAction({
name: 'send_message_webhook',
description: 'Send a discord message via webhook',
displayName: 'Send Message Webhook',
requireAuth: false,
props: {
webhook_url: Property.ShortText({
displayName: 'Webhook URL',
required: true,
}),
username: Property.ShortText({
displayName: 'Name',
required: false,
}),
content: Property.LongText({
displayName: 'Message',
required: true,
}),
avatar_url: Property.ShortText({
displayName: 'Avatar URL',
description: 'The avatar url for webhook',
required: false,
}),
embeds: Property.Json({
displayName: 'embeds',
description: 'Embeds to send along with the message',
required: false,
defaultValue: [],
}),
tts: Property.Checkbox({
displayName: 'Text to speech',
description: 'Robot reads the message',
required: false,
}),
},
async run(configValue) {
const request: HttpRequest<{
content: string;
username: string | undefined;
avatar_url: string | undefined;
tts: boolean | undefined;
embeds: Record<string, unknown> | undefined;
}> = {
method: HttpMethod.POST,
url: configValue.propsValue['webhook_url'],
body: {
username: configValue.propsValue['username'],
content: configValue.propsValue['content'],
avatar_url: configValue.propsValue['avatar_url'],
tts: configValue.propsValue['tts'],
embeds: configValue.propsValue['embeds'],
},
};
return await httpClient.sendRequest<never>(request);
},
});

View File

@@ -0,0 +1,71 @@
import { ApFile, createAction, Property } from '@activepieces/pieces-framework';
import {
HttpRequest,
HttpMethod,
httpClient,
} from '@activepieces/pieces-common';
import { discordAuth } from '../../index';
import { discordCommon } from '../common';
import FormData from 'form-data';
interface FileObject {
file:ApFile
}
export const sendMessageWithBot = createAction({
name: 'sendMessageWithBot',
auth:discordAuth,
displayName: 'Send Message with Bot',
description:
'Send messages via bot to any channel or thread you want, with an optional file attachment.',
props: {
channel_id: discordCommon.channel,
message: Property.LongText({
displayName: 'Message',
description: 'Message content to send.',
required: false,
}),
files: Property.Array({
displayName: 'Attachments',
properties: {
file: Property.File({
displayName: 'File',
description: 'Optional file to send with the message.',
required: false,
}),
},
required: false,
defaultValue: [],
}),
},
async run(configValue) {
const channelId = configValue.propsValue.channel_id;
const message = configValue.propsValue.message;
const files = configValue.propsValue.files as FileObject[] ?? [];
const formData = new FormData();
formData.append('content', message);
if (files && files.length > 0) {
files.forEach((fileObj, index) => {
const file = fileObj.file;
formData.append(`files[${index}]`, file.data, file.filename);
});
}
const request: HttpRequest = {
method: HttpMethod.POST,
url: `https://discord.com/api/v10/channels/${channelId}/messages`,
headers: {
authorization: `Bot ${configValue.auth.secret_text}`,
'Content-Type': 'multipart/form-data',
},
body: formData,
};
const res = await httpClient.sendRequest<never>(request);
return res.body;
}
});

View File

@@ -0,0 +1,177 @@
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
import { Channel, Guild } from '../common/models';
import { Property } from '@activepieces/pieces-framework';
import { discordAuth } from '../..';
export interface Member {
user: {
id: string;
username: string;
};
}
export const discordCommon = {
channel: Property.Dropdown({
auth: discordAuth,
displayName: 'Channel',
description: 'List of channels',
required: true,
refreshers: [],
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your bot first',
};
}
const request = {
method: HttpMethod.GET,
url: 'https://discord.com/api/v9/users/@me/guilds',
headers: {
Authorization: 'Bot ' + auth.secret_text,
},
};
const res = await httpClient.sendRequest<Guild[]>(request);
const options: { options: { value: string; label: string }[] } = {
options: [],
};
if (res.body.length === 0)
return {
disabled: true,
options: [],
placeholder: 'No guilds found, please add the bot to a guild first',
};
await Promise.all(
res.body.map(async (guild) => {
const requestChannels = {
method: HttpMethod.GET,
url: 'https://discord.com/api/v9/guilds/' + guild.id + '/channels',
headers: {
Authorization: 'Bot ' + auth.secret_text,
},
};
const resChannels = await httpClient.sendRequest<Channel[]>(
requestChannels
);
resChannels.body.forEach((channel) => {
options.options.push({
value: channel.id,
label: channel.name,
});
});
})
);
return options;
},
}),
roles: Property.Dropdown({
auth: discordAuth,
displayName: 'Roles',
description: 'List of roles',
required: true,
refreshers: ['guild_id'],
options: async ({ auth, guild_id }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your bot first',
};
}
if (!guild_id) {
return {
disabled: true,
options: [],
placeholder: 'Please select a guild first',
};
}
const request = {
method: HttpMethod.GET,
url: `https://discord.com/api/v9/guilds/${guild_id}/roles`,
headers: {
Authorization: 'Bot ' + auth.secret_text,
},
};
const res = await httpClient.sendRequest<Guild[]>(request);
const options: { options: { value: string; label: string }[] } = {
options: [],
};
if (res.body.length === 0)
return {
disabled: true,
options: [],
placeholder: 'No roles found, please add the bot to a guild first',
};
await Promise.all(
res.body.map(async (role) => {
options.options.push({
value: role.id,
label: role.name,
});
})
);
return options;
},
}),
guilds: Property.Dropdown({
auth: discordAuth,
displayName: 'Guilds',
description: 'List of guilds',
required: true,
refreshers: [],
options: async ({ auth }) => {
if (!auth) {
return {
disabled: true,
options: [],
placeholder: 'Please connect your bot first',
};
}
const request = {
method: HttpMethod.GET,
url: 'https://discord.com/api/v9/users/@me/guilds',
headers: {
Authorization: 'Bot ' + auth.secret_text,
},
};
const res = await httpClient.sendRequest<Guild[]>(request);
const options: { options: { value: string; label: string }[] } = {
options: [],
};
if (res.body.length === 0)
return {
disabled: true,
options: [],
placeholder: 'No guilds found, please add the bot to a guild first',
};
await Promise.all(
res.body.map(async (guild) => {
options.options.push({
value: guild.id,
label: guild.name,
});
})
);
return options;
},
}),
};

View File

@@ -0,0 +1,42 @@
export interface Guild {
id: string;
name: string;
icon: string | null;
owner: boolean;
permissions: string;
features: string[];
}
export interface Channel {
id: string;
name: string;
}
export interface Member {
user: {
id: string;
username: string;
};
}
export interface Message {
id: string;
type: number;
content: string;
channel_id: string;
author: {
id: string;
username: string;
};
attachments: any;
embeds: any;
mentions: any;
mention_roles: any;
pinned: boolean;
mention_everyone: boolean;
tts: boolean;
timestamp: string;
edited_timestamp: string | null;
flags: number;
components: any;
}

View File

@@ -0,0 +1,35 @@
---
title: 'Discord'
description: ''
---
## Obtain Webhook URL for Sending Message
1. Go to the Discord server where you want to add the webhook.
2. Click on the server settings icon (it looks like a gear).
3. Scroll down to the "Integrations" section and click on the "Webhooks".
4. Fill in the name and avatar for your webhook, and select the channel you want the webhook to post to.
5. Click on the "Create" button.
6. **Copy the webhook URL** that is generated. This is the URL you will use to send messages to the Discord channel through your bot.
7. **Make sure to keep the webhook URL private and only share it with trusted parties**.
8. Once you have the webhook URL you can use it in activepieces.
## Options
Username (Optional): The display name for the webhook.
Content: The message content to send.
Avatar_url (Optional): The avatar url for the webhook.
Embeds (Optional): Embeds to send with the webhook message, please refer to [this](https://birdie0.github.io/discord-webhooks-guide/structure/username.html).
TTS (Optional): Make a robotic voice to read the message out loud.
---
## Triggers
TRIGGERS
---
## Actions
ACTIONS

View File

@@ -0,0 +1,115 @@
import {
DedupeStrategy,
HttpMethod,
HttpRequest,
Polling,
httpClient,
pollingHelper,
} from '@activepieces/pieces-common';
import {
AppConnectionValueForAuthProperty,
createTrigger,
Property,
TriggerStrategy,
} from '@activepieces/pieces-framework';
import dayjs from 'dayjs';
import { discordAuth } from '../..';
import { discordCommon } from '../common';
interface Member {
user: {
id: string;
username: string;
discriminator: string;
avatar: string | null;
};
joined_at: string;
}
const polling: Polling<AppConnectionValueForAuthProperty<typeof discordAuth>, { guildId: string | undefined; limit: number }> =
{
strategy: DedupeStrategy.TIMEBASED,
items: async ({ auth, propsValue: { guildId, limit } }) => {
if (!guildId) return [];
const request: HttpRequest = {
method: HttpMethod.GET,
url: `https://discord.com/api/v9/guilds/${guildId}/members?limit=${limit}`,
headers: {
Authorization: 'Bot ' + auth.secret_text,
},
};
const res = await httpClient.sendRequest<Member[]>(request);
const items = res.body;
return items.map((item) => ({
epochMilliSeconds: dayjs(item.joined_at).valueOf(),
data: item,
}));
},
};
export const newMember = createTrigger({
auth: discordAuth,
name: 'new_member',
displayName: 'New Member',
description: 'Triggers when a new member joins a guild',
type: TriggerStrategy.POLLING,
props: {
limit: Property.Number({
displayName: 'Limit',
description: 'The number of members to fetch (max 1000)',
required: false,
defaultValue: 50,
}),
guildId: Property.ShortText({
displayName: 'Guild ID',
description: 'The ID of the Discord guild (server)',
required: true,
}),
},
sampleData: {},
onEnable: async (context) => {
await pollingHelper.onEnable(polling, {
auth: context.auth,
store: context.store,
propsValue: {
guildId: context.propsValue.guildId,
limit: context.propsValue.limit ?? 50,
},
});
},
onDisable: async (context) => {
await pollingHelper.onDisable(polling, {
auth: context.auth,
store: context.store,
propsValue: {
guildId: context.propsValue.guildId,
limit: context.propsValue.limit ?? 50,
},
});
},
run: async (context) => {
return await pollingHelper.poll(polling, {
auth: context.auth,
store: context.store,
propsValue: {
guildId: context.propsValue.guildId,
limit: context.propsValue.limit ?? 50,
},
files: context.files,
});
},
test: async (context) => {
return await pollingHelper.test(polling, {
auth: context.auth,
store: context.store,
propsValue: {
guildId: context.propsValue.guildId,
limit: context.propsValue.limit ?? 50,
},
files: context.files,
});
},
});

View File

@@ -0,0 +1,107 @@
import {
DedupeStrategy,
HttpMethod,
HttpRequest,
Polling,
httpClient,
pollingHelper,
} from '@activepieces/pieces-common';
import {
AppConnectionValueForAuthProperty,
createTrigger,
Property,
TriggerStrategy,
} from '@activepieces/pieces-framework';
import dayjs from 'dayjs';
import { discordAuth } from '../..';
import { discordCommon } from '../common';
import { Message } from '../common/models';
const polling: Polling<AppConnectionValueForAuthProperty<typeof discordAuth>, { channel: string | undefined; limit: number }> =
{
strategy: DedupeStrategy.TIMEBASED,
items: async ({ auth, propsValue: { channel, limit } }) => {
if (channel === undefined) return [];
const request: HttpRequest = {
method: HttpMethod.GET,
url:
'https://discord.com/api/v9/channels/' +
channel +
'/messages?limit=' +
limit,
headers: {
Authorization: 'Bot ' + auth.secret_text,
},
};
const res = await httpClient.sendRequest<Message[]>(request);
const items = res.body;
return items.map((item) => ({
epochMilliSeconds: dayjs(item.timestamp).valueOf(),
data: item,
}));
},
};
export const newMessage = createTrigger({
auth: discordAuth,
name: 'new_message',
displayName: 'New message',
description: 'Triggers when a message is sent in a channel',
type: TriggerStrategy.POLLING,
props: {
limit: Property.Number({
displayName: 'Limit',
description: 'The number of messages to fetch',
required: false,
defaultValue: 50,
}),
channel: discordCommon.channel,
},
sampleData: {},
onEnable: async (context) => {
await pollingHelper.onEnable(polling, {
auth: context.auth,
store: context.store,
propsValue: {
channel: context.propsValue.channel,
limit: context.propsValue.limit ?? 50,
},
});
},
onDisable: async (context) => {
await pollingHelper.onDisable(polling, {
auth: context.auth,
store: context.store,
propsValue: {
channel: context.propsValue.channel,
limit: context.propsValue.limit ?? 50,
},
});
},
run: async (context) => {
return await pollingHelper.poll(polling, {
auth: context.auth,
store: context.store,
propsValue: {
channel: context.propsValue.channel,
limit: context.propsValue.limit ?? 50,
},
files: context.files,
});
},
test: async (context) => {
return await pollingHelper.test(polling, {
auth: context.auth,
store: context.store,
propsValue: {
channel: context.propsValue.channel,
limit: context.propsValue.limit ?? 50,
},
files: context.files,
});
},
});

View File

@@ -0,0 +1,16 @@
{
"extends": "../../../../tsconfig.base.json",
"files": [],
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
}
],
"compilerOptions": {
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true
}
}

View File

@@ -0,0 +1,11 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "commonjs",
"outDir": "../../../../dist/out-tsc",
"declaration": true,
"types": ["node"]
},
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"],
"include": ["src/**/*.ts"]
}