forked from mvanhorn/printing-press-library
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathspec.yaml
More file actions
345 lines (319 loc) · 9.45 KB
/
Copy pathspec.yaml
File metadata and controls
345 lines (319 loc) · 9.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
name: skool
display_name: Skool
description: Community + course platform (skool.com). No public API — reverse-engineered from www.skool.com Next.js data routes (reads) and api2.skool.com REST (writes), authenticated via the auth_token JWT cookie.
cli_description: Every Skool community feature, plus a local SQLite mirror, FTS, and cross-community ops no other Skool tool ships.
version: "0.1.0"
spec_source: agent-curated
base_url: "https://www.skool.com"
endpoint_template_vars:
- community
- buildId
auth:
type: cookie
header: Cookie
cookie_domain: ".skool.com"
cookies:
- auth_token
key_url: "https://www.skool.com/login"
config:
format: toml
path: "~/.config/skool-pp-cli/config.toml"
cache:
enabled: true
stale_after: "1h"
refresh_timeout: "20s"
env_opt_out: SKOOL_NO_AUTO_REFRESH
mcp:
transport: [stdio, http]
resources:
community:
description: Community feed, settings, and metadata
endpoints:
info:
method: GET
path: "/_next/data/{buildId}/{community}.json"
description: Get the community feed (posts, leaderboard summary, upcoming events, settings)
params:
- name: community
type: string
required: true
description: Community slug (e.g., bewarethedefault)
- name: g
type: string
description: Community slug query param (defaults to community)
- name: t
flag_name: tab
type: string
description: Tab to render — "members" or "leaderboard" for those views
- name: c
flag_name: category
type: string
description: Filter posts to a category id
- name: p
flag_name: page
type: int
description: Page number for posts (1-indexed)
members-tab:
method: GET
path: "/_next/data/{buildId}/{community}.json"
description: Members tab data (community page rendered with t=members)
params:
- name: community
type: string
required: true
- name: g
type: string
- name: t
type: string
default: members
leaderboard-tab:
method: GET
path: "/_next/data/{buildId}/{community}.json"
description: Leaderboard tab (community page rendered with t=leaderboard)
params:
- name: community
type: string
required: true
- name: g
type: string
- name: t
type: string
default: leaderboard
about:
method: GET
path: "/_next/data/{buildId}/{community}/about.json"
description: About page (rules, owner, member count)
params:
- name: community
type: string
required: true
- name: g
type: string
posts:
description: Posts (forum threads) inside a community
endpoints:
get:
method: GET
path: "/_next/data/{buildId}/{community}/{post_name}.json"
description: Get a post detail page including comment tree
params:
- name: community
type: string
required: true
- name: post_name
flag_name: slug
type: string
required: true
description: Post slug (URL fragment)
- name: g
type: string
- name: p
flag_name: name-q
type: string
create:
base_url: "https://api2.skool.com"
method: POST
path: "/posts"
description: Create a new post (body = TipTap JSON; use --md to convert markdown)
body:
- name: groupId
type: string
required: true
description: Community group id
- name: content
type: string
required: true
description: Post body as TipTap JSON
- name: name
type: string
description: Optional post title
- name: postType
type: string
default: post
update:
base_url: "https://api2.skool.com"
method: PUT
path: "/posts/{post_id}"
description: Update an existing post
params:
- name: post_id
type: string
required: true
positional: true
body:
- name: content
type: string
required: true
delete:
base_url: "https://api2.skool.com"
method: DELETE
path: "/posts/{post_id}"
description: Delete a post
params:
- name: post_id
type: string
required: true
positional: true
comment:
base_url: "https://api2.skool.com"
method: POST
path: "/posts/{post_id}/comments"
description: Add a comment to a post
params:
- name: post_id
type: string
required: true
positional: true
body:
- name: content
type: string
required: true
description: Comment body (TipTap JSON; use --md to convert)
like:
base_url: "https://api2.skool.com"
method: POST
path: "/posts/{post_id}/upvotes"
description: Like (upvote) a post
params:
- name: post_id
type: string
required: true
positional: true
unlike:
base_url: "https://api2.skool.com"
method: DELETE
path: "/posts/{post_id}/upvotes"
description: Unlike a post
params:
- name: post_id
type: string
required: true
positional: true
members:
description: Community members and moderation
endpoints:
pending:
base_url: "https://api2.skool.com"
method: GET
path: "/groups/{group_id}/members/pending"
description: List pending member join requests
params:
- name: group_id
type: string
required: true
approve:
base_url: "https://api2.skool.com"
method: PUT
path: "/group-members/{group_member_id}"
description: Approve a pending member request
params:
- name: group_member_id
type: string
required: true
positional: true
body:
- name: status
type: string
default: approved
reject:
base_url: "https://api2.skool.com"
method: PUT
path: "/group-members/{group_member_id}"
description: Reject a pending member request
params:
- name: group_member_id
type: string
required: true
positional: true
body:
- name: status
type: string
default: rejected
ban:
base_url: "https://api2.skool.com"
method: PUT
path: "/group-members/{group_member_id}"
description: Ban a member from the community
params:
- name: group_member_id
type: string
required: true
positional: true
body:
- name: status
type: string
default: banned
classroom:
description: Classroom (courses, modules, lessons) for a community
endpoints:
list:
method: GET
path: "/_next/data/{buildId}/{community}/classroom.json"
description: List all courses in a community
params:
- name: community
type: string
required: true
- name: g
type: string
get-course:
method: GET
path: "/_next/data/{buildId}/{community}/classroom/{course_slug}.json"
description: Get a single course with its modules and lessons
params:
- name: community
type: string
required: true
- name: course_slug
flag_name: course
type: string
required: true
- name: g
type: string
- name: md
flag_name: module
type: string
calendar:
description: Community calendar events
endpoints:
list:
method: GET
path: "/_next/data/{buildId}/{community}/calendar.json"
description: List upcoming and recent calendar events
params:
- name: community
type: string
required: true
- name: g
type: string
notifications:
description: User notifications
endpoints:
list:
base_url: "https://api2.skool.com"
method: GET
path: "/notifications"
description: List notifications for the authenticated user
params:
- name: limit
type: int
default: 50
- name: unread
type: bool
description: Only return unread notifications
mark-read:
base_url: "https://api2.skool.com"
method: POST
path: "/notifications/read"
description: Mark notifications as read (empty ids = mark all)
body:
- name: ids
type: string
description: Comma-separated notification ids; empty = mark all
me:
description: Current authenticated user dashboard
endpoints:
get:
method: GET
path: "/_next/data/{buildId}/index.json"
description: Get current user, joined communities, and dashboard state