{
    "fName": "公告",
    "fIndex": [
        {
            "id": 0,
            "name": "绿虎论坛"
        },
        {
            "id": 199,
            "name": "公告",
            "parent_id": 0,
            "notopic": 0
        }
    ],
    "tMeta": {
        "title": "[2023-05-11更新] 虎绿林API：JSON Page",
        "read_count": 565989,
        "uid": 1,
        "ctime": 1482562780,
        "mtime": 1683769055,
        "essence": 1,
        "locked": 0,
        "review": 0,
        "level": 0,
        "access": 0
    },
    "floorCount": 73,
    "currPage": 1,
    "maxPage": 4,
    "isLogin": null,
    "blockedReply": 0,
    "floorReverse": false,
    "canReply": false,
    "canLockReply": false,
    "canSink": false,
    "canSetEssence": false,
    "canMove": false,
    "tContents": [
        {
            "uid": 1,
            "ctime": 1482562780,
            "mtime": 1683769055,
            "content": [
                {
                    "type": "markdown"
                },
                {
                    "type": "text",
                    "value": "\r\n## 更新列表：\r\n[2023-05-11] 添加了"
                },
                {
                    "type": "mdpre",
                    "data": "`?_time=1`"
                },
                {
                    "type": "text",
                    "value": "参数，用于获取服务器的当前Unix时间戳，方便计算时间差（客户端本地时间可能不准，计算的时间差不能保证正确）。\r\n[2023-04-04] 添加了Cookie代偿机制，可在设置了"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin=*`"
                },
                {
                    "type": "text",
                    "value": "的情况下通过头信息传递Cookie，具体见底部“Cookie代偿机制”一节。\r\n[2023-03-23] 添加了获取和设置消息已读状态的接口："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.104724.html"
                },
                {
                    "type": "text",
                    "value": "\r\n[2023-03-22] 添加了UBB解析API："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.104715.html"
                },
                {
                    "type": "text",
                    "value": "\r\n[2023-03-21] 新增了内信和"
                },
                {
                    "type": "mdpre",
                    "data": "`@`"
                },
                {
                    "type": "text",
                    "value": "消息统一跳转链接："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/link.ack.msg.996459.html"
                },
                {
                    "type": "text",
                    "value": "\r\n　　　　把996459换成消息的id即可，支持内信和"
                },
                {
                    "type": "at",
                    "tag": "消息",
                    "uid": 21502
                },
                {
                    "type": "text",
                    "value": "，会把消息设为已读，然后自动跳转到目标位置。\r\n[2023-03-19] 新增了内信和"
                },
                {
                    "type": "mdpre",
                    "data": "`@`"
                },
                {
                    "type": "text",
                    "value": "消息的WebSocket推送服务："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.104687.html"
                },
                {
                    "type": "text",
                    "value": "\r\n[2021-11-11] 所有参数均可通过POST传递："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.101950.html"
                },
                {
                    "type": "text",
                    "value": "\r\n[2021-11-04] 添加了表情列表接口："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/api.face.json"
                },
                {
                    "type": "text",
                    "value": "\r\n[2021-09-16] 添加了全局参数"
                },
                {
                    "type": "mdpre",
                    "data": "`_topic_summary=最大长度`"
                },
                {
                    "type": "text",
                    "value": "来获取帖子内容摘要，可以在有"
                },
                {
                    "type": "mdpre",
                    "data": "`topic_id`"
                },
                {
                    "type": "text",
                    "value": "字段返回的页面获取帖子内容摘要（"
                },
                {
                    "type": "urlzh",
                    "url": "https://hu60.cn/q.php/index.index.json?_topic_summary=100",
                    "title": "演示"
                },
                {
                    "type": "text",
                    "value": "）。\r\n\r\n[2021-09-09]\r\n* 所有全局参数（"
                },
                {
                    "type": "mdpre",
                    "data": "`_uinfo`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`_json`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`_content`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`_myself`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`_sid`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`_topic_summary`"
                },
                {
                    "type": "text",
                    "value": "）现在都可以通过GET、POST和Header（"
                },
                {
                    "type": "mdpre",
                    "data": "`x-uinfo`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`x-json`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`x-content`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`x-myself`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`x-origin`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`x-sid`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`x-topic-summary`"
                },
                {
                    "type": "text",
                    "value": "）方式传递。\r\n* 添加了用户搜索API：\r\n   "
                },
                {
                    "type": "urlzh",
                    "url": "https://hu60.cn/q.php/user.search.json?namePattern=老虎*&offset=0&limit=10&_uinfo=avatar",
                    "title": null
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n[2021-02-04] 添加了全局参数"
                },
                {
                    "type": "mdpre",
                    "data": "`_myself=1`"
                },
                {
                    "type": "text",
                    "value": "和"
                },
                {
                    "type": "mdpre",
                    "data": "`_myself=newMsg,newAtInfo,newChats`"
                },
                {
                    "type": "text",
                    "value": "，可用于获取与用户自身相关的信息。\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.search.json?_myself=1&_uinfo=name,avatar"
                },
                {
                    "type": "text",
                    "value": "\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.search.json?_myself=newMsg,newAtInfo,newChats&_uinfo=name,avatar,sign,contact"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n[2021-01-19]\r\n* 帖子收藏现在有JSON Page版了："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.myfavorite.json"
                },
                {
                    "type": "text",
                    "value": "\r\n* 向支持翻页的页面添加了"
                },
                {
                    "type": "mdpre",
                    "data": "`currPage`"
                },
                {
                    "type": "text",
                    "value": "字段用于指示当前页码（如 "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.forum.0.2.0.json"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`\"currPage\": 2, \"maxPage\": 2968`"
                },
                {
                    "type": "text",
                    "value": "）\r\n* 向首页添加"
                },
                {
                    "type": "mdpre",
                    "data": "`currPage`"
                },
                {
                    "type": "text",
                    "value": "和"
                },
                {
                    "type": "mdpre",
                    "data": "`hasNextPage`"
                },
                {
                    "type": "text",
                    "value": "字段（"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.index.json?p=2"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`\"currPage\": 2, \"hasNextPage\": true`"
                },
                {
                    "type": "text",
                    "value": "）\r\n\r\n[2021-01-14]\r\n* 为用户生成的内容添加了class标记，详见下面的“用户生成内容中的class标记”部分。\r\n* JSON Page 不对用户发言中的图片、链接等进行安全跳转（"
                },
                {
                    "type": "mdpre",
                    "data": "`link.url.json?b64e=...`"
                },
                {
                    "type": "text",
                    "value": "），而是直接返回原始链接。\r\n\r\n[2021-01-13] 添加了一个新的站点信息接口，返回网站名称、论坛名称、备案号等信息："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/site.info.json"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n[2021-01-12] 今日更新如下：\r\n* 现在可以通过 "
                },
                {
                    "type": "mdpre",
                    "data": "http://hu60.cn/q.php/user.stat.json"
                },
                {
                    "type": "text",
                    "value": " 接口获取会显示在html版页面底部的聊天室新消息了。\r\n* 全局参数 _content 现在支持四种格式了：html、ubb、json和text，并且ubb和text类型在包括内信和at消息在内的所有地方都可安全使用。\r\n* 帖子编辑页面（"
                },
                {
                    "type": "mdpre",
                    "data": "`bbs.edittopic.xxx.json`"
                },
                {
                    "type": "text",
                    "value": "）的"
                },
                {
                    "type": "mdpre",
                    "data": "`title`"
                },
                {
                    "type": "text",
                    "value": "和"
                },
                {
                    "type": "mdpre",
                    "data": "`content`"
                },
                {
                    "type": "text",
                    "value": "字段现在不进行HTML实体转义（htmlspecialchars）了，如果要插入HTML中，请自行转义，以防XSS攻击。\r\n* 帖子页面添加GET参数"
                },
                {
                    "type": "mdpre",
                    "data": "`floorReverse=0或1`"
                },
                {
                    "type": "text",
                    "value": "用于调整楼层排序，如"
                },
                {
                    "type": "urlzh",
                    "url": "https://hu60.cn/q.php/bbs.topic.82570.json?floorReverse=0",
                    "title": "正序"
                },
                {
                    "type": "text",
                    "value": "，"
                },
                {
                    "type": "urlzh",
                    "url": "https://hu60.cn/q.php/bbs.topic.82570.json?floorReverse=1",
                    "title": "倒序"
                },
                {
                    "type": "text",
                    "value": "\r\n* 现在聊天室删楼提醒已经和帖子删楼提醒统一了，可以正确给出json、ubb、text格式。\r\n* 添加了参数"
                },
                {
                    "type": "mdpre",
                    "data": "`pageSize=分页大小`"
                },
                {
                    "type": "text",
                    "value": "，可用于所有列表页面。\r\n\r\n[2019-07-04] 添加了“用户信息扩展”功能（演示："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json?_uinfo=name,avatar,sign,contact"
                },
                {
                    "type": "text",
                    "value": " ），具体见下方描述。\r\n\r\n[2017-03-25] 添加了网页插件数据存储API，可供网页插件存储和查询自定义键值对："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.83603.html"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n[2016-12-25] 全局参数 json 更名为 _json；添加了全局参数 _content=html|ubb|json 用于选择返回内容的格式。\r\n\r\n[2016-12-29] 添加了全局参数 _origin=\\*|域名，可支持浏览器中的跨站Ajax访问。为保证用户安全，跨站Ajax拒绝接受和设置任何Cookie。\r\n\r\n[2016-12-31] 修复在JSON页面发at消息，在html页面查看，点击链接跳转到JSON页面的问题。为解决问题，原url中的bid（html或json）用占位符“{$BID}”取代，并在显示时才替换成当前页面的bid。\r\n\r\n-----------------------------------------\r\n\r\n## 概述\r\n\r\n就在刚刚，虎绿林完成了整站的 JSON API 编写工作。\r\n\r\n为了减少工作量，以及保证 API 和网页的一致性，虎绿林用了一种独特的方式提供 API，可能除了虎绿林，没有人用同样的方法提供API了。\r\n\r\n我把这种方式称为 JSON Page（JSON页面），它实现的方法很简单，就是用虎绿林的主题切换功能，为网站写一个纯粹用JSON输出的主题。\r\n\r\n效果是这样的：\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.index.json"
                },
                {
                    "type": "text",
                    "value": "\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n把任何一个页面的后缀由 .html 改成 .json，就可以看到这个页面的 JSON 版本。\r\n几乎所有页面都提供了 JSON 版本，欢迎各位用 JSON 版本来做任何事。\r\n\r\n注意不是在"
                },
                {
                    "type": "mdpre",
                    "data": "`.html`"
                },
                {
                    "type": "text",
                    "value": "后面加"
                },
                {
                    "type": "mdpre",
                    "data": "`.json`"
                },
                {
                    "type": "text",
                    "value": "，而是把"
                },
                {
                    "type": "mdpre",
                    "data": "`.html`"
                },
                {
                    "type": "text",
                    "value": "改成"
                },
                {
                    "type": "mdpre",
                    "data": "`.json`"
                },
                {
                    "type": "text",
                    "value": "。比如首页的HTML版：\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.index.html"
                },
                {
                    "type": "text",
                    "value": "\r\n首页的JSON版：\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.index.json"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\nJSON 版本的交互方式和网页是一样的：\r\n比如翻页，网页是改变URL，JSON版本也是改变URL。\r\n再比如发言，网页是 POST 提交，JSON版本也是一样，提交的参数也和网页相同，唯一的区别是提交的页面的后缀改成 .json。\r\n\r\nJSON版本可能会有错误，如果遇到问题，请及时在这个帖子反馈。\r\n\r\n---------------------------\r\n\r\n## JSON Page 专用参数：\r\n\r\n* 通过POST传递所有参数，包括"
                },
                {
                    "type": "mdpre",
                    "data": "`PATHINFO`"
                },
                {
                    "type": "text",
                    "value": "部分\r\n   详见："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.101950.html"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* 获取当前时间（"
                },
                {
                    "type": "mdpre",
                    "data": "`_time=1`"
                },
                {
                    "type": "text",
                    "value": "）\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/msg.index.@.no.json?_time=1"
                },
                {
                    "type": "text",
                    "value": "\r\n   任意页面均可用，返回结果会多一个"
                },
                {
                    "type": "mdpre",
                    "data": "`_time`"
                },
                {
                    "type": "text",
                    "value": "字段，值为服务器当前Unix时间戳，\r\n   方便计算时间差（客户端本地时间可能不准，计算的时间差不能保证正确）。\r\n   \r\n\r\n* 楼层排序（"
                },
                {
                    "type": "mdpre",
                    "data": "`floorReverse=0|1`"
                },
                {
                    "type": "text",
                    "value": "）\r\n   正序："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json?floorReverse=0"
                },
                {
                    "type": "text",
                    "value": "\r\n   倒序："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json?floorReverse=1"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* 分页大小（"
                },
                {
                    "type": "mdpre",
                    "data": "`pageSize=分页大小`"
                },
                {
                    "type": "text",
                    "value": "）\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json?pageSize=100"
                },
                {
                    "type": "text",
                    "value": "\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/addin.chat.%E5%85%AC%E5%85%B1%E8%81%8A%E5%A4%A9%E5%AE%A4.json?pageSize=3"
                },
                {
                    "type": "text",
                    "value": "\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/msg.index.inbox.all.json?pageSize=50"
                },
                {
                    "type": "text",
                    "value": "\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.index.json?pageSize=5"
                },
                {
                    "type": "text",
                    "value": "\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.forum.json?pageSize=10"
                },
                {
                    "type": "text",
                    "value": "\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.forum.0.1.json?pageSize=100"
                },
                {
                    "type": "text",
                    "value": "\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.search.html?keywords=&username=%E8%80%81%E8%99%8E%E4%BC%9A%E6%B8%B8%E6%B3%B3&pageSize=5"
                },
                {
                    "type": "text",
                    "value": "\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.search.html?keywords=&username=%E8%80%81%E8%99%8E%E4%BC%9A%E6%B8%B8%E6%B3%B3&searchType=reply&pageSize=30"
                },
                {
                    "type": "text",
                    "value": "\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/user.stat.json?pageSize=20"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n   论坛首页（bbs.forum.json，展示每个版块的前N个帖子）和底部聊天室新消息（user.stat.json）的分页大小上限是100，其他页面上限是1000。\r\n\r\n---------------------------\r\n\r\n## JSON Page 专用页面：\r\n\r\n* 获取和设置消息已读状态的接口："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.104724.html"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* 内信和"
                },
                {
                    "type": "mdpre",
                    "data": "`@`"
                },
                {
                    "type": "text",
                    "value": "消息统一跳转链接：\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/link.ack.msg.996459.html"
                },
                {
                    "type": "text",
                    "value": "\r\n   把996459换成消息的id即可，支持内信和"
                },
                {
                    "type": "at",
                    "tag": "消息",
                    "uid": 21502
                },
                {
                    "type": "text",
                    "value": "，会把消息设为已读，然后自动跳转到目标位置。\r\n\r\n* 查看登录状态、内信和@"
                },
                {
                    "type": "empty"
                },
                {
                    "type": "text",
                    "value": "信息条数，还可以获取会显示在html版页面底部的聊天室新消息。该页面只有json版。\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "http://hu60.cn/q.php/user.stat.json"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* 站点信息页面，返回网站名称、论坛名称、备案号等信息。该页面只有json版。\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/site.info.json"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* 用户搜索API（该页面只有json版）：\r\n   ["
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/user.search.json?namePattern="
                },
                {
                    "type": "text",
                    "value": "老虎*&offset=0&limit=10&_uinfo=avatar]("
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/user.search.json?namePattern="
                },
                {
                    "type": "text",
                    "value": "老虎*&offset=0&limit=10&_uinfo=avatar)\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "`namePattern`"
                },
                {
                    "type": "text",
                    "value": "参数可用的模式：\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "`*`"
                },
                {
                    "type": "text",
                    "value": " 匹配任意字符\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "`?`"
                },
                {
                    "type": "text",
                    "value": " 匹配单个字符\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "`用户名前缀*`"
                },
                {
                    "type": "text",
                    "value": " 搜索包含特定前缀的用户名\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "`*部分用户名*`"
                },
                {
                    "type": "text",
                    "value": " 搜索包含特定字符的用户名\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "`?????`"
                },
                {
                    "type": "text",
                    "value": " 搜索特定长度的用户名\r\n   "
                },
                {
                    "type": "mdpre",
                    "data": "`完整用户名`"
                },
                {
                    "type": "text",
                    "value": " 精确搜索特定用户\r\n\r\n* 发言中可用的表情列表："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/api.face.json"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## UBB解析API：\r\n\r\n提供以下功能：\r\n* UBB文本转JSON数组\r\n* UBB文本或JSON数组转纯文本\r\n* UBB文本或JSON数组转HTML\r\n* JSON数组转UBB文本\r\n\r\n详见 "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.104715.html"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## 数据存储API:\r\n\r\n可供网页插件存储和查询自定义键值对,详见 "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.83603.html"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## 七牛云文件上传API:\r\n\r\n可上传文件到虎绿林的七牛云存储库，供发帖使用。详见 "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.89896.html"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## JSON压缩（注意，参数名由 json 变成了 _json）：\r\n\r\n用 _json=compact 参数可以得到压缩后的 JSON 结果\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.index.json?_json=compact"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n如果你想要把所有返回的数组都变成对象，可以用 _json=object\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.index.json?_json=object"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n这两个参数可以一起用，_json=compact,object\r\n\r\n参数可通过GET、POST、Header（"
                },
                {
                    "type": "mdpre",
                    "data": "`x-json`"
                },
                {
                    "type": "text",
                    "value": "）方式传递：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl https://hu60.cn/q.php/index.index.json?_json=compact\r\ncurl --data '_json=compact' https://hu60.cn/q.php/index.index.json\r\ncurl --header 'x-json: compact' https://hu60.cn/q.php/index.index.json\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## 获取帖子内容摘要\r\n\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.index.json?_topic_summary=100"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n100为摘要最大长度，超出则截断并在末尾添加“…”。\r\n\r\n在所有会返回"
                },
                {
                    "type": "mdpre",
                    "data": "`topic_id`"
                },
                {
                    "type": "text",
                    "value": "的页面均可用。\r\n\r\n---------------------------\r\n\r\n## 用户信息扩展：\r\n\r\n可以用于任何返回值中包含"
                },
                {
                    "type": "mdpre",
                    "data": "`uid`"
                },
                {
                    "type": "text",
                    "value": "或者"
                },
                {
                    "type": "mdpre",
                    "data": "`***uid`"
                },
                {
                    "type": "text",
                    "value": "（如"
                },
                {
                    "type": "mdpre",
                    "data": "`byuid`"
                },
                {
                    "type": "text",
                    "value": "、"
                },
                {
                    "type": "mdpre",
                    "data": "`touid`"
                },
                {
                    "type": "text",
                    "value": "）的页面。\r\n添加URL参数"
                },
                {
                    "type": "mdpre",
                    "data": "`_uinfo=name,avatar,sign,contact`"
                },
                {
                    "type": "text",
                    "value": "（逗号分隔，可以删掉不需要的项目），返回值中便会多出如下成员：\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "`_u_name`"
                },
                {
                    "type": "text",
                    "value": "，"
                },
                {
                    "type": "mdpre",
                    "data": "`_u_avatar`"
                },
                {
                    "type": "text",
                    "value": "，"
                },
                {
                    "type": "mdpre",
                    "data": "`_u_signature`"
                },
                {
                    "type": "text",
                    "value": "，"
                },
                {
                    "type": "mdpre",
                    "data": "`_u_contact`"
                },
                {
                    "type": "text",
                    "value": "。\r\n\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json?_uinfo=name,avatar,sign,contact"
                },
                {
                    "type": "text",
                    "value": "\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\n...\r\n\"uid\": 1,\r\n\"_u_name\": \"老虎会游泳\",\r\n\"_u_avatar\": \"http://file.hu60.cn/avatar/1.jpg?1557592687\",\r\n\"_u_signature\": \"你好，这里是虎绿林。\",\r\n\"_u_contact\": \"QQ 905172616 & 18502433620 & hu60.cn@gmail.com & N/A\"\r\n...\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n如果是"
                },
                {
                    "type": "mdpre",
                    "data": "`***uid`"
                },
                {
                    "type": "text",
                    "value": "，则"
                },
                {
                    "type": "mdpre",
                    "data": "`***`"
                },
                {
                    "type": "text",
                    "value": "位于字段开头，如：\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/msg.index.json?_uinfo=name,avatar,sign,contact"
                },
                {
                    "type": "text",
                    "value": "\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\n...\r\n\"touid\": 1,\r\n\"byuid\": 841,\r\n\"to_u_name\": \"老虎会游泳\",\r\n\"to_u_avatar\": \"http://file.hu60.cn/avatar/1.jpg?1557592687\",\r\n\"to_u_signature\": \"你好，这里是虎绿林。\",\r\n\"to_u_contact\": \"QQ 905172616 & 18502433620 & hu60.cn@gmail.com & N/A\",\r\n\"by_u_name\": \"000\",\r\n\"by_u_avatar\": \"http://file.hu60.cn/avatar/841.jpg\",\r\n\"by_u_signature\": \"安静的PHPer\",\r\n\"by_u_contact\": \"to7@foxmail.com\"\r\n...\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n参数可通过GET、POST、Header（"
                },
                {
                    "type": "mdpre",
                    "data": "`x-uinfo`"
                },
                {
                    "type": "text",
                    "value": "）方式传递：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl https://hu60.cn/q.php/index.index.json?_uinfo=name,avatar,sign,contact\r\ncurl --data '_uinfo=name,avatar,sign,contact' https://hu60.cn/q.php/index.index.json\r\ncurl --header 'x-uinfo: name,avatar,sign,contact' https://hu60.cn/q.php/index.index.json\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## 获取用户自身信息：\r\n\r\n可以用于任何页面，可以与上面的“用户信息扩展”结合使用。\r\n\r\n添加URL参数"
                },
                {
                    "type": "mdpre",
                    "data": "`_myself=1`"
                },
                {
                    "type": "text",
                    "value": "或者"
                },
                {
                    "type": "mdpre",
                    "data": "`_myself=newMsg,newAtInfo,newChats`"
                },
                {
                    "type": "text",
                    "value": "即可。\r\n\r\n为了防止其他信息干扰，我专门选了个几乎没有其他信息的页面演示该功能。该功能实际上可用于任何页面，添加的"
                },
                {
                    "type": "mdpre",
                    "data": "`_myself`"
                },
                {
                    "type": "text",
                    "value": "字段会出现在JSON底部。\r\n\r\n参数可通过GET、POST、Header（"
                },
                {
                    "type": "mdpre",
                    "data": "`x-myself`"
                },
                {
                    "type": "text",
                    "value": "）方式传递：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl https://hu60.cn/q.php/index.index.json?_myself=1\r\ncurl --data '_myself=1' https://hu60.cn/q.php/index.index.json\r\ncurl --header 'x-myself: 1' https://hu60.cn/q.php/index.index.json\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n### 仅获取uid\r\n\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.search.json?_myself=1"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\n{\r\n    ...\r\n    \"_myself\": {\r\n        \"isLogin\": true,\r\n        \"uid\": 1\r\n    }\r\n}\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n### 获取uid，昵称，头像\r\n\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.search.json?_myself=1&_uinfo=name,avatar"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\n{\r\n    ...\r\n    \"_myself\": {\r\n        \"isLogin\": true,\r\n        \"uid\": 1,\r\n        \"_u_name\": \"老虎会游泳\",\r\n        \"_u_avatar\": \"https://file.hu60.cn/avatar/1.jpg?1588915503\"\r\n    }\r\n}\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n### 获取uid，昵称，头像，新内信条数，新At消息条数\r\n\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.search.json?_myself=newMsg,newAtInfo&_uinfo=name,avatar"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\n{\r\n    ...\r\n    \"_myself\": {\r\n        \"isLogin\": true,\r\n        \"uid\": 1,\r\n        \"newMsg\": 0,\r\n        \"newAtInfo\": 1,\r\n        \"_u_name\": \"老虎会游泳\",\r\n        \"_u_avatar\": \"https://file.hu60.cn/avatar/1.jpg?1588915503\"\r\n    }\r\n}\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n### 获取uid，新内信条数，新At消息条数，聊天室最新发言\r\n\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.search.json?_myself=newMsg,newAtInfo,newChats"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\n    \"_myself\": {\r\n        \"isLogin\": true,\r\n        \"uid\": 1,\r\n        \"newMsg\": 0,\r\n        \"newAtInfo\": 1,\r\n        \"newChats\": [\r\n            {\r\n                \"id\": 19038,\r\n                \"room\": \"公共聊天室\",\r\n                \"lid\": 8882,\r\n                \"uid\": 21479,\r\n                \"uname\": \"我是教官\",\r\n                \"content\": \"发言内容省略\",\r\n                \"time\": 1612450046,\r\n                \"hidden\": 0,\r\n                \"review\": 0\r\n            },\r\n            {\r\n                \"id\": 19002,\r\n                \"room\": \"更换聊天室\",\r\n                \"lid\": 6,\r\n                \"uid\": 1,\r\n                \"uname\": \"老虎会游泳\",\r\n                \"content\": \"发言内容省略\",\r\n                \"time\": 1612443635,\r\n                \"hidden\": 0,\r\n                \"review\": 0\r\n            },\r\n            {\r\n                \"id\": 18918,\r\n                \"room\": \"老虎会游泳\",\r\n                \"lid\": 100,\r\n                \"uid\": 5372,\r\n                \"uname\": \"穴儿\",\r\n                \"content\": \"发言内容省略\",\r\n                \"time\": 1612411015,\r\n                \"hidden\": 0,\r\n                \"review\": 0\r\n            }\r\n        ]\r\n    }\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## 返回内容格式选择：\r\n\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json?_content=html"
                },
                {
                    "type": "text",
                    "value": "\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json?_content=json"
                },
                {
                    "type": "text",
                    "value": "\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json?_content=ubb"
                },
                {
                    "type": "text",
                    "value": "\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.82570.json?_content=text"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n参数可通过GET、POST、Header（"
                },
                {
                    "type": "mdpre",
                    "data": "`x-content`"
                },
                {
                    "type": "text",
                    "value": "）方式传递：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl https://hu60.cn/q.php/bbs.topic.82570.json?_content=ubb\r\ncurl --data '_content=ubb' https://hu60.cn/q.php/bbs.topic.82570.json\r\ncurl --header 'x-content: ubb' https://hu60.cn/q.php/bbs.topic.82570.json\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n这个参数可以用来改变包含UBB的内容的格式。\r\n支持四种格式：html、json、ubb、text，如果没有这个参数，默认是html。\r\n\r\n注意：ubb和text都没有进行HTML实体转义（htmlspecialchars），如果要插入HTML中，请自行转义，以防XSS攻击。\r\n\r\njson格式是帖子内容存储在数据库中的格式，其基本形式为：\r\n\r\n1. 每个UBB标记存储为一个 JSON 对象，其中包含 type 属性，记录了UBB的类型。每个类型都有各自不同的其他属性，记录了UBB的实际数据。纯文本的UBB类型为text。\r\n2. 帖子的所有内容从前往后依次排列构成一个 JSON 数组。\r\n\r\n具体的解码方法参考："
                },
                {
                    "type": "mdpre",
                    "data": "https://github.com/hu60t/hu60wap6/blob/master/src/class/ubbdisplay.php"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n此外，2021年1月12日更新后，对内信和at消息使用ubb和text类型就都是安全的了。管理员删除提醒、管理员编辑提醒、管理员沉帖提醒都有了对应的结果，但是结果均为纯文本内容（因为这些提醒没有对应的UBB）。\r\n\r\n~~不过，还是建议使用json类型来获取at消息的机器可读数据~~（不再建议了，因为"
                },
                {
                    "type": "mdpre",
                    "data": "`msg`"
                },
                {
                    "type": "text",
                    "value": "类型不再是纯文本，而是UBB JSON，解析起来非常复杂。目前建议的解析方式详见"
                },
                {
                    "type": "urlzh",
                    "url": "https://hu60.cn/q.php/bbs.topic.82570.html?floor=67#67",
                    "title": "67楼"
                },
                {
                    "type": "text",
                    "value": "。）\r\n~~at消息的json数据非常容易解析~~（不再容易了，详见"
                },
                {
                    "type": "urlzh",
                    "url": "https://hu60.cn/q.php/bbs.topic.82570.html?floor=65#65",
                    "title": "65楼"
                },
                {
                    "type": "text",
                    "value": "）：\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/msg.index.@.json?_content=json"
                },
                {
                    "type": "text",
                    "value": "\r\n"
                },
                {
                    "type": "code",
                    "lang": "js",
                    "data": "\r\n\"content\": [\r\n    {\r\n        \"type\": \"atMsg\",\r\n        \"uid\": 15591,\r\n        \"pos\": \"帖子“虎绿林API：Json Page”的回复中\",\r\n        \"url\": \"bbs.topic.82570.{$BID}\",\r\n        \"msg\": \"@老虎会游泳，多此一举\",\r\n        \"len\": 60\r\n    }\r\n]\r\n"
                },
                {
                    "type": "text",
                    "value": "\r\n注意URL中的“{$BID}”，它应该被替换为当前页面的bid（如html或json）。\r\n\r\n备注：2021年1月12日更新后，聊天室删楼提醒已经和帖子删楼提醒统一了，可以正确给出json、ubb、text格式。\r\n\r\n---------------------------\r\n\r\n## 用户生成内容中的"
                },
                {
                    "type": "mdpre",
                    "data": "`class`"
                },
                {
                    "type": "text",
                    "value": "标记\r\n\r\n为了方便处理用户生成内容中的链接等元素，JSON Page在返回html格式的帖子、聊天等内容时会给用户生成的某些元素打上对应的class标记，具体如下：\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userblocked`"
                },
                {
                    "type": "text",
                    "value": " 用户被禁言\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<div class=\"tp info-box userblocked\">用户被禁言，发言自动屏蔽。</div>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userlatex`"
                },
                {
                    "type": "text",
                    "value": " 用户编写的latex文档\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<latex-js class=\"userlatex\">一段latex文档</latex-js>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`hu60_code`"
                },
                {
                    "type": "text",
                    "value": " 用户贴出来的代码\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<pre class=\"hu60_code\"><code class=\"php\">phpinfo();</code></pre>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userlink`"
                },
                {
                    "type": "text",
                    "value": " 用户贴出来的链接\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<a class=\"userlink\" href=\"https://g.cn/\">一只谷歌鸟</a>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`usertarget`"
                },
                {
                    "type": "text",
                    "value": " 用户生成的锚链接\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<a class=\"usertarget\" name=\"section1\"></a>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userimg`"
                },
                {
                    "type": "text",
                    "value": " 用户贴出来的图片\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<img class=\"userimg\" src=\"https://hu60.cn/tpl/jhin/img/logo_u16392_5.png\" alt=\"hu60.net\" />`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userimglink`"
                },
                {
                    "type": "text",
                    "value": " 为用户图片自动生成的链接（用于点击查看大图）\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<a class=\"userimglink\" href=\"https://hu60.cn/tpl/jhin/img/logo_u16392_5.png\"><img class=\"userimg\" src=\"https://hu60.cn/tpl/jhin/img/logo_u16392_5.png\" alt=\"hu60.net\" /></a>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userthumb`"
                },
                {
                    "type": "text",
                    "value": " 用户缩略图\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<img class=\"userthumb\" src=\"https://hu60.cn/q.php/link.thumb.320.0.68747470733a2f2f687536302e636e2f74706c2f6a68696e2f696d672f6c6f676f5f7531363339325f352e706e67.png\" alt=\"点击查看大图\"/>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userthumblink`"
                },
                {
                    "type": "text",
                    "value": " 为用户缩略图自动生成的链接（用于点击查看大图）\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<a class=\"userthumblink\" href=\"https://hu60.cn/tpl/jhin/img/logo_u16392_5.png\"><img class=\"userthumb\" src=\"https://hu60.cn/q.php/link.thumb.320.0.68747470733a2f2f687536302e636e2f74706c2f6a68696e2f696d672f6c6f676f5f7531363339325f352e706e67.png\" alt=\"点击查看大图\"/></a>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`uservideosite`"
                },
                {
                    "type": "text",
                    "value": " 自动生成的视频网站链接，在用户视频播放窗口的上方\r\n\r\n   请参考"
                },
                {
                    "type": "mdpre",
                    "data": "`《视频：视频网站播放地址》`"
                },
                {
                    "type": "text",
                    "value": "UBB的效果\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`useraudiosite`"
                },
                {
                    "type": "text",
                    "value": " 自动生成的音频网站链接，在用户音频播放窗口的上方\r\n\r\n   请参考"
                },
                {
                    "type": "mdpre",
                    "data": "`《音频：音频网站播放地址》`"
                },
                {
                    "type": "text",
                    "value": "UBB的效果\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`uservideolink`"
                },
                {
                    "type": "text",
                    "value": " 自动生成的视频流链接，在用户视频播放窗口的上方\r\n\r\n   请参考"
                },
                {
                    "type": "mdpre",
                    "data": "`《视频流：视频下载地址》`"
                },
                {
                    "type": "text",
                    "value": "UBB的效果\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`useraudiolink`"
                },
                {
                    "type": "text",
                    "value": " 自动生成的音频流链接，在用户音频播放窗口的上方\r\n\r\n   请参考"
                },
                {
                    "type": "mdpre",
                    "data": "`《音频流：音频下载地址》`"
                },
                {
                    "type": "text",
                    "value": "UBB的效果\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userbattlenet`"
                },
                {
                    "type": "text",
                    "value": " 用户发的暴雪战网链接（过时）\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<a class=\"userbattlenet\" href=\"http://www.battlenet.com.cn/wow/zh/character/%E5%AE%89%E6%A0%BC%E5%8D%9A%E8%BE%BE/%E8%80%81%E8%99%8E%E4%BC%9A%E6%B8%B8%E6%B3%B3/simple\">老虎会游泳@安格博达</a>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`usermath`"
                },
                {
                    "type": "text",
                    "value": " 用户编写的公式\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<hu60-math class=\"usermath\">一段公式</hu60-math>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`usercss`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`uid-<用户id>`"
                },
                {
                    "type": "text",
                    "value": " 用户定义的CSS\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<div class=\"usercss uid-1\" style=\"color:red\">红色文字</div>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`usermail`"
                },
                {
                    "type": "text",
                    "value": " 用户发的邮箱链接\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<a class=\"usermail\" href=\"mailto:hu60.cn@gmail.com\">hu60.cn@gmail.com</a>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userinfo`"
                },
                {
                    "type": "text",
                    "value": " 用户个人信息链接（注意**该链接是相对链接**）\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<a class=\"userinfo\" href=\"user.info.1.json\">老虎会游泳</a>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`userat`"
                },
                {
                    "type": "text",
                    "value": " "
                },
                {
                    "type": "mdpre",
                    "data": "`@`"
                },
                {
                    "type": "text",
                    "value": "用户的链接，后接用户个人信息链接\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<a class=\"userat\" href=\"#\" onclick=\"atAdd('虎符图腾',this);return false\">@</a><a class=\"userinfo\" href=\"user.info.1.json\">老虎会游泳</a>`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n* "
                },
                {
                    "type": "mdpre",
                    "data": "`hu60_pos`"
                },
                {
                    "type": "text",
                    "value": " 虎绿林站内链接（出现在**"
                },
                {
                    "type": "mdpre",
                    "data": "`@`"
                },
                {
                    "type": "text",
                    "value": "消息**和**管理员操作提醒内信**中，注意**该链接是相对链接**）\r\n\r\n   如："
                },
                {
                    "type": "mdpre",
                    "data": "`<a class=\"userinfo\" href=\"user.info.1.json\">老虎会游泳</a> 在 <a class=\"hu60_pos\" href=\"addin.chat.%E5%85%AC%E5%85%B1%E8%81%8A%E5%A4%A9%E5%AE%A4.json?floor=1#1\">聊天室“公共聊天室”第1楼中</a> at你`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## 常见的数据结构：\r\n\r\n任何操作成功都会返回：\r\n{'success':true}\r\n\r\n任何操作如果失败，返回的数据都会包含以下字段：\r\n{'success':false, 'notice':'失败原因'}\r\n\r\n网站报错之JSON版：\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.x.html"
                },
                {
                    "type": "text",
                    "value": "\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.x.json"
                },
                {
                    "type": "text",
                    "value": "\r\n{\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "    \"error\": \"true\",\r\n    \"errInfo\": {\r\n        \"code\": 1404,\r\n        \"message\": \"页面 'index.x.json' 不存在\",\r\n        \"file\": \"/var/www/hu60.cn/src/class/page.php\",\r\n        \"line\": 137,\r\n        \"trace\": \"#0 /var/www/hu60.cn/src/q.php(59): page->load()\\n#1 {main}\"\r\n    }"
                },
                {
                    "type": "text",
                    "value": "\r\n}\r\n\r\n要注意，网页报错可能会在任何页面发生，所以最好先检查返回的结果中是否包含error字段。如果包含，那应该是网页报错了。\r\n\r\n---------------------------\r\n\r\n## 登录状态保持：\r\n\r\n向登录页的JSON版提交用户名和密码，可以获得返回的 sid 和 cookie。\r\n\r\n如：\r\n"
                },
                {
                    "type": "code",
                    "lang": "bash",
                    "data": "curl --data 'type=1&name=老虎会游泳&pass=123&go=1' https://hu60.cn/q.php/user.login.json"
                },
                {
                    "type": "text",
                    "value": "\r\n你会得到\r\n"
                },
                {
                    "type": "code",
                    "lang": "js",
                    "data": "\r\n{\r\n    \"page\": \"loginPage\",\r\n    \"success\": false,\r\n    \"notice\": \"密码错误。\",\r\n    \"active\": null\r\n}\r\n"
                },
                {
                    "type": "text",
                    "value": "\r\n如果密码正确，你就可以得到sid了。\r\n\r\n如果你不保留 cookie，可以选择在之后的每个请求中，在网址的中间部分包含 sid 参数，如：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl https://hu60.cn/q.php/你的sid/user.index.json\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n还可以在GET或POST中包含"
                },
                {
                    "type": "mdpre",
                    "data": "`_sid`"
                },
                {
                    "type": "text",
                    "value": "参数：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl -v https://hu60.cn/q.php/user.index.json?_sid=xxxxx\r\ncurl -v --data '_sid=xxx' https://hu60.cn/q.php/user.index.json\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n还可以通过自定义HTTP请求头"
                },
                {
                    "type": "mdpre",
                    "data": "`x-sid`"
                },
                {
                    "type": "text",
                    "value": "传递sid：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl -v --header 'x-sid: xxx' https://hu60.cn/q.php/user.index.json\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## 未登录、掉线与重定向：\r\n\r\n与 html 页面一样，在 JSON Page 中未登录/掉线用户访问登录后才能查看的页面也会跳转到登录页。\r\n\r\n比如访问 "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/user.index.json"
                },
                {
                    "type": "text",
                    "value": " 时，自动跳转到 "
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/user.login.json?u=user.index.json"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n程序设计者应该考虑到这一点，避免因此而发生未预期的错误。\r\n\r\n---------------------------\r\n\r\n## 跨域Ajax：\r\n\r\n通过 _origin 参数可以指定允许跨域的域名，比如：\r\n["
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/index.index.json?_origin=*](https://hu60.cn/q.php/index.index.json?_origin=*)"
                },
                {
                    "type": "text",
                    "value": "\r\n["
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/"
                },
                {
                    "type": "text",
                    "value": "你的sid/user.stat.json?_origin=g.cn,hu60.org]("
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/"
                },
                {
                    "type": "text",
                    "value": "你的sid/user.stat.json?_origin=g.cn,hu60.org)\r\n（_origin 参数在 html、jhtml和json等页面均可用。）\r\n\r\n"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "参数可以通过GET或POST方式传递，也可以通过设置自定义HTTP请求头"
                },
                {
                    "type": "mdpre",
                    "data": "`x-origin`"
                },
                {
                    "type": "text",
                    "value": "传递：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl -v https://hu60.cn/q.php/你的sid/user.index.json?_origin=*\r\ncurl -v https://hu60.cn/q.php/user.index.json?_origin=*&_sid=xxxxx\r\ncurl -v --data '_origin=*&_sid=xxx' https://hu60.cn/q.php/user.index.json\r\ncurl -v --header 'x-origin: *' --header 'x-sid: xxx' https://hu60.cn/q.php/user.index.json\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n注意：一但出现 _origin 参数，虎绿林将"
                },
                {
                    "type": "style",
                    "tag": "color",
                    "opt": "red"
                },
                {
                    "type": "text",
                    "value": "拒绝接受或设置任何Cookie"
                },
                {
                    "type": "style",
                    "tag": "/color"
                },
                {
                    "type": "text",
                    "value": "，如果你希望用户能够登录，必须按照上面例子中展示的方法传递sid。\r\n\r\n虎绿林通过"
                },
                {
                    "type": "style",
                    "tag": "color",
                    "opt": "green"
                },
                {
                    "type": "text",
                    "value": "拒绝接受任何 Cookie"
                },
                {
                    "type": "style",
                    "tag": "/color"
                },
                {
                    "type": "text",
                    "value": " 保证了跨域对已经在虎绿林登录的用户是安全的，用户身份信息不会被 XSS 脚本盗用。\r\n\r\n通过"
                },
                {
                    "type": "style",
                    "tag": "color",
                    "opt": "green"
                },
                {
                    "type": "text",
                    "value": "拒绝设置任何 Cookie"
                },
                {
                    "type": "style",
                    "tag": "/color"
                },
                {
                    "type": "text",
                    "value": "，防止跨站应用对已经在虎绿林登录的用户造成副作用，比如在跨站应用中登录另一个帐号，在虎绿林中登录的帐号并不会改变。\r\n\r\n## Cookie代偿机制\r\n\r\n虽然设置了"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "参数后就无法发送和接收Cookie，但我们添加了一个代偿机制，以便 API 调用者可以正常与需要Cookie的页面互动，比如激活和找回密码页面。\r\n\r\n在设置了"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "参数后，Cookie会被转换为头信息，转换规则如下：\r\n1. 删除名称中的 "
                },
                {
                    "type": "mdpre",
                    "data": "`hu60_`"
                },
                {
                    "type": "text",
                    "value": " 前缀。\r\n2. 名称中的"
                },
                {
                    "type": "mdpre",
                    "data": "`_`"
                },
                {
                    "type": "text",
                    "value": " 变为 "
                },
                {
                    "type": "mdpre",
                    "data": "`-`"
                },
                {
                    "type": "text",
                    "value": "。\r\n\r\n例如：\r\n* Cookie "
                },
                {
                    "type": "mdpre",
                    "data": "`hu60_sid`"
                },
                {
                    "type": "text",
                    "value": "变为头信息 "
                },
                {
                    "type": "mdpre",
                    "data": "`x-sid`"
                },
                {
                    "type": "text",
                    "value": "\r\n* Cookie "
                },
                {
                    "type": "mdpre",
                    "data": "`hu60_reset_pwd_captcha`"
                },
                {
                    "type": "text",
                    "value": "变为头信息 "
                },
                {
                    "type": "mdpre",
                    "data": "`x-reset-pwd-captcha`"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n以找回密码页面的验证码图片为例：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl -I 'https://hu60.cn/q.php/user.reset_pwd_captcha.php'\r\ncurl -I 'https://hu60.cn/q.php/user.reset_pwd_captcha.php?_origin=*'\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n结果：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\n# 未设置`_origin`时\r\nset-cookie: hu60_reset_pwd_captcha=4daea6864ea76d090d3c73351da97f6e; path=/; domain=hu60.cn; secure; HttpOnly\r\n# 设置`_origin`时\r\nx-reset-pwd-captcha: 5b5fadffa52ed5886cf1f21137578df3\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n然后只需要把"
                },
                {
                    "type": "mdpre",
                    "data": "`x-`"
                },
                {
                    "type": "text",
                    "value": "开头的头信息原样传递给下一个页面，就能起到传递Cookie的作用（仅在设置了"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin=`"
                },
                {
                    "type": "text",
                    "value": "的情况下可用）。\r\n\r\n以找回密码页面为例：\r\n\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl -H 'x-reset-pwd-captcha: 5b5fadffa52ed5886cf1f21137578df3' -d 'step=2&captcha=1234&phone=13800138000&go=1' 'https://hu60.cn/q.php/user.reset_pwd.json?_origin=*'\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n其中"
                },
                {
                    "type": "mdpre",
                    "data": "`5b5fadffa52ed5886cf1f21137578df3`"
                },
                {
                    "type": "text",
                    "value": "是验证码图片的Cookie，"
                },
                {
                    "type": "mdpre",
                    "data": "`123123`"
                },
                {
                    "type": "text",
                    "value": "是用户填写的验证码，"
                },
                {
                    "type": "mdpre",
                    "data": "`13800138000`"
                },
                {
                    "type": "text",
                    "value": "是要找回密码的手机号。\r\n\r\n此外为了方便使用，也支持通过GET或POST传递Cookie值（仅在设置了"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin=`"
                },
                {
                    "type": "text",
                    "value": "的情况下可用），例如：\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl -d 'step=2&captcha=123123&phone=13800138000&go=1&x-reset-pwd-captcha=5b5fadffa52ed5886cf1f21137578df3' 'https://hu60.cn/q.php/user.reset_pwd.json?_origin=*'\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n---------------------------\r\n\r\n## 检测到跨站数据提交，操作需要确认\r\n\r\n请在请求中传递"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "和"
                },
                {
                    "type": "mdpre",
                    "data": "`sid`"
                },
                {
                    "type": "text",
                    "value": "参数，方法如下：\r\n\r\n"
                },
                {
                    "type": "mdcode",
                    "lang": "",
                    "data": "\r\ncurl -v https://hu60.cn/q.php/你的sid/user.index.json?_origin=*\r\ncurl -v https://hu60.cn/q.php/user.index.json?_origin=*&_sid=xxxxx\r\ncurl -v --data '_origin=*&_sid=xxx' https://hu60.cn/q.php/user.index.json\r\ncurl -v --header 'x-origin: *' --header 'x-sid: xxx' https://hu60.cn/q.php/user.index.json\r\n",
                    "quote": "```"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n如果没有"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "参数，跨站提交就会遇到确认操作提示页面。\r\n如果没有"
                },
                {
                    "type": "mdpre",
                    "data": "`_sid`"
                },
                {
                    "type": "text",
                    "value": "参数，只添加了"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "参数，用户就会处于未登录状态。\r\n\r\n### 总结：必须传递"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "！必须传递"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "！必须传递"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "！没有"
                },
                {
                    "type": "mdpre",
                    "data": "`_origin`"
                },
                {
                    "type": "text",
                    "value": "就会出现“检测到跨站数据提交”。\r\n\r\n---\r\n\r\n# "
                },
                {
                    "type": "urlname",
                    "url": "ws",
                    "title": null
                },
                {
                    "type": "text",
                    "value": "WebSocket消息推送\r\n\r\n虎绿林支持通过WebSocket接收内信和"
                },
                {
                    "type": "mdpre",
                    "data": "`@`"
                },
                {
                    "type": "text",
                    "value": "消息推送，详见："
                },
                {
                    "type": "mdpre",
                    "data": "https://hu60.cn/q.php/bbs.topic.104687.html"
                },
                {
                    "type": "text",
                    "value": "\r\n\r\n"
                }
            ],
            "floor": 0,
            "id": 589133,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1676746240,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1679225534,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1679225537,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1679365514,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1679365517,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1679365522,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1679365524,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1679365543,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1679365545,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1679365605,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1679365607,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1679475468,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1679475470,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1679583861,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1679583863,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1679583922,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1679583925,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1680592015,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1680592066,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1680592071,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1680592097,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1680592099,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1680592193,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1680592195,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1680592243,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1680592246,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1680592669,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1680592672,
                    "uid": 1,
                    "stat": 0
                },
                {
                    "time": 1683769056,
                    "uid": -100,
                    "stat": 4
                },
                {
                    "time": 1683769059,
                    "uid": 1,
                    "stat": 0
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "老虎会游泳"
            },
            "canEdit": false,
            "canDel": false,
            "canSink": false,
            "canSetEssence": false,
            "canMove": false,
            "canLockReply": false
        },
        {
            "uid": 20193,
            "ctime": 1482563540,
            "mtime": 1482563540,
            "content": [
                {
                    "type": "text",
                    "value": "留名",
                    "len": 2
                }
            ],
            "floor": 1,
            "id": 589134,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "系统消息"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 16896,
            "ctime": 1482564060,
            "mtime": 1482564060,
            "content": [
                {
                    "type": "text",
                    "value": "不懂",
                    "len": 2
                }
            ],
            "floor": 2,
            "id": 589135,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "xuthus"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 11051,
            "ctime": 1482564876,
            "mtime": 1482564876,
            "content": [
                {
                    "type": "text",
                    "value": "都是死在前端。。。",
                    "len": 9
                }
            ],
            "floor": 3,
            "id": 589136,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "读书顶个鸟用"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 17887,
            "ctime": 1482565552,
            "mtime": 1482565552,
            "content": [
                {
                    "type": "text",
                    "value": "路过",
                    "len": 2
                }
            ],
            "floor": 4,
            "id": 589138,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "情醉中国风"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 1604,
            "ctime": 1482569592,
            "mtime": 1482569592,
            "content": [
                {
                    "type": "text",
                    "value": "我噗",
                    "len": 2
                }
            ],
            "floor": 6,
            "id": 589145,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "水木易安"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 17915,
            "ctime": 1482569674,
            "mtime": 1482569674,
            "content": [
                {
                    "type": "text",
                    "value": "表示之前就在想把页面的数据用js采集保存成对象 ，， 然后输出一个新的页面在把对象里的各种数据填进去    不过一直没时间去搞~",
                    "len": 64
                }
            ],
            "floor": 7,
            "id": 589146,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "猫咪情缘"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 19309,
            "ctime": 1482575344,
            "mtime": 1482575344,
            "content": [
                {
                    "type": "text",
                    "value": "顶",
                    "len": 1
                }
            ],
            "floor": 8,
            "id": 589151,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "消失的安装包"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 17813,
            "ctime": 1482576421,
            "mtime": 1482576421,
            "content": [
                {
                    "type": "at",
                    "tag": "水木易安",
                    "uid": 1604,
                    "len": 4
                },
                {
                    "type": "text",
                    "value": "，上吧，app靠你了，你上次做的还蛮好的",
                    "len": 20
                }
            ],
            "floor": 9,
            "id": 589152,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "旧人"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 24744,
            "ctime": 1482579717,
            "mtime": 1482579717,
            "content": [
                {
                    "type": "text",
                    "value": "帖子页面怎么不能返回UBB的形式",
                    "len": 16
                }
            ],
            "floor": 10,
            "id": 589162,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "消失的彩虹海"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 1,
            "ctime": 1482595476,
            "mtime": 1482595476,
            "content": [
                {
                    "type": "at",
                    "tag": "net909",
                    "uid": 14921,
                    "len": 6
                },
                {
                    "type": "text",
                    "value": "，虎绿林的UBB解析工作非常复杂，因此由客户端自己来解析是不现实的。所以只在编辑时提供UBB，在展示时不提供。",
                    "len": 55
                }
            ],
            "floor": 11,
            "id": 589183,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "老虎会游泳"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 1,
            "ctime": 1482595732,
            "mtime": 1482595773,
            "content": [
                {
                    "type": "text",
                    "value": "之后可以提供选项来把相对链接变成绝对链接；不对用户输入的链接进行编码；修改at按钮调用的函数名等。",
                    "len": 49
                }
            ],
            "floor": 12,
            "id": 589185,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "老虎会游泳"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 19671,
            "ctime": 1482597407,
            "mtime": 1482597422,
            "content": [
                {
                    "type": "text",
                    "value": "用这个写个消息机还不错！",
                    "len": 12
                }
            ],
            "floor": 13,
            "id": 589189,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "姑娘等等丶"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 15591,
            "ctime": 1482598647,
            "mtime": 1482598647,
            "content": [
                {
                    "type": "text",
                    "value": "明明就是偷懒了吧，把本来页面里的参数json打印一下",
                    "len": 26
                }
            ],
            "floor": 14,
            "id": 589190,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "超级管理员"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 17925,
            "ctime": 1482601349,
            "mtime": 1482601349,
            "content": [
                {
                    "type": "text",
                    "value": "cool",
                    "len": 4
                }
            ],
            "floor": 15,
            "id": 589193,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "ech2o"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 1,
            "ctime": 1482635006,
            "mtime": 1482635006,
            "content": [
                {
                    "type": "at",
                    "tag": "超级管理员",
                    "uid": 15591,
                    "len": 5
                },
                {
                    "type": "text",
                    "value": "，是啊，这个API的实现方式就是把本来页面里的参数json打印一下啊。\r\n\r\n",
                    "len": 39
                },
                {
                    "type": "at",
                    "tag": "net909",
                    "uid": 14921,
                    "len": 6
                },
                {
                    "type": "text",
                    "value": "，说起来你们真的想要返回UBB内容吗？（返回UBB内容和返回html内容要做的事情是一样多的。因为帖子在数据库中的存储形式既不是ubb也不是html，而是php数组。）如果确实有这个需求，我可以提供。",
                    "len": 100
                }
            ],
            "floor": 16,
            "id": 589228,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "老虎会游泳"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 15591,
            "ctime": 1482638163,
            "mtime": 1482638163,
            "content": [
                {
                    "type": "at",
                    "tag": "老虎会游泳",
                    "uid": 1,
                    "len": 5
                },
                {
                    "type": "text",
                    "value": "，多此一举",
                    "len": 5
                }
            ],
            "floor": 17,
            "id": 589235,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "超级管理员"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 1,
            "ctime": 1482638821,
            "mtime": 1482638821,
            "content": [
                {
                    "type": "at",
                    "tag": "超级管理员",
                    "uid": 15591,
                    "len": 5
                },
                {
                    "type": "text",
                    "value": "，？",
                    "len": 2
                }
            ],
            "floor": 18,
            "id": 589237,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "老虎会游泳"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 1,
            "ctime": 1482639046,
            "mtime": 1482639046,
            "content": [
                {
                    "type": "text",
                    "value": "已经实现 json 版对用户输入的 URL 不进行编码了。\r\nhtml 版还是进行编码（从而跳转到 link.url.html）。\r\n\r\n之所以可以很方便的实现这个特性，是因为帖子内容的存储方式是PHP数组，每个UBB标记都被解析成一个对象，因此生成的内容可以很容易被改变。",
                    "len": 137
                }
            ],
            "floor": 19,
            "id": 589239,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "老虎会游泳"
            },
            "canEdit": false,
            "canDel": false
        },
        {
            "uid": 1,
            "ctime": 1482641834,
            "mtime": 1482641834,
            "content": [
                {
                    "type": "at",
                    "tag": "net909",
                    "uid": 14921,
                    "len": 6
                },
                {
                    "type": "text",
                    "value": "，现在可以通过全局选项 ?_content=ubb 来获得帖子的UBB格式内容了。\r\n也可以通过 _content=json 来获得 at 消息的机器可读数据。",
                    "len": 80
                }
            ],
            "floor": 20,
            "id": 589243,
            "topic_id": 82570,
            "review": 0,
            "review_log": [
                {
                    "time": 1667041628,
                    "uid": -100,
                    "stat": 6
                }
            ],
            "locked": 0,
            "flags": 0,
            "uinfo": {
                "name": "老虎会游泳"
            },
            "canEdit": false,
            "canDel": false
        }
    ]
}
