social-mcp 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +56 -1
  2. package/dist/index.js +58 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/config.d.ts +21 -0
  5. package/dist/lib/config.js +21 -0
  6. package/dist/lib/config.js.map +1 -1
  7. package/dist/services/reddit-service.d.ts +87 -0
  8. package/dist/services/reddit-service.js +188 -0
  9. package/dist/services/reddit-service.js.map +1 -0
  10. package/dist/services/threads-service.d.ts +35 -0
  11. package/dist/services/threads-service.js +86 -0
  12. package/dist/services/threads-service.js.map +1 -0
  13. package/dist/services/tiktok-service.d.ts +79 -0
  14. package/dist/services/tiktok-service.js +138 -0
  15. package/dist/services/tiktok-service.js.map +1 -0
  16. package/dist/services/youtube-service.d.ts +124 -0
  17. package/dist/services/youtube-service.js +230 -0
  18. package/dist/services/youtube-service.js.map +1 -0
  19. package/dist/tools/reddit-tools/comment.d.ts +16 -0
  20. package/dist/tools/reddit-tools/comment.js +30 -0
  21. package/dist/tools/reddit-tools/comment.js.map +1 -0
  22. package/dist/tools/reddit-tools/get-posts.d.ts +28 -0
  23. package/dist/tools/reddit-tools/get-posts.js +36 -0
  24. package/dist/tools/reddit-tools/get-posts.js.map +1 -0
  25. package/dist/tools/reddit-tools/get-user-info.d.ts +14 -0
  26. package/dist/tools/reddit-tools/get-user-info.js +37 -0
  27. package/dist/tools/reddit-tools/get-user-info.js.map +1 -0
  28. package/dist/tools/reddit-tools/search.d.ts +28 -0
  29. package/dist/tools/reddit-tools/search.js +40 -0
  30. package/dist/tools/reddit-tools/search.js.map +1 -0
  31. package/dist/tools/reddit-tools/submit-post.d.ts +28 -0
  32. package/dist/tools/reddit-tools/submit-post.js +31 -0
  33. package/dist/tools/reddit-tools/submit-post.js.map +1 -0
  34. package/dist/tools/reddit-tools/vote.d.ts +24 -0
  35. package/dist/tools/reddit-tools/vote.js +30 -0
  36. package/dist/tools/reddit-tools/vote.js.map +1 -0
  37. package/dist/tools/threads-tools/create-post.d.ts +14 -0
  38. package/dist/tools/threads-tools/create-post.js +23 -0
  39. package/dist/tools/threads-tools/create-post.js.map +1 -0
  40. package/dist/tools/threads-tools/delete-post.d.ts +14 -0
  41. package/dist/tools/threads-tools/delete-post.js +23 -0
  42. package/dist/tools/threads-tools/delete-post.js.map +1 -0
  43. package/dist/tools/threads-tools/get-posts.d.ts +14 -0
  44. package/dist/tools/threads-tools/get-posts.js +31 -0
  45. package/dist/tools/threads-tools/get-posts.js.map +1 -0
  46. package/dist/tools/threads-tools/get-profile.d.ts +7 -0
  47. package/dist/tools/threads-tools/get-profile.js +31 -0
  48. package/dist/tools/threads-tools/get-profile.js.map +1 -0
  49. package/dist/tools/threads-tools/reply.d.ts +16 -0
  50. package/dist/tools/threads-tools/reply.js +24 -0
  51. package/dist/tools/threads-tools/reply.js.map +1 -0
  52. package/dist/tools/tiktok-tools/direct-post-video.d.ts +34 -0
  53. package/dist/tools/tiktok-tools/direct-post-video.js +34 -0
  54. package/dist/tools/tiktok-tools/direct-post-video.js.map +1 -0
  55. package/dist/tools/tiktok-tools/get-post-status.d.ts +14 -0
  56. package/dist/tools/tiktok-tools/get-post-status.js +36 -0
  57. package/dist/tools/tiktok-tools/get-post-status.js.map +1 -0
  58. package/dist/tools/tiktok-tools/get-user-info.d.ts +7 -0
  59. package/dist/tools/tiktok-tools/get-user-info.js +36 -0
  60. package/dist/tools/tiktok-tools/get-user-info.js.map +1 -0
  61. package/dist/tools/tiktok-tools/photo-post.d.ts +30 -0
  62. package/dist/tools/tiktok-tools/photo-post.js +36 -0
  63. package/dist/tools/tiktok-tools/photo-post.js.map +1 -0
  64. package/dist/tools/tiktok-tools/query-creator-info.d.ts +7 -0
  65. package/dist/tools/tiktok-tools/query-creator-info.js +39 -0
  66. package/dist/tools/tiktok-tools/query-creator-info.js.map +1 -0
  67. package/dist/tools/youtube-tools/get-channel-info.d.ts +14 -0
  68. package/dist/tools/youtube-tools/get-channel-info.js +41 -0
  69. package/dist/tools/youtube-tools/get-channel-info.js.map +1 -0
  70. package/dist/tools/youtube-tools/get-comments.d.ts +16 -0
  71. package/dist/tools/youtube-tools/get-comments.js +36 -0
  72. package/dist/tools/youtube-tools/get-comments.js.map +1 -0
  73. package/dist/tools/youtube-tools/get-video-info.d.ts +14 -0
  74. package/dist/tools/youtube-tools/get-video-info.js +42 -0
  75. package/dist/tools/youtube-tools/get-video-info.js.map +1 -0
  76. package/dist/tools/youtube-tools/list-channel-videos.d.ts +18 -0
  77. package/dist/tools/youtube-tools/list-channel-videos.js +36 -0
  78. package/dist/tools/youtube-tools/list-channel-videos.js.map +1 -0
  79. package/dist/tools/youtube-tools/post-comment.d.ts +16 -0
  80. package/dist/tools/youtube-tools/post-comment.js +25 -0
  81. package/dist/tools/youtube-tools/post-comment.js.map +1 -0
  82. package/dist/tools/youtube-tools/search-videos.d.ts +18 -0
  83. package/dist/tools/youtube-tools/search-videos.js +39 -0
  84. package/dist/tools/youtube-tools/search-videos.js.map +1 -0
  85. package/dist/tools/youtube-tools/update-video.d.ts +22 -0
  86. package/dist/tools/youtube-tools/update-video.js +32 -0
  87. package/dist/tools/youtube-tools/update-video.js.map +1 -0
  88. package/package.json +5 -2
