Sayobot-api

首页


铺面列表

<p><strong>简要描述:</strong> </p> <ul> <li>返回一个谱面列表数组</li> <li>GET方式 键1键2都可使用,只用一个即可,可混用</li> <li>POST方式 cmd=beatmaplist</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li>GET <code>https://api.sayobot.cn/beatmaplist</code></li> <li>POST <code>https://api.sayobot.cn/?post</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>GET </li> <li>POST </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">键1</th> <th style="text-align: center;">键2</th> <th style="text-align: center;">类型</th> <th style="text-align: left;">默认值</th> <th style="text-align: left;">描述</th> <th>备注</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">limit</td> <td style="text-align: left;">0</td> <td style="text-align: center;">L</td> <td style="text-align: center;">int</td> <td style="text-align: left;">25</td> <td style="text-align: left;">本次请求返回的谱面数量</td> <td>/</td> </tr> <tr> <td style="text-align: left;">offset</td> <td style="text-align: left;">1</td> <td style="text-align: center;">O</td> <td style="text-align: center;">int</td> <td style="text-align: left;">0</td> <td style="text-align: left;">起始点,从该点继续获取数据</td> <td>/</td> </tr> <tr> <td style="text-align: left;">type</td> <td style="text-align: left;">2</td> <td style="text-align: center;">T</td> <td style="text-align: center;">int(GET/POST)<br/>string(POST)</td> <td style="text-align: left;">1(GET/POST)<br/>hot(POST)</td> <td style="text-align: left;">分类:<br/>1 = hot<br/>2 = new<br/>3 = packs<br/>4 = search</td> <td>/</td> </tr> <tr> <td style="text-align: left;">keyword</td> <td style="text-align: left;">3</td> <td style="text-align: center;">K</td> <td style="text-align: center;">string</td> <td style="text-align: left;">/</td> <td style="text-align: left;">搜索的关键字</td> <td>可以是title、tag、艺术家、作图者、难度名、标签、来源</td> </tr> <tr> <td style="text-align: left;">subType</td> <td style="text-align: left;">4</td> <td style="text-align: center;">S</td> <td style="text-align: center;">int</td> <td style="text-align: left;">0xffffffff</td> <td style="text-align: left;">精确匹配:<br/>1 = title/titleU<br/>2 = artist/artistU<br/>4 = creator<br/>8 = version<br/>16 = tags<br/>32 = source</td> <td>匹配多个的时候直接加起来获得最终数值,如:<br/>仅搜索标题 1=1,<br/>搜索标题和艺术家 1 + 2 = 3<br/>搜索tags和难度名 16+8=24</td> </tr> <tr> <td style="text-align: left;">mode</td> <td style="text-align: left;">5</td> <td style="text-align: center;">M</td> <td style="text-align: center;">int</td> <td style="text-align: left;">0xffffffff</td> <td style="text-align: left;">mode 匹配:<br/>1 = std<br/>2 = taiko<br/>4 = ctb<br/>8 = mania</td> <td>同上</td> </tr> <tr> <td style="text-align: left;">class</td> <td style="text-align: left;">6</td> <td style="text-align: center;">C</td> <td style="text-align: center;">int</td> <td style="text-align: left;">0xffffffff</td> <td style="text-align: left;">铺面状态:<br/>1 = Ranked &amp; Approved<br/>2 = Qualified<br/>4 = Loved<br/>8 = Pending &amp; WIP<br/>16 = Graveyard</td> <td>同上</td> </tr> <tr> <td style="text-align: left;">genre</td> <td style="text-align: left;">7</td> <td style="text-align: center;">G</td> <td style="text-align: center;">int</td> <td style="text-align: left;">0xffffffff</td> <td style="text-align: left;">风格:<br/>1 = any<br/>2 = 尚未指定<br/>4 = 电子游戏<br/>8 = 动漫<br/>16 = 摇滚<br/>32 = 流行乐<br/>64 = 其他<br/>128 = 新奇<br/>256 = 嘻哈<br/>512 = 没有512<br/>1024 = 电子</td> <td>同上</td> </tr> <tr> <td style="text-align: left;">language</td> <td style="text-align: left;">8</td> <td style="text-align: center;">E</td> <td style="text-align: center;">int</td> <td style="text-align: left;">0xffffffff</td> <td style="text-align: left;">语言:<br/>1 = any(未分类)<br/>2 = 其他<br/>4 = 英语<br/>8 = 日语<br/>16 = 中文<br/>32 = 器乐<br/>64 = 韩语<br/>128 = 法语<br/>256 = 德语<br/>512 = 瑞典语<br/>1024 = 西班牙语<br/>2048 = 意大利语<br/>4096 = /</td> <td>同上</td> </tr> <tr> <td style="text-align: left;">other(GET only)</td> <td style="text-align: left;">9</td> <td style="text-align: center;">R</td> <td style="text-align: center;">string</td> <td style="text-align: left;">/</td> <td style="text-align: left;">star:0~10,AR:0~10,OD:0~10,CS:0~10,HP:0~10,length:0~999,BPM:0~9999,end</td> <td>注意!!必须按照这个格式请求,不能缺省,符号为半角</td> </tr> <tr> <td style="text-align: left;">stars(POST only)</td> <td style="text-align: left;"></td> <td style="text-align: center;"></td> <td style="text-align: center;">float Array</td> <td style="text-align: left;">[0,1000.0]</td> <td style="text-align: left;">难度范围</td> <td>左小右大,因为float精度原因建议适当放宽0.1以提高匹配成功率</td> </tr> <tr> <td style="text-align: left;">ar(POST only)</td> <td style="text-align: left;"></td> <td style="text-align: center;"></td> <td style="text-align: center;">float Array</td> <td style="text-align: left;">[0,1000.0]</td> <td style="text-align: left;">难度范围</td> <td>左小右大,因为float精度原因建议适当放宽0.1以提高匹配成功率</td> </tr> <tr> <td style="text-align: left;">od(POST only)</td> <td style="text-align: left;"></td> <td style="text-align: center;"></td> <td style="text-align: center;">float Array</td> <td style="text-align: left;">[0,1000.0]</td> <td style="text-align: left;">难度范围</td> <td>左小右大,因为float精度原因建议适当放宽0.1以提高匹配成功率</td> </tr> <tr> <td style="text-align: left;">cs(POST only)</td> <td style="text-align: left;"></td> <td style="text-align: center;"></td> <td style="text-align: center;">float Array</td> <td style="text-align: left;">[0,1000.0]</td> <td style="text-align: left;">难度范围</td> <td>左小右大,因为float精度原因建议适当放宽0.1以提高匹配成功率</td> </tr> <tr> <td style="text-align: left;">hp(POST only)</td> <td style="text-align: left;"></td> <td style="text-align: center;"></td> <td style="text-align: center;">float Array</td> <td style="text-align: left;">[0,1000.0]</td> <td style="text-align: left;">难度范围</td> <td>左小右大,因为float精度原因建议适当放宽0.1以提高匹配成功率</td> </tr> <tr> <td style="text-align: left;">length(POST only)</td> <td style="text-align: left;"></td> <td style="text-align: center;"></td> <td style="text-align: center;">float Array</td> <td style="text-align: left;">[0,1000.0]</td> <td style="text-align: left;">难度范围</td> <td>左小右大,因为float精度原因建议适当放宽0.1以提高匹配成功率</td> </tr> <tr> <td style="text-align: left;">bpm(POST only)</td> <td style="text-align: left;"></td> <td style="text-align: center;"></td> <td style="text-align: center;">float Array</td> <td style="text-align: left;">[0,1000.0]</td> <td style="text-align: left;">难度范围</td> <td>左小右大,因为float精度原因建议适当放宽0.1以提高匹配成功率</td> </tr> </tbody> </table> <p><strong>请求示例</strong></p> <ul> <li>GET <ul> <li>获取热门20张图 <code>https://api.sayobot.cn/beatmaplist?L=20&amp;O=0&amp;T=1</code> or <code>https://api.sayobot.cn/beatmaplist?0=20&amp;1=0&amp;2=1</code></li> </ul></li> <li>POST <ul> <li>获取热门20张图 <pre><code>{ "cmd": "beatmaplist", "type": "hot", "limit": 20 }</code></pre></li> <li>搜索歌手kano并筛选难度 <pre><code>{ "cmd": "beatmaplist", "type": "search", "limit": 20, "keyword": "kano", "class": 7, "mode": 1, "subtype": 2, "stars": [4.0, 7.0] }</code></pre></li> </ul></li> </ul> <p><strong>返回示例</strong></p> <pre><code>{ "data": [ { "approved": 3, "artist": "Soken Masayoshi", "artistU": "", "creator": "kanor", "favourite_count": 3, "lastupdate": 1582859628, "modes": 1, "order": 10, "play_count": 180, "sid": 1097108, "title": "Sunrise", "titleU": "" }, { "approved": 1, "artist": "Kami-sama, I have noticed", "artistU": "", "creator": "Ryuusei Aika", "favourite_count": 62, "lastupdate": 1579421827, "modes": 1, "order": 0, "play_count": 101574, "sid": 1094943, "title": "Namae no Nai Ao (TV Size)", "titleU": "" } ], "endid": 25, "match_artist_results": 1813, "match_creator_results": 394, "match_tags_results": 1535, "match_title_results": 264, "match_version_results": 239, "results": 3857, "status": 0, "time_cost": 218 } </code></pre> <p><strong>返回参数说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">endid</td> <td style="text-align: left;">number</td> <td>下次请求的起始点(offset)。0=请求完毕</td> </tr> <tr> <td style="text-align: left;">time_cost</td> <td style="text-align: left;">number</td> <td>搜索耗时(ms)</td> </tr> <tr> <td style="text-align: left;">results</td> <td style="text-align: left;">number</td> <td>该关键词匹配的结果总数, match 字段都仅在offset=0的时候出现</td> </tr> <tr> <td style="text-align: left;">match_title_results</td> <td style="text-align: left;">number</td> <td>匹配到的标题总数</td> </tr> <tr> <td style="text-align: left;">match_artist_results</td> <td style="text-align: left;">number</td> <td>匹配到的作者总数</td> </tr> <tr> <td style="text-align: left;">match_creator_results</td> <td style="text-align: left;">number</td> <td>匹配到的创作者总数</td> </tr> <tr> <td style="text-align: left;">match_version_results</td> <td style="text-align: left;">number</td> <td>匹配到的难度总数</td> </tr> <tr> <td style="text-align: left;">match_tags_results</td> <td style="text-align: left;">number</td> <td>匹配到的标签总数</td> </tr> <tr> <td style="text-align: left;">sid</td> <td style="text-align: left;">number</td> <td>铺面集合唯一 id</td> </tr> <tr> <td style="text-align: left;">modes</td> <td style="text-align: left;">number</td> <td>模式:<br />1 = osu<br />2 = taiko<br />4 = ctb<br />8 = mania</td> </tr> <tr> <td style="text-align: left;">approved</td> <td style="text-align: left;">number</td> <td>Rank 状态:<br />-2 = graveyard<br />-1 = WIP<br />0 = pending<br />1 = ranked<br />2 = approved<br />3 = qualified<br />4 = loved</td> </tr> <tr> <td style="text-align: left;">lastupdate</td> <td style="text-align: left;">date</td> <td>最后更新日期</td> </tr> <tr> <td style="text-align: left;">title</td> <td style="text-align: left;">number</td> <td>标题</td> </tr> <tr> <td style="text-align: left;">titleU</td> <td style="text-align: left;">number</td> <td>标题 Unicode</td> </tr> <tr> <td style="text-align: left;">artist</td> <td style="text-align: left;">number</td> <td>艺术家</td> </tr> <tr> <td style="text-align: left;">artistU</td> <td style="text-align: left;">number</td> <td>艺术家 Unicode</td> </tr> <tr> <td style="text-align: left;">creator</td> <td style="text-align: left;">number</td> <td>作图者</td> </tr> <tr> <td style="text-align: left;">favourite_count</td> <td style="text-align: left;">number</td> <td>被收藏的次数</td> </tr> <tr> <td style="text-align: left;">order</td> <td style="text-align: left;">number</td> <td>排序标识(热度?)</td> </tr> <tr> <td style="text-align: left;">play_count</td> <td style="text-align: left;">number</td> <td>被玩的次数</td> </tr> </tbody> </table>

页面列表

ITEM_HTML