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,33 @@
{
"extends": [
"../../../../.eslintrc.base.json"
],
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts",
"*.tsx",
"*.js",
"*.jsx"
],
"rules": {}
},
{
"files": [
"*.ts",
"*.tsx"
],
"rules": {}
},
{
"files": [
"*.js",
"*.jsx"
],
"rules": {}
}
]
}

View File

@@ -0,0 +1,7 @@
# pieces-reddit
This library was generated with [Nx](https://nx.dev).
## Building
Run `nx build pieces-reddit` to build the library.

View File

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

View File

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

View File

@@ -0,0 +1,77 @@
{
"Interact with Reddit - fetch and submit posts.": "Interagiere mit Reddit - hole und sende Beiträge.",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nUm Ihre Reddit API-Zugangsdaten zu erhalten:\n. Gehe zu https://www.reddit.com/prefs/apps.\n2. Klicken Sie unten auf \"Erstelle eine weitere App...\".\n3. Wählen Sie \"script\" als App-Typ.\n4. Füllen Sie die erforderlichen Informationen ein:\n - Name: Ihr App-Name\n - Beschreibung: Kurze Beschreibung\n - über Url: Kann leer gelassen werden\n - Weiterleitung uri: wie im Redirect URL-Feld\nangezeigt. Klicke auf \"App erstellen\".\n6. Beachte die Client-ID (unter dem App-Namen) und das Client-Geheimnis. \n",
"Retrieve Post": "Beitrag abrufen",
"Get Post Details": "Beitragsdetails abrufen",
"Create Post": "Beitrag erstellen",
"Create Comment": "Kommentar erstellen",
"Fetch Post Comments": "Beitragskommentare holen",
"Edit Post": "Beitrag bearbeiten",
"Edit Comment": "Kommentar bearbeiten",
"Delete Post": "Beitrag löschen",
"Delete Comment": "Kommentar löschen",
"Custom API Call": "Eigener API-Aufruf",
"Fetch top posts in a subreddit with optional size limit.": "Top-Beiträge in einem Subreddit mit optionalem Größenlimit abrufen.",
"Fetch detailed information about a specific Reddit post using its ID.": "Rufe detaillierte Informationen über einen bestimmten Reddit Beitrag mit seiner ID ab.",
"Submit a new self (text) post to a subreddit.": "Senden Sie einen neuen selbst (Text) Beitrag an ein subreddit.",
"Comment on a Reddit post or reply to a comment.": "Kommentar zu einem Reddit Beitrag oder Antwort auf einen Kommentar.",
"Fetch comments from a specific Reddit post.": "Lade Kommentare von einem bestimmten Reddit-Beitrag ab.",
"Edits the content of an existing Reddit post.": "Bearbeitet den Inhalt eines vorhandenen Reddit-Beitrags.",
"Edits the content of an existing Reddit comment.": "Bearbeitet den Inhalt eines vorhandenen Reddit-Kommentars.",
"Delete a specific Reddit post by ID.": "Löschen Sie einen bestimmten Reddit Beitrag per ID.",
"Delete a specific Reddit comment by ID.": "Löschen Sie einen bestimmten Reddit-Kommentar per ID.",
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
"Post Category": "Post-Kategorie",
"Subreddit": "Subreddit",
"Number of Posts": "Anzahl der Beiträge",
"Post ID": "Post-ID",
"Title": "Titel",
"Content": "Inhalt",
"Parent ID": "Eltern-ID",
"Comment Text": "Kommentartext",
"Sort By": "Sortieren nach",
"Limit": "Limit",
"New Post Content": "Neuer Beitragsinhalt",
"Comment ID": "Kommentar-ID",
"New Comment Content": "Neuer Kommentar-Inhalt",
"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)",
"Select the category of posts to retrieve": "Wählen Sie die Kategorie der zu empfangenen Beiträge",
"The subreddit to fetch posts from": "Das Subreddit zum Abrufen von Beiträgen",
"Number of posts to fetch (max 100)": "Anzahl der zu holenden Beiträge (max 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "Die ID des Reddit-Beitrags (z.B. \"t3_abc123\" oder \"abc123\")",
"The subreddit to post in (without r/).": "Das Subreddit, in das gepostet wird (ohne r/).",
"Title of the Reddit post.": "Titel des Reddit Beitrags.",
"Text content of the post.": "Text Inhalt des Beitrags.",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "ID des Posts (t3_*) oder Kommentar (t1_*) zu antworten.",
"Text of the comment.": "Text des Kommentars.",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "Die ID des Reddit-Beitrags (z.B. \"abc123\" oder \"t3_abc123\").",
"Sorting method for comments": "Sortiermethode für Kommentare",
"Maximum number of top-level comments to fetch": "Maximale Anzahl von Kommentaren auf oberster Ebene",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "ID des zu bearbeitenden Reddit-Beitrags (z.B. \"abc123\" oder \"t3_abc123\").",
"Updated text content for the post.": "Aktualisierte Textinhalt für den Beitrag.",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "ID des zu bearbeitenden Reddit-Kommentars (z.B. \"def456\" oder \"t1_def456\").",
"Updated text content for the comment.": "Aktualisierte Textinhalt für den Kommentar.",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "ID des zu löschenden Reddit-Beitrags (z.B. \"abc123\" oder \"t3_abc123\").",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "ID des zu löschenden Reddit-Kommentars (z.B. \"def456\" oder \"t1_def456\").",
"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..",
"Hot": "Heiß",
"New": "Neu",
"Top": "Oben",
"Rising": "Steigend",
"Controversial": "Kontroversen",
"Best": "Beste",
"Old": "Alt",
"GET": "ERHALTEN",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "LÖSCHEN",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,77 @@
{
"Interact with Reddit - fetch and submit posts.": "Interactuar con Reddit - buscar y enviar mensajes.",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n",
"Retrieve Post": "Recuperar mensaje",
"Get Post Details": "Obtener detalles del post",
"Create Post": "Crear publicación",
"Create Comment": "Crear comentario",
"Fetch Post Comments": "Obtener comentarios del post",
"Edit Post": "Editar Post",
"Edit Comment": "Editar comentario",
"Delete Post": "Eliminar mensaje",
"Delete Comment": "Eliminar comentario",
"Custom API Call": "Llamada API personalizada",
"Fetch top posts in a subreddit with optional size limit.": "Obtener los mensajes superiores en un subreddit con límite de tamaño opcional.",
"Fetch detailed information about a specific Reddit post using its ID.": "Obtener información detallada acerca de un post específico de Reddit usando su ID.",
"Submit a new self (text) post to a subreddit.": "Enviar una nueva publicación (texto) a un subreddit.",
"Comment on a Reddit post or reply to a comment.": "Comente una publicación de Reddit o responda a un comentario.",
"Fetch comments from a specific Reddit post.": "Obtener comentarios de una publicación específica de Reddit.",
"Edits the content of an existing Reddit post.": "Edita el contenido de una publicación existente de Reddit.",
"Edits the content of an existing Reddit comment.": "Edita el contenido de un comentario existente de Reddit.",
"Delete a specific Reddit post by ID.": "Eliminar un mensaje específico de Reddit por ID.",
"Delete a specific Reddit comment by ID.": "Eliminar un comentario específico de Reddit por ID.",
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
"Post Category": "Categoría del post",
"Subreddit": "Subreddit",
"Number of Posts": "Número de entradas",
"Post ID": "ID del post",
"Title": "Título",
"Content": "Contenido",
"Parent ID": "ID padre",
"Comment Text": "Comentario",
"Sort By": "Ordenar por",
"Limit": "Límite",
"New Post Content": "Nuevo contenido del post",
"Comment ID": "Comentario ID",
"New Comment Content": "Nuevo contenido del comentario",
"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)",
"Select the category of posts to retrieve": "Seleccione la categoría de publicaciones a recuperar",
"The subreddit to fetch posts from": "El subreddit para obtener mensajes de",
"Number of posts to fetch (max 100)": "Número de publicaciones a buscar (máx. 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "El ID de la publicación de Reddit (por ejemplo, \"t3_abc123\" o \"abc123\")",
"The subreddit to post in (without r/).": "El subreddit para publicar (sin r/).",
"Title of the Reddit post.": "Título de la publicación de Reddit.",
"Text content of the post.": "Contenido de texto del mensaje.",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "ID de la entrada (t3_*) o comentario (t1_*) para responder.",
"Text of the comment.": "Texto del comentario.",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "El ID de la publicación de Reddit (por ejemplo, \"abc123\" o \"t3_abc123\").",
"Sorting method for comments": "Método de ordenación de comentarios",
"Maximum number of top-level comments to fetch": "Número máximo de comentarios de nivel superior a buscar",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "ID de la publicación de Reddit a editar (por ejemplo, \"abc123\" o \"t3_abc123\").",
"Updated text content for the post.": "Contenido de texto actualizado para la publicación.",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "ID del comentario de Reddit a editar (por ejemplo, \"def456\" o \"t1_def456\").",
"Updated text content for the comment.": "Contenido de texto actualizado para el comentario.",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "ID de la publicación de Reddit a eliminar (por ejemplo, \"abc123\" o \"t3_abc123\").",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "ID del comentario de Reddit a eliminar (por ejemplo, \"def456\" o \"t1_def456\").",
"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.",
"Hot": "Calor",
"New": "Nuevo",
"Top": "Subir",
"Rising": "Aumento",
"Controversial": "Polémico",
"Best": "Mejor",
"Old": "Antiguo",
"GET": "RECOGER",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "BORRAR",
"HEAD": "LIMPIO"
}

View File

@@ -0,0 +1,77 @@
{
"Interact with Reddit - fetch and submit posts.": "Interagissez avec Reddit - récupérez et soumettez des messages.",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n",
"Retrieve Post": "Récupérer le message",
"Get Post Details": "Obtenir les détails de la publication",
"Create Post": "Créer un message",
"Create Comment": "Créer un commentaire",
"Fetch Post Comments": "Récupérer les commentaires de publication",
"Edit Post": "Modifier la publication",
"Edit Comment": "Modifier le commentaire",
"Delete Post": "Supprimer la publication",
"Delete Comment": "Supprimer le commentaire",
"Custom API Call": "Appel d'API personnalisé",
"Fetch top posts in a subreddit with optional size limit.": "Récupère les meilleurs messages dans un subreddit avec une limite de taille optionnelle.",
"Fetch detailed information about a specific Reddit post using its ID.": "Récupère des informations détaillées sur un message Reddit spécifique en utilisant son ID.",
"Submit a new self (text) post to a subreddit.": "Soumettez un nouveau message (texte) à un subreddit.",
"Comment on a Reddit post or reply to a comment.": "Commenter sur un message Reddit ou répondre à un commentaire.",
"Fetch comments from a specific Reddit post.": "Récupère les commentaires d'un message Reddit spécifique.",
"Edits the content of an existing Reddit post.": "Modifie le contenu d'un message Reddit existant.",
"Edits the content of an existing Reddit comment.": "Modifie le contenu d'un commentaire Reddit existant.",
"Delete a specific Reddit post by ID.": "Supprimer un message Reddit spécifique par ID.",
"Delete a specific Reddit comment by ID.": "Supprimer un commentaire Reddit spécifique par ID.",
"Make a custom API call to a specific endpoint": "Passer un appel API personnalisé à un endpoint spécifique",
"Post Category": "Catégorie de publication",
"Subreddit": "Subreddit",
"Number of Posts": "Nombre de messages",
"Post ID": "ID de la publication",
"Title": "Titre de la page",
"Content": "Contenus",
"Parent ID": "ID parent",
"Comment Text": "Texte du commentaire",
"Sort By": "Trier par",
"Limit": "Limite",
"New Post Content": "Nouveau contenu de publication",
"Comment ID": "ID du commentaire",
"New Comment Content": "Nouveau contenu de commentaire",
"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'expiration (en secondes)",
"Select the category of posts to retrieve": "Sélectionnez la catégorie de messages à récupérer",
"The subreddit to fetch posts from": "Le subreddit pour récupérer les messages de",
"Number of posts to fetch (max 100)": "Nombre de messages à récupérer (max 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "L'ID du message Reddit (par exemple \"t3_abc123\" ou \"abc123\")",
"The subreddit to post in (without r/).": "Le subreddit à afficher (sans r/).",
"Title of the Reddit post.": "Titre du message Reddit.",
"Text content of the post.": "Contenu du texte du post.",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "ID du message (t3_*) ou commentaire (t1_*) à répondre.",
"Text of the comment.": "Texte du commentaire.",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "L'ID du message Reddit (par exemple \"abc123\" ou \"t3_abc123\").",
"Sorting method for comments": "Méthode de tri pour les commentaires",
"Maximum number of top-level comments to fetch": "Nombre maximum de commentaires de premier niveau à récupérer",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "ID du message Reddit à éditer (par exemple, \"abc123\" ou \"t3_abc123\").",
"Updated text content for the post.": "Contenu texte mis à jour pour le post.",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "ID du commentaire Reddit à éditer (par exemple, \"def456\" ou \"t1_def456\").",
"Updated text content for the comment.": "Contenu du texte mis à jour pour le commentaire.",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "ID du message Reddit à supprimer (par exemple, \"abc123\" ou \"t3_abc123\").",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "ID du commentaire Reddit à supprimer (par exemple, \"def456\" ou \"t1_def456\").",
"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.",
"Hot": "Chaud",
"New": "Nouveau",
"Top": "En haut",
"Rising": "En pleine ascension",
"Controversial": "Controversial",
"Best": "Meilleure",
"Old": "Ancien",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,77 @@
{
"Interact with Reddit - fetch and submit posts.": "Reddit とやりとりする - 投稿を取得して送信します。",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n",
"Retrieve Post": "投稿の取得",
"Get Post Details": "投稿の詳細を取得",
"Create Post": "投稿を作成",
"Create Comment": "コメントを作成",
"Fetch Post Comments": "投稿のコメントを取得",
"Edit Post": "投稿を編集",
"Edit Comment": "コメントを編集",
"Delete Post": "投稿を削除",
"Delete Comment": "コメントを削除",
"Custom API Call": "カスタムAPI通話",
"Fetch top posts in a subreddit with optional size limit.": "オプションの size limit を持つ Subreddit のトップ投稿を取得します。",
"Fetch detailed information about a specific Reddit post using its ID.": "特定の Reddit の投稿に関する詳細情報を ID を使用して取得します。",
"Submit a new self (text) post to a subreddit.": "Subreddit に新しいセルフ(テキスト)の投稿を送信します。",
"Comment on a Reddit post or reply to a comment.": "Reddit の投稿にコメントしたり、コメントに返信したりします。",
"Fetch comments from a specific Reddit post.": "Reddit の特定の投稿からコメントを取得します。",
"Edits the content of an existing Reddit post.": "既存の Reddit 投稿の内容を編集します。",
"Edits the content of an existing Reddit comment.": "既存の Reddit コメントの内容を編集します。",
"Delete a specific Reddit post by ID.": "ID で Reddit の特定の投稿を削除します。",
"Delete a specific Reddit comment by ID.": "ID で Reddit の特定のコメントを削除します。",
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
"Post Category": "カテゴリを投稿",
"Subreddit": "Subreddit",
"Number of Posts": "投稿数",
"Post ID": "投稿ID",
"Title": "タイトル",
"Content": "コンテンツ",
"Parent ID": "親ID",
"Comment Text": "コメントテキスト",
"Sort By": "並び替え",
"Limit": "制限",
"New Post Content": "新しい投稿コンテンツ",
"Comment ID": "コメント ID",
"New Comment Content": "新しいコメントコンテンツ",
"Method": "方法",
"Headers": "ヘッダー",
"Query Parameters": "クエリパラメータ",
"Body": "本文",
"Response is Binary ?": "応答はバイナリですか?",
"No Error on Failure": "失敗時にエラーはありません",
"Timeout (in seconds)": "タイムアウト(秒)",
"Select the category of posts to retrieve": "取得する投稿のカテゴリを選択してください",
"The subreddit to fetch posts from": "投稿を取得する Subreddit",
"Number of posts to fetch (max 100)": "取得する投稿の数 (最大 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "Reddit 投稿の ID (例: \"t3_abc123\" または \"abc123\")",
"The subreddit to post in (without r/).": "(r/なし) に投稿する subreddit 。",
"Title of the Reddit post.": "Redditの投稿のタイトル",
"Text content of the post.": "投稿のテキストコンテンツ。",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "返信する投稿 (t3_*) または コメント (t1_*) の ID です。",
"Text of the comment.": "コメントのテキスト",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "Reddit 投稿の ID (例: \"abc123\" または \"t3_abc123\")。",
"Sorting method for comments": "コメントのソート方法",
"Maximum number of top-level comments to fetch": "取得する最上位コメントの最大数",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "編集する Reddit 投稿の ID (例: \"abc123\" または \"t3_abc123\")。",
"Updated text content for the post.": "投稿のテキストコンテンツを更新しました。",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "編集する Reddit コメントの ID (例: \"def456\" または \"t1_def456\")。",
"Updated text content for the comment.": "コメントのテキストコンテンツを更新しました。",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "削除する Reddit 投稿の ID (例: \"abc123\" または \"t3_abc123\")。",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "削除する Reddit コメントの ID (例: \"def456\" または \"t1_def456\")。",
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
"Hot": "ホット",
"New": "新規作成",
"Top": "上",
"Rising": "上昇中",
"Controversial": "論争中",
"Best": "ベスト",
"Old": "古い",
"GET": "取得",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "削除",
"HEAD": "頭"
}

View File

@@ -0,0 +1,77 @@
{
"Interact with Reddit - fetch and submit posts.": "Interageer met Reddit - ophalen en verzenden van berichten.",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nOm uw Reddit API referenties te verkrijgen:\n. Ga naar https://www.reddit.com/prefs/apps.\n2. Klik onderaan op \"maak een andere app...\".\n3. Selecteer \"script\" als het app-type.\n4. Vul de vereiste informatie in:\n - naam: Uw app naam\n - beschrijving: korte beschrijving\n - over url: Kan leeg gelaten worden\n - omleidings-uri: zoals getoond in het Redirect URL-veld\n5. Klik op \"maak app\".\n6. Noteer het client-ID (onder de appnaam) en clientgeheim. \n",
"Retrieve Post": "Post ophalen",
"Get Post Details": "Krijg berichtdetails",
"Create Post": "Post aanmaken",
"Create Comment": "Commentaar maken",
"Fetch Post Comments": "Post opmerkingen ophalen",
"Edit Post": "Bericht bewerken",
"Edit Comment": "Opmerking bewerken",
"Delete Post": "Verwijder bericht",
"Delete Comment": "Opmerking verwijderen",
"Custom API Call": "Custom API Call",
"Fetch top posts in a subreddit with optional size limit.": "Topberichten ophalen in een subreddit met optionele limiet.",
"Fetch detailed information about a specific Reddit post using its ID.": "Ophalen gedetailleerde informatie over een specifieke Reddit-post met behulp van zijn ID.",
"Submit a new self (text) post to a subreddit.": "Plaats een nieuwe zelf(tekst) post in een subreddit.",
"Comment on a Reddit post or reply to a comment.": "Reageer op een Reddit-post of antwoord op een reactie.",
"Fetch comments from a specific Reddit post.": "Reacties van een specifiek Reddit bericht ophalen.",
"Edits the content of an existing Reddit post.": "Verandert de inhoud van een bestaand Reddit-bericht.",
"Edits the content of an existing Reddit comment.": "Bewerk de inhoud van een bestaande Reddit-reactie.",
"Delete a specific Reddit post by ID.": "Verwijder een specifiek Reddit bericht door ID.",
"Delete a specific Reddit comment by ID.": "Verwijder een specifieke Reddit reactie van ID.",
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
"Post Category": "Post categorie",
"Subreddit": "Subreddit",
"Number of Posts": "Aantal berichten",
"Post ID": "Post ID",
"Title": "Aanspreektitel",
"Content": "Inhoud",
"Parent ID": "Bovenliggende ID",
"Comment Text": "Commentaar tekst",
"Sort By": "Sorteren op",
"Limit": "Limiet",
"New Post Content": "Nieuwe berichtinhoud",
"Comment ID": "Commentaar ID",
"New Comment Content": "Nieuwe reactie-inhoud",
"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)",
"Select the category of posts to retrieve": "Selecteer de categorie van berichten om op te halen",
"The subreddit to fetch posts from": "De subreddit om posts van te halen",
"Number of posts to fetch (max 100)": "Aantal berichten om op te halen (max 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "De ID van de Reddit-post (bijv. \"t3_abc123\" of \"abc123\")",
"The subreddit to post in (without r/).": "De subreddit om in te posten (zonder r/).",
"Title of the Reddit post.": "Titel van de Reddit post.",
"Text content of the post.": "Tekst inhoud van het bericht.",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "ID van het bericht (t3_*) of commentaar (t1_*) om op te reageren.",
"Text of the comment.": "Tekst van de reactie.",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "De ID van het Reddit-bericht (bijv. \"abc123\" of \"t3_abc123\").",
"Sorting method for comments": "Sorteren methode voor opmerkingen",
"Maximum number of top-level comments to fetch": "Maximum aantal reacties op het hoogste niveau om op te halen",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "ID van het Reddit-bericht om te bewerken (bijv. \"abc123\" of \"t3_abc123\").",
"Updated text content for the post.": "Tekst voor het bericht bijgewerkt.",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "ID van de Reddit-reactie die u wilt bewerken (bijv. \"def456\" of \"t1_def456\").",
"Updated text content for the comment.": "Tekst voor de opmerking bijgewerkt.",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "ID van het Reddit-bericht om te verwijderen (bijv. \"abc123\" of \"t3_abc123\").",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "ID van de Reddit-reactie om te verwijderen (bijv. \"def456\" of \"t1_def456\").",
"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..",
"Hot": "Populair",
"New": "Nieuw",
"Top": "Bovenkant",
"Rising": "Stijgende",
"Controversial": "Controversiële",
"Best": "Beste",
"Old": "Oud",
"GET": "KRIJG",
"POST": "POSTE",
"PATCH": "BEKIJK",
"PUT": "PUT",
"DELETE": "VERWIJDEREN",
"HEAD": "HOOFD"
}

View File

@@ -0,0 +1,77 @@
{
"Interact with Reddit - fetch and submit posts.": "Interaja com o Reddit - buscar e enviar posts.",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nPara obter suas credenciais de API do Reddit:\n. Acesse https://www.reddit.com/prefs/apps.\n2. Clique em \"Create another app...\" no final da página.\n3. Selecione \"script\" como o tipo de aplicativo.\n4. Preencha as informações necessárias:\n - nome: nome do aplicativo\n - descrição: Breve descrição\n - sobre URL: Pode ser deixado em branco\n - URI de redirecionamento: como mostrado no campo de URL de redirecionamento\n5. Clique em \"criar o aplicativo\".\n6. Note o ID do cliente (sob o nome do aplicativo) e o segredo do cliente. Uformat@@11",
"Retrieve Post": "Recuperar post",
"Get Post Details": "Obter detalhes do post",
"Create Post": "Criar publicação",
"Create Comment": "Criar Comentário",
"Fetch Post Comments": "Buscar Comentários do Post",
"Edit Post": "Editar Publicação",
"Edit Comment": "Editar Comentário",
"Delete Post": "Excluir Postagem",
"Delete Comment": "Excluir comentário",
"Custom API Call": "Chamada de API personalizada",
"Fetch top posts in a subreddit with optional size limit.": "Buscar as postagens mais populares em um subreddit com limite opcional de tamanho.",
"Fetch detailed information about a specific Reddit post using its ID.": "Obter informações detalhadas sobre uma postagem do Reddit específica usando seu ID.",
"Submit a new self (text) post to a subreddit.": "Enviar um novo post (texto) para um subreddit.",
"Comment on a Reddit post or reply to a comment.": "Comente em uma publicação no Reddit ou responda a um comentário.",
"Fetch comments from a specific Reddit post.": "Recuperar comentários de um post do Reddit específico.",
"Edits the content of an existing Reddit post.": "Edita o conteúdo de um post Reddit existente.",
"Edits the content of an existing Reddit comment.": "Edita o conteúdo de um comentário Reddit existente.",
"Delete a specific Reddit post by ID.": "Apagar uma postagem de Reddit específica por ID.",
"Delete a specific Reddit comment by ID.": "Excluir um comentário Reddit específico por ID.",
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
"Post Category": "Categoria de Post",
"Subreddit": "Subreddit",
"Number of Posts": "Número de postagens",
"Post ID": "ID da postagem",
"Title": "Título",
"Content": "Conteúdo",
"Parent ID": "ID Pai",
"Comment Text": "Texto do comentário",
"Sort By": "Classificar por",
"Limit": "Limitar",
"New Post Content": "Novo Conteúdo da Postagem",
"Comment ID": "ID do comentário",
"New Comment Content": "Conteúdo do Novo Comentário",
"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)",
"Select the category of posts to retrieve": "Selecione a categoria de mensagens para recuperar",
"The subreddit to fetch posts from": "O subreddit do qual buscar as postagens de",
"Number of posts to fetch (max 100)": "Número de posts para buscar (máx. 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "O ID do post no Reddit (ex.: \"t3_abc123\" ou \"abc123\")",
"The subreddit to post in (without r/).": "O subreddit para publicar (sem r/).",
"Title of the Reddit post.": "Título do post no Reddit.",
"Text content of the post.": "Conteúdo do texto do post.",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "ID do post (t3_*) ou comentário (t1_*) para responder.",
"Text of the comment.": "Texto do comentário.",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "O ID do post do Reddit (por exemplo, \"abc123\" ou \"t3_abc123\").",
"Sorting method for comments": "Método de ordenação para comentários",
"Maximum number of top-level comments to fetch": "Número máximo de comentários de nível superior para buscar",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "ID da postagem no Reddit a ser editada (por exemplo, \"abc123\" ou \"t3_abc123\").",
"Updated text content for the post.": "Conteúdo de texto atualizado para a publicação.",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "ID do comentário do Reddit a ser editado (por exemplo, \"def456\" ou \"t1_def456\").",
"Updated text content for the comment.": "Conteúdo do texto atualizado para o comentário.",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "ID da postagem no Reddit a ser apagada (por exemplo, \"abc123\" ou \"t3_abc123\").",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "ID do comentário do Reddit a ser excluído (ex: \"def456\" ou \"t1_def456\").",
"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..",
"Hot": "Quente",
"New": "Novidades",
"Top": "Superior",
"Rising": "Subindo",
"Controversial": "Controvérsias",
"Best": "Melhor",
"Old": "Antigo",
"GET": "OBTER",
"POST": "POSTAR",
"PATCH": "COMPRAR",
"PUT": "COLOCAR",
"DELETE": "EXCLUIR",
"HEAD": "CABEÇA"
}

View File

@@ -0,0 +1,76 @@
{
"Reddit": "Реддит",
"Interact with Reddit - fetch and submit posts.": "Взаимодействовать с Reddit - получать и отправлять сообщения.",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nДля получения учётных данных Reddit API:\n. Перейдите на https://www.reddit.com/prefs/apps.\n2. Нажмите \"Создать другое приложение...\" внизу.\n3. Выберите \"script\" как тип приложения.\n4. Заполните требуемую информацию:\n - имя: имя вашего приложения\n - описание: Краткое описание\n - Url: Может быть оставлено пустым\n - uri перенаправления: как показано в поле URL Redirect\n5. Нажмите «Создать приложение».\n6. Обратите внимание на ID клиента (под именем приложения) и клиентскую тайну. \n",
"Retrieve Post": "Получить пост",
"Get Post Details": "Получить информацию о записи",
"Create Post": "Создать запись",
"Create Comment": "Создать комментарий",
"Fetch Post Comments": "Загрузить комментарий",
"Edit Post": "Изменить запись",
"Edit Comment": "Изменить комментарий",
"Delete Post": "Удалить сообщение",
"Delete Comment": "Удалить комментарий",
"Custom API Call": "Пользовательский вызов API",
"Fetch top posts in a subreddit with optional size limit.": "Загружать топ сообщений в сабреддитах с необязательным размером.",
"Fetch detailed information about a specific Reddit post using its ID.": "Получить подробную информацию о конкретной записи Reddit с помощью идентификатора.",
"Submit a new self (text) post to a subreddit.": "Отправить новую запись в сабреддит.",
"Comment on a Reddit post or reply to a comment.": "Комментируйте сообщение Reddit или ответьте на комментарий.",
"Fetch comments from a specific Reddit post.": "Получить комментарии к конкретной записи Reddit.",
"Edits the content of an existing Reddit post.": "Редактировать содержимое существующей должности Реддита.",
"Edits the content of an existing Reddit comment.": "Редактирует содержимое существующего комментария Reddit.",
"Delete a specific Reddit post by ID.": "Удалить определённое сообщение Reddit по ID.",
"Delete a specific Reddit comment by ID.": "Удалить специфический комментарий Reddit по ID.",
"Make a custom API call to a specific endpoint": "Сделать пользовательский API вызов к определенной конечной точке",
"Post Category": "Категория записи",
"Subreddit": "Subreddit",
"Number of Posts": "Количество сообщений",
"Post ID": "ID поста",
"Title": "Заголовок",
"Content": "Содержание",
"Parent ID": "Родительский ID",
"Comment Text": "Текст комментария",
"Sort By": "Сортировать по",
"Limit": "Лимит",
"New Post Content": "Содержимое нового сообщения",
"Comment ID": "ID комментария",
"New Comment Content": "Новый контент комментария",
"Method": "Метод",
"Headers": "Заголовки",
"Query Parameters": "Параметры запроса",
"Body": "Тело",
"No Error on Failure": "Нет ошибок при ошибке",
"Timeout (in seconds)": "Таймаут (в секундах)",
"Select the category of posts to retrieve": "Выберите категорию сообщений для получения",
"The subreddit to fetch posts from": "Сабреддит для получения сообщений от",
"Number of posts to fetch (max 100)": "Количество сообщений для выборки (максимум 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "Идентификатор записи Reddit (например \"t3_abc123\" или \"abc123\")",
"The subreddit to post in (without r/).": "Отправлять сообщения в сабреддит (без r/).",
"Title of the Reddit post.": "Название должности Reddit.",
"Text content of the post.": "Текст сообщения.",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "ID поста (t3_*) или комментарий (t1_*).",
"Text of the comment.": "Текст комментария.",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "Идентификатор записи Reddit (например \"abc123\" или \"t3_abc123\").",
"Sorting method for comments": "Метод сортировки комментариев",
"Maximum number of top-level comments to fetch": "Максимальное количество комментариев верхнего уровня для получения",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "ID поста Reddit для редактирования (например, \"abc123\" или \"t3_abc123\").",
"Updated text content for the post.": "Обновлено текстовое содержимое сообщения.",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "ID комментария Reddit для редактирования (например, \"def456\" или \"t1_def456\").",
"Updated text content for the comment.": "Обновлено текстовое содержимое для комментария.",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "ID удаляемого сообщения Reddit (например, \"abc123\" или \"t3_abc123\").",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "ID комментария Reddit для удаления (например, \"def456\" или \"t1_def456\").",
"Authorization headers are injected automatically from your connection.": "Заголовки авторизации включаются автоматически из вашего соединения.",
"Hot": "Горячая",
"New": "Новый",
"Top": "Сверху",
"Rising": "Восхождение",
"Controversial": "Спорное",
"Best": "Лучшее",
"Old": "Старый",
"GET": "ПОЛУЧИТЬ",
"POST": "ПОСТ",
"PATCH": "ПАТЧ",
"PUT": "ПОКУПИТЬ",
"DELETE": "УДАЛИТЬ",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,77 @@
{
"Interact with Reddit - fetch and submit posts.": "Interact with Reddit - fetch and submit posts.",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n",
"Retrieve Post": "Retrieve Post",
"Get Post Details": "Get Post Details",
"Create Post": "Create Post",
"Create Comment": "Create Comment",
"Fetch Post Comments": "Fetch Post Comments",
"Edit Post": "Edit Post",
"Edit Comment": "Edit Comment",
"Delete Post": "Delete Post",
"Delete Comment": "Delete Comment",
"Custom API Call": "Custom API Call",
"Fetch top posts in a subreddit with optional size limit.": "Fetch top posts in a subreddit with optional size limit.",
"Fetch detailed information about a specific Reddit post using its ID.": "Fetch detailed information about a specific Reddit post using its ID.",
"Submit a new self (text) post to a subreddit.": "Submit a new self (text) post to a subreddit.",
"Comment on a Reddit post or reply to a comment.": "Comment on a Reddit post or reply to a comment.",
"Fetch comments from a specific Reddit post.": "Fetch comments from a specific Reddit post.",
"Edits the content of an existing Reddit post.": "Edits the content of an existing Reddit post.",
"Edits the content of an existing Reddit comment.": "Edits the content of an existing Reddit comment.",
"Delete a specific Reddit post by ID.": "Delete a specific Reddit post by ID.",
"Delete a specific Reddit comment by ID.": "Delete a specific Reddit comment by ID.",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Post Category": "Post Category",
"Subreddit": "Subreddit",
"Number of Posts": "Number of Posts",
"Post ID": "Post ID",
"Title": "Title",
"Content": "Content",
"Parent ID": "Parent ID",
"Comment Text": "Comment Text",
"Sort By": "Sort By",
"Limit": "Limit",
"New Post Content": "New Post Content",
"Comment ID": "Comment ID",
"New Comment Content": "New Comment Content",
"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)",
"Select the category of posts to retrieve": "Select the category of posts to retrieve",
"The subreddit to fetch posts from": "The subreddit to fetch posts from",
"Number of posts to fetch (max 100)": "Number of posts to fetch (max 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")",
"The subreddit to post in (without r/).": "The subreddit to post in (without r/).",
"Title of the Reddit post.": "Title of the Reddit post.",
"Text content of the post.": "Text content of the post.",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "ID of the post (t3_*) or comment (t1_*) to reply to.",
"Text of the comment.": "Text of the comment.",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").",
"Sorting method for comments": "Sorting method for comments",
"Maximum number of top-level comments to fetch": "Maximum number of top-level comments to fetch",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").",
"Updated text content for the post.": "Updated text content for the post.",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").",
"Updated text content for the comment.": "Updated text content for the comment.",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").",
"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..",
"Hot": "Hot",
"New": "New",
"Top": "Top",
"Rising": "Rising",
"Controversial": "Controversial",
"Best": "Best",
"Old": "Old",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,76 @@
{
"Reddit": "Reddit",
"Interact with Reddit - fetch and submit posts.": "Interact with Reddit - fetch and submit posts.",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n",
"Retrieve Post": "Retrieve Post",
"Get Post Details": "Get Post Details",
"Create Post": "Create Post",
"Create Comment": "Create Comment",
"Fetch Post Comments": "Fetch Post Comments",
"Edit Post": "Edit Post",
"Edit Comment": "Edit Comment",
"Delete Post": "Delete Post",
"Delete Comment": "Delete Comment",
"Custom API Call": "Custom API Call",
"Fetch top posts in a subreddit with optional size limit.": "Fetch top posts in a subreddit with optional size limit.",
"Fetch detailed information about a specific Reddit post using its ID.": "Fetch detailed information about a specific Reddit post using its ID.",
"Submit a new self (text) post to a subreddit.": "Submit a new self (text) post to a subreddit.",
"Comment on a Reddit post or reply to a comment.": "Comment on a Reddit post or reply to a comment.",
"Fetch comments from a specific Reddit post.": "Fetch comments from a specific Reddit post.",
"Edits the content of an existing Reddit post.": "Edits the content of an existing Reddit post.",
"Edits the content of an existing Reddit comment.": "Edits the content of an existing Reddit comment.",
"Delete a specific Reddit post by ID.": "Delete a specific Reddit post by ID.",
"Delete a specific Reddit comment by ID.": "Delete a specific Reddit comment by ID.",
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
"Post Category": "Post Category",
"Subreddit": "Subreddit",
"Number of Posts": "Number of Posts",
"Post ID": "Post ID",
"Title": "Title",
"Content": "Content",
"Parent ID": "Parent ID",
"Comment Text": "Comment Text",
"Sort By": "Sort By",
"Limit": "Limit",
"New Post Content": "New Post Content",
"Comment ID": "Comment ID",
"New Comment Content": "New Comment Content",
"Method": "Method",
"Headers": "Headers",
"Query Parameters": "Query Parameters",
"Body": "Body",
"No Error on Failure": "No Error on Failure",
"Timeout (in seconds)": "Timeout (in seconds)",
"Select the category of posts to retrieve": "Select the category of posts to retrieve",
"The subreddit to fetch posts from": "The subreddit to fetch posts from",
"Number of posts to fetch (max 100)": "Number of posts to fetch (max 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")",
"The subreddit to post in (without r/).": "The subreddit to post in (without r/).",
"Title of the Reddit post.": "Title of the Reddit post.",
"Text content of the post.": "Text content of the post.",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "ID of the post (t3_*) or comment (t1_*) to reply to.",
"Text of the comment.": "Text of the comment.",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").",
"Sorting method for comments": "Sorting method for comments",
"Maximum number of top-level comments to fetch": "Maximum number of top-level comments to fetch",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").",
"Updated text content for the post.": "Updated text content for the post.",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").",
"Updated text content for the comment.": "Updated text content for the comment.",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").",
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
"Hot": "Hot",
"New": "New",
"Top": "Top",
"Rising": "Rising",
"Controversial": "Controversial",
"Best": "Best",
"Old": "Old",
"GET": "GET",
"POST": "POST",
"PATCH": "PATCH",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD"
}

View File

@@ -0,0 +1,77 @@
{
"Interact with Reddit - fetch and submit posts.": "Interact with Reddit - fetch and submit posts.",
"\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n": "\nTo obtain your Reddit API credentials:\n\n1. Go to https://www.reddit.com/prefs/apps.\n2. Click \"create another app...\" at the bottom.\n3. Select \"script\" as the app type.\n4. Fill in the required information:\n - name: Your app name\n - description: Brief description\n - about url: Can be left blank\n - redirect uri: as shown in Redirect URL field\n5. Click \"create app\".\n6. Note down the client ID (under the app name) and client secret.\n",
"Retrieve Post": "Retrieve Post",
"Get Post Details": "Get Post Details",
"Create Post": "Create Post",
"Create Comment": "Create Comment",
"Fetch Post Comments": "Fetch Post Comments",
"Edit Post": "Edit Post",
"Edit Comment": "Edit Comment",
"Delete Post": "Delete Post",
"Delete Comment": "Delete Comment",
"Custom API Call": "自定义 API 呼叫",
"Fetch top posts in a subreddit with optional size limit.": "Fetch top posts in a subreddit with optional size limit.",
"Fetch detailed information about a specific Reddit post using its ID.": "Fetch detailed information about a specific Reddit post using its ID.",
"Submit a new self (text) post to a subreddit.": "Submit a new self (text) post to a subreddit.",
"Comment on a Reddit post or reply to a comment.": "Comment on a Reddit post or reply to a comment.",
"Fetch comments from a specific Reddit post.": "Fetch comments from a specific Reddit post.",
"Edits the content of an existing Reddit post.": "Edits the content of an existing Reddit post.",
"Edits the content of an existing Reddit comment.": "Edits the content of an existing Reddit comment.",
"Delete a specific Reddit post by ID.": "Delete a specific Reddit post by ID.",
"Delete a specific Reddit comment by ID.": "Delete a specific Reddit comment by ID.",
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
"Post Category": "Post Category",
"Subreddit": "Subreddit",
"Number of Posts": "Number of Posts",
"Post ID": "Post ID",
"Title": "标题",
"Content": "Content",
"Parent ID": "Parent ID",
"Comment Text": "Comment Text",
"Sort By": "Sort By",
"Limit": "Limit",
"New Post Content": "New Post Content",
"Comment ID": "Comment ID",
"New Comment Content": "New Comment Content",
"Method": "方法",
"Headers": "信头",
"Query Parameters": "查询参数",
"Body": "正文内容",
"Response is Binary ?": "Response is Binary ?",
"No Error on Failure": "失败时没有错误",
"Timeout (in seconds)": "超时(秒)",
"Select the category of posts to retrieve": "Select the category of posts to retrieve",
"The subreddit to fetch posts from": "The subreddit to fetch posts from",
"Number of posts to fetch (max 100)": "Number of posts to fetch (max 100)",
"The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")": "The ID of the Reddit post (e.g. \"t3_abc123\" or \"abc123\")",
"The subreddit to post in (without r/).": "The subreddit to post in (without r/).",
"Title of the Reddit post.": "Title of the Reddit post.",
"Text content of the post.": "Text content of the post.",
"ID of the post (t3_*) or comment (t1_*) to reply to.": "ID of the post (t3_*) or comment (t1_*) to reply to.",
"Text of the comment.": "Text of the comment.",
"The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").": "The ID of the Reddit post (e.g. \"abc123\" or \"t3_abc123\").",
"Sorting method for comments": "Sorting method for comments",
"Maximum number of top-level comments to fetch": "Maximum number of top-level comments to fetch",
"ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").": "ID of the Reddit post to edit (e.g., \"abc123\" or \"t3_abc123\").",
"Updated text content for the post.": "Updated text content for the post.",
"ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").": "ID of the Reddit comment to edit (e.g., \"def456\" or \"t1_def456\").",
"Updated text content for the comment.": "Updated text content for the comment.",
"ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").": "ID of the Reddit post to delete (e.g., \"abc123\" or \"t3_abc123\").",
"ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").": "ID of the Reddit comment to delete (e.g., \"def456\" or \"t1_def456\").",
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
"Hot": "Hot",
"New": "New",
"Top": "Top",
"Rising": "Rising",
"Controversial": "Controversial",
"Best": "Best",
"Old": "Old",
"GET": "获取",
"POST": "帖子",
"PATCH": "PATCH",
"PUT": "弹出",
"DELETE": "删除",
"HEAD": "黑色"
}

View File

@@ -0,0 +1,75 @@
import { createCustomApiCallAction } from '@activepieces/pieces-common';
import { createPiece, PieceAuth, OAuth2AuthorizationMethod, Property, OAuth2PropertyValue } from "@activepieces/pieces-framework";
import { retrieveRedditPost } from './lib/actions/retrieve-reddit-post';
import { getRedditPostDetails } from './lib/actions/get-reddit-post-details';
import { createRedditPost } from './lib/actions/create-reddit-post';
import { createRedditComment } from './lib/actions/create-reddit-comment';
import { fetchPostComments} from './lib/actions/fetch-post-comments';
import { editRedditPost } from './lib/actions/edit-reddit-post';
import { editRedditComment } from './lib/actions/edit-reddit-comment';
import { deleteRedditPost } from './lib/actions/delete-reddit-post';
import { deleteRedditComment } from './lib/actions/delete-reddit-comment';
import { PieceCategory } from '@activepieces/shared';
import { OAuth2GrantType } from '@activepieces/shared';
const markdown = `
To obtain your Reddit API credentials:
1. Go to https://www.reddit.com/prefs/apps.
2. Click "create another app..." at the bottom.
3. Select "script" as the app type.
4. Fill in the required information:
- name: Your app name
- description: Brief description
- about url: Can be left blank
- redirect uri: as shown in Redirect URL field
5. Click "create app".
6. Note down the client ID (under the app name) and client secret.
`;
export const redditAuth = PieceAuth.OAuth2({
description: markdown,
authUrl: 'https://www.reddit.com/api/v1/authorize',
tokenUrl: 'https://www.reddit.com/api/v1/access_token',
required: true,
scope: ['identity', 'read', 'submit', 'edit', 'history', 'flair'],
authorizationMethod: OAuth2AuthorizationMethod.HEADER,
extra: {
grantType: OAuth2GrantType.AUTHORIZATION_CODE,
responseType: 'code'
}
});
export const reddit = createPiece({
displayName: 'Reddit',
description: 'Interact with Reddit - fetch and submit posts.',
logoUrl: 'https://cdn.activepieces.com/pieces/reddit.png',
minimumSupportedRelease: '0.36.1',
categories: [PieceCategory.COMMUNICATION],
authors: ['bhaviksingla1403'],
auth: redditAuth,
actions: [
retrieveRedditPost,
getRedditPostDetails,
createRedditPost,
createRedditComment,
fetchPostComments,
editRedditPost,
editRedditComment,
deleteRedditPost,
deleteRedditComment,
createCustomApiCallAction({
auth: redditAuth,
baseUrl: () => {
return 'https://oauth.reddit.com';
},
authMapping: async (auth) => {
return {
Authorization: `Bearer ${(auth as OAuth2PropertyValue).access_token}`,
'User-Agent': 'ActivePieces/1.0.0'
};
},
}),
],
triggers: [],
});

View File

@@ -0,0 +1,57 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { redditAuth } from '../../index';
export const createRedditComment = createAction({
auth: redditAuth,
name: 'createRedditComment',
displayName: 'Create Comment',
description: 'Comment on a Reddit post or reply to a comment.',
props: {
parent_id: Property.ShortText({
displayName: 'Parent ID',
description: 'ID of the post (t3_*) or comment (t1_*) to reply to.',
required: true,
}),
content: Property.LongText({
displayName: 'Comment Text',
description: 'Text of the comment.',
required: true,
}),
},
async run(context) {
let parentId = context.propsValue.parent_id.trim();
// If it's just a post ID, prefix it
if (!parentId.startsWith('t1_') && !parentId.startsWith('t3_')) {
parentId = `t3_${parentId}`;
}
const url = 'https://oauth.reddit.com/api/comment';
const payload = new URLSearchParams({
thing_id: parentId,
text: context.propsValue.content,
api_type: 'json',
});
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url,
headers: {
'Authorization': `Bearer ${context.auth.access_token}`,
'User-Agent': 'ActivePieces Reddit Client',
'Content-Type': 'application/x-www-form-urlencoded',
},
body: payload.toString(),
});
if (response.status !== 200) {
return {
error: `Failed to create comment: ${response.status}`,
details: response.body,
};
}
return response.body;
},
});

View File

@@ -0,0 +1,60 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { redditAuth } from '../../index';
export const createRedditPost = createAction({
auth: redditAuth,
name: 'createRedditPost',
displayName: 'Create Post',
description: 'Submit a new self (text) post to a subreddit.',
props: {
subreddit: Property.ShortText({
displayName: 'Subreddit',
description: 'The subreddit to post in (without r/).',
required: true,
}),
title: Property.ShortText({
displayName: 'Title',
description: 'Title of the Reddit post.',
required: true,
}),
content: Property.LongText({
displayName: 'Content',
description: 'Text content of the post.',
required: true,
}),
},
async run(context) {
const { subreddit, title, content } = context.propsValue;
const url = 'https://oauth.reddit.com/api/submit';
const payload = new URLSearchParams({
api_type: 'json',
sr: subreddit,
title,
text: content,
kind: 'self',
});
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url,
headers: {
'Authorization': `Bearer ${context.auth.access_token}`,
'User-Agent': 'ActivePieces Reddit Client',
'Content-Type': 'application/x-www-form-urlencoded',
},
body: payload.toString(),
});
if (response.status !== 200) {
return {
error: `Failed to create post: ${response.status}`,
details: response.body,
};
}
return response.body;
},
});

View File

@@ -0,0 +1,49 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { redditAuth } from '../../index';
export const deleteRedditComment = createAction({
auth: redditAuth,
name: 'deleteRedditComment',
displayName: 'Delete Comment',
description: 'Delete a specific Reddit comment by ID.',
props: {
comment_id: Property.ShortText({
displayName: 'Comment ID',
description: 'ID of the Reddit comment to delete (e.g., "def456" or "t1_def456").',
required: true,
}),
},
async run(context) {
let commentId = context.propsValue.comment_id.trim();
if (commentId.startsWith('t1_')) {
commentId = commentId.slice(3);
}
const url = 'https://oauth.reddit.com/api/del';
const payload = new URLSearchParams({
api_type: 'json',
id: `t1_${commentId}`,
});
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url,
headers: {
'Authorization': `Bearer ${context.auth.access_token}`,
'User-Agent': 'ActivePieces Reddit Client',
'Content-Type': 'application/x-www-form-urlencoded',
},
body: payload.toString(),
});
if (response.status !== 200) {
return {
error: `Failed to delete comment: ${response.status}`,
details: response.body,
};
}
return { success: true, response: response.body };
},
});

View File

@@ -0,0 +1,49 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { redditAuth } from '../../index';
export const deleteRedditPost = createAction({
auth: redditAuth,
name: 'deleteRedditPost',
displayName: 'Delete Post',
description: 'Delete a specific Reddit post by ID.',
props: {
post_id: Property.ShortText({
displayName: 'Post ID',
description: 'ID of the Reddit post to delete (e.g., "abc123" or "t3_abc123").',
required: true,
}),
},
async run(context) {
let postId = context.propsValue.post_id.trim();
if (postId.startsWith('t3_')) {
postId = postId.slice(3);
}
const url = 'https://oauth.reddit.com/api/del';
const payload = new URLSearchParams({
api_type: 'json',
id: `t3_${postId}`,
});
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url,
headers: {
'Authorization': `Bearer ${context.auth.access_token}`,
'User-Agent': 'ActivePieces Reddit Client',
'Content-Type': 'application/x-www-form-urlencoded',
},
body: payload.toString(),
});
if (response.status !== 200) {
return {
error: `Failed to delete post: ${response.status}`,
details: response.body,
};
}
return { success: true, response: response.body };
},
});

View File

@@ -0,0 +1,55 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { redditAuth } from '../../index';
export const editRedditComment = createAction({
auth: redditAuth,
name: 'editRedditComment',
displayName: 'Edit Comment',
description: 'Edits the content of an existing Reddit comment.',
props: {
comment_id: Property.ShortText({
displayName: 'Comment ID',
description: 'ID of the Reddit comment to edit (e.g., "def456" or "t1_def456").',
required: true,
}),
content: Property.LongText({
displayName: 'New Comment Content',
description: 'Updated text content for the comment.',
required: true,
}),
},
async run(context) {
let commentId = context.propsValue.comment_id.trim();
if (commentId.startsWith('t1_')) {
commentId = commentId.slice(3);
}
const url = 'https://oauth.reddit.com/api/editusertext';
const payload = new URLSearchParams({
api_type: 'json',
thing_id: `t1_${commentId}`,
text: context.propsValue.content,
});
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url,
headers: {
'Authorization': `Bearer ${context.auth.access_token}`,
'User-Agent': 'ActivePieces Reddit Client',
'Content-Type': 'application/x-www-form-urlencoded',
},
body: payload.toString(),
});
if (response.status !== 200) {
return {
error: `Failed to edit comment: ${response.status}`,
details: response.body,
};
}
return response.body;
},
});

