forked from 1357310795/TodoSync
-
Notifications
You must be signed in to change notification settings - Fork 1
/
config.yaml
276 lines (275 loc) · 12.6 KB
/
config.yaml
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
# 这是 TodoSynchronizer 的配置文件
# 注意:修改配置请严格遵循格式;请勿删除字段,否则程序可能无法正常运行。
# ———————————————————————————————————————————
# 同步 Todo 列表的模式
# 可选值: Category | Course
# Category 表示按项目种类创建列表
# Course 表示按课程创建列表
ListNameMode : Category
# 若 ListNameMode 为 Course,则可指定创建 Todo 列表的模板
# 可用的替换参数:
# {course.name} -> 课程名
# {course.coursecode} -> 课程代码(e.g.本-(2021-2022-2)-PHY1251-6-大学物理(A类)(1))
# {course.coursecodeshort} -> 简化的课程代码(e.g.PHY1251)
# {course.originalname} -> 原始课程名(你可以在 Canvas 上随意修改课程名,但改不掉原始课程名)
ListNameTemplateForCourse : "Canvas - {course.name}"
# Canvas 全局通知的 Todo 列表名称
ListNameForNotification : "Canvas 通知"
# 若 ListNameMode 为 Category,则可指定创建 Todo 列表的名称
ListNamesForCategory :
QuizListName : "Canvas 测验"
DiscussionListName : "Canvas 讨论"
AssignmentListName : "Canvas 作业"
AnouncementListName : "Canvas 公告"
# 不处理 14 天前过期的项目
# 如果你是在学期中开始使用本程序,建议设置为 true
IgnoreTooOldItems : false
# 遇到错误,程序退出仍返回 0
# 如果程序总是遇到完全可以忽略的错误,可以设置为 true,防止 GitHub 的邮件轰炸
# 注:如果附件上传失败,无论 IgnoreErrors 为何值,程序都不会认为遇到了错误
IgnoreErrors : false
# 输出详细的课程信息(为保护隐私,建议保持 false)
# e.g.
# 若为 true,输出“处理课程 高等数学 作业 第一章作业”
# 若为 false,输出“处理课程 1 作业 3”
VerboseMode : true
# Canvas 公告 配置
AnouncementConfig :
# 是否将 Canvas 公告同步到 Todo
Enabled : true
# 若 Todo 列表内无当前的公告,
# 则在创建的新待办事项的备注中包含公告的内容
CreateContent : true
# 若 Todo 列表内无当前的公告,
# 则把创建的新待办事项的过期时间设置为公告的发布时间
CreateDueDate : true
# 检查并上传公告的附件到待办事项的附件
CreateAttachments : true
# 若 Todo 列表内无当前的公告,
# 则把创建的新待办事项的提醒时间设置为 当前时间+RemindAfter
CreateRemind : true
# 若 Todo 列表内无当前的公告,
# 则把创建的新待办事项的重要性设置为 SetImportance 指定的值
CreateImportance : false
# 若 Todo 列表内已存在当前的公告,
# 且已存在待办事项的标题与 TitleTemplate 所指定的不一致,
# 则更新待办事项的标题
UpdateTitle : true
# 若 Todo 列表内已存在当前的公告,
# 且已存在待办事项的备注与公告的内容不一致,
# 则更新待办事项的备注
UpdateContent : true
# 若 Todo 列表内已存在当前的公告,
# 且已存在待办事项的过期时间与公告的发布时间不一致,
# 则更新待办事项的过期时间
UpdateDueDate : true
# 若 Todo 列表内已存在当前的公告,
# 且已存在待办事项的提醒时间与 当前时间+RemindAfter 不一致,
# 则更新待办事项的提醒时间
# ⚠注意:此选项应当保持 false(思考一下为什么)
UpdateRemind : false
# 若 Todo 列表内已存在当前的公告,
# 且已存在待办事项的重要程度与 SetImportance 指定的不一致,
# 则更新已存在待办事项的重要程度
UpdateImportance : false
# 指定待办事项的标题模板
# 可用的替换参数:
# {course.name} -> 课程名
# {course.coursecode} -> 课程代码
# {course.coursecodeshort} -> 简化的课程代码
# {course.originalname} -> 原始课程名
# {anouncement.title} -> 公告标题
# {anouncement.author} -> 公告发布者
TitleTemplate : "{course.name} - {anouncement.title}"
# 指定待办事项的重要性:true 为重要
SetImportance : false
# 指定延后提醒的时间间隔(此选项对滴答清单无效)
# 格式:[d.]hh:mm:ss[.fffffff]
# d 可选天数,不带前导零。
# hh 小时数,范围从“00”到“23”。
# mm 分钟数,范围从“00”到“59”。
# ss 秒数,范围从“0”到“59”。
# fffffff 可选毫秒数,范围从“0010000”到“9990000”。
RemindAfter : 00:05:00.00
# Canvas 作业 配置
AssignmentConfig :
# 是否将 Canvas 作业同步到 Todo
Enabled : true
CreateContent : true
# 若 Todo 列表内无当前的作业,
# 则把创建的新待办事项的提醒时间设置为 DueDateMode 指定的值
CreateDueDate : true
# 若 Todo 列表内无当前的作业,
# 则把创建的新待办事项的提醒时间设置为 RemindMode 指定的值
CreateRemind : true
# 若 Todo 列表内无当前的作业,
# 则在创建的新待办事项的步骤里添加提交和分数信息
CreateScoreAndCommit : true
CreateAttachments : true
CreateImportance : false
# 同步助教和老师的评论
CreateComments : true
UpdateTitle : true
UpdateContent : true
UpdateDueDate : true
UpdateRemind : true
# 若 Todo 列表内已存在当前的公告,
# 且已存在待办事项的提交和分数信息与最新的不一致,
# 则更新已存在待办事项的提交和分数信息
UpdateScoreAndCommit : true
UpdateImportance : false
UpdateComments : true
# 指定待办事项的标题模板
# 可用的替换参数:
# {course.name} -> 课程名
# {course.coursecode} -> 课程代码
# {course.coursecodeshort} -> 简化的课程代码
# {course.originalname} -> 原始课程名
# {assignment.title} -> 作业标题
TitleTemplate : "{course.name} - {assignment.title}"
SetImportance : false
# 指定待办事项过期时间的来源
# 可选值: due_at | lock_at
# due_at 表示将作业的过期时间作为待办事项的过期时间
# lock_at 表示将作业的锁定时间作为待办事项的过期时间
# 过期和锁定的区别:https://community.canvaslms.com/t5/Instructor-Guide/What-is-the-difference-between-assignment-due-dates-and/ta-p/897
DueDateMode : due_at
# 启用待办事项过期时间 Fallback
# 若为 true,则 DueDateMode 的设置不再是绝对的,
# 如果 DueDateMode 设置的来源为空,则自动切换到另一个
# 例如 DueDateMode 设置为 lock_at,作业不存在锁定时间,但存在过期时间
# 那么程序会将作业的过期时间作为待办事项的过期时间
DueDateModeFallback : true
# 指定待办事项提醒时间的来源
# 可选值: unlock_at | before_due_at | before_lock_at
# unlock_at 表示将作业的解锁时间作为待办事项的提醒时间
# before_due_at 表示将作业的过期时间之前BeforeTimeSpan作为待办事项的提醒时间
# before_lock_at 表示将作业的锁定时间之前BeforeTimeSpan作为待办事项的提醒时间
RemindMode : before_due_at
# 指定提前提醒的时间间隔
# 格式:[d.]hh:mm:ss[.fffffff]
# d 可选天数,不带前导零。
# hh 小时数,范围从“00”到“23”。
# mm 分钟数,范围从“00”到“59”。
# ss 秒数,范围从“0”到“59”。
# fffffff 可选毫秒数,范围从“0010000”到“9990000”。
BeforeTimeSpan : 1.00:00:00.00
# Canvas 测验 配置
QuizConfig :
# 是否将 Canvas 测验同步到 Todo
Enabled : true
CreateContent : true
# 若 Todo 列表内无当前的测验,
# 则把创建的新待办事项的提醒时间设置为 DueDateMode 指定的值
CreateDueDate : true
# 若 Todo 列表内无当前的测验,
# 则把创建的新待办事项的提醒时间设置为 RemindMode 指定的值
CreateRemind : true
# 若 Todo 列表内无当前的测验,
# 则在创建的新待办事项的步骤里添加提交和分数信息
CreateScoreAndCommit : true
CreateAttachments : true
CreateImportance : false
UpdateTitle : true
UpdateContent : true
UpdateDueDate : true
UpdateRemind : true
UpdateScoreAndCommit : true
UpdateImportance : false
# 指定待办事项的标题模板
# 可用的替换参数:
# {course.name} -> 课程名
# {course.coursecode} -> 课程代码
# {course.coursecodeshort} -> 简化的课程代码
# {course.originalname} -> 原始课程名
# {quiz.title} -> 测验标题
TitleTemplate : "{course.name} - {quiz.title}"
SetImportance : false
# 指定待办事项过期时间的来源
# 同 Assignment 的配置
DueDateMode : lock_at
# 指定待办事项提醒时间的来源
# 同 Assignment 的配置
RemindMode : before_lock_at
BeforeTimeSpan : 12:00:00.00
# Canvas 讨论 配置
DiscussionConfig :
# 是否将 Canvas 讨论同步到 Todo
Enabled : true
CreateContent : true
# 若 Todo 列表内无当前的讨论,
# 则把创建的新待办事项的过期时间设置为讨论的发布时间
CreateDueDate : true
# 若 Todo 列表内无当前的讨论,
# 则把创建的新待办事项的提醒时间设置为 当前时间+RemindAfter
CreateRemind : true
CreateAttachments : true
CreateImportance : false
UpdateTitle : true
UpdateContent : true
# 若 Todo 列表内已存在当前的讨论,
# 且已存在待办事项的过期时间与讨论的发布时间不一致,
# 则更新待办事项的过期时间
UpdateDueDate : true
# 若 Todo 列表内已存在当前的讨论,
# 且已存在待办事项的提醒时间与 当前时间+RemindAfter 不一致,
# 则更新待办事项的提醒时间
# ⚠注意:此选项应当保持 false(思考一下为什么)
UpdateRemind : false
UpdateImportance : false
# 指定待办事项的标题模板
# 可用的替换参数:
# {course.name} -> 课程名
# {course.coursecode} -> 课程代码
# {course.coursecodeshort} -> 简化的课程代码
# {course.originalname} -> 原始课程名
# {discussion.title} -> 讨论标题
TitleTemplate : "{course.name} - {discussion.title}"
SetImportance : false
# (此选项对滴答清单无效)
RemindAfter : 00:05:00.00
NotificationConfig :
# 是否将全局通知(控制面板顶部出现的横幅)同步到 Todo
Enabled : true
CreateContent : true
CreateDueDate : true
CreateRemind : true
CreateImportance : false
UpdateTitle : false
UpdateContent : false
UpdateDueDate : true
UpdateRemind : false
UpdateImportance : false
# 可用的替换参数:
# {notification.title} -> 通知标题
TitleTemplate : "{notification.title}"
SetImportance : true
# 指定待办事项提醒时间的来源
# 可选值: start_at | end_at
# start_at 表示将通知的发布时间作为待办事项的提醒时间
# end_at 表示将通知的自动消失时间作为待办事项的提醒时间
DueDateMode : start_at
# (此选项对滴答清单无效)
RemindAfter : 00:05:00.00
## ------Q&A------
## Q: CreateXXX 和 UpdateXXX 的区别在哪里?为什么要分开?
## A: 同步程序使用待办事项的 LinkedResource 作为待办事项的唯一识别码。
## 当你修改待办事项的标题、备注、过期时间、提醒时间、重要性后,程序仍然能知道这个待办事项是从哪个 Canvas 条目同步过来的。
## CreateXXX 生效当且仅当列表中没有一个待办事项的识别码匹配当前要同步的 Canvas 条目,
## 换句话说就是第一次同步这个条目或者之前同步过但被删除了;
## UpdateXXX 生效当且仅当列表中已有一个待办事项的识别码匹配当前要同步的 Canvas 条目,
## 换句话说就是之前同步过了;
## 有时候,老师在 Canvas 设置的条目没有过期时间,
## 但是你希望在 Todo 里给对应的待办事项设置一个过期时间;
## 或者,对于某个讨论话题,你有一个绝妙的灵感,却暂时没时间去回复,
## 想把这个灵感记录在待办事项的“备注”里。
## 对于以上情况,可以把 CreateXXX 设置为 true 而把 UpdateXXX 设置为 false,
## 这样你后来的修改就不会被同步程序覆盖。
## Q: ListNamesForCategory 里面的各个子项可以重名吗?
## A: 可以。如果把四个子项都设置为“Canvas”,则所有内容都同步到名为“Canvas”的 Todo 列表。(我就是这么干的)
## Q: CreateImportance、UpdateImportance、SetImportance 应该怎么用?
## A: 如果你每天打开 Todo 希望在“重要”列表里看到所有想看到的消息,
## 请将 CreateImportance 和 SetImportance 设置为 true。
## UpdateImportance 用处应该不大,自己理解吧。
## Q: 带“#”的注释行可以删除吗?
## A: 可以。