package/README.md CHANGED
@@ -14,6 +14,9 @@ An MCP (Model Context Protocol) server that lets AI assistants post and interact
14
14
  | Instagram | Create post, get posts |
15
15
  | Slack | Send message, get messages, list channels |
16
16
  | LinkedIn | Get profile, create post, get posts, like post, add comment, search people |
17
+ | Reddit | Submit post, get posts, comment, vote, search, get user info |
18
+ | Threads | Get profile, create post, reply, get posts, delete post |
19
+ | TikTok | Query creator info, get user info, post video, photo post, get post status |
17
20
 
18
21
  ## Quick Start
19
22
 
@@ -54,7 +57,14 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
54
57
  "FACEBOOK_ACCESS_TOKEN": "your_token",
55
58
  "INSTAGRAM_ACCESS_TOKEN": "your_token",
56
59
  "SLACK_BOT_TOKEN": "your_token",
57
- "LINKEDIN_ACCESS_TOKEN": "your_token"
60
+ "LINKEDIN_ACCESS_TOKEN": "your_token",
61
+ "REDDIT_CLIENT_ID": "your_client_id",
62
+ "REDDIT_CLIENT_SECRET": "your_client_secret",
63
+ "REDDIT_USERNAME": "your_username",
64
+ "REDDIT_PASSWORD": "your_password",
65
+ "THREADS_ACCESS_TOKEN": "your_token",
66
+ "THREADS_USER_ID": "your_user_id",
67
+ "TIKTOK_ACCESS_TOKEN": "your_token"
58
68
  }
59
69
  }
60
70
  }
@@ -127,6 +137,25 @@ Copy `example.env` to `.env` and fill in the credentials for the platforms you w
127
137
  |----------|-------------|