View File

@@ -0,0 +1,55 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { redditAuth } from '../../index';
export const editRedditPost = createAction({
auth: redditAuth,
name: 'editRedditPost',
displayName: 'Edit Post',
description: 'Edits the content of an existing Reddit post.',
props: {
post_id: Property.ShortText({
displayName: 'Post ID',
description: 'ID of the Reddit post to edit (e.g., "abc123" or "t3_abc123").',
required: true,
}),
content: Property.LongText({
displayName: 'New Post Content',
description: 'Updated text content for the post.',
required: true,
}),
},
async run(context) {
let postId = context.propsValue.post_id.trim();
if (postId.startsWith('t3_')) {
postId = postId.slice(3);
}
const url = 'https://oauth.reddit.com/api/editusertext';
const payload = new URLSearchParams({
api_type: 'json',
thing_id: `t3_${postId}`,
text: context.propsValue.content,
});
const response = await httpClient.sendRequest({
method: HttpMethod.POST,
url,
headers: {
'Authorization': `Bearer ${context.auth.access_token}`,
'User-Agent': 'ActivePieces Reddit Client',
'Content-Type': 'application/x-www-form-urlencoded',
},
body: payload.toString(),
});
if (response.status !== 200) {
return {
error: `Failed to edit post: ${response.status}`,
details: response.body,
};
}
return response.body;
},
});

