小 (→搜索) |
(→阅读邮件) |
||
第695行: | 第695行: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | === 引用邮件 === | ||
+ | : '''GET''' /mail/quote | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Parameter !! Type !! Description !! Optional !! Choices | ||
+ | |- | ||
+ | | session || string || session token || no || | ||
+ | |- | ||
+ | | folder || string || the folder of the quoted mail || yes || '''inbox'''/sent | ||
+ | |- | ||
+ | | index || int || mail index, start from 1 || yes | ||
+ | |- | ||
+ | | mode || string || quote mode, same as post/quote || yes || '''S'''/R/N/A | ||
+ | |} | ||
+ | * Return value: | ||
+ | <source lang="javascript"> | ||
+ | { | ||
+ | "title": <string: quoted title>, | ||
+ | "content": <string: quoted content> | ||
+ | } | ||
+ | </source> | ||
+ | 引用某个邮件箱里的某封邮件,可选引用模式。 | ||
+ | |||
+ | === 发邮件 === | ||
+ | : '''POST''' /mail/send | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Parameter !! Type !! Description !! Optional !! Choices | ||
+ | |- | ||
+ | | session || string || session token || no || | ||
+ | |- | ||
+ | | to || string || receiver id || no || | ||
+ | |- | ||
+ | | title || string || mail title || no || | ||
+ | |- | ||
+ | | content || string || mail content || no || | ||
+ | |- | ||
+ | | signature_id || int || signature id || yes || '''0(none)'''/-1(random)/>0 | ||
+ | |- | ||
+ | | save_in_sent || int || save the mail in the sent box || yes || '''1'''/0 | ||
+ | |} | ||
+ | * Return value: | ||
+ | <source lang="javascript"> | ||
+ | {"result": "ok"} | ||
+ | </source> | ||
+ | 发邮件,可选是否存发件箱。 | ||
+ | 如果需要引用邮件,请先调用/mail/quote。 |
2013年6月18日 (二) 07:41的版本
数据类型
AttachInfo:
{
"name": <string: Attachment filename>,
"offset:": <int: Attachment offset in post>
}
JSONP
Parameter | Type | Description | Optional |
---|---|---|---|
jsonp | string | JSONP function name | Yes |
jsoncallback | string | JSONP function name | Yes |
If you want JSONP, just add jsonp=function, and the result would be
function(data);
登录
版面
BoardInfo:
{
"name": <string: Board name>,
"read": <Boolean: Board read?>,
"BM": <string: BMs>,
"id": <int: Board id>,
"total": <int: Total post count>,
"currentusers": <int: Current users count>,
"major": <string: major class>,
"minor": <string: minor class>,
"outpost": <string: may outpost>,
"desc": <string: description>},
"group": <int: Group ID, or 0 if not in a group, match with id>,
"isdir": <boolean: is a board group> [optional],
"child_count": <int: children count of the board group> [optional]
}
- 帖子列表模式(通常以mode参数出现):
- normal: 普通模式
- digest: 文摘模式
- mark: 被m模式
- thread: 同主题模式
- origin: 原作模式
- sticky: 置顶模式
列出版面
- GET /board/list
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
start | int | ID of the first post to list | Yes |
end | int | ID of the last post to list | Yes |
count | int | Number of posts to list | Yes |
group | int | Board group to list | Yes |
- Return value
- Success:
[
<BoardInfo: information of one board>,
...
]
获取帖子列表
- GET /board/post_list
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
name | string | Name of the board to list | No | |
mode | string | Mode of this board to list | Yes | 帖子列表模式 |
start | int | ID of the first post to list | Yes | |
end | int | ID of the last post to list | Yes | |
count | int | Number of posts to list | Yes |
- Return value
- Success:
[
<PostInfo: information of one post>,
...
]
清除未读标记
- POST /board/clear_unread
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
name | string | Name of the board to list, or clear everything if ignored | Yes |
to | int | unique ID (xid) of the post to clear to | Yes |
如果不提供to参数,则清除所有。否则清楚从开始到指定帖子的未读标记。如果连name都不提供…… 那就清除所有版面未读标记!
获取备忘录
- GET /board/note
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
name | string | Name of the board | No |
获取秘密备忘录
- GET /board/secnote
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
name | string | Name of the board | No |
帖子
PostInfo:
{
"posttime": <time: post time>,
"attachflag": <int: unknown>,
"read": <Boolean: Post read>,
"title": <string: Post title>,
"attachment": <int: Attachment count>,
"owner": <string: Poster userid>,
"id": <int: Post id>,
"xid": <int: unique post ID>,
"thread": <int: thread ID>,
"reply_to": <int: ID of the post this post replied to>,
"size": <int: post size>,
"flags": [<string: one flag>, ...],
}
- flags: marked, noreply, g, deletable
PostContent:
{
"picattach": [
<AttachInfo: information of one attachment>,
...
],
"otherattach": [
<AttachInfo: information of one attachment>,
...
],
"content": <string: Post content>,
}
PostAttachInfo:
[
{
"name": <string: attachment file name>,
"store_id": <string: ID of the storage, returned from store/new>
},
...
]
获取帖子
- GET /post/view
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
id | int | ID of the post in this board | No | |
board | string | Name of the board this post belongs to | No | |
mode | string | Mode of the board this ID corresponds to | Yes | 帖子列表模式 |
- Return value
- Success:
{
"attachlink": <string: base of attachment link. add "&a=offset" to obtain the full link.>,
<*PostContent: content of the post>,
<*PostInfo: information of the post>
}
获取附件
- GET /post/get_attach
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
id | int | ID of the post in this board | No | |
board | string | Name of the board this post belongs to | No | |
mode | string | Mode of the board this ID corresponds to | Yes | 帖子列表模式 |
offset | int | Offset of the attachment in the post, returned in "view" | No |
- Result value
{
"content": <string: Post content encoded in Base64>,
"name": <string: Attachment name>
}
同主题浏览
- GET /post/nextid
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session token | No | |
id | int | Post ID to start search from | No | |
board | string | Board name | No | |
direction | string | Search direction | Yes | forward/backward |
last_one | bool | Search for the last post | Yes | 0/1 |
only_new | bool | Only search for new post | Yes | 0/1 |
- Result
- {'nextid': <int: next post id in the thread>}
- Examples
- direction=forward: search for next post in the same thread
- direction=backward, last_one=1: go to the head of the thread
- direction=backward, last_one=1, only_new=1: go to the first unread post in the thread
引用帖子
- GET /post/quote
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
board | string | Name of the board this post belongs to | No | |
id | int | ID of the post to quote | No | |
xid | int | unique ID of the post to quote | No | |
mode | string | quote mode | Yes | S/R/N/A |
index_mode | string | mode of the post list where ID belongs to | Yes | 帖子列表模式 |
- Result
{"title": <string: Quoted title>, "content": <string: Quoted content>}
准备
- GET /post/prepare
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
for | string | action to prepare for | No | new |
board | string | Name of the board this post belongs to | No | |
re_id | int | ID of the post to reply (for=new) | Yes | |
re_xid | int | unique ID of the post to reply (for=new) | Yes | |
re_mode | string | mode of the post list where re_id belongs to (for=new) | Yes | 帖子列表模式 |
anonymous | boolean | create anonymous post (for=new) | Yes | 0(no)/1(yes) |
attachments | JSON encoded PostAttachInfo | attachments info | Yes |
result:
{"error": {<string: error>: 1}}
如果没错误,那后面的hash是空的。
发帖/回帖
- POST /post/new
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
board | string | Name of the board this post belongs to | No | |
re_id | int | ID of the post to reply | Yes | |
re_xid | int | unique ID of the post to reply | Yes | |
re_mode | string | mode of the post list where re_id belongs to | Yes | 帖子列表模式 |
title | string | title of the post | No | |
content | string | content of the post | No | |
signature_id | int | No. of qmd to use | Yes | <0(random)/0(none)/>0(qmd #) |
anonymous | boolean | create anonymous post | Yes | 0(no)/1(yes) |
mailback | boolean | require replies to be mailed back | Yes | 0(no)/1(yes) |
attachments | JSON encoded PostAttachInfo | attachments info | Yes |
发帖的话,id和xid可以忽略。回帖的话,需要提供id和xid。
删帖
- POST /post/delete
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
board | string | Name of the board this post belongs to | No | |
id | int | ID of the post to delete | Yes | |
xid | int | unique ID of the post to delete | No | |
mode | string | mode of the post list where id belongs to | Yes | 帖子列表模式 |
xid是必须的,用于唯一定位帖子。id不是必需的。 每个人可以删自己的贴,版主可以删别人的贴。
编辑
- POST /post/edit
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
board | string | Name of the board this post belongs to | No | |
id | int | ID of the post to edit | Yes | |
xid | int | unique ID of the post to edit | No | |
mode | string | mode of the post list where id belongs to | Yes | 帖子列表模式 |
title | string | new title | Yes | 如果没有则不变 |
content | string | new content | Yes | 如果没有则不变 |
new_attachments | JSON encoded PostAttachInfo | Yes | 新的附件列表,参见发贴 | |
del_attachments | array<int> | attachments to remove | Yes | 要删除的附件编号,从0开始 |
xid是必须的,用于唯一定位帖子。id不是必需的。 每个人可以编辑自己的贴,版主可以编辑别人的贴。
搜索
- GET /post/search
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
board | string | Name of the board this post belongs to | No | |
from | int | search from this post | Yes | 默认从头开始 |
forward | int | search forward | Yes | 0/1,默认向前搜索(1) |
count | int | max number of search results | Yes | 默认返回一个结果 |
query | JSON of search query | search query | No | 格式参见下文 |
query是一个表达式,基本形式为: [<op>, <arg1>, <arg2>, ...] 其中op为操作符。目前支持:
- 逻辑操作符,每个参数都是一个表达式
- or: 取所有参数结果的或
- and: 取所有参数结果的与
- not: 取所有参数结果的非,只能有一个参数
- 样例
- ['or', <expr1>, <expr2>, <expr3>]
- ['not', <expr>]
- 字符串域匹配,有一个参数,为一个正则表达式
- author: 匹配作者
- title: 匹配标题
- content: 匹配内容
- 样例
- ['author', 'henryhu']
- ['title', 'hell.+orld']
- 标记匹配,没有参数
- m: 被m帖子
- g: 收精帖子
- noreply: 不可回复帖子
- has_attach: 有附件
- 样例: ['m']
- 整数域匹配,第一个参数为域名,第二个参数为比较值
- 操作符
- ge: 大于等于
- le: 小于等于
- eq: 等于
- 域名
- posttime: 发帖时间
- thread: 主题编号,主题贴xid
- size: 帖子大小
- 样例
- ['ge', 'posttime', <time, UTC+8 seconds>]
- ['eq', 'thread', 1234]
- 操作符
收藏夹
列出收藏夹
- GET /favboard/list
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
father | int | Parent directory of boards to list | Yes |
start | int | ID of the first post to list | Yes |
end | int | ID of the last post to list | Yes |
count | int | Number of posts to list | Yes |
- Return value
- Success:
[
{
"index": <int: Index in favboard>,
"binfo": <BoardInfo: board info>,
"father": <int: Parent index in favboard>,
"type": <string: Type of this entry>
},
...
]
会话
验证会话
- GET /session/verify
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
精华区
DigestItem:
{
'mtitle': <string: menu title when listing children of this item>,
'title': <string: title of this item>,
'attach': <int: attachment position or attachment flag, with attachment <-> != 0>,
'mtime': <int: modification time>,
'type': <string: item type. can be file/dir/link/other>,
'id': <int: item index, start from 1>,
// these items only appear if type == link
'host': <string: link host>,
'post': <int: link port>
}
列出目录
- GET /digest/list
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
board | string | Board name of the digest. If not present, start from the Digest menu. | Yes |
route | string | Route to the directory. Like x-1-2-3 | No |
start | int | Number of the first item | Yes |
end | int | Number of the last item | Yes |
Result:
{
'parent': <DigestItem: information of the directory>,
'count': <int: number of items returned>,
'items': [
<DigestItem: information of one item>,
...
]
}
获取帖子
- GET /digest/view
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
board | string | Board name of the digest. If not present, start from the Digest menu. | Yes |
route | string | Route to the post. Like x-1-2-3 | No |
Result:
{
'item': <DigestItem: information of the post item>,
<*PostContent: content of the post>,
'attachlink': <string: URL of the page showing attachments. add '&a=offset' for individual attachment>
}
用户
获取用户信息
- GET /user/query
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
id | string | ID of user to query, omit to query yourself | Yes |
获取用户详细信息
- GET /user/detail
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
获取默认签名档编号
- GET /user/signature_id
Parameter | Type | Description | Optional |
---|---|---|---|
session | string | Session Token | No |
- Return value:
{"signature_id": <int: default signature id>}
存储
主要是用来上传文件,随后可以用于贴附件。
上传文件
- POST /store/new
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | Session Token | No | |
item | string | Storage item type | No | attachment |
content | string | Base64-encoded content | No |
- Return value:
{"id": <string: ID of the item created>}
邮箱
MailInfo:
{
"posttime": <time: post time>,
"attachflag": <int: unknown>,
"read": <boolean: read/unread>,
"title": <string: Post title>,
"attachment": <int: attachment count>,
"owner": <string: mailer userid>,
"id": <int: mail id>,
"flags": [<string: one flag>, ...]
}
- flags: marked, replied, forwarded
MailContent:
{
"picattach": [
<AttachInfo: information of one attachment>,
...
],
"otherattach": [
<AttachInfo: information of one attachment>,
...
],
"content": <string: mail content>
}
列出邮件
- GET /mail/list
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | session token | no | |
folder | string | which folder to list | yes | inbox/sent |
start | int | first mail index, start from 1 | yes | |
end | int | last mail index | yes | |
count | int | number of mails to list | yes |
- Return value:
{
"start": <int: first mail index>,
"end": <int: last mail index>,
"mails": [
<MailInfo: information of one mail>,
...
]
}
阅读邮件
- GET /mail/view
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | session token | no | |
folder | string | which folder to list | yes | inbox/sent |
index | int | mail index, start from 1 | yes |
- Return value:
{
<*MailContent: content of one mail>,
<*MailInfo: information of one mail>
}
引用邮件
- GET /mail/quote
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | session token | no | |
folder | string | the folder of the quoted mail | yes | inbox/sent |
index | int | mail index, start from 1 | yes | |
mode | string | quote mode, same as post/quote | yes | S/R/N/A |
- Return value:
{
"title": <string: quoted title>,
"content": <string: quoted content>
}
引用某个邮件箱里的某封邮件,可选引用模式。
发邮件
- POST /mail/send
Parameter | Type | Description | Optional | Choices |
---|---|---|---|---|
session | string | session token | no | |
to | string | receiver id | no | |
title | string | mail title | no | |
content | string | mail content | no | |
signature_id | int | signature id | yes | 0(none)/-1(random)/>0 |
save_in_sent | int | save the mail in the sent box | yes | 1/0 |
- Return value:
{"result": "ok"}
发邮件,可选是否存发件箱。 如果需要引用邮件,请先调用/mail/quote。