研讨室预约

pkuinfo/pku-harness-plugins/plugins/room-booking

官方内置

北大空间:二教、四教、地学楼研讨教室的查询、空闲时段、预约和取消。

插件可以访问的内容

插件只能做这里声明过的事。安装之前,App 会给你看同一份清单。如果以后的更新需要更多权限,App 会再次询问你。

校园服务使用你的登录
  • 北大空间(研讨室预约)bdkj.pku.edu.cn

这些请求由 App 使用你已登录的会话发送,插件看不到你的密码、Cookie 或令牌。

其他网站

无

App 功能

无

工具
  • 研讨教室列表room-booking.rooms列出二教、四教、地学楼的研讨教室读取
  • 教室空闲时段room-booking.availability查看一间研讨教室每天的空闲节次读取
  • 我的研讨室预约room-booking.reservations查看我的研讨室预约记录读取
  • 预约研讨教室room-booking.reserve预约一间研讨教室(一到两节)修改
  • 取消研讨室预约room-booking.cancel取消一条研讨室预约修改
  • 参与人分组room-booking.groups查看已保存的参与人分组读取
  • 保存参与人分组room-booking.saveGroup把一组参与人存成分组,预约时直接用修改
  • 删除参与人分组room-booking.deleteGroup删除一个已保存的参与人分组修改

需要的系统能力

  • 校园登录

    使用你已登录的校园会话,你的密码不会离开手机。

  • 联网

    会访问互联网上的服务器。

云端数据

不使用 PKU harness Cloud。

检查结果

  • 由 pkuinfo 维护,源码在官方插件仓库中。

给 AI 的说明

PLUGIN.md 的正文部分,会和插件一起提供给模型。

北大空间(bdkj.pku.edu.cn)学术研讨教室:用户说借教室、订研讨室、预约讨论间时用。

  • 流程:room-booking__rooms 列出楼和教室(可按楼、人数筛选)→ room-booking__availability 看某间教室每天的空闲节次 → room-booking__reserve 提交。
  • 每天 13 节、每节 50 分钟(08:00–22:30),一次最多连续 2 节;预约时间用 availability 返回的节次起止时间。
  • 每间教室有「至少 N 人起约」和容量限制,预约至少 3 人,参与人必须包含申请人(用户本人);每人要学号和姓名。参与人必须由用户明确给出,不要编造或沿用别人的名单。用户固定的一组人可以用 room-booking__saveGroup 存成分组,之后 reserve 传 group。
  • reserve / cancel 会真的改动学校的预约记录:提交前把教室、时间、事由、参与人跟用户确认一遍。
  • room-booking__reservations 查看我的预约(含可取消的 id),cancel 传那里的 id。
  • 如果提示需要完善「个人信息」,原样告诉用户去浏览器打开 https://bdkj.pku.edu.cn/personal 完成,不要反复重试。

清单

PLUGIN.md 的 frontmatter,按原样显示。 来源: plugins/room-booking/PLUGIN.md. 字段说明

spec: 1
id: room-booking
name: 研讨室预约
description: 北大空间:二教、四教、地学楼学术研讨教室的查询、预约和取消。
version: 0.2.0
author: pkuinfo
icon: room
homepage: https://github.com/pkuinfo/pku-harness-plugins/tree/main/plugins/room-booking
requires: [campus-session, network]
# 北大空间 学术研讨教室预约 (bdkj.pku.edu.cn, redesigned 2026-10; pkucli crates/bdkj for the older
# flows). The harness adapter `bdkj` holds the session and follows redirects, so `as: response`
# gives the final URL: a bounce to /personal means the profile must be completed in a browser,
# and a submit that lands on /classRoom succeeded. Participant groups (groups.rs) live in KV.
campus: [bdkj]
shared: shared.yaml
tools:
  rooms: tools/rooms.yaml
  availability: tools/availability.yaml
  reservations: tools/reservations.yaml
  reserve: tools/reserve.yaml
  cancel: tools/cancel.yaml
  groups: tools/groups.yaml
  saveGroup: tools/saveGroup.yaml
  deleteGroup: tools/deleteGroup.yaml
i18n:
  en:
    name: Seminar rooms
    description: 'PKU Space: find, book and cancel seminar rooms in the Second and Fourth Teaching Buildings and the Geoscience Building.'
    tools:
      rooms: { title: Seminar rooms, summary: 'Seminar rooms in the Second and Fourth Teaching Buildings and the Geoscience Building' }
      availability: { title: Free time slots, summary: Free periods of one seminar room per day }
      reservations: { title: My seminar room bookings, summary: Your seminar room bookings }
      reserve: { title: Book seminar room, summary: Book a seminar room for one or two periods }
      cancel: { title: Cancel seminar room booking, summary: Cancel one of your seminar room bookings }
      groups: { title: Attendee groups, summary: Your saved attendee groups }
      saveGroup: { title: Save attendee group, summary: Save a group of attendees to reuse when booking }
      deleteGroup: { title: Delete attendee group, summary: Delete a saved attendee group }

同一仓库中的其他插件

pkuinfo/pku-harness-plugins