View File

@@ -0,0 +1,93 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { redditAuth } from '../../index';
export const fetchPostComments = createAction({
auth: redditAuth,
name: 'fetchPostComments',
displayName: 'Fetch Post Comments',
description: 'Fetch comments from a specific Reddit post.',
props: {
post_id: Property.ShortText({
displayName: 'Post ID',
description: 'The ID of the Reddit post (e.g. "abc123" or "t3_abc123").',
required: true,
}),
sort: Property.StaticDropdown({
displayName: 'Sort By',
description: 'Sorting method for comments',
defaultValue: 'new',
required: false,
options: {
options: [
{ label: 'New', value: 'new' },
{ label: 'Top', value: 'top' },
{ label: 'Hot', value: 'hot' },
{ label: 'Best', value: 'best' },
{ label: 'Old', value: 'old' },
{ label: 'Controversial', value: 'controversial' },
],
},
}),
limit: Property.Number({
displayName: 'Limit',
description: 'Maximum number of top-level comments to fetch',
defaultValue: 10,
required: false,
}),
},
async run(context) {
let postId = context.propsValue.post_id.trim();
if (postId.startsWith('t3_')) {
postId = postId.slice(3);
}
const response = await httpClient.sendRequest({
method: HttpMethod.GET,
url: `https://oauth.reddit.com/comments/${postId}`,
headers: {
'Authorization': `Bearer ${context.auth.access_token}`,
'User-Agent': 'ActivePieces Reddit Client',
'Content-Type': 'application/json',
},
queryParams: {
sort: context.propsValue.sort ?? 'new',
limit: (context.propsValue.limit ?? 10).toString(),
},
});
if (response.status !== 200) {
return {
error: `Failed to retrieve comments: ${response.status}`,
details: response.body,
};
}
function processComments(comments: any[]): any[] {
return comments
.filter(c => c.kind === 't1')
.map(c => {
const d = c.data;
return {
id: d.id,
author: d.author,
body: d.body,
score: d.score,
created_utc: d.created_utc,
permalink: d.permalink,
edited: d.edited,
is_submitter: d.is_submitter,
stickied: d.stickied,
replies: d.replies && typeof d.replies === 'object'
? processComments(d.replies.data.children)
: [],
};
});
}
const data = response.body;
const commentsTree = data[1]?.data?.children ?? [];
return processComments(commentsTree);
},
});

