q.js文档
q.js已经发布了,想要使用可前往轻仓库下载即可,主要功能与m.js大体相同,不过与m.js相比q.js更加简单易用,可以看成是m.js的升级版,下面介绍一下q.js封装的接口。如果你对JavaScript还不了解可以点击此处。
1.文件相关
下面是一些与文件有关的方法
//读写文件,其中content是字符串,filename是文件名。两者均为string类型
_.write(content, filename)
_.read(filename)
//以下方法为私有文件
//以键值对的形式存储 key,value均为string类型
_.putSp(key,value)
//根据key获取存储的value值 其中defaultValue是如果获取不到设置的默认值
_.getSp(key,defaultValue)
//根据key删除对应的value
_.clearSp(key)
//删除所有文件
_.removeSp()
其中write,read方法与Sp方法区别在于
前者适用于大文件的读写,而后者适合保存一下用户常用值。
2.网络相关
下面是一些与网络有关的方法
你可以通过以下方法获取一个res对象,其中参数o是一个对象 可接受参数如下
var o= {
url: '', //url网址必填
header: { referer: 'www.baidu.com' }, //header参数 选填 默认为空
params: { a: 'b' }, //请求参数 选填 默认为空
method: 'post', //请求方法 选填 默认get
json: true, //以post请求的方式把参数以json的格式发送 选填 默认false
re: false, //是否允许url被重定向 选填 默认为true
};
var res=_.http(o)
在获取res对象后你可以进行以下操作
//以utf8编码获取网页源码
//在获取源码之后你就可以尽情调用e2Rex表达式了
var code=res.body()
//通过下列方法你可以指定网页源码的编码
_.bd(res,endcoding)
//如指定返回网页编码为gbk
var code=_.bd(res,"gbk")
//根据res获取指定cookie
var token=_.ck(res,"token") //获取了名称为token的cookie
//根据res获取全部cookie
var cookies=_.cks(res)
//根据res获取的指定header
var header=_.hd(res,"content-type") //获取了header中的content-type
//根据res获取全部headers
var headers=_.hds(res)
简写
var code=_.http({url:"https://www.bilibili.com/"}).body()
var ctp=_.head(_.http({url:"https://www.bilibili.com/"}),"content-type")
下载文件
_.download(o)
这个o对象继承了http的o对象,除此之外还多了两个参数
var o={
tips:false, //设置下载完成之后不提示 默认为提示
setpath:"" //设置文件下载路径 默认为q.js内置路径
}
一般而言你只需要如下调用即可
简单调用(大部分情况)
_.download({url:"https://api.ixiaowai.cn/api/api.php"})
复杂调用
_.download({
url: 'https://pixiv-image-tc.pwp.link/img-original/img/2021/12/14/00/00/14/94763568_p0.png',
header: { referer: 'https://pixiviz.pwp.app/' },
setpath: '/storage/emulated/0/Android/data/cn.nr19.mbrowser/files/a',
});
3.多线程
多线程比较复杂,不做细致讲解,想用的话直接套用如下模板即可。
d = [];
var urls = []; //网址列表
for (let index = 0; index < urls.length; index++) {
function fn(i) {
return function () {
//这里改成你想要进行的操作
var title = e2Rex(getHttp(urls[i]), '.get(mip-img).i(1).a(src)');
return title //这里改成你自己想要的返回 没有返回删掉这行就行
};
}
d.push(fn(index));
}
var result = []; //result为每个线程运行后返回的结果集
var s = _.submit(d, n); //n 改为你想开启的线程数
for (let i = 0; i < s.length; i++) {
for (let z of s[i].get()) {
result.push(z);
}
}
JSON.stringify(result);
4.快捷方法
q.js封装了如下快捷方法
_.sleep(n) //延迟n毫秒执行
var code=_.$()//获取当前轻站模块的源码
var a=_.$(name) //获取当前轻站模块的变量
_.$(name,value) //声明一个轻站模块变量
_.error(msg) //抛出异常信息
_.toast(msg) //toast提示
_.back() //调用返回键
var info=_.info()//获取轻站info对象
具体用法如下
var name =info.name //轻站名称
var version =info.version //轻站版本
var sign=info.sign //轻站标识