128
138
  | `LINKEDIN_ACCESS_TOKEN` | OAuth 2.0 access token from the [LinkedIn Developer Portal](https://www.linkedin.com/developers/apps) — requires `r_liteprofile`, `w_member_social` scopes |
129
139
 
140
+ ### Reddit
141
+ | Variable | Description |
142
+ |----------|-------------|
143
+ | `REDDIT_CLIENT_ID` | App client ID from [reddit.com/prefs/apps](https://www.reddit.com/prefs/apps) (create a "script" type app) |
144
+ | `REDDIT_CLIENT_SECRET` | App client secret |
145
+ | `REDDIT_USERNAME` | Reddit account username |
146
+ | `REDDIT_PASSWORD` | Reddit account password |
147
+
148
+ ### Threads
149
+ | Variable | Description |
150
+ |----------|-------------|
151
+ | `THREADS_ACCESS_TOKEN` | OAuth 2.0 access token from the [Meta for Developers](https://developers.facebook.com) — requires `threads_basic`, `threads_content_publish` scopes |
152
+ | `THREADS_USER_ID` | Your Threads user ID (returned from the Threads API `/me` endpoint) |
153
+
154
+ ### TikTok
155
+ | Variable | Description |
156
+ |----------|-------------|
157
+ | `TIKTOK_ACCESS_TOKEN` | OAuth 2.0 access token from the [TikTok for Developers](https://developers.tiktok.com) — requires `user.info.basic`, `video.publish`, `video.upload` scopes |
158
+
130
159
  ## Available Tools
131
160
 
132
161
  ### Telegram
@@ -179,6 +208,32 @@ Copy `example.env` to `.env` and fill in the credentials for the platforms you w
179
208
 
180
209
  > **Note:** `SEARCH_LINKEDIN_PEOPLE` uses the LinkedIn People Search API which requires [Partner Program](https://learn.microsoft.com/en-us/linkedin/talent/recruiter-system-connect/getting-access) access. Most developer apps will receive a 403. All other tools work with a standard OAuth 2.0 token.
181
210
 
211
+ ### Reddit
212
+ - **REDDIT_SUBMIT_POST** — Submit a text or link post to a subreddit (`subreddit`, `title`, `kind`, `text`, `url`)
213
+ - **REDDIT_GET_POSTS** — Get posts from a subreddit (`subreddit`, `sort`, `limit`)
214
+ - **REDDIT_COMMENT** — Comment on a post or reply to a comment (`parentId`, `text`)
215
+ - **REDDIT_VOTE** — Upvote, downvote, or remove a vote (`id`, `direction`)
216
+ - **REDDIT_SEARCH** — Search Reddit across all or a specific subreddit (`query`, `subreddit`, `sort`, `limit`)
217
+ - **REDDIT_GET_USER_INFO** — Get public info about a Reddit user (`username`)
218
+
219
+ > **Note:** Reddit requires a "script" type app in [reddit.com/prefs/apps](https://www.reddit.com/prefs/apps). The password grant flow is used — 2FA must be disabled on the account.
220
+
221
+ ### Threads
222
+ - **THREADS_GET_PROFILE** — Get your Threads profile information
223
+ - **THREADS_CREATE_POST** — Create a new text post (`text`)
224
+ - **THREADS_REPLY** — Reply to a Threads post (`replyToId`, `text`)
225
+ - **THREADS_GET_POSTS** — Get recent posts from your account (`limit`)
226
+ - **THREADS_DELETE_POST** — Delete a post by ID (`mediaId`)
227
+
228
+ ### TikTok
229
+ - **TIKTOK_QUERY_CREATOR_INFO** — Query creator info including posting permissions and privacy options
230
+ - **TIKTOK_GET_USER_INFO** — Get TikTok account profile and stats
231
+ - **TIKTOK_DIRECT_POST_VIDEO** — Post a video by URL (`videoUrl`, `title`, `privacyLevel`, ...)
232
+ - **TIKTOK_PHOTO_POST** — Create a photo/carousel post (`photoUrls`, `title`, `description`, `privacyLevel`)
233
+ - **TIKTOK_GET_POST_STATUS** — Check the publishing status of a video or photo post (`publishId`)
234
+
235
+ > **Note:** TikTok's Content Posting API requires app approval from [TikTok for Developers](https://developers.tiktok.com). Videos are pulled from a public URL by TikTok's servers rather than uploaded directly.
236
+
182
237
  ## Development
183
238
 
184
239
  ```bash
package/dist/index.js CHANGED
@@ -6,10 +6,14 @@ import { getDiscordService } from "./services/discord-service.js";
6
6
  import { getFacebookService } from "./services/facebook-service.js";
7
7
  import { getInstagramService } from "./services/instagram-service.js";
8
8
  import { getLinkedInService } from "./services/linkedin-service.js";
9
+ import { getRedditService } from "./services/reddit-service.js";
9
10
  import { getSlackService } from "./services/slack-service.js";
10
11
  import { getTelegramService } from "./services/telegram-service.js";
12
+ import { getThreadsService } from "./services/threads-service.js";
13
+ import { getTikTokService } from "./services/tiktok-service.js";
11
14
  import { getTwitterService } from "./services/twitter-service.js";
12
15
  import { getWhatsappService } from "./services/whatsapp-service.js";
16
+ import { getYouTubeService } from "./services/youtube-service.js";
13
17
  import { getMessagesTool as discordGetMessagesTool } from "./tools/discord-tools/get-messages.js";
14
18
  import { sendMessageTool as discordSendMessageTool } from "./tools/discord-tools/send-message.js";
15
19
  import { createPostTool as facebookCreatePostTool } from "./tools/facebook-tools/create-post.js";
@@ -23,6 +27,12 @@ import { getPostsTool as linkedInGetPostsTool } from "./tools/linkedin-tools/get
23
27
  import { getProfileTool as linkedInGetProfileTool } from "./tools/linkedin-tools/get-profile.js";
24
28
  import { likePostTool as linkedInLikePostTool } from "./tools/linkedin-tools/like-post.js";
25
29
  import { searchPeopleTool as linkedInSearchPeopleTool } from "./tools/linkedin-tools/search-people.js";
30
+ import { commentTool as redditCommentTool } from "./tools/reddit-tools/comment.js";
31
+ import { getUserInfoTool as redditGetUserInfoTool } from "./tools/reddit-tools/get-user-info.js";
32
+ import { getPostsTool as redditGetPostsTool } from "./tools/reddit-tools/get-posts.js";
33
+ import { searchTool as redditSearchTool } from "./tools/reddit-tools/search.js";
34
+ import { submitPostTool as redditSubmitPostTool } from "./tools/reddit-tools/submit-post.js";
35
+ import { voteTool as redditVoteTool } from "./tools/reddit-tools/vote.js";
26
36
  import { getMessagesTool as slackGetMessagesTool } from "./tools/slack-tools/get-messages.js";
27
37
  import { listChannelsTool as slackListChannelsTool } from "./tools/slack-tools/list-channels.js";
28
38
  import { sendMessageTool as slackSendMessageTool } from "./tools/slack-tools/send-message.js";
@@ -33,6 +43,16 @@ import { getChannelInfoTool } from "./tools/telegram-tools/get-channel-info.js";
33
43
  import { getChannelMembersTool } from "./tools/telegram-tools/get-channel-members.js";
34
44
  import { pinMessageTool } from "./tools/telegram-tools/pin-message.js";
35
45
  import { sendMessageTool } from "./tools/telegram-tools/send-message.js";
46
+ import { createPostTool as threadsCreatePostTool } from "./tools/threads-tools/create-post.js";
47
+ import { deletePostTool as threadsDeletePostTool } from "./tools/threads-tools/delete-post.js";
48
+ import { getPostsTool as threadsGetPostsTool } from "./tools/threads-tools/get-posts.js";
49
+ import { getProfileTool as threadsGetProfileTool } from "./tools/threads-tools/get-profile.js";
50
+ import { replyTool as threadsReplyTool } from "./tools/threads-tools/reply.js";
51
+ import { directPostVideoTool as tiktokDirectPostVideoTool } from "./tools/tiktok-tools/direct-post-video.js";
52
+ import { getPostStatusTool as tiktokGetPostStatusTool } from "./tools/tiktok-tools/get-post-status.js";
53
+ import { getUserInfoTool as tiktokGetUserInfoTool } from "./tools/tiktok-tools/get-user-info.js";
54
+ import { photoPostTool as tiktokPhotoPostTool } from "./tools/tiktok-tools/photo-post.js";
55
+ import { queryCreatorInfoTool as tiktokQueryCreatorInfoTool } from "./tools/tiktok-tools/query-creator-info.js";
36
56
  import { deleteTweetTool } from "./tools/twitter-tools/delete-tweet.js";
37
57
  import { getUserInfoTool } from "./tools/twitter-tools/get-user-info.js";
38
58
  import { likeTweetTool } from "./tools/twitter-tools/like-tweet.js";
@@ -40,6 +60,13 @@ import { replyTweetTool } from "./tools/twitter-tools/reply-tweet.js";
40
60
  import { searchTweetsTool } from "./tools/twitter-tools/search-tweets.js";
41
61
  import { sendTweetTool } from "./tools/twitter-tools/send-tweet.js";
42
62
  import { sendMessageTool as whatsappSendMessageTool } from "./tools/whatsapp-tools/send-message.js";
63
+ import { getChannelInfoTool as youtubeGetChannelInfoTool } from "./tools/youtube-tools/get-channel-info.js";
64
+ import { getCommentsTool as youtubeGetCommentsTool } from "./tools/youtube-tools/get-comments.js";
65
+ import { getVideoInfoTool as youtubeGetVideoInfoTool } from "./tools/youtube-tools/get-video-info.js";
66
+ import { listChannelVideosTool as youtubeListChannelVideosTool } from "./tools/youtube-tools/list-channel-videos.js";
67
+ import { postCommentTool as youtubePostCommentTool } from "./tools/youtube-tools/post-comment.js";
68
+ import { searchVideosTool as youtubeSearchVideosTool } from "./tools/youtube-tools/search-videos.js";
69
+ import { updateVideoTool as youtubeUpdateVideoTool } from "./tools/youtube-tools/update-video.js";
43
70
  const require = createRequire(import.meta.url);
44
71
  const { version } = require("../package.json");
45
72
  function checkPlatform(name, init) {
@@ -66,6 +93,10 @@ async function main() {
66
93
  checkPlatform("Instagram", getInstagramService);
67
94
  checkPlatform("Slack", getSlackService);
68
95
  checkPlatform("LinkedIn", getLinkedInService);
96
+ checkPlatform("Reddit", getRedditService);
97
+ checkPlatform("Threads", getThreadsService);
98
+ checkPlatform("TikTok", getTikTokService);
99
+ checkPlatform("YouTube", getYouTubeService);
69
100
  console.error("");
70
101
  const server = new FastMCP({ name: "Social MCP Server", version });
71
102
  // Telegram
@@ -106,6 +137,33 @@ async function main() {
106
137
  server.addTool(linkedInLikePostTool);
107
138
  server.addTool(linkedInAddCommentTool);
108
139
  server.addTool(linkedInSearchPeopleTool);
140
+ // Reddit
141
+ server.addTool(redditSubmitPostTool);
142
+ server.addTool(redditGetPostsTool);
143
+ server.addTool(redditCommentTool);
144
+ server.addTool(redditVoteTool);
145
+ server.addTool(redditSearchTool);
146
+ server.addTool(redditGetUserInfoTool);
147
+ // Threads
148
+ server.addTool(threadsGetProfileTool);
149
+ server.addTool(threadsCreatePostTool);
150
+ server.addTool(threadsReplyTool);
151
+ server.addTool(threadsGetPostsTool);
152
+ server.addTool(threadsDeletePostTool);
153
+ // TikTok
154
+ server.addTool(tiktokQueryCreatorInfoTool);
155
+ server.addTool(tiktokGetUserInfoTool);
156
+ server.addTool(tiktokDirectPostVideoTool);
157
+ server.addTool(tiktokPhotoPostTool);
158
+ server.addTool(tiktokGetPostStatusTool);
159
+ // YouTube
160
+ server.addTool(youtubeGetChannelInfoTool);
161
+ server.addTool(youtubeSearchVideosTool);
162
+ server.addTool(youtubeGetVideoInfoTool);
163
+ server.addTool(youtubeListChannelVideosTool);
164
+ server.addTool(youtubeGetCommentsTool);
165
+ server.addTool(youtubePostCommentTool);
166
+ server.addTool(youtubeUpdateVideoTool);
109
167
  try {
110
168
  await server.start({ transportType: "stdio" });
111
169
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -21,4 +21,25 @@ export declare const config: {
21
21
  baseUrl: string;
22
22
  accessToken: string;
23
23
  };
24
+ reddit: {
25
+ baseUrl: string;
26
+ clientId: string;
27
+ clientSecret: string;
28
+ username: string;
29
+ password: string;
30
+ userAgent: string;
31
+ };
32
+ threads: {
33
+ baseUrl: string;
34
+ accessToken: string;
35
+ userId: string;
36
+ };
37
+ tiktok: {
38
+ baseUrl: string;
39
+ accessToken: string;
40
+ };
41
+ youtube: {
42
+ baseUrl: string;
43
+ accessToken: string;
44
+ };
24
45
  };
@@ -22,5 +22,26 @@ export const config = {
22
22
  baseUrl: "https://api.linkedin.com/v2",
23
23
  accessToken: process.env.LINKEDIN_ACCESS_TOKEN || "",
24
24
  },
25
+ reddit: {
26
+ baseUrl: "https://oauth.reddit.com",
27
+ clientId: process.env.REDDIT_CLIENT_ID || "",
28
+ clientSecret: process.env.REDDIT_CLIENT_SECRET || "",
29
+ username: process.env.REDDIT_USERNAME || "",
30
+ password: process.env.REDDIT_PASSWORD || "",
31
+ userAgent: "social-mcp/1.0 (by /u/social_mcp_bot)",
32
+ },
33
+ threads: {
34
+ baseUrl: "https://graph.threads.net/v1.0",
35
+ accessToken: process.env.THREADS_ACCESS_TOKEN || "",
36
+ userId: process.env.THREADS_USER_ID || "",
37
+ },
38
+ tiktok: {
39
+ baseUrl: "https://open.tiktokapis.com/v2",
40
+ accessToken: process.env.TIKTOK_ACCESS_TOKEN || "",
41
+ },
42
+ youtube: {
43
+ baseUrl: "https://www.googleapis.com/youtube/v3",
44
+ accessToken: process.env.YOUTUBE_ACCESS_TOKEN || "",
45
+ },
25
46
  };
26
47
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,SAAS,GAAG,8BAA8B,gBAAgB,EAAE,CAAC;AAEnE,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,OAAO,EAAE;QACR,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;KAC7C;IACD,QAAQ,EAAE;QACT,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;QACpD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;KACzD;IACD,QAAQ,EAAE;QACT,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;KACpD;IACD,SAAS,EAAE;QACV,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE;KACrD;IACD,QAAQ,EAAE;QACT,OAAO,EAAE,6BAA6B;QACtC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;KACpD;CACD,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,SAAS,GAAG,8BAA8B,gBAAgB,EAAE,CAAC;AAEnE,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,OAAO,EAAE;QACR,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;KAC7C;IACD,QAAQ,EAAE;QACT,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;QACpD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;KACzD;IACD,QAAQ,EAAE;QACT,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;KACpD;IACD,SAAS,EAAE;QACV,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE;KACrD;IACD,QAAQ,EAAE;QACT,OAAO,EAAE,6BAA6B;QACtC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;KACpD;IACD,MAAM,EAAE;QACP,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;QAC5C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;QACpD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;QAC3C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;QAC3C,SAAS,EAAE,uCAAuC;KAClD;IACD,OAAO,EAAE;QACR,OAAO,EAAE,gCAAgC;QACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;QACnD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;KACzC;IACD,MAAM,EAAE;QACP,OAAO,EAAE,gCAAgC;QACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE;KAClD;IACD,OAAO,EAAE;QACR,OAAO,EAAE,uCAAuC;QAChD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;KACnD;CACD,CAAC"}
@@ -0,0 +1,87 @@
1
+ export declare class RedditService {
2
+ private baseUrl;
3
+ private userAgent;
4
+ private _accessToken;
5
+ constructor();
6
+ private authenticate;
7
+ private headers;
8
+ submitPost(subreddit: string, title: string, kind: "self" | "link", text?: string, url?: string): Promise<{
9
+ json: {
10
+ errors: unknown[];
11
+ data?: {
12
+ name?: string | undefined;
13
+ url?: string | undefined;
14
+ id?: string | undefined;
15
+ } | undefined;
16
+ };
17
+ }>;
18
+ getPosts(subreddit: string, sort?: "hot" | "new" | "top" | "rising", limit?: number): Promise<{
19
+ data: {
20
+ children: {
21
+ data: {
22
+ id: string;
23
+ name: string;
24
+ title?: string | undefined;
25
+ selftext?: string | undefined;
26
+ url?: string | undefined;
27
+ score?: number | undefined;
28
+ author?: string | undefined;
29
+ created_utc?: number | undefined;
30
+ num_comments?: number | undefined;
31
+ subreddit?: string | undefined;
32
+ permalink?: string | undefined;
33
+ body?: string | undefined;
34
+ };
35
+ }[];
36
+ after?: string | null | undefined;
37
+ };
38
+ }>;
39
+ comment(parentId: string, text: string): Promise<{
40
+ json: {
41
+ errors: unknown[];
42
+ data?: {
43
+ name?: string | undefined;
44
+ url?: string | undefined;
45
+ id?: string | undefined;
46
+ } | undefined;
47
+ };
48
+ }>;
49
+ vote(id: string, dir: 1 | 0 | -1): Promise<void>;
50
+ search(query: string, subreddit?: string, sort?: "relevance" | "new" | "top", limit?: number): Promise<{
51
+ data: {
52
+ children: {
53
+ data: {
54
+ id: string;
55
+ name: string;
56
+ title?: string | undefined;
57
+ selftext?: string | undefined;
58
+ url?: string | undefined;
59
+ score?: number | undefined;
60
+ author?: string | undefined;
61
+ created_utc?: number | undefined;
62
+ num_comments?: number | undefined;
63
+ subreddit?: string | undefined;
64
+ permalink?: string | undefined;
65
+ body?: string | undefined;
66
+ };
67
+ }[];
68
+ after?: string | null | undefined;
69
+ };
70
+ }>;
71
+ getUserInfo(username: string): Promise<{
72
+ data: {
73
+ name: string;
74
+ id: string;
75
+ icon_img?: string | undefined;
76
+ link_karma?: number | undefined;
77
+ comment_karma?: number | undefined;
78
+ created_utc?: number | undefined;
79
+ is_gold?: boolean | undefined;
80
+ subreddit?: {
81
+ title?: string | undefined;
82
+ public_description?: string | undefined;
83
+ } | undefined;
84
+ };
85
+ }>;
86
+ }
87
+ export declare function getRedditService(): RedditService;
@@ -0,0 +1,188 @@
1
+ import { z } from "zod";
2
+ import { config } from "../lib/config.js";
3
+ import { CredentialsError } from "../lib/errors.js";
4
+ const redditTokenSchema = z.object({
5
+ access_token: z.string(),
6
+ token_type: z.string(),
7
+ expires_in: z.number().optional(),
8
+ });
9
+ const redditPostSchema = z.object({
10
+ json: z.object({
11
+ errors: z.array(z.unknown()),
12
+ data: z
13
+ .object({
14
+ name: z.string().optional(),
15
+ url: z.string().optional(),
16
+ id: z.string().optional(),
17
+ })
18
+ .optional(),
19
+ }),
20
+ });
21
+ const redditListingSchema = z.object({
22
+ data: z.object({
23
+ children: z.array(z.object({
24
+ data: z.object({
25
+ id: z.string(),
26
+ name: z.string(),
27
+ title: z.string().optional(),
28
+ selftext: z.string().optional(),
29
+ url: z.string().optional(),
30
+ score: z.number().optional(),
31
+ author: z.string().optional(),
32
+ created_utc: z.number().optional(),
33
+ num_comments: z.number().optional(),
34
+ subreddit: z.string().optional(),
35
+ permalink: z.string().optional(),
36
+ body: z.string().optional(),
37
+ }),
38
+ })),
39
+ after: z.string().nullable().optional(),
40
+ }),
41
+ });
42
+ const redditUserSchema = z.object({
43
+ data: z.object({
44
+ name: z.string(),
45
+ id: z.string(),
46
+ icon_img: z.string().optional(),
47
+ link_karma: z.number().optional(),
48
+ comment_karma: z.number().optional(),
49
+ created_utc: z.number().optional(),
50
+ is_gold: z.boolean().optional(),
51
+ subreddit: z
52
+ .object({
53
+ title: z.string().optional(),
54
+ public_description: z.string().optional(),
55
+ })
56
+ .optional(),
57
+ }),
58
+ });
59
+ export class RedditService {
60
+ baseUrl = config.reddit.baseUrl;
61
+ userAgent = config.reddit.userAgent;
62
+ _accessToken = null;
63
+ constructor() {
64
+ if (!config.reddit.clientId ||
65
+ !config.reddit.clientSecret ||
66
+ !config.reddit.username ||
67
+ !config.reddit.password) {
68
+ throw new CredentialsError("Reddit", [
69
+ "REDDIT_CLIENT_ID",
70
+ "REDDIT_CLIENT_SECRET",
71
+ "REDDIT_USERNAME",
72
+ "REDDIT_PASSWORD",
73
+ ]);
74
+ }
75
+ }
76
+ async authenticate() {
77
+ if (this._accessToken)
78
+ return this._accessToken;
79
+ const credentials = Buffer.from(`${config.reddit.clientId}:${config.reddit.clientSecret}`).toString("base64");
80
+ const response = await fetch("https://www.reddit.com/api/v1/access_token", {
81
+ method: "POST",
82
+ headers: {
83
+ Authorization: `Basic ${credentials}`,
84
+ "Content-Type": "application/x-www-form-urlencoded",
85
+ "User-Agent": this.userAgent,
86
+ },
87
+ body: new URLSearchParams({
88
+ grant_type: "password",
89
+ username: config.reddit.username,
90
+ password: config.reddit.password,
91
+ }),
92
+ });
93
+ if (!response.ok) {
94
+ throw new Error(`Reddit auth failed: ${response.status} ${await response.text()}`);
95
+ }
96
+ const data = redditTokenSchema.parse(await response.json());
97
+ this._accessToken = data.access_token;
98
+ return this._accessToken;
99
+ }
100
+ async headers() {
101
+ const token = await this.authenticate();
102
+ return {
103
+ Authorization: `Bearer ${token}`,
104
+ "User-Agent": this.userAgent,
105
+ "Content-Type": "application/x-www-form-urlencoded",
106
+ };
107
+ }
108
+ async submitPost(subreddit, title, kind, text, url) {
109
+ const headers = await this.headers();
110
+ const body = new URLSearchParams({ sr: subreddit, title, kind });
111
+ if (kind === "self" && text)
112
+ body.set("text", text);
113
+ if (kind === "link" && url)
114
+ body.set("url", url);
115
+ const response = await fetch(`${this.baseUrl}/api/submit`, {
116
+ method: "POST",
117
+ headers,
118
+ body,
119
+ });
120
+ if (!response.ok) {
121
+ throw new Error(`Reddit API error ${response.status}: ${await response.text()}`);
122
+ }
123
+ return redditPostSchema.parse(await response.json());
124
+ }
125
+ async getPosts(subreddit, sort = "hot", limit = 10) {
126
+ const headers = await this.headers();
127
+ const response = await fetch(`${this.baseUrl}/r/${subreddit}/${sort}?limit=${limit}`, { method: "GET", headers });
128
+ if (!response.ok) {
129
+ throw new Error(`Reddit API error ${response.status}: ${await response.text()}`);
130
+ }
131
+ return redditListingSchema.parse(await response.json());
132
+ }
133
+ async comment(parentId, text) {
134
+ const headers = await this.headers();
135
+ const body = new URLSearchParams({ thing_id: parentId, text });
136
+ const response = await fetch(`${this.baseUrl}/api/comment`, {
137
+ method: "POST",
138
+ headers,
139
+ body,
140
+ });
141
+ if (!response.ok) {
142
+ throw new Error(`Reddit API error ${response.status}: ${await response.text()}`);
143
+ }
144
+ return redditPostSchema.parse(await response.json());
145
+ }
146
+ async vote(id, dir) {
147
+ const headers = await this.headers();
148
+ const body = new URLSearchParams({ id, dir: String(dir) });
149
+ const response = await fetch(`${this.baseUrl}/api/vote`, {
150
+ method: "POST",
151
+ headers,
152
+ body,
153
+ });
154
+ if (!response.ok) {
155
+ throw new Error(`Reddit API error ${response.status}: ${await response.text()}`);
156
+ }
157
+ }
158
+ async search(query, subreddit, sort = "relevance", limit = 10) {
159
+ const headers = await this.headers();
160
+ const params = new URLSearchParams({ q: query, sort, limit: String(limit) });
161
+ const base = subreddit
162
+ ? `${this.baseUrl}/r/${subreddit}/search?${params}&restrict_sr=1`
163
+ : `${this.baseUrl}/search?${params}`;
164
+ const response = await fetch(base, { method: "GET", headers });
165
+ if (!response.ok) {
166
+ throw new Error(`Reddit API error ${response.status}: ${await response.text()}`);
167
+ }
168
+ return redditListingSchema.parse(await response.json());
169
+ }
170
+ async getUserInfo(username) {
171
+ const headers = await this.headers();
172
+ const response = await fetch(`${this.baseUrl}/user/${username}/about`, {
173
+ method: "GET",
174
+ headers,
175
+ });
176
+ if (!response.ok) {
177
+ throw new Error(`Reddit API error ${response.status}: ${await response.text()}`);
178
+ }
179
+ return redditUserSchema.parse(await response.json());
180
+ }
181
+ }
182
+ let _instance;
183
+ export function getRedditService() {
184
+ if (!_instance)
185
+ _instance = new RedditService();
186
+ return _instance;
187
+ }
188
+ //# sourceMappingURL=reddit-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reddit-service.js","sourceRoot":"","sources":["../../src/services/reddit-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export declare class ThreadsService {
2
+ private baseUrl;
3
+ private headers;
4
+ constructor();
5
+ getProfile(): Promise<{
6
+ id: string;
7
+ username?: string | undefined;
8
+ name?: string | undefined;
9
+ biography?: string | undefined;
10
+ followers_count?: number | undefined;
11
+ profile_picture_url?: string | undefined;
12
+ }>;
13
+ createPost(text: string, replyToId?: string): Promise<{
14
+ id: string;
15
+ }>;
16
+ getPosts(limit?: number): Promise<{
17
+ data: {
18
+ id: string;
19
+ text?: string | undefined;
20
+ media_type?: string | undefined;
21
+ timestamp?: string | undefined;
22
+ permalink?: string | undefined;
23
+ like_count?: number | undefined;
24
+ replies_count?: number | undefined;
25
+ }[];
26
+ paging?: {
27
+ cursors?: {
28
+ before?: string | undefined;
29
+ after?: string | undefined;
30
+ } | undefined;
31
+ } | undefined;
32
+ }>;
33
+ deletePost(mediaId: string): Promise<void>;
34
+ }
35
+ export declare function getThreadsService(): ThreadsService;