Automated verification and onboarding assistant for the Tsinghua University 2030 server. I scan admission letters and manage roles.
Find a file
2026-05-25 09:45:18 -06:00
.env.example initial commit 2026-05-23 09:47:13 -06:00
.gitignore initial commit 2026-05-23 09:47:13 -06:00
index.js feat: make sure memberHasAllCategoryRoles only checks for required role types 2026-05-25 09:45:18 -06:00
LICENSE initial commit 2026-05-23 09:47:13 -06:00
package-lock.json initial commit 2026-05-23 09:47:13 -06:00
package.json initial commit 2026-05-23 09:47:13 -06:00
README.md feat: add README 2026-05-23 11:34:51 -06:00

Shuimu (水木) | Tsinghua Class of 2030 Gatekeeper 🌸

An automated verification and onboarding assistant for the Tsinghua University 2030 cohort Discord server. Shuimu scans admission letters using local OCR, manages cohort roles via Discord Select Menus, and generates personalized welcome messages.

Features

  • Admission Letter Verification: Uses tesseract.js to scan uploaded screenshots for specific keywords and dates.
  • Stateless Image Hashing: Prevents duplicate verification attempts by hashing images and storing them locally in a JSON ledger.
  • Automated Role Assignment: Enforces mutually exclusive roles (Track, Origin, College, Dorms) using Discord's UI components.
  • AI Welcome Messages: Generates lighthearted, user-specific puns via the openai SDK (gpt-4o-mini) upon joining.

Prerequisites

  • Node.js (v20 or higher recommended)
  • A Discord Bot Token with Message Content and Server Members intents enabled.
  • An OpenAI API Key.

Setup Roles Command

Once the bot is online, an admin can type the designated setup command (e.g., !setupRoles) in a locked #roles channel to deploy the Select Menus for user onboarding.

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3). See the LICENSE file for details.