本项目为Wikidot的封装API,能够绕过Wikidot的CSRF限制仅需提供账户密码即可执行对网站的远程操作,可用于机器人账户等。API提供token鉴权、速率限制和操作日志功能。
所有公开API的调用路径格式为:
https://wikit.unitreaty.org/wikidot/{模块名}
例如:https://wikit.unitreaty.org/wikidot/savepage
公共参数(所有接口必传):
| 参数 | 说明 |
|---|---|
| token | Wikit 平台分配的 API Token |
| wiki | 站点名(不含 .wikidot.com) |
| username | Wikidot 账号用户名 |
| password | Wikidot 账号密码 |
公共响应格式:
{"status": "success"}
{"status": "error", "message": "错误原因"}保存或编辑 wiki 页面内容。
| 参数 | 必填 | 说明 |
|---|---|---|
| page | 是 | 页面 unix 名(如 main:start) |
| title | 是 | 页面标题 |
| source | 是 | 页面 Wikidot 源代码 |
| comments | 否 | 编辑备注 |
curl -X POST https://your-domain/savepage.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "page=test-page&title=测试页面&source=这是内容"移除或封禁站点成员。
| 参数 | 必填 | 说明 |
|---|---|---|
| member | 是 | 目标用户名 |
| action | 是 | remove 或 ban |
| reason | ban时必填 | 封禁原因 |
curl -X POST https://your-domain/member-admin.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "member=baduser&action=ban&reason=违规操作"论坛发帖、回帖、编辑、删除、锁定、置顶、移动。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | 操作类型(见下方) |
| category_id | newThread时 | 论坛分类 ID |
| thread_id | 大部分操作 | 帖子线程 ID |
| post_id | editPost/deletePost | 帖子 ID |
| parent_id | newPost可选 | 回复的父帖 ID |
| title | 发帖/回帖/编辑 | 标题 |
| source | 发帖/回帖/编辑 | 内容源代码 |
| description | newThread可选 | 帖子描述 |
| target_category_id | moveThread | 目标分类 ID |
| sticky | stickyThread可选 | true/false |
event 可选值:
newThread newPost editPost deletePost lockThread unlockThread stickyThread moveThread editThreadMeta
curl -X POST https://your-domain/forum-post.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=newThread&category_id=1&title=新帖标题&source=帖子内容"对页面进行评分或取消评分。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | ratePage 或 cancelVote |
| page_id | 是 | 页面 ID |
| points | ratePage时 | 分值(如 1 或 -1) |
curl -X POST https://your-domain/page-rate.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=ratePage&page_id=123&points=1"保存页面标签(空格分隔多个标签)。
| 参数 | 必填 | 说明 |
|---|---|---|
| page_id | 是 | 页面 ID |
| tags | 是 | 标签字符串(空格分隔) |
curl -X POST https://your-domain/page-tags.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "page_id=123&tags=scp 安全 euclid"重命名页面或删除页面。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | rename 或 delete |
| page_id | 是 | 页面 ID |
| new_name | rename时 | 新的 unix 名 |
curl -X POST https://your-domain/rename-page.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=rename&page_id=123&new_name=new-page-name"页面锁定、解锁、设置父页面、版本回滚。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | 操作类型 |
| page_id | 是 | 页面 ID |
| mode | lock可选 | 锁定模式,默认 page |
| parent_name | setParentPage时 | 父页面 unix 名 |
| revision_id | revert时 | 要回滚到的版本 ID |
event 可选值:
lock unlock setParentPage revert
curl -X POST https://your-domain/page-action.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=lock&page_id=123"向指定用户发送私信。
| 参数 | 必填 | 说明 |
|---|---|---|
| to_user_id | 是 | 目标用户 ID |
| subject | 是 | 私信标题 |
| source | 是 | 私信内容(Wikidot格式) |
curl -X POST https://your-domain/pm-send.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "to_user_id=456&subject=你好&source=这是私信内容"处理加入申请、添加成员、设置管理员/版主。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | 操作类型 |
| user_id | 有user_id或member | 目标用户 ID |
| member | 有user_id或member | 目标用户名(自动查ID) |
| permissions | setModerator可选 | 版主权限字符串 |
event 可选值:
acceptApplication declineApplication addMember setModerator removeModerator setAdmin removeAdmin
curl -X POST https://your-domain/membership-apply.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=acceptApplication&member=newuser"文件重命名、删除、移动。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | renameFile deleteFile moveFile |
| file_id | 是 | 文件 ID |
| page_id | rename/delete时 | 所属页面 ID |
| new_name | renameFile时 | 新文件名 |
| destination_page_id | moveFile时 | 目标页面 ID |
curl -X POST https://your-domain/file-manager.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=deleteFile&page_id=123&file_id=456"修改站点基本信息、权限、导航、外观、隐私设置。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | 操作类型 |
| name | saveGeneral时 | 站点名 |
| subtitle | saveGeneral时 | 副标题 |
| description | saveGeneral时 | 描述 |
| tags | saveGeneral可选 | 站点标签 |
| permissions | savePermissions时 | 权限 JSON |
| top_bar | saveNavigation时 | 顶栏源代码 |
| side_bar | saveNavigation时 | 侧栏源代码 |
| theme_id | saveAppearance时 | 主题 ID |
| custom_css | saveAppearance可选 | 自定义 CSS |
| private | savePrivateSettings时 | true/false |
| landing_page | savePrivateSettings可选 | 登录页 |
event 可选值:
saveGeneral savePermissions saveNavigation saveAppearance deleteSite savePrivateSettings
curl -X POST https://your-domain/site-settings.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=saveGeneral&name=MySite&subtitle=副标题&description=简介"IP 封禁、解封,用户解封。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | blockIp unblockIp unblockUser |
| ip | blockIp/unblockIp时 | 目标 IP 地址 |
| user_id | unblockUser时 | 用户 ID |
curl -X POST https://your-domain/site-block.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=blockIp&ip=1.2.3.4"通过邮件或用户 ID 邀请加入站点。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | inviteByEmail 或 inviteByUser |
| inviteByEmail时 | 邮箱地址 | |
| user_id | inviteByUser时 | 用户 ID |
| message | 否 | 邀请附言 |
curl -X POST https://your-domain/invite-member.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=inviteByEmail&email=someone@example.com&message=欢迎加入"举报页面、用户或匿名用户。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | flagPage flagUser flagAnonymous |
| page_id | flagPage时 | 页面 ID |
| path | flagPage时 | 页面路径 |
| target_user_id | flagUser时 | 目标用户 ID |
| target_ip | flagAnonymous时 | 目标 IP |
curl -X POST https://your-domain/report-abuse.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=flagUser&target_user_id=789"联系人管理、资料修改、监视页面/帖子。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | 操作类型 |
| target_user_id | 联系人操作时 | 目标用户 ID |
| real_name | saveProfile可选 | 真实姓名 |
| about | saveProfile可选 | 个人简介 |
| website | saveProfile可选 | 网站 |
| new_name | changeScreenName时 | 新显示名 |
| page_id | watchPage/unwatchPage时 | 页面 ID |
| thread_id | watchThread/unwatchThread时 | 帖子 ID |
| category_id | watchForum时 | 论坛分类 ID |
event 可选值:
addContact removeContact saveProfile changeScreenName watchPage unwatchPage watchThread unwatchThread watchForum
curl -X POST https://your-domain/account-action.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=watchPage&page_id=123"创建/删除邮件列表,群发邮件。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | createList deleteList sendEmail |
| name | createList时 | 列表名称 |
| description | createList可选 | 列表描述 |
| list_id | deleteList/sendEmail时 | 列表 ID |
| subject | sendEmail时 | 邮件标题 |
| body | sendEmail时 | 邮件正文 |
curl -X POST https://your-domain/email-list.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=sendEmail&list_id=1&subject=公告&body=内容"论坛布局保存、设置和权限配置。
| 参数 | 必填 | 说明 |
|---|---|---|
| event | 是 | saveLayout saveSettings savePermissions |
| layout | saveLayout时 | 论坛布局 JSON |
| per_page_discussion | saveSettings可选 | true/false |
| permissions | savePermissions时 | 权限 JSON |
curl -X POST https://your-domain/forum-category.php \
-d "token=xxx&wiki=mysite&username=user&password=pass" \
-d "event=saveSettings&per_page_discussion=true"- 将全体文件部署到 Web 服务器(Nginx/Apache)
- 确保
auth.py在 Python 路径中可导入 - 配置 token 系统:创建
admin/token.json和admin/token_usage.json - 确保日志目录存在且有写入权限
token.json 格式:
{
"your-token-here": {
"status": "active",
"limit_type": "hour",
"limit_value": 100
}
}limit_type 可选值: minute hour day