Skip to content

Repository files navigation

WQ Calendar Logo

WQ Calendar

一个由成员共同维护的非官方日历、重要事项与回放中心。
查找会议、关注 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,或隐藏为开头两个字母
  • 管理员账号不参与排行榜

使用流程

普通成员

  1. 使用已导入名单中的 WQ_ID 登录。
  2. 在“会议日历”中查找会议、注册或提交新的会议信息。
  3. 在“回放”中浏览、补充回放来源或反馈失效链接。
  4. 在“重要事项”中查看 PPA、比赛和奖金日期,或投稿 PPA/比赛内容。
  5. 在“设置”中选择同步内容和会议提前提醒,再生成个人订阅地址。
  6. 在“我的投稿”查看审核进度和管理员反馈。

管理员

  1. 导入并维护成员名单。
  2. 在统一的“待审”页面处理会议、重要事项与回放投稿。
  3. 管理会议系列、重要事项、奖金适用周期及关键日期、单次改期、取消和回放来源。
  4. 查看成员使用情况、投稿排行和审计记录。

隐私与安全

  • 会议、重要事项和成员数据保存在 Cloudflare D1,不进入前端构建产物。
  • 登录使用随机不透明令牌,数据库只保存令牌哈希。
  • 登录 Cookie 设置为 HttpOnly + Secure + SameSite=Strict
  • 修改请求同时验证会话、CSRF 和允许的前端来源。
  • WQ_ID 使用带服务端密钥的索引,并加密保存管理员所需的身份数据。
  • 私密日历订阅地址可以随时旋转或撤销。
  • 外部回放链接只做记录和人工审批,服务端不会主动访问网盘内容。

请勿提交会议密码、个人专属入会链接、内部文件或参与者名单。

项目组成

  • web/:Vue 3 + TypeScript 前端,发布到 GitHub Pages
  • worker/:Cloudflare Worker API、D1 数据库与 iCalendar 输出
  • packages/shared/:前后端共用的数据类型和校验规则

现有 Worker、D1、包名和 ICS UID 中仍保留 wq-meeting-calendar 作为兼容性标识。它们不是对外品牌名称,不应直接改名,否则可能影响部署、既有订阅或加密数据。

维护检查

pnpm install
pnpm typecheck
pnpm test
pnpm build

项目仍在持续完善中,欢迎通过 Issue 提交问题和改进建议。

Releases

Packages

Contributors

Languages