View File

@@ -0,0 +1,87 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
import { redditAuth } from '../../index';
export const getRedditPostDetails = createAction({
auth: redditAuth,
name: 'getRedditPostDetails',
displayName: 'Get Post Details',
description: 'Fetch detailed information about a specific Reddit post using its ID.',
props: {
post_id: Property.ShortText({
displayName: 'Post ID',
description: 'The ID of the Reddit post (e.g. "t3_abc123" or "abc123")',
required: true,
}),
},
async run(context) {
let postId = context.propsValue.post_id.trim();
if (postId.startsWith('t3_')) {
postId = postId.slice(3);
}
const url = `https://oauth.reddit.com/api/info?id=t3_${postId}`;
const response = await httpClient.sendRequest({
method: HttpMethod.GET,
url,
headers: {
'Authorization': `Bearer ${context.auth.access_token}`,
'User-Agent': 'ActivePieces Reddit Client',
'Content-Type': 'application/json',
},
timeout: 5000,
});
if (response.status !== 200) {
return {
error: `Failed to retrieve post details: ${response.status}`,
details: response.body,
};
}
const children = response.body?.data?.children ?? [];
if (children.length === 0) {
return { error: 'No post found with the given ID' };
}
const data = children[0].data;
const result: Record<string, unknown> = {
id: data.id,
title: data.title,
author: data.author,
author_fullname: data.author_fullname,
subreddit: data.subreddit,
subreddit_id: data.subreddit_id,
selftext: data.selftext,
selftext_html: data.selftext_html,
score: data.score,
upvote_ratio: data.upvote_ratio,
created_utc: data.created_utc,
permalink: data.permalink,
url: data.url,
domain: data.domain,
num_comments: data.num_comments,
is_self: data.is_self,
is_video: data.is_video,
is_original_content: data.is_original_content,
over_18: data.over_18,
spoiler: data.spoiler,
locked: data.locked,
stickied: data.stickied,
post_hint: data.post_hint,
};
if (data.media) {
result['media'] = data.media;
}
if (data.gallery_data) {
result['gallery_data'] = data.gallery_data;
}
return result;
},
});

