一个由成员共同维护的非官方日历、重要事项与回放中心。
查找会议、关注 PPA 与比赛安排、订阅关键日期,也让有价值的回放更容易被再次找到。
会议通知、PPA 主题、比赛周期和奖金日期常常散落在聊天记录、群公告和临时链接中:容易错过,也很难在结束后重新找到资料。
WQ Calendar 将会议安排、重要事项、成员投稿、管理员审批、个人日历订阅和会议回放集中在一处。成员可以补充会议、PPA、比赛与回放来源,管理员负责确认内容和维护奖金日程,形成一份持续更新、方便查找的共享日历。
- 以近期议程或月历方式查看会议
- 所有时间统一换算并显示为北京时间
- 按标题、类别、语言和会议形式筛选
- 直接打开注册链接,或先查看会议详情
- 周期会议在议程中只展示最近一次,月历保留具体场次
- 通过时间线或月历查看 PPA 主题、比赛主题和奖金日程
- PPA 与比赛支持跨日范围以及安全的基础 Markdown 内容
- 奖金卡片显示适用周期;月历和订阅只使用公布日期与账单日期,不按周期占位
- 历史及已取消事项永久保留,年度日期可直接在后台修改
- 成员可以投稿会议、PPA、比赛和回放来源
- 投稿通过前不会出现在公开列表
- 管理员可以审核、修正、拒绝或发布投稿
- “我的投稿”集中展示会议、重要事项与回放的审核状态及反馈
- 奖金日程仅由管理员维护
- 支持百度网盘、夸克网盘、阿里云盘、OneDrive、Google Drive、Dropbox、微云及其他 HTTPS 来源
- 同一场会议可以由多名成员补充多个不同回放链接
- 每个来源可附带提取码和简短备注
- 成员可以反馈链接失效,管理员决定处理、下架或恢复
- 生成个人私密的 iCalendar 订阅地址
- 支持不提醒、提前 10 分钟、30 分钟、1 小时或 1 天
- 可将单场会议加入 Google、Outlook 或 Apple Calendar
- 会议改期、取消和周期例外会通过订阅源同步
- 可分别选择同步会议、PPA、比赛和奖金日程,默认全部开启
- 只有会议使用所选提前提醒;重要事项始终不写入提醒
- 会议投稿、回放贡献和重要事项投稿分别排名
- 展示投稿次数、通过次数、通过率和回放贡献会议数
- 成员可以选择显示完整 WQ_ID,或隐藏为开头两个字母
- 管理员账号不参与排行榜
- 使用已导入名单中的 WQ_ID 登录。
- 在“会议日历”中查找会议、注册或提交新的会议信息。
- 在“回放”中浏览、补充回放来源或反馈失效链接。
- 在“重要事项”中查看 PPA、比赛和奖金日期,或投稿 PPA/比赛内容。
- 在“设置”中选择同步内容和会议提前提醒,再生成个人订阅地址。
- 在“我的投稿”查看审核进度和管理员反馈。
- 导入并维护成员名单。
- 在统一的“待审”页面处理会议、重要事项与回放投稿。
- 管理会议系列、重要事项、奖金适用周期及关键日期、单次改期、取消和回放来源。
- 查看成员使用情况、投稿排行和审计记录。
- 会议、重要事项和成员数据保存在 Cloudflare D1,不进入前端构建产物。
- 登录使用随机不透明令牌,数据库只保存令牌哈希。
- 登录 Cookie 设置为
HttpOnly + Secure + SameSite=Strict。 - 修改请求同时验证会话、CSRF 和允许的前端来源。
- WQ_ID 使用带服务端密钥的索引,并加密保存管理员所需的身份数据。
- 私密日历订阅地址可以随时旋转或撤销。
- 外部回放链接只做记录和人工审批,服务端不会主动访问网盘内容。
请勿提交会议密码、个人专属入会链接、内部文件或参与者名单。
web/:Vue 3 + TypeScript 前端,发布到 GitHub Pagesworker/:Cloudflare Worker API、D1 数据库与 iCalendar 输出packages/shared/:前后端共用的数据类型和校验规则
现有 Worker、D1、包名和 ICS UID 中仍保留 wq-meeting-calendar 作为兼容性标识。它们不是对外品牌名称,不应直接改名,否则可能影响部署、既有订阅或加密数据。
pnpm install
pnpm typecheck
pnpm test
pnpm build项目仍在持续完善中,欢迎通过 Issue 提交问题和改进建议。
