Skip to main content
Glama

mcp-google-sheets

fetch-post-comments.ts2.83 kB
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); }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server