PDDIKTI刮刀SDK
一个强大的、类型安全的TypeScript SDK,用于从PDDIKTI API中抓取学生数据。建于 包子 和 黄道带.
特性
- 🚀 流利的API:用于构建复杂查询的可链接方法。
- 🔒 类型安全:完全支持TypeScript和Zod验证。
- 🛠️ 通用的:可配置为搜索任何程序或关键字。
- ⚡ 快:针对Bun进行了优化。
安装
bun install用法
您可以在自己的脚本中使用SDK。看 example/index.ts 完整的演示。
import { Pddikti } from "./src"; // Import from the SDK
// Example: Search for "Joko" in "Kehutanan UGM" and filter results
const results = await Pddikti.search("Joko Kehutanan UGM")
.filterBy(s => s.nama.includes("Joko"))
.getDetails()
.filterBy(d => d.jenjang === "S1")
.run();
console.log(results);运行演示
此存储库包含一个预配置的示例脚本。
# Run the demo scraper (Joko Kehutanan UGM & Bahlil UI)
bun run startMCP服务器
该项目包括一个MCP(模型上下文协议)服务器,该服务器允许LLM与PDDIKTI API交互。
运行MCP服务器
bun run mcp-server可用工具
search_students:按姓名、NIM或大学搜索学生。get_student_detail:通过ID获取特定学生的详细信息。
发展
装订和格式化
此项目使用 生物群系 用于裁剪和格式化。
# Run lint check
bun run lint测试
使用Bun的内置测试运行器运行单元测试。
bun test预提交挂钩配置如下 哈士奇 和 皮棉上演 确保每次提交的代码质量。
项目结构
pddikti-scraper/
├── src/
│ ├── index.ts # SDK Entry Point
│ ├── pddikti.ts # Fluent API Logic
│ ├── api.ts # Low-level API Client
│ └── schemas.ts # Zod Schemas
├── example/
│ └── index.ts # Usage Demo
├── .husky/ # Git Hooks免责声明
此工具用于 仅用于教育和研究目的.
- 尊重隐私:抓取的数据包含个人身份信息(PII),如姓名和学生证。请勿使用此工具为恶意目的、垃圾邮件或骚扰收集数据。
- 法律合规:确保您遵守您所在司法管辖区的所有适用法律法规(例如,印度尼西亚的UU PDP、GDPR)。
- 服务器负载:恭敬地使用内置延迟。不要让目标服务器不堪重负。
- 责任:作者不对任何滥用此工具的行为负责。
