diff --git a/docs/README.md b/docs/README.md index a8fbecebac..e439aac482 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2284,3 +2284,9 @@ category 对应的关键词有 + +### TSSstatus + + + +> board 和 build 可在[这里](http://api.ineal.me/tss/status)查看 diff --git a/router.js b/router.js index 2f495aedd8..13677e0e8f 100644 --- a/router.js +++ b/router.js @@ -787,6 +787,9 @@ router.get('/eeo/:category?', require('./routes/eeo/index')); // 腾讯视频 router.get('/tencentvideo/playlist/:id', require('./routes/tencent/video/playlist')); +// TSSstatus +router.get('/tssstatus/:board/:build', require('./routes/tssstatus')); + // Anime1 router.get('/anime1/anime/:time/:name', require('./routes/anime1/anime')); router.get('/anime1/search/:keyword', require('./routes/anime1/search')); diff --git a/routes/tssstatus/index.js b/routes/tssstatus/index.js new file mode 100644 index 0000000000..8dc464b19a --- /dev/null +++ b/routes/tssstatus/index.js @@ -0,0 +1,35 @@ +const axios = require('../../utils/axios'); + +module.exports = async (ctx) => { + const { board, build } = ctx.params; + const response = await axios({ + method: 'get', + url: `http://api.ineal.me/tss/${board}/${build}`, + }); + + const resultItem = Object.values(response.data).map((item) => { + const firmware = item.firmwares[0]; + const description = ` + signing: ${firmware.signing.toString()}
+ started: ${firmware.started}
+ stopped: ${firmware.stopped}
+ model: ${item.model}
+ board: ${item.board}
+ version: ${firmware.version}
+ build: ${firmware.build}
+ `; + + return { + title: `signing: ${firmware.signing.toString()}-${item.model}-${firmware.version}`, + description, + guid: `${firmware.started} / ${firmware.stopped}`, + }; + }); + + ctx.state.data = { + title: 'TSSstatus', + link: 'http://api.ineal.me/tss/status', + description: "Real time status of every iOS firmware currently being signed by Apple's TSS server.", + item: resultItem, + }; +};