@muench-dev/n8n-nodes-bluesky 3.1.0 → 4.0.2
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.
- package/README.md +151 -24
- package/dist/nodes/Bluesky/V2/BlueskyV2.node.d.ts +1 -1
- package/dist/nodes/Bluesky/V2/BlueskyV2.node.js +212 -128
- package/dist/nodes/Bluesky/V2/BlueskyV2.node.js.map +1 -1
- package/dist/nodes/Bluesky/V2/__tests__/analyticsOperations.test.d.ts +1 -0
- package/dist/nodes/Bluesky/V2/__tests__/analyticsOperations.test.js +99 -0
- package/dist/nodes/Bluesky/V2/__tests__/analyticsOperations.test.js.map +1 -0
- package/dist/nodes/Bluesky/V2/__tests__/graphOperations.test.d.ts +1 -0
- package/dist/nodes/Bluesky/V2/__tests__/graphOperations.test.js +19 -0
- package/dist/nodes/Bluesky/V2/__tests__/graphOperations.test.js.map +1 -0
- package/dist/nodes/Bluesky/V2/__tests__/listOperations.test.d.ts +1 -0
- package/dist/nodes/Bluesky/V2/__tests__/listOperations.test.js +97 -0
- package/dist/nodes/Bluesky/V2/__tests__/listOperations.test.js.map +1 -0
- package/dist/nodes/Bluesky/V2/__tests__/postOperations.test.js +70 -8
- package/dist/nodes/Bluesky/V2/__tests__/postOperations.test.js.map +1 -1
- package/dist/nodes/Bluesky/V2/__tests__/searchOperations.test.d.ts +1 -0
- package/dist/nodes/Bluesky/V2/__tests__/searchOperations.test.js +41 -0
- package/dist/nodes/Bluesky/V2/__tests__/searchOperations.test.js.map +1 -0
- package/dist/nodes/Bluesky/V2/analyticsOperations.d.ts +7 -0
- package/dist/nodes/Bluesky/V2/analyticsOperations.js +236 -0
- package/dist/nodes/Bluesky/V2/analyticsOperations.js.map +1 -0
- package/dist/nodes/Bluesky/V2/feedOperations.d.ts +3 -2
- package/dist/nodes/Bluesky/V2/feedOperations.js +113 -13
- package/dist/nodes/Bluesky/V2/feedOperations.js.map +1 -1
- package/dist/nodes/Bluesky/V2/graphOperations.d.ts +4 -0
- package/dist/nodes/Bluesky/V2/graphOperations.js +45 -0
- package/dist/nodes/Bluesky/V2/graphOperations.js.map +1 -0
- package/dist/nodes/Bluesky/V2/listOperations.d.ts +10 -0
- package/dist/nodes/Bluesky/V2/listOperations.js +302 -0
- package/dist/nodes/Bluesky/V2/listOperations.js.map +1 -0
- package/dist/nodes/Bluesky/V2/postOperations.d.ts +21 -9
- package/dist/nodes/Bluesky/V2/postOperations.js +342 -232
- package/dist/nodes/Bluesky/V2/postOperations.js.map +1 -1
- package/dist/nodes/Bluesky/V2/resources.js +18 -2
- package/dist/nodes/Bluesky/V2/resources.js.map +1 -1
- package/dist/nodes/Bluesky/V2/searchOperations.d.ts +5 -0
- package/dist/nodes/Bluesky/V2/searchOperations.js +95 -0
- package/dist/nodes/Bluesky/V2/searchOperations.js.map +1 -0
- package/dist/nodes/Bluesky/V2/userOperations.d.ts +2 -0
- package/dist/nodes/Bluesky/V2/userOperations.js +137 -34
- package/dist/nodes/Bluesky/V2/userOperations.js.map +1 -1
- package/dist/package.json +10 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +80 -66
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.analyticsProperties = void 0;
|
|
4
|
+
exports.listNotificationsOperation = listNotificationsOperation;
|
|
5
|
+
exports.getUnreadCountOperation = getUnreadCountOperation;
|
|
6
|
+
exports.updateSeenNotificationsOperation = updateSeenNotificationsOperation;
|
|
7
|
+
exports.getPostInteractionsOperation = getPostInteractionsOperation;
|
|
8
|
+
exports.analyticsProperties = [
|
|
9
|
+
{
|
|
10
|
+
displayName: 'Operation',
|
|
11
|
+
name: 'operation',
|
|
12
|
+
type: 'options',
|
|
13
|
+
noDataExpression: true,
|
|
14
|
+
displayOptions: {
|
|
15
|
+
show: {
|
|
16
|
+
resource: ['analytics'],
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
options: [
|
|
20
|
+
{
|
|
21
|
+
name: 'Get Post Interactions',
|
|
22
|
+
value: 'getPostInteractions',
|
|
23
|
+
description: 'Get likes, reposts, and replies for a post',
|
|
24
|
+
action: 'Get post interactions',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'Get Unread Notification Count',
|
|
28
|
+
value: 'getUnreadCount',
|
|
29
|
+
description: 'Get unread notification count for the authenticated user',
|
|
30
|
+
action: 'Get unread notification count',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'List Notifications',
|
|
34
|
+
value: 'listNotifications',
|
|
35
|
+
description: 'List notifications for the authenticated user',
|
|
36
|
+
action: 'List notifications',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Update Seen Notifications',
|
|
40
|
+
value: 'updateSeenNotifications',
|
|
41
|
+
description: 'Mark notifications as seen',
|
|
42
|
+
action: 'Mark notifications as seen',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
default: 'listNotifications',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
displayName: 'Limit',
|
|
49
|
+
name: 'limit',
|
|
50
|
+
type: 'number',
|
|
51
|
+
default: 50,
|
|
52
|
+
typeOptions: {
|
|
53
|
+
minValue: 1,
|
|
54
|
+
},
|
|
55
|
+
description: 'Max number of results to return',
|
|
56
|
+
displayOptions: {
|
|
57
|
+
show: {
|
|
58
|
+
resource: ['analytics'],
|
|
59
|
+
operation: ['listNotifications'],
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
displayName: 'Unread Only',
|
|
65
|
+
name: 'unreadOnly',
|
|
66
|
+
type: 'boolean',
|
|
67
|
+
default: true,
|
|
68
|
+
description: 'Whether to only return unread notifications',
|
|
69
|
+
displayOptions: {
|
|
70
|
+
show: {
|
|
71
|
+
resource: ['analytics'],
|
|
72
|
+
operation: ['listNotifications'],
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
displayName: 'Mark Retrieved as Read',
|
|
78
|
+
name: 'markRetrievedAsRead',
|
|
79
|
+
type: 'boolean',
|
|
80
|
+
default: true,
|
|
81
|
+
description: 'Whether to mark retrieved notifications as read after returning them',
|
|
82
|
+
displayOptions: {
|
|
83
|
+
show: {
|
|
84
|
+
resource: ['analytics'],
|
|
85
|
+
operation: ['listNotifications'],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
displayName: 'Seen At (ISO Date String)',
|
|
91
|
+
name: 'seenAt',
|
|
92
|
+
type: 'string',
|
|
93
|
+
default: '',
|
|
94
|
+
description: 'Optional timestamp to use when marking notifications as seen',
|
|
95
|
+
displayOptions: {
|
|
96
|
+
show: {
|
|
97
|
+
resource: ['analytics'],
|
|
98
|
+
operation: ['updateSeenNotifications'],
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
displayName: 'Post URI',
|
|
104
|
+
name: 'uri',
|
|
105
|
+
type: 'string',
|
|
106
|
+
default: '',
|
|
107
|
+
required: true,
|
|
108
|
+
description: 'AT URI of the post to analyze',
|
|
109
|
+
displayOptions: {
|
|
110
|
+
show: {
|
|
111
|
+
resource: ['analytics'],
|
|
112
|
+
operation: ['getPostInteractions'],
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
displayName: 'Interactions to Retrieve',
|
|
118
|
+
name: 'interactionTypes',
|
|
119
|
+
type: 'multiOptions',
|
|
120
|
+
options: [
|
|
121
|
+
{ name: 'Likes', value: 'likes' },
|
|
122
|
+
{ name: 'Replies', value: 'replies' },
|
|
123
|
+
{ name: 'Reposts', value: 'reposts' },
|
|
124
|
+
],
|
|
125
|
+
default: ['likes', 'reposts', 'replies'],
|
|
126
|
+
description: 'Types of interactions to include in the response',
|
|
127
|
+
displayOptions: {
|
|
128
|
+
show: {
|
|
129
|
+
resource: ['analytics'],
|
|
130
|
+
operation: ['getPostInteractions'],
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
displayName: 'Interaction Limit',
|
|
136
|
+
name: 'interactionLimit',
|
|
137
|
+
type: 'number',
|
|
138
|
+
default: 50,
|
|
139
|
+
typeOptions: {
|
|
140
|
+
minValue: 1,
|
|
141
|
+
maxValue: 100,
|
|
142
|
+
},
|
|
143
|
+
description: 'Max number of each interaction type to return',
|
|
144
|
+
displayOptions: {
|
|
145
|
+
show: {
|
|
146
|
+
resource: ['analytics'],
|
|
147
|
+
operation: ['getPostInteractions'],
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
async function listNotificationsOperation(agent, limit, unreadOnly, markRetrievedAsRead) {
|
|
153
|
+
var _a;
|
|
154
|
+
const notifications = [];
|
|
155
|
+
let cursor;
|
|
156
|
+
while (notifications.length < limit) {
|
|
157
|
+
const response = await agent.app.bsky.notification.listNotifications({
|
|
158
|
+
limit: Math.min(100, limit - notifications.length),
|
|
159
|
+
...(cursor ? { cursor } : {}),
|
|
160
|
+
});
|
|
161
|
+
const pageNotifications = ((_a = response.data.notifications) !== null && _a !== void 0 ? _a : []).filter((notification) => unreadOnly ? !notification.isRead : true);
|
|
162
|
+
notifications.push(...pageNotifications);
|
|
163
|
+
if (!response.data.cursor || response.data.notifications.length === 0) {
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
cursor = response.data.cursor;
|
|
167
|
+
}
|
|
168
|
+
const finalNotifications = notifications.slice(0, limit);
|
|
169
|
+
if (markRetrievedAsRead && finalNotifications.length > 0) {
|
|
170
|
+
await agent.app.bsky.notification.updateSeen({
|
|
171
|
+
seenAt: new Date().toISOString(),
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
return finalNotifications.map((notification) => ({ json: notification }));
|
|
175
|
+
}
|
|
176
|
+
async function getUnreadCountOperation(agent) {
|
|
177
|
+
const response = await agent.app.bsky.notification.getUnreadCount();
|
|
178
|
+
return [
|
|
179
|
+
{
|
|
180
|
+
json: {
|
|
181
|
+
count: response.data.count,
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
];
|
|
185
|
+
}
|
|
186
|
+
async function updateSeenNotificationsOperation(agent, seenAt) {
|
|
187
|
+
const timestamp = seenAt || new Date().toISOString();
|
|
188
|
+
await agent.app.bsky.notification.updateSeen({ seenAt: timestamp });
|
|
189
|
+
return [
|
|
190
|
+
{
|
|
191
|
+
json: {
|
|
192
|
+
success: true,
|
|
193
|
+
seenAt: timestamp,
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
];
|
|
197
|
+
}
|
|
198
|
+
async function getPostInteractionsOperation(agent, uri, interactionTypes, interactionLimit) {
|
|
199
|
+
var _a;
|
|
200
|
+
const interactions = {};
|
|
201
|
+
if (interactionTypes.includes('likes')) {
|
|
202
|
+
const likesResponse = await agent.app.bsky.feed.getLikes({ uri, limit: interactionLimit });
|
|
203
|
+
interactions.likes = likesResponse.data.likes.map((like) => ({
|
|
204
|
+
actor: like.actor,
|
|
205
|
+
createdAt: like.createdAt,
|
|
206
|
+
indexedAt: like.indexedAt,
|
|
207
|
+
}));
|
|
208
|
+
}
|
|
209
|
+
if (interactionTypes.includes('reposts')) {
|
|
210
|
+
const repostsResponse = await agent.app.bsky.feed.getRepostedBy({
|
|
211
|
+
uri,
|
|
212
|
+
limit: interactionLimit,
|
|
213
|
+
});
|
|
214
|
+
interactions.reposts = repostsResponse.data.repostedBy;
|
|
215
|
+
}
|
|
216
|
+
if (interactionTypes.includes('replies')) {
|
|
217
|
+
const threadResponse = await agent.app.bsky.feed.getPostThread({ uri, depth: 1 });
|
|
218
|
+
const thread = threadResponse.data.thread;
|
|
219
|
+
interactions.replies = ((_a = thread === null || thread === void 0 ? void 0 : thread.replies) !== null && _a !== void 0 ? _a : [])
|
|
220
|
+
.map((reply) => {
|
|
221
|
+
var _a;
|
|
222
|
+
return ({
|
|
223
|
+
post: reply.post,
|
|
224
|
+
author: (_a = reply.post) === null || _a === void 0 ? void 0 : _a.author,
|
|
225
|
+
});
|
|
226
|
+
})
|
|
227
|
+
.slice(0, interactionLimit);
|
|
228
|
+
}
|
|
229
|
+
interactions.analytics = {
|
|
230
|
+
likeCount: Array.isArray(interactions.likes) ? interactions.likes.length : 0,
|
|
231
|
+
repostCount: Array.isArray(interactions.reposts) ? interactions.reposts.length : 0,
|
|
232
|
+
replyCount: Array.isArray(interactions.replies) ? interactions.replies.length : 0,
|
|
233
|
+
};
|
|
234
|
+
return [{ json: interactions }];
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=analyticsOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyticsOperations.js","sourceRoot":"","sources":["../../../../nodes/Bluesky/V2/analyticsOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppBskyFeedDefs, AppBskyFeedGetAuthorFeed, AppBskyFeedGetTimeline, AtpAgent, ComAtprotoLabelDefs
|
|
1
|
+
import { AppBskyActorDefs, AppBskyFeedDefs, AppBskyFeedGetAuthorFeed, AppBskyFeedGetTimeline, AtpAgent, ComAtprotoLabelDefs } from '@atproto/api';
|
|
2
2
|
import { INodeExecutionData, INodeProperties } from 'n8n-workflow';
|
|
3
3
|
export interface OutputPost {
|
|
4
4
|
uri: string;
|
|
@@ -46,5 +46,6 @@ export declare function mapFeedViewPostToOutputPost(feedViewPost: AppBskyFeedDef
|
|
|
46
46
|
export declare function _getAuthorFeedInternal(agent: AtpAgent, params: AppBskyFeedGetAuthorFeed.QueryParams): Promise<OutputPost[]>;
|
|
47
47
|
export declare function _getTimelineInternal(agent: AtpAgent, params: AppBskyFeedGetTimeline.QueryParams): Promise<OutputPost[]>;
|
|
48
48
|
export declare const feedProperties: INodeProperties[];
|
|
49
|
-
export declare function getAuthorFeed(agent: AtpAgent, actor: string, limit: number): Promise<INodeExecutionData[]>;
|
|
49
|
+
export declare function getAuthorFeed(agent: AtpAgent, actor: string, limit: number, filter?: string): Promise<INodeExecutionData[]>;
|
|
50
|
+
export declare function getPostThread(agent: AtpAgent, uri: string, depth?: number, parentHeight?: number): Promise<INodeExecutionData[]>;
|
|
50
51
|
export declare function getTimeline(agent: AtpAgent, limit: number): Promise<INodeExecutionData[]>;
|
|
@@ -5,6 +5,7 @@ exports.mapFeedViewPostToOutputPost = mapFeedViewPostToOutputPost;
|
|
|
5
5
|
exports._getAuthorFeedInternal = _getAuthorFeedInternal;
|
|
6
6
|
exports._getTimelineInternal = _getTimelineInternal;
|
|
7
7
|
exports.getAuthorFeed = getAuthorFeed;
|
|
8
|
+
exports.getPostThread = getPostThread;
|
|
8
9
|
exports.getTimeline = getTimeline;
|
|
9
10
|
const api_1 = require("@atproto/api");
|
|
10
11
|
function mapFeedViewPostToOutputPost(feedViewPost) {
|
|
@@ -45,7 +46,11 @@ function mapFeedViewPostToOutputPost(feedViewPost) {
|
|
|
45
46
|
};
|
|
46
47
|
}
|
|
47
48
|
else if (api_1.AppBskyFeedDefs.isNotFoundPost(parent)) {
|
|
48
|
-
outputPost.replyParent = {
|
|
49
|
+
outputPost.replyParent = {
|
|
50
|
+
uri: parent.uri,
|
|
51
|
+
cid: 'not_found_cid',
|
|
52
|
+
authorDid: 'not_found_author',
|
|
53
|
+
};
|
|
49
54
|
}
|
|
50
55
|
else if (api_1.AppBskyFeedDefs.isBlockedPost(parent)) {
|
|
51
56
|
outputPost.replyParent = { uri: parent.uri, cid: 'blocked_cid', authorDid: 'blocked_author' };
|
|
@@ -64,7 +69,8 @@ function mapFeedViewPostToOutputPost(feedViewPost) {
|
|
|
64
69
|
outputPost.feedContext = `Reposted by @${reposter.handle}`;
|
|
65
70
|
}
|
|
66
71
|
if (feedViewPost.feedContext) {
|
|
67
|
-
if (typeof outputPost.feedContext === 'string' &&
|
|
72
|
+
if (typeof outputPost.feedContext === 'string' &&
|
|
73
|
+
typeof feedViewPost.feedContext === 'string') {
|
|
68
74
|
outputPost.feedContext = `${outputPost.feedContext}; ${feedViewPost.feedContext}`;
|
|
69
75
|
}
|
|
70
76
|
else if (!outputPost.feedContext) {
|
|
@@ -79,9 +85,7 @@ async function _getAuthorFeedInternal(agent, params) {
|
|
|
79
85
|
if ('error' in response && 'message' in response) {
|
|
80
86
|
throw new Error(`Failed to fetch author feed: ${response.error} - ${response.message}`);
|
|
81
87
|
}
|
|
82
|
-
|
|
83
|
-
throw new Error('Failed to fetch author feed due to an unknown error structure.');
|
|
84
|
-
}
|
|
88
|
+
throw new Error('Failed to fetch author feed due to an unknown error structure.');
|
|
85
89
|
}
|
|
86
90
|
return response.data.feed.map((item) => mapFeedViewPostToOutputPost(item));
|
|
87
91
|
}
|
|
@@ -91,9 +95,7 @@ async function _getTimelineInternal(agent, params) {
|
|
|
91
95
|
if ('error' in response && 'message' in response) {
|
|
92
96
|
throw new Error(`Failed to fetch timeline: ${response.error} - ${response.message}`);
|
|
93
97
|
}
|
|
94
|
-
|
|
95
|
-
throw new Error('Failed to fetch timeline due to an unknown error structure.');
|
|
96
|
-
}
|
|
98
|
+
throw new Error('Failed to fetch timeline due to an unknown error structure.');
|
|
97
99
|
}
|
|
98
100
|
return response.data.feed.map((item) => mapFeedViewPostToOutputPost(item));
|
|
99
101
|
}
|
|
@@ -105,8 +107,24 @@ exports.feedProperties = [
|
|
|
105
107
|
noDataExpression: true,
|
|
106
108
|
displayOptions: { show: { resource: ['feed'] } },
|
|
107
109
|
options: [
|
|
108
|
-
{
|
|
109
|
-
|
|
110
|
+
{
|
|
111
|
+
name: 'Get Author Feed',
|
|
112
|
+
value: 'getAuthorFeed',
|
|
113
|
+
description: 'Author feeds return posts by a single user',
|
|
114
|
+
action: 'Retrieve feed with posts by a single user',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: 'Get Post Thread',
|
|
118
|
+
value: 'getPostThread',
|
|
119
|
+
description: 'Retrieve the full context of a post thread',
|
|
120
|
+
action: 'Retrieve a post thread',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: 'Timeline',
|
|
124
|
+
value: 'getTimeline',
|
|
125
|
+
description: 'The default chronological feed of posts from users the authenticated user follows',
|
|
126
|
+
action: 'Retrieve user timeline',
|
|
127
|
+
},
|
|
110
128
|
],
|
|
111
129
|
default: 'getAuthorFeed',
|
|
112
130
|
},
|
|
@@ -120,6 +138,33 @@ exports.feedProperties = [
|
|
|
120
138
|
hint: 'The user getProfile operation can be used to get the DID of a user',
|
|
121
139
|
displayOptions: { show: { resource: ['feed'], operation: ['getAuthorFeed'] } },
|
|
122
140
|
},
|
|
141
|
+
{
|
|
142
|
+
displayName: 'Post URI',
|
|
143
|
+
name: 'uri',
|
|
144
|
+
type: 'string',
|
|
145
|
+
default: '',
|
|
146
|
+
required: true,
|
|
147
|
+
description: 'The URI of the post to fetch the thread for',
|
|
148
|
+
displayOptions: { show: { resource: ['feed'], operation: ['getPostThread'] } },
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
displayName: 'Depth',
|
|
152
|
+
name: 'depth',
|
|
153
|
+
type: 'number',
|
|
154
|
+
typeOptions: { minValue: 0 },
|
|
155
|
+
default: 6,
|
|
156
|
+
description: 'Depth of parent replies to fetch',
|
|
157
|
+
displayOptions: { show: { resource: ['feed'], operation: ['getPostThread'] } },
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
displayName: 'Parent Height',
|
|
161
|
+
name: 'parentHeight',
|
|
162
|
+
type: 'number',
|
|
163
|
+
typeOptions: { minValue: 0 },
|
|
164
|
+
default: 80,
|
|
165
|
+
description: 'Depth of child replies to fetch',
|
|
166
|
+
displayOptions: { show: { resource: ['feed'], operation: ['getPostThread'] } },
|
|
167
|
+
},
|
|
123
168
|
{
|
|
124
169
|
displayName: 'Limit',
|
|
125
170
|
name: 'limit',
|
|
@@ -130,13 +175,68 @@ exports.feedProperties = [
|
|
|
130
175
|
description: 'Max number of results to return',
|
|
131
176
|
displayOptions: { show: { resource: ['feed'], operation: ['getAuthorFeed', 'getTimeline'] } },
|
|
132
177
|
},
|
|
178
|
+
{
|
|
179
|
+
displayName: 'Filter',
|
|
180
|
+
name: 'filter',
|
|
181
|
+
type: 'options',
|
|
182
|
+
default: 'posts_with_replies',
|
|
183
|
+
description: 'Filter posts by type',
|
|
184
|
+
options: [
|
|
185
|
+
{
|
|
186
|
+
name: 'Posts and Author Threads',
|
|
187
|
+
value: 'posts_and_author_threads',
|
|
188
|
+
description: 'Posts and threads authored by the user',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: 'Posts with Media',
|
|
192
|
+
value: 'posts_with_media',
|
|
193
|
+
description: 'Only posts containing media attachments',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
name: 'Posts with Replies',
|
|
197
|
+
value: 'posts_with_replies',
|
|
198
|
+
description: 'All posts, including replies',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
name: 'Posts with Video',
|
|
202
|
+
value: 'posts_with_video',
|
|
203
|
+
description: 'Only posts containing video content',
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: 'Posts without Replies',
|
|
207
|
+
value: 'posts_no_replies',
|
|
208
|
+
description: 'Only top-level posts',
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
displayOptions: { show: { resource: ['feed'], operation: ['getAuthorFeed'] } },
|
|
212
|
+
},
|
|
133
213
|
];
|
|
134
|
-
async function getAuthorFeed(agent, actor, limit) {
|
|
135
|
-
const outputPosts = await _getAuthorFeedInternal(agent, {
|
|
214
|
+
async function getAuthorFeed(agent, actor, limit, filter) {
|
|
215
|
+
const outputPosts = await _getAuthorFeedInternal(agent, {
|
|
216
|
+
actor,
|
|
217
|
+
limit,
|
|
218
|
+
...(filter ? { filter } : {}),
|
|
219
|
+
});
|
|
136
220
|
return outputPosts.map((post) => ({ json: post, pairedItem: { item: 0 } }));
|
|
137
221
|
}
|
|
222
|
+
async function getPostThread(agent, uri, depth, parentHeight) {
|
|
223
|
+
const response = await agent.app.bsky.feed.getPostThread({
|
|
224
|
+
uri,
|
|
225
|
+
...(depth !== undefined ? { depth } : {}),
|
|
226
|
+
...(parentHeight !== undefined ? { parentHeight } : {}),
|
|
227
|
+
});
|
|
228
|
+
if (!response.data.thread) {
|
|
229
|
+
return [];
|
|
230
|
+
}
|
|
231
|
+
return [
|
|
232
|
+
{
|
|
233
|
+
json: JSON.parse(JSON.stringify(response.data.thread)),
|
|
234
|
+
pairedItem: { item: 0 },
|
|
235
|
+
},
|
|
236
|
+
];
|
|
237
|
+
}
|
|
138
238
|
async function getTimeline(agent, limit) {
|
|
139
|
-
const outputPosts = await _getTimelineInternal(agent, { limit
|
|
239
|
+
const outputPosts = await _getTimelineInternal(agent, { limit });
|
|
140
240
|
return outputPosts.map((post) => ({ json: post, pairedItem: { item: 0 } }));
|
|
141
241
|
}
|
|
142
242
|
//# sourceMappingURL=feedOperations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedOperations.js","sourceRoot":"","sources":["../../../../nodes/Bluesky/V2/feedOperations.ts"],"names":[],"mappings":";;;AAkDA,
|
|
1
|
+
{"version":3,"file":"feedOperations.js","sourceRoot":"","sources":["../../../../nodes/Bluesky/V2/feedOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AtpAgent } from '@atproto/api';
|
|
2
|
+
import { INodeExecutionData, INodeProperties } from 'n8n-workflow';
|
|
3
|
+
export declare const graphProperties: INodeProperties[];
|
|
4
|
+
export declare function muteThreadOperation(agent: AtpAgent, uri: string): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.graphProperties = void 0;
|
|
4
|
+
exports.muteThreadOperation = muteThreadOperation;
|
|
5
|
+
exports.graphProperties = [
|
|
6
|
+
{
|
|
7
|
+
displayName: 'Operation',
|
|
8
|
+
name: 'operation',
|
|
9
|
+
type: 'options',
|
|
10
|
+
noDataExpression: true,
|
|
11
|
+
displayOptions: {
|
|
12
|
+
show: {
|
|
13
|
+
resource: ['graph'],
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
options: [
|
|
17
|
+
{
|
|
18
|
+
name: 'Mute Thread',
|
|
19
|
+
value: 'muteThread',
|
|
20
|
+
description: 'Mute a conversation thread',
|
|
21
|
+
action: 'Mute a thread',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
default: 'muteThread',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
displayName: 'Thread URI',
|
|
28
|
+
name: 'uri',
|
|
29
|
+
type: 'string',
|
|
30
|
+
default: '',
|
|
31
|
+
required: true,
|
|
32
|
+
description: 'AT URI of the root post to mute',
|
|
33
|
+
displayOptions: {
|
|
34
|
+
show: {
|
|
35
|
+
resource: ['graph'],
|
|
36
|
+
operation: ['muteThread'],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
async function muteThreadOperation(agent, uri) {
|
|
42
|
+
await agent.app.bsky.graph.muteThread({ root: uri });
|
|
43
|
+
return [{ json: { uri, muted: true } }];
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=graphOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphOperations.js","sourceRoot":"","sources":["../../../../nodes/Bluesky/V2/graphOperations.ts"],"names":[],"mappings":";;;AAwCA,kDAOC;AA5CY,QAAA,eAAe,GAAsB;IACjD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,OAAO,CAAC;aACnB;SACD;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,4BAA4B;gBACzC,MAAM,EAAE,eAAe;aACvB;SACD;QACD,OAAO,EAAE,YAAY;KACrB;IACD;QACC,WAAW,EAAE,YAAY;QACzB,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,OAAO,CAAC;gBACnB,SAAS,EAAE,CAAC,YAAY,CAAC;aACzB;SACD;KACD;CACD,CAAC;AAEK,KAAK,UAAU,mBAAmB,CACxC,KAAe,EACf,GAAW;IAEX,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAErD,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AtpAgent } from '@atproto/api';
|
|
2
|
+
import { INodeExecutionData, INodeProperties } from 'n8n-workflow';
|
|
3
|
+
export declare const listProperties: INodeProperties[];
|
|
4
|
+
export declare function createListOperation(agent: AtpAgent, name: string, purpose: string, description?: string): Promise<INodeExecutionData[]>;
|
|
5
|
+
export declare function updateListOperation(agent: AtpAgent, listUri: string, name: string, purpose: string, description?: string): Promise<INodeExecutionData[]>;
|
|
6
|
+
export declare function deleteListOperation(agent: AtpAgent, listUri: string): Promise<INodeExecutionData[]>;
|
|
7
|
+
export declare function getListsOperation(agent: AtpAgent, actor: string, limit?: number): Promise<INodeExecutionData[]>;
|
|
8
|
+
export declare function getListFeedOperation(agent: AtpAgent, listUri: string, limit?: number): Promise<INodeExecutionData[]>;
|
|
9
|
+
export declare function addUserToListOperation(agent: AtpAgent, listUri: string, userDid: string): Promise<INodeExecutionData[]>;
|
|
10
|
+
export declare function removeUserFromListOperation(agent: AtpAgent, listItemUri: string): Promise<INodeExecutionData[]>;
|