Automated verification and onboarding assistant for the Tsinghua University 2030 server. I scan admission letters and manage roles.
| .env.example | ||
| .gitignore | ||
| index.js | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
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.jsto 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
openaiSDK (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.