View File

@@ -0,0 +1,66 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import {
httpClient,
HttpMethod,
AuthenticationType,
} from '@activepieces/pieces-common';
import { redditAuth } from '../../';
export const retrieveRedditPost = createAction({
auth: redditAuth,
name: 'retrieveRedditPost',
displayName: 'Retrieve Post',
description: 'Fetch top posts in a subreddit with optional size limit.',
props: {
post_category: Property.StaticDropdown({
displayName: 'Post Category',
description: 'Select the category of posts to retrieve',
required: true,
defaultValue: 'hot',
options: {
options: [
{ label: 'Hot', value: 'hot' },
{ label: 'New', value: 'new' },
{ label: 'Top', value: 'top' },
{ label: 'Rising', value: 'rising' },
{ label: 'Controversial', value: 'controversial' },
],
},
}),
subreddit: Property.ShortText({
displayName: 'Subreddit',
description: 'The subreddit to fetch posts from',
required: true,
}),
size: Property.Number({
displayName: 'Number of Posts',
description: 'Number of posts to fetch (max 100)',
required: false,
defaultValue: 10,
}),
},
async run(context) {
const baseUrl = `https://oauth.reddit.com/r/${context.propsValue.subreddit}/${context.propsValue.post_category}`;
const limit = context.propsValue.size || 10;
const response = await httpClient.sendRequest({
method: HttpMethod.GET,
url: baseUrl,
queryParams: {
limit: limit.toString(),
},
headers: {
'Authorization': `Bearer ${context.auth.access_token}`,
'User-Agent': 'ActivePieces Reddit Client',
'Content-Type': 'application/json',
},
timeout: 5000,
});
if (response.status !== 200) {
throw new Error(`Reddit API error: ${response.status} ${JSON.stringify(response.body)}`);
}
return response.body;
},
});

View File

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

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"]
}