@mo7yw4ng/openape 1.0.0 → 1.0.1
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/LICENSE +21 -21
- package/README.md +15 -5
- package/esm/deno.js +1 -1
- package/package.json +6 -3
- package/script/deno.js +1 -1
- package/skills/openape/SKILL.md +331 -328
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 MO7YW4NG
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 MO7YW4NG
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -12,9 +12,19 @@
|
|
|
12
12
|
|
|
13
13
|
## 安裝
|
|
14
14
|
|
|
15
|
-
透過 npm
|
|
15
|
+
透過 npm 安裝為全域指令(推薦,[Node.js](https://nodejs.org/) v18+):
|
|
16
16
|
```bash
|
|
17
|
-
npm install -g openape
|
|
17
|
+
npm install -g @mo7yw4ng/openape
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
或用 npx 單次執行(不需安裝):
|
|
21
|
+
```bash
|
|
22
|
+
npx @mo7yw4ng/openape --help
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
或透過 Deno/JSR 安裝:
|
|
26
|
+
```bash
|
|
27
|
+
deno install -A -g -n openape jsr:@openape/openape
|
|
18
28
|
```
|
|
19
29
|
|
|
20
30
|
## 核心指令
|
|
@@ -32,7 +42,7 @@ openape auth logout # 登出並清除 session
|
|
|
32
42
|
openape courses list # 列出所有課程 (支援 --incomplete-only, --level)
|
|
33
43
|
openape courses info <id> # 顯示特定課程的詳細資訊
|
|
34
44
|
openape courses progress <id> # 顯示特定課程的進度
|
|
35
|
-
openape courses syllabus <id> # 顯示課程大綱
|
|
45
|
+
openape courses syllabus <id> # 顯示課程大綱 (從 CMAP 取得)
|
|
36
46
|
```
|
|
37
47
|
|
|
38
48
|
### 影片 (Videos)
|
|
@@ -73,7 +83,7 @@ openape skills install --all # 自動偵測環境並安裝給所有支
|
|
|
73
83
|
```
|
|
74
84
|
也可以透過 `npx skills` 安裝:
|
|
75
85
|
```bash
|
|
76
|
-
npx skills add
|
|
86
|
+
npx skills add mo7yw4ng/openape
|
|
77
87
|
```
|
|
78
88
|
|
|
79
89
|
## 開發
|
|
@@ -94,4 +104,4 @@ deno task compile
|
|
|
94
104
|
|
|
95
105
|
此專案之版權規範採用 **MIT License** - 至 [LICENSE](LICENSE) 查看更多相關聲明
|
|
96
106
|
|
|
97
|
-
> **免責聲明**:本工具為非官方開放原始碼專案,與中原大學官方無關。請斟酌使用腳本輔助功能,避免不當操作(如短時間發送大量請求修改系統狀態)而違反學術倫理或導致帳號遭封鎖。
|
|
107
|
+
> **免責聲明**:本工具為非官方開放原始碼專案,與中原大學官方無關。請斟酌使用腳本輔助功能,避免不當操作(如短時間發送大量請求修改系統狀態)而違反學術倫理或導致帳號遭封鎖。
|
package/esm/deno.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mo7yw4ng/openape",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "CLI tool for CYCU i-Learning platform",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ilearning",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
],
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
|
-
"url": "
|
|
15
|
+
"url": "https://github.com/MO7YW4NG/openape"
|
|
16
16
|
},
|
|
17
17
|
"license": "MIT",
|
|
18
18
|
"bugs": {
|
|
@@ -25,7 +25,10 @@
|
|
|
25
25
|
"node": ">=18.0.0"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@deno/shim-deno": "~0.18.0"
|
|
28
|
+
"@deno/shim-deno": "~0.18.0",
|
|
29
|
+
"commander": "^12.1.0",
|
|
30
|
+
"playwright-core": "^1.48.0",
|
|
31
|
+
"node-html-parser": "^6.1.13"
|
|
29
32
|
},
|
|
30
33
|
"devDependencies": {
|
|
31
34
|
"@types/node": "^20.9.0"
|
package/script/deno.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = {
|
|
4
4
|
"name": "@openape/openape",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.1",
|
|
6
6
|
"description": "CLI tool for CYCU i-Learning platform",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"exports": "./src/index.ts",
|
package/skills/openape/SKILL.md
CHANGED
|
@@ -1,328 +1,331 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: openape
|
|
3
|
-
description: How to use OpenApe CLI — automate CYCU iLearning (Moodle) tasks including course management, video progress tracking, quizzes, materials, grades, forums, announcements, and calendar
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# OpenApe CLI
|
|
7
|
-
|
|
8
|
-
Use the `openape` command to access CYCU iLearning (Moodle) platform. OpenApe provides automation for course management, video progress completion, quiz tracking, material downloads, grade viewing, forum discussions, announcements, and calendar events.
|
|
9
|
-
|
|
10
|
-
## Setup
|
|
11
|
-
|
|
12
|
-
Install via npm:
|
|
13
|
-
```bash
|
|
14
|
-
npm install -g openape
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
Or
|
|
18
|
-
```bash
|
|
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
|
-
# List
|
|
52
|
-
openape courses list
|
|
53
|
-
|
|
54
|
-
# List
|
|
55
|
-
openape courses list --level
|
|
56
|
-
|
|
57
|
-
# List only
|
|
58
|
-
openape courses list --level
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
# Get course
|
|
70
|
-
openape courses
|
|
71
|
-
|
|
72
|
-
# Get course
|
|
73
|
-
openape courses
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
# List
|
|
85
|
-
openape videos list <course-id>
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
#
|
|
95
|
-
openape videos complete <course-id>
|
|
96
|
-
|
|
97
|
-
#
|
|
98
|
-
openape videos complete-
|
|
99
|
-
|
|
100
|
-
#
|
|
101
|
-
openape videos complete-all
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
# Download
|
|
113
|
-
openape videos download <course-id>
|
|
114
|
-
|
|
115
|
-
#
|
|
116
|
-
openape videos download <course-id> --
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
# List
|
|
128
|
-
openape quizzes list-
|
|
129
|
-
|
|
130
|
-
# List
|
|
131
|
-
openape quizzes list-all
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
# List materials
|
|
150
|
-
openape materials list-all
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
# Download all materials from
|
|
162
|
-
openape materials download-
|
|
163
|
-
|
|
164
|
-
# Download from all courses
|
|
165
|
-
openape materials download-all
|
|
166
|
-
|
|
167
|
-
#
|
|
168
|
-
openape materials download-all --
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
# Show
|
|
180
|
-
openape grades
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
# List
|
|
192
|
-
openape forums list
|
|
193
|
-
|
|
194
|
-
# List forums
|
|
195
|
-
openape forums list-all
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
#
|
|
205
|
-
openape forums
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
# List
|
|
217
|
-
openape announcements list-all
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
# List
|
|
236
|
-
openape calendar events
|
|
237
|
-
|
|
238
|
-
# List events
|
|
239
|
-
openape calendar events --events-
|
|
240
|
-
|
|
241
|
-
# List events
|
|
242
|
-
openape calendar events --
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
#
|
|
252
|
-
openape calendar export
|
|
253
|
-
|
|
254
|
-
#
|
|
255
|
-
openape calendar export --
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
- `
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
openape
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
#
|
|
287
|
-
openape videos complete-all
|
|
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
|
-
- Use `--
|
|
327
|
-
-
|
|
328
|
-
-
|
|
1
|
+
---
|
|
2
|
+
name: openape
|
|
3
|
+
description: How to use OpenApe CLI — automate CYCU iLearning (Moodle) tasks including course management, video progress tracking, quizzes, materials, grades, forums, announcements, and calendar
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OpenApe CLI
|
|
7
|
+
|
|
8
|
+
Use the `openape` command to access CYCU iLearning (Moodle) platform. OpenApe provides automation for course management, video progress completion, quiz tracking, material downloads, grade viewing, forum discussions, announcements, and calendar events.
|
|
9
|
+
|
|
10
|
+
## Setup
|
|
11
|
+
|
|
12
|
+
Install via npm:
|
|
13
|
+
```bash
|
|
14
|
+
npm install -g @mo7yw4ng/openape
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Or run without installing:
|
|
18
|
+
```bash
|
|
19
|
+
npx @mo7yw4ng/openape --help
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Or install via Deno/JSR:
|
|
23
|
+
```bash
|
|
24
|
+
deno install -A -g -n openape jsr:@openape/openape
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
If not authenticated, run:
|
|
28
|
+
```bash
|
|
29
|
+
openape login
|
|
30
|
+
```
|
|
31
|
+
A browser will open for Microsoft OAuth SSO. Complete MFA login manually — no username/password input needed in the terminal.
|
|
32
|
+
|
|
33
|
+
Session is saved to `.auth/storage-state.json` and persists between runs. If session expires, run `openape login` again.
|
|
34
|
+
|
|
35
|
+
## Discovering Commands
|
|
36
|
+
|
|
37
|
+
Every command supports `--help` for full option details:
|
|
38
|
+
```bash
|
|
39
|
+
openape --help
|
|
40
|
+
openape courses --help
|
|
41
|
+
openape videos complete --help
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Add `--output json` to any command for machine-readable output. Use `--output csv` for spreadsheet format, `--output table` for human-readable tables, or `--output silent` to suppress output.
|
|
45
|
+
|
|
46
|
+
## Course Commands
|
|
47
|
+
|
|
48
|
+
### Listing courses
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# List in-progress courses (default)
|
|
52
|
+
openape courses list
|
|
53
|
+
|
|
54
|
+
# List all courses including past and future
|
|
55
|
+
openape courses list --level all
|
|
56
|
+
|
|
57
|
+
# List only past courses
|
|
58
|
+
openape courses list --level past
|
|
59
|
+
|
|
60
|
+
# List only future courses
|
|
61
|
+
openape courses list --level future
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Course levels: `in_progress` (default), `past`, `future`, `all`.
|
|
65
|
+
|
|
66
|
+
### Course information
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Get detailed course information
|
|
70
|
+
openape courses info <course-id>
|
|
71
|
+
|
|
72
|
+
# Get course progress percentage
|
|
73
|
+
openape courses progress <course-id>
|
|
74
|
+
|
|
75
|
+
# Get course syllabus from CMAP (18-week schedule)
|
|
76
|
+
openape courses syllabus <course-id>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Video Commands
|
|
80
|
+
|
|
81
|
+
### Listing videos
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# List all videos in a course
|
|
85
|
+
openape videos list <course-id>
|
|
86
|
+
|
|
87
|
+
# List only incomplete videos (browser mode only)
|
|
88
|
+
openape videos list <course-id> --incomplete-only
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Completing videos
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Complete all incomplete videos in a course
|
|
95
|
+
openape videos complete <course-id>
|
|
96
|
+
|
|
97
|
+
# Dry-run: discover videos without completing
|
|
98
|
+
openape videos complete <course-id> --dry-run
|
|
99
|
+
|
|
100
|
+
# Complete all incomplete videos across all courses
|
|
101
|
+
openape videos complete-all
|
|
102
|
+
|
|
103
|
+
# Dry-run all courses
|
|
104
|
+
openape videos complete-all --dry-run
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Note:** Video completion forges SuperVideo progress AJAX calls to simulate watching the entire video. The server accepts the progress but completion status may take time to update in the course state.
|
|
108
|
+
|
|
109
|
+
### Downloading videos
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Download all videos from a course
|
|
113
|
+
openape videos download <course-id>
|
|
114
|
+
|
|
115
|
+
# Download only incomplete videos
|
|
116
|
+
openape videos download <course-id> --incomplete-only
|
|
117
|
+
|
|
118
|
+
# Specify output directory (default: ./downloads/videos)
|
|
119
|
+
openape videos download <course-id> --output-dir ./my-videos
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Quiz Commands
|
|
123
|
+
|
|
124
|
+
### Listing quizzes
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# List quizzes in a specific course
|
|
128
|
+
openape quizzes list <course-id>
|
|
129
|
+
|
|
130
|
+
# List all quizzes across all courses
|
|
131
|
+
openape quizzes list-all
|
|
132
|
+
|
|
133
|
+
# List only in-progress course quizzes
|
|
134
|
+
openape quizzes list-all --level in_progress
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Opening quizzes
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Open a quiz URL in browser (manual mode)
|
|
141
|
+
openape quizzes open <quiz-url>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Material Commands
|
|
145
|
+
|
|
146
|
+
### Listing materials
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# List all materials/resources across all courses
|
|
150
|
+
openape materials list-all
|
|
151
|
+
|
|
152
|
+
# List materials from in-progress courses only
|
|
153
|
+
openape materials list-all --level in_progress
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Materials include resources (PDFs, documents) and URLs (external links).
|
|
157
|
+
|
|
158
|
+
### Downloading materials
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Download all materials from a specific course
|
|
162
|
+
openape materials download <course-id>
|
|
163
|
+
|
|
164
|
+
# Download all materials from all in-progress courses
|
|
165
|
+
openape materials download-all
|
|
166
|
+
|
|
167
|
+
# Download from all courses (including past)
|
|
168
|
+
openape materials download-all --level all
|
|
169
|
+
|
|
170
|
+
# Specify output directory (default: ./downloads)
|
|
171
|
+
openape materials download-all --output-dir ./my-materials
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Grade Commands
|
|
175
|
+
|
|
176
|
+
### Viewing grades
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# Show grade summary across all courses
|
|
180
|
+
openape grades summary
|
|
181
|
+
|
|
182
|
+
# Show detailed grades for a specific course
|
|
183
|
+
openape grades course <course-id>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Forum Commands
|
|
187
|
+
|
|
188
|
+
### Listing forums
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# List forums from in-progress courses
|
|
192
|
+
openape forums list
|
|
193
|
+
|
|
194
|
+
# List all forums across all courses
|
|
195
|
+
openape forums list-all
|
|
196
|
+
|
|
197
|
+
# List forums from a specific course level
|
|
198
|
+
openape forums list-all --level past
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Reading discussions
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# List discussions in a forum (use cmid or instance ID)
|
|
205
|
+
openape forums discussions <forum-id>
|
|
206
|
+
|
|
207
|
+
# Show posts in a discussion
|
|
208
|
+
openape forums posts <discussion-id>
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Announcement Commands
|
|
212
|
+
|
|
213
|
+
### Listing announcements
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# List all announcements across all courses
|
|
217
|
+
openape announcements list-all
|
|
218
|
+
|
|
219
|
+
# List only unread announcements
|
|
220
|
+
openape announcements list-all --unread-only
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Reading announcements
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Read a specific announcement (shows full content)
|
|
227
|
+
openape announcements read <announcement-id>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Calendar Commands
|
|
231
|
+
|
|
232
|
+
### Listing events
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# List all calendar events
|
|
236
|
+
openape calendar events
|
|
237
|
+
|
|
238
|
+
# List events after a specific date
|
|
239
|
+
openape calendar events --events-after 2026-03-01
|
|
240
|
+
|
|
241
|
+
# List events before a specific date
|
|
242
|
+
openape calendar events --events-before 2026-06-30
|
|
243
|
+
|
|
244
|
+
# List events in a specific course
|
|
245
|
+
openape calendar events --course-id <course-id>
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Exporting calendar
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# Export calendar events to file
|
|
252
|
+
openape calendar export
|
|
253
|
+
|
|
254
|
+
# Specify output file (default: calendar_events.json)
|
|
255
|
+
openape calendar export --output my-calendar.json
|
|
256
|
+
|
|
257
|
+
# Export as ICS format for calendar apps
|
|
258
|
+
openape calendar export --format ics --output my-calendar.ics
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## Output Formats
|
|
262
|
+
|
|
263
|
+
All commands support `--output` option:
|
|
264
|
+
- `json` (default) - Machine-readable JSON
|
|
265
|
+
- `csv` - Comma-separated values for spreadsheets
|
|
266
|
+
- `table` - Human-readable table format
|
|
267
|
+
- `silent` - Suppress output (useful for automation)
|
|
268
|
+
|
|
269
|
+
Global options:
|
|
270
|
+
- `--verbose` - Enable debug logging
|
|
271
|
+
- `--silent` - Suppress all log output (JSON only)
|
|
272
|
+
- `--headed` - Run browser in visible mode (for debugging)
|
|
273
|
+
|
|
274
|
+
## Example Workflows
|
|
275
|
+
|
|
276
|
+
**Check daily progress:** See what's due and what's incomplete.
|
|
277
|
+
```bash
|
|
278
|
+
openape courses list --level in_progress
|
|
279
|
+
openape videos list <course-id>
|
|
280
|
+
openape quizzes list-all
|
|
281
|
+
openape announcements list-all --unread-only
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**Auto-complete videos:** Complete all incomplete videos across courses.
|
|
285
|
+
```bash
|
|
286
|
+
# First, dry-run to see what will be completed
|
|
287
|
+
openape videos complete-all --dry-run
|
|
288
|
+
|
|
289
|
+
# Then actually complete them
|
|
290
|
+
openape videos complete-all
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
**Download all materials:** Get all course materials for offline study.
|
|
294
|
+
```bash
|
|
295
|
+
openape materials download-all --output-dir ./semester-materials
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**Check grades and progress:** See how you're doing in all courses.
|
|
299
|
+
```bash
|
|
300
|
+
openape grades summary
|
|
301
|
+
openape courses progress <course-id>
|
|
302
|
+
openape courses syllabus <course-id>
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**Review discussions:** Catch up on forum activity.
|
|
306
|
+
```bash
|
|
307
|
+
openape forums list --level in_progress
|
|
308
|
+
openape forums discussions <forum-id>
|
|
309
|
+
openape forums posts <discussion-id>
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
**Plan your week:** Check upcoming events and deadlines.
|
|
313
|
+
```bash
|
|
314
|
+
openape calendar events --events-after 2026-03-21 --events-before 2026-03-28
|
|
315
|
+
openape calendar export --format ics --output week.ics
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**Bulk operations:** Complete videos and download materials across all courses.
|
|
319
|
+
```bash
|
|
320
|
+
openape videos complete-all
|
|
321
|
+
openape materials download-all --level in_progress
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## Tips
|
|
325
|
+
|
|
326
|
+
- Use `--dry-run` with `videos complete` to preview what will be completed
|
|
327
|
+
- Use `--level in_progress` (default) to focus on active courses
|
|
328
|
+
- Use `--output json` for scripting and automation
|
|
329
|
+
- Use `--output table` for human-readable output
|
|
330
|
+
- Session persists after login, no need to re-authenticate
|
|
331
|
+
- WS API mode is used by default for faster performance; browser mode is fallback
|