Auto.js Bmob热更新案例

“ui”;

const APPID = ‘aa0da8d846d34075a61da6762c0e2’;// APPID
const REST_ID = ‘de4902c46e3c35f00e9c1679c47a1’; //REST ID

/------------bmob数据库的增删改查------------/
const Bmob = (function () {
function Bmob(url, appId, restKey) {
this.baseUrl = url;
this.appId = appId;
this.restKey = restKey;
}
Bmob.prototype.makeRequest = function (method, url, json, sessionToken, callback) {
url = this.baseUrl + url;
var options = {};
options.contentType = “application/json”;
options.method = method;
if (json) {
options.body = JSON.stringify(json);
}
sessionToken = sessionToken || “”;
options.headers = {
“X-Bmob-Application-Id”: this.appId,
“X-Bmob-REST-API-Key”: this.restKey,
“Content-Type”: “application/json”,
// 加入X-Bmob-Session-Token
“X-Bmob-Session-Token”: sessionToken
}
return http.request(url, options, callback);
}
//获取服务器时间
Bmob.prototype.timestamp = function () {
return this.makeRequest(“GET”, “/timestamp”, null).body.json();
}
/
------------------------用户表------------------------------*/
//添加用户
Bmob.prototype.userCreate = function (username,password,email,phone,info) {
let user = {“username”: username,“password”: password,
// “email”: email,
// “mobilePhoneNumber”: phone,
// “info”: info
}
return this.makeRequest(“POST”, “/users/”, user).body.json();
}
//添加手机用户
Bmob.prototype.userMobileCreate = function (phoneNum,smsCode) {
let user = {“mobilePhoneNumber”:phoneNum,“smsCode”:smsCode}
return this.makeRequest(“POST”, “/users/”, user).body.json();
}
//用户登录
Bmob.prototype.userLogin = function (username,password) {
let url = encodeURI(util.format(’/login?username=%s&password=%s’, username, password));
return this.makeRequest(“GET”, url, null).body.json();
}
//手机用户登录
Bmob.prototype.userMobileLogin = function (phoneNum,smsCode) {
let url = encodeURI(util.format(’/login?username=%s&password=%s’, phoneNum,smsCode));
return this.makeRequest(“GET”, url, null).body.json();
}
//用户查询
Bmob.prototype.userQuery = function (username) {
let url = encodeURI(util.format(’/users?where={“username”:"%s"}’, username));
return this.makeRequest(“GET”, url, null).body.json();
}
//当前用户
Bmob.prototype.userCurrent = function (objectId) {
return this.makeRequest(“GET”, “/users/”+objectId, null).body.json();
}
//检查session token是否过期 ?在哪些情况下{ msg: ‘ok’ }现验证为{ msg: ‘fail’ }
Bmob.prototype.userSession = function (objectId) {
return this.makeRequest(“GET”, “/checkSession/”+objectId, null).body.json();
}
//更新用户
Bmob.prototype.userUpdate= function (objectId, sessionToken, data) {
return this.makeRequest(“PUT”, “/users/”+objectId, data, sessionToken).body.json();
}
//删除用户
Bmob.prototype.userDelete = function (objectId, sessionToken) {
return this.makeRequest(“DELETE”, “/users/”+objectId, null, sessionToken).body.json();
}
//用户列表
Bmob.prototype.userList = function () {
return this.makeRequest(“GET”, “/users/”, null).body.json();
}
//密码重置
Bmob.prototype.userPasswordReset = function (type, data ,data2 ,sessionToken) {
/data格式email {“email”:emailAdress} sms {“password”: “new password”} oldNew {“oldPassword”: “用户的老密码”,“newPassword”: “用户的新密码”} */
var url = “”; var data = data || “”; var data2 = data2 || “”; var method = “PUT”; var sessionToken = sessionToken|| “”;
switch (type) {
case “email”:
method = “POST”;
url = “/requestPasswordReset”;
break;
case “sms”:
url = “/resetPasswordBySmsCode/”+data2; //smsCode
break;
case “oldNew”:
url = “/updateUserPassword/”+data2; //objectId
break;
default:
break;
}
return this.makeRequest(method, url, data, sessionToken).body.json();
}
//Email验证
Bmob.prototype.userEmailVerify = function (email) {
let data = {“email”:email};
return this.makeRequest(“POST”, “/requestEmailVerify/”, data, null).body.json();
}
//获取手机验证码
Bmob.prototype.requestSmsCode = function (phoneNum,template) {
let data = {“mobilePhoneNumber”: phoneNum,“template”: templateName||""}
/*data = {“mobilePhoneNumber”: phoneNum,“template”: templateName} */

    return this.makeRequest("POST", "/requestSmsCode/", data).body.json();
}
/*------------------------第三方帐号用户账户连接----------------*/
//后续增加

/*------------------------数据表------------------------------*/
// 添加数据
Bmob.prototype.createObject = function (className, data) {
    return this.makeRequest("POST", "/classes/" + className, data).body.json();
}
//批量增加数据
// https://api2.bmob.cn/1/batch/1/classes/TableName
Bmob.prototype.createObjects = function (className, items) {
    //数据样例 className 为表名 items = [{"category": "类别","word": "value1"},{"category": "类别","word": "value2"}]
    let data = {"requests": []};
    items.forEach(item=> {
        let tmp = {
            "method": "POST",
            "path": "/1/classes/" + className,
            "body": item,
        };
        data.requests.push(tmp);           
    });
    return this.makeRequest("POST", "/batch/", data).body.json();
}
// 查询表数据
Bmob.prototype.getObjects = function (className) {
    return this.makeRequest("GET", "/classes/" + className).body.json();
}
// 查询ID数据
Bmob.prototype.getObject = function (className, id) {
    return this.makeRequest("GET", "/classes/" + className + "/" + id).body.json();
}
//条件查询
Bmob.prototype.queryObject = function (className, data) {
    let url = encodeURI(util.format('/classes/%s/?where=%j', className, data));
    return this.makeRequest("GET", url, null).body.json();
}
// 更新数据
Bmob.prototype.updateObject = function (className, objectId, data) {
    return this.makeRequest("PUT", "/classes/" + className + "/" + objectId, data).body.json();
}
// 删除数据
Bmob.prototype.deleteObject = function (className, data) {
    var id = typeof (data) == "string" ? data : data.objectId;
    return this.makeRequest("DELETE", "/classes/" + className + "/" + id).body.json();
}
//BQL查询
Bmob.prototype.BQL = function (bql) {
    let url = encodeURI(util.format('/cloudQuery?bql=%s', bql));
    return this.makeRequest("GET", url).body.json();
}

return Bmob;

})();

if (!APPID || !REST_ID) {
alert(“需要注册Bmob并填入app id和rest id”);
app.openUrl(“http://doc.bmob.cn/data/restful/”);
exit();
}

var bmob = new Bmob(“https://api2.bmob.cn/1”, APPID, REST_ID);

threads.start(function(){
// log(bmob.timestamp());
// log(bmob.getObjects(“vesionup”).results[0].jsUrl); //查询表某个数据
检查更新();
})

ui.layout(


);

// 检查更新();

//将 “brief:210|http://ys-i.ys168.com/615507929/jUrshIp524J7I2LJIMJH/inderV200.js,content_type” 已记事本
// QQ收藏内容如下:版本号|更新脚本下载的链接(版本号没有小点),分享出 “https://sharechain.qq.com/1b94abbb42c5c625444801da634003d5”;

// var str=“brief:210|http://ys-i.ys168.com/615507929/jUrshIp524J7I2LJIMJH/inderV200.js,content_type”

function 检查更新(){
// // 第一种方法:
// let url = “https://sharechain.qq.com/1b94abbb42c5c625444801da634003d5”;
// let str = http.get(url).body.string();
// let h = cutstr(str, ‘brief:’, ‘,content_type’, 1, 2);
// let ho = h.split("|");
// 第二种方法:硬上,发送app,或者扫描论坛,抓包
// 更新(‘http://ys-k.ys168.com/615507924/p712M7U34IML3XjUrshI/inter201.js’)
// 第三种方法:读取服务器
var ho = new Array(); //app集合
ho.push(bmob.getObjects(“vesionup”).results[0].jsVesion);
ho.push(bmob.getObjects(“vesionup”).results[0].jsUrl);

if(“200” < ho[0]) {
log(‘需要更新’)
更新(ho[1]);
}else{
log(‘最新版本,不需要更新’)
}

}

function 更新(url) {
threads.start(function() {
var a = engines.myEngine().getSource();
toastLog(a +“更新中…”);
files.write(a, http.get(url).body.string());
//运行刚才更新好的脚本
engines.execScriptFile(a);
toastLog(“更新成功,请退出脚本,重新运行!!”);
});
}

function cutstr(a, b, c, f, e) {
log(a)
a = a.split(b);
log(a)
var d = “”;
if (e < a.length && e != null) {} else {
e = a.length;
}
if (f == null) {
f = 1;
}
for (i = f; i < e; i++) {
tmp = a[i].split©;
if (tmp.length > 1) {
d += tmp[0];
}
}
return d;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值