-
Notifications
You must be signed in to change notification settings - Fork 2
教程:创建源
所有函数均为async
异步函数。源api函数的传入参数和传出参数均为字符串。如果传出参数是对象,需要先JSON.stringfy
转换为字符串。
你可以在 这里 找到模板代码。
推荐相册API,默认调用此接口并在页面显示。
-
pageNum
页数,从1开始,String
格式
-
JSON.stringfy(resultAlbums)
的结果resultAlbums
对象格式如下:
var resultAlbums = {
currPage: 1, //当前页数
totalPage: 5, //总页数
albums: [
{
id: "dhs89adgh", //必传项
name: "相册1", //相册名称,可不传
coverUrl: "http://xxx.jpg", //封面url,可不传
coverHeaders: { "user-agent": "xxx" }, //封面url的headers,可不传
tags: ["历史", "教育"], //可不传
title: "我的相册1", //相册标题,可不传
description: "这是我的第一个相册", //相册描述,可不传
creator: "buyaobushuo", //创建者,可不传
createAt: "2023-01-01", //创建时间,可不传
detailPageUrl: "http://xxx", //详情页url,可不传
extra: {}, //可添加自定义选项
},
],
};
搜索相册API,搜索相册的结果。
-
pageNum
页数,从1开始,String
格式 -
keyword
搜索的关键词,String
格式
-
JSON.stringfy(resultAlbums)
的结果resultAlbums
对象格式如下:
var resultAlbums = {
currPage: 1, //当前页数
totalPage: 5, //总页数
albums: [
{
id: "dhs89adgh", //必传项
name: "相册1", //相册名称,可不传
coverUrl: "http://xxx.jpg", //封面url,可不传
coverHeaders: { "user-agent": "xxx" }, //封面url的headers,可不传
tags: ["历史", "教育"], //可不传
title: "我的相册1", //相册标题,可不传
description: "这是我的第一个相册", //相册描述,可不传
creator: "buyaobushuo", //创建者,可不传
createAt: "2023-01-01", //创建时间,可不传
detailPageUrl: "http://xxx", //详情页url,可不传
extra: {}, //可添加自定义选项
},
],
};
查看相册中的图片。
-
pageNum
页数,从1开始,String
格式 -
album
JSON.stringfy(album)
的结果,album
对象参考resultAlbums
中albums
列表中的对象。
-
JSON.stringfy(resultPictures)
的结果resultPictures
对象格式如下:
var resultPictures = {
currPage: 1,
totalPage: 5,
pictures: [
{
url: "http://xxx.jpg", //图片地址,必传项
headers: { "user-agent": "xxx" }, //图片headers,可不传
width: 1024, //宽度,可不传
height: 768, //高度,可不传
size: "3.5M", //尺寸,可不传
tags: ["历史", "军事"], //类型,可不传
},
],
};
你可以在 这里 找到模板代码。
推荐歌单API,默认调用此接口并在页面显示。
-
pageNum
页数,从1开始,String
格式
-
JSON.stringfy(resultPlaylists)
的结果resultPlaylists
对象格式如下:
var resultPlaylists = {
currPage: 1,
totalPage: 5,
playlists: [
{
id: "dhs89adgh", //必传项
name: "歌单1", //歌单名称,可不传
coverUrl: "http://xxx.jpg", //封面,可不传
coverHeaders: { "user-agent": "xxx" }, //封面的headers,可不传
creator: "buyaobushuo", //创建者,可不传
createAt: "2023-01-01", //创建时间,可不传
introduce: "歌单介绍", //介绍,可不传
numMusics: 10, //歌曲数量,可不传
extra: {}, //可添加自定义选项
},
],
};
推荐音乐API,默认调用此接口并在页面显示。
-
pageNum
页数,从1开始,String
格式
-
JSON.stringfy(resultMusics)
的结果resultMusics
对象格式如下:
var resultMusics = {
currPage: 1,
totalPage: 1,
musics: {
id: "1212", //必传项
musicName: "不能说的秘密", //歌曲名称,必传项
singer: "周杰伦", //歌手,必传项
quality: ["320kb"], //歌曲质量,获取播放地址时可能会用到,可不传
coverUrl: "http://xxx.jpg", //封面,可不传
coverHeaders: { referer: "xxx" }, //封面的headers,可不传
photoUrl: "http://xxx.jpg", // photoUrl比coverUrl要更清晰,可不传
photoHeaders: { referer: "xxx" }, // 可不传
extra: {}, //可添加自定义选项
},
};
搜索歌单API。
-
pageNum
页数,从1开始,String
格式 -
keyword
搜索的关键词,String
格式
-
JSON.stringfy(resultPlaylists)
的结果
搜索歌曲API。
-
pageNum
页数,从1开始,String
格式 -
keyword
搜索的关键词,String
格式
-
JSON.stringfy(resultMusics)
的结果
查看歌单中的音乐API。
-
pageNum
页数,从1开始,String
格式 -
playlist
JSON.stringfy(playlist)
的结果,playlist
对象参考resultPlaylists
中playlists
列表中的对象。
-
JSON.stringfy(resultMusics)
的结果
音乐播放地址API。
-
music
JSON.stringfy(music)
的结果,music
对象参考resultMusics
中musics
列表中的对象。 -
quality
null或字符串。如果是字符串,是quality
列表中的某个值。
-
JSON.stringfy(ResultMusicUrl)
的结果resultMusics
对象格式如下:
var ResultMusicUrl= {
url: "http://xxx", //音乐的播放链接
headers: { referer: "xxx" }, //headers,可不传
};
获取音乐的歌曲API。
-
music
JSON.stringfy(music)
的结果,music
对象参考resultMusics
中musics
列表中的对象。
- 歌词字符串
获取音乐的评论API。
-
pageNum
页数,从1开始,String
格式 -
music
JSON.stringfy(music)
的结果,music
对象参考resultMusics
中musics
列表中的对象。
-
JSON.stringfy(resultComments)
的结果resultComments
对象格式如下:
注:歌曲评论一般有热评,可在pageNum=1时获取并传出
var resultComments = {
currPage: 1,
totalPage: 1,
comments: {
userName: "小呆", // 用户名,必传
content: "好好听!", //评论,必传
createTime: "2023-01-01", //创建时间,可不传
photoUrl: "http://xxx.jpg", //评论附带的图片,可不传
photoHeaders: {}, //图片headers,可不传
thumbUp: 22, //点赞数,可不传
replies: [], //当前评论的回复列表,格式同当前comment,可不传
},
};
你可以在 这里 找到模板代码。
推荐书籍API,默认调用此接口并在页面显示。
-
pageNum
页数,从1开始,String
格式
-
JSON.stringfy(resultNovels)
的结果resultNovels
对象格式如下:
var resultNovels = {
novels: {
id: "123", //必传项
name: "仙逆", //书名,必传项
author: "耳根", //作者,可不传
coverUrl: "http://xxx.jpg", //封面地址,可不传
coverHeaders: {}, //封面headers,可不传
size: "10万字", //书籍大小/字数,可不传
latestUpdate: "2023-01-01", //最新更新时间,可不传
tags: ["玄幻"], //类型,可不传
introduce: "仙逆", //介绍,可不传
readingChapterId: "100", //正在阅读章节的id,可不传,不需要传
readingDatetime: "2023-01-01", //最新阅读时间,可不传,不需要传
extra: {}, //可添加自定义选项
},
currPage: 1,
totalPage: 1,
};
搜索书籍API。
-
pageNum
页数,从1开始,String
格式 -
keyword
搜索的关键词,String
格式
-
JSON.stringfy(resultNovels)
的结果。
查看书籍详情API。
-
novel
JSON.stringfy(novel)
的结果,novel
对象参考resultNovels
中novels
列表中的对象。
-
JSON.stringfy(resultChapters)
的结果。resultChapters
对象格式如下:
var resultChapters = {
chapters: [
{
id: "1", //章节id 必传
chapterName: "第一章", //章节名称 必传
chapterUrl: "http://xxx", //章节地址 可不传
},
], //所有章节
introduce: "介绍", //介绍 可不传
author: "作者", //作者 可不传
latestUpdate: "2023-01-01", //最新更新时间 可不传
tags: ["玄幻"], //类型 可不传
size: "1百万字", //大小 可不传
extra: {}, //可添加自定义选项 可不传
};
书籍某一章节的内容API。
-
novel
JSON.stringfy(novel)
的结果,novel
对象参考resultNovels
中novels
列表中的对象。 -
chapter
JSON.stringfy(chapter)
的结果,chapter
对象参考resultChapters
中chapters
列表中的对象。
- 内容字符串
你可以在 这里 找到模板代码。
推荐影视API,默认调用此接口并在页面显示。
-
pageNum
页数,从1开始,String
格式
-
JSON.stringfy(resultVideos)
的结果resultVideos
对象格式如下:
var resultVideos = {
currPage: 1, //当前页数
totalPage: 5, //总页数
videos: [
{
id: "12", // 必传
videoName: "名称", // 影视名称,必传
coverUrl: "http://xxx.jpg", // 封面url,可不传
coverHeaders: {}, // 封面headers,可不传
detailPageUrl: "http://xxx", // 详情页url,可不传
actors: "1,2,3", // 演员,可不传
introduce: "xxx", // 介绍,可不传
tags: ["tag1", "tag2"], // 类型,可不传
latestUpdate: "2023-01-01", // 最新更新时间,可不传
extra: {}, // 额外信息
},
],
};
搜索影视API。
-
pageNum
页数,从1开始,String
格式 -
keyword
搜索的关键词,String
格式
-
JSON.stringfy(resultVideos)
的结果。
影视详情API。
-
video
JSON.stringfy(video)
的结果,video
对象参考resultVideos
中videos
列表中的对象。
-
JSON.stringfy(videoDetail)
的结果。
var videoDetail = {
seasons: [
{
seasonName: "第一季", //名称,必传
seasonUrl: "http://xxx", //地址,可不传
episodes: [
{
name: "第一集", //名称,必传
url: "http://xxx", //播放地址,必传
headers: {}, //headers,可不传
audioTrack: "http://xxx.mp3", //音频的播放地址,可不传
},
], //剧集列表,这里可以为空,在获取seasonDetail时再获取
},
{
seasonName: "第二季",
seasonUrl: "http://xxx",
episodes: [], //这里可以为空,在获取episodeDetail时再获取
},
], // 必传
actors: "1,2,3", //演员,可不传
introduce: "xxx", //介绍, 可不传
tags: [], //类型, 可不传
latestUpdate: "2023-01-01", //最新更新时间, 可不传
extra: {}, // 可不传
};
剧集详情API。
-
video
JSON.stringfy(video)
的结果,video
对象参考resultVideos
中videos
列表中的对象。 -
videoDetail
JSON.stringfy(videoDetail)
的结果。 -
season
JSON.stringfy(season)
的结果,season
对象参考resultSeasons
中seasons
列表中的对象。
-
JSON.stringfy(season)
的结果。
var season = {
seasonName: "第一季", //名称,必传
seasonUrl: "http://xxx", //地址,可不传
episodes: [
{
name: "第一集", //名称,必传
url: "http://xxx", //地址,可以是页面地址,然后在`episodeDetail`中获取具体播放地址;必传
headers: {}, //headers,可不传
audioTrack: "http://xxx.mp3", //音频的播放地址,可不传
},
],
};
某一集的详情API。
-
episode
JSON.stringfy(episode)
的结果,episode
对象参考resultEpisodes
中episodes
列表中的对象。
-
JSON.stringfy(episode)
的结果。episode
对象参考resultEpisodes
中episodes
列表中的对象。
你可以在 这里 找到模板代码。
推荐网盘资源API,默认调用此接口并在页面显示。
-
pageNum
页数,从1开始,String
格式
-
JSON.stringfy(resultNetDiskSources)
的结果resultNetDiskSources
对象格式如下:
var resultNetDiskSources = {
currPage: 1, //当前页数
totalPage: 5, //总页数
sources: [
{
id: "id1", //id,必传
title: "资源1", //标题,必传
detailUrl: "http://xxx", //详情页地址,必传
introduce: "介绍", //介绍,可不传
imageList: ["http://x.jpg"], //介绍图片的列表,可不传
tags: ["影视"], //类型,可不传
datetime: "2023-01-01", //创建时间,可不传
readNum: 6, //阅读量,可不传
commentNum: 2, //评论量,可不传
thumbNum: 1, //点赞量,可不传
extra: {}, //额外信息,可不传
},
],
};
搜索网盘资源API。
-
pageNum
页数,从1开始,String
格式
-
JSON.stringfy(resultNetDiskSources)
的结果。
为了更方便地实现一些功能,在编写源时,除了js的原生方法,你还可以直接使用下面的一些对象方法。
可以使用fetch
命令发送网络请求
var url = "";
var response = await fetch(url);
var text = await response.text();
NodeHtmlParser
使用的是node-html-parser
库,用于页面解析
var root = NodeHtmlParser.parse(text);
var pageElements = root.querySelectorAll("ul.joe_pagination > li > a");
CryptoJS
使用的是crypto-js
库,用于加密解密
content = CryptoJS.AES.decrypt(content, "key", {
iv: "iv",
}).toString(CryptoJS.enc.Latin1);
为了更方便的进行调试,可以使用windowLog
方法进行日志输出
await windowLog('some log');
bigInt
类型