auto.waitFor();
app.launchApp("猫眼");
openConsole();
console.setTitle("猫眼 go!","#ff11ee00",30);
main();
className("android.widget.TextView").text("确认").waitFor();
function getTicketPrice(){
var ticketPrice = rawInput("请输入票价关键字(按照默认格式)", "788");
if (ticketPrice == null || ticketPrice.trim()=='') {
alert("请输入票价信息!");
return getTicketPrice();
}
console.log("手动输入的票价信息:"+ticketPrice);
return ticketPrice;
}
function getSellTime(){
var sellTime = rawInput("请输入抢票时间(按照默认格式)", "03-01 20:00");
if (sellTime == null || sellTime.trim()=='') {
alert("请输入抢票时间!");
return getSellTime();
}
return sellTime;
}
function main() {
console.log("开始猫眼抢票!");
var preBook= text("已 预 约").findOne(2000)
var preBook2 = className("android.view.View").text("已填写").findOne(2000)
var isPreBook = preBook2!=null||preBook!=null;
var playEtc;
var ticketPrice;
console.log("界面是否已预约:"+isPreBook);
var month;
var day;
var hour;
var minute;
var inputTime = getSellTime();
console.log("输入的抢票时间:" + inputTime);
var times = inputTime.split(" ");
var time1 = times[0]
var time2 = times[1]
var monthDay= time1.split("-");
month = monthDay[0] - 1;
day = monthDay[1];
var hourMinute= time2.split(":");
hour = hourMinute[0];
minute= hourMinute[1];
var year = new Date().getFullYear();
var second = 0;
var msecond = 0;
var startTimestamp = new Date(year, month, day, hour, minute, second, msecond).getTime();
startTimestamp = startTimestamp - 50;
var damaiTimestamp;
var startTime = convertToTime(startTimestamp);
console.log("开抢时间:", startTime);
console.log("等待开抢...");
while (true) {
damaiTimestamp = getDamaiTimestamp();
if (damaiTimestamp >= startTimestamp) {
break;
}
}
var realStartTime = getDamaiTimestamp();
console.log("冲啊!!!");
while(true){
var but1 = className("android.widget.TextView").text("立即预订").exists();
var but2 = className("android.widget.TextView").text("立即购票").exists();
var but3= className("android.widget.TextView").text("特惠购票").exists();
var result = but1||but2||but3;
if(result){
var s;
if(but1){
var s =className("android.widget.TextView").text("立即预订").findOne().click();
}else if(but2){
var s =className("android.widget.TextView").text("立即购票").findOne().click();
}else if(but3){
var s =className("android.widget.TextView").text("特惠购票").findOne().click();
}
console.log("点击了立即购票相关按钮:"+s)
break;
}
}
className("android.widget.TextView").text("确认").findOne().click()
console.log("点击确认");
auto.waitFor();
app.launchApp("猫眼");
openConsole();
console.setTitle("猫眼 go!","#ff11ee00",30);
main();
className("android.widget.TextView").text("确认").waitFor();
function getTicketPrice(){
var ticketPrice = rawInput("请输入票价关键字(按照默认格式)", "788");
if (ticketPrice == null || ticketPrice.trim()=='') {
alert("请输入票价信息!");
return getTicketPrice();
}
console.log("手动输入的票价信息:"+ticketPrice);
return ticketPrice;
}
function getSellTime(){
var sellTime = rawInput("请输入抢票时间(按照默认格式)", "03-01 20:00");
if (sellTime == null || sellTime.trim()=='') {
alert("请输入抢票时间!");
return getSellTime();
}
return sellTime;
}
function main() {
console.log("开始猫眼抢票!");
var preBook= text("已 预 约").findOne(2000)
var preBook2 = className("android.view.View").text("已填写").findOne(2000)
var isPreBook = preBook2!=null||preBook!=null;
var playEtc;
var ticketPrice;
console.log("界面是否已预约:"+isPreBook);
var month;
var day;
var hour;
var minute;
var inputTime = getSellTime();
console.log("输入的抢票时间:" + inputTime);
var times = inputTime.split(" ");
var time1 = times[0]
var time2 = times[1]
var monthDay= time1.split("-");
month = monthDay[0] - 1;
day = monthDay[1];
var hourMinute= time2.split(":");
hour = hourMinute[0];
minute= hourMinute[1];
var year = new Date().getFullYear();
var second = 0;
var msecond = 0;
var startTimestamp = new Date(year, month, day, hour, minute, second, msecond).getTime();
startTimestamp = startTimestamp - 50;
var damaiTimestamp;
var startTime = convertToTime(startTimestamp);
console.log("开抢时间:", startTime);
console.log("等待开抢...");
while (true) {
damaiTimestamp = getDamaiTimestamp();
if (damaiTimestamp >= startTimestamp) {
break;
}
}
var realStartTime = getDamaiTimestamp();
console.log("冲啊!!!");
while(true){
var but1 = className("android.widget.TextView").text("立即预订").exists();
var but2 = className("android.widget.TextView").text("立即购票").exists();
var but3= className("android.widget.TextView").text("特惠购票").exists();
var result = but1||but2||but3;
if(result){
var s;
if(but1){
var s =className("android.widget.TextView").text("立即预订").findOne().click();
}else if(but2){
var s =className("android.widget.TextView").text("立即购票").findOne().click();
}else if(but3){
var s =className("android.widget.TextView").text("特惠购票").findOne().click();
}
console.log("点击了立即购票相关按钮:"+s)
break;
}
}
className("android.widget.TextView").text("确认").findOne().click()
console.log("点击确认");
className("android.widget.Button").waitFor();
var c = className("android.widget.Button").findOne().click();
console.log("点击立即支付 " + c);
var t = getDamaiTimestamp() - realStartTime
console.log("花费时间:" + t)
console.log("休息0.5秒,如果立即支付按钮还在再点击一次")
sleep(500);
if (className("android.widget.Button").exists()) {
c = className("android.widget.Button").findOne().click();
console.log("继续点击立即支付 " + c);
}
while (true) {
if (className("android.widget.Button").exists()) {
c = className("android.widget.Button").findOne().click();
sleep(100);
console.log("继续点击立即支付 " + c);
} else {
if (text("喵~当前人数太多啦,请返回重试").exists()) {
className("android.widget.Button").text("返回").findOne().click();
className("android.widget.Button").waitFor();
}
}
}
console.log("结束时间:" + convertToTime(getDamaiTimestamp()));
function getDamaiTimestamp() {
return JSON.parse(http.get("https://mtop.damai.cn/gw/mtop.common.getTimestamp/", {
headers: {
'Host': 'mtop.damai.cn',
'Content-Type': 'application/json;charset=utf-8',
'Accept': '*/*',
'User-Agent': 'floattime/1.1.1 (iPhone; iOS 15.6; Scale/3.00)',
'Accept-Language': 'zh-Hans-CN;q=1, en-CN;q=0.9',
'Accept-Encoding': 'gzip, deflate, br',
'Connection': 'keep-alive'
}
}).body.string()).data.t;
}
function convertToTime(timestamp) {
var date = new Date(Number(timestamp));
var year = date.getUTCFullYear();
var month = (date.getUTCMonth() + 1).toString().padStart(2, "0");
var day = date.getUTCDate().toString().padStart(2, "0");
var hours = (date.getUTCHours() + 8).toString().padStart(2, "0");
var minutes = date.getUTCMinutes().toString().padStart(2, "0");
var seconds = date.getUTCSeconds().toString().padStart(2, "0");
var milliseconds = date.getUTCMilliseconds().toString().padStart(3, "0");
var iso8601 = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;
return iso8601;
}
function btn_position_click(x) {
if (x) {
var b = x.bounds();
print(b.centerX())
print(b.centerY())
var c = click(b.centerX(), b.centerY())
console.log("点击是否成功:"+c);
}
}
}
function getDamaiTimestamp() {
return JSON.parse(http.get("https://mtop.damai.cn/gw/mtop.common.getTimestamp/", {
headers: {
'Host': 'mtop.damai.cn',
'Content-Type': 'application/json;charset=utf-8',
'Accept': '*/*',
'User-Agent': 'floattime/1.1.1 (iPhone; iOS 15.6; Scale/3.00)',
'Accept-Language': 'zh-Hans-CN;q=1, en-CN;q=0.9',
'Accept-Encoding': 'gzip, deflate, br',
'Connection': 'keep-alive'
}
}).body.string()).data.t;
}
function convertToTime(timestamp) {
var date = new Date(Number(timestamp));
var year = date.getUTCFullYear();
var month = (date.getUTCMonth() + 1).toString().padStart(2, "0");
var day = date.getUTCDate().toString().padStart(2, "0");
var hours = (date.getUTCHours() + 8).toString().padStart(2, "0");
var minutes = date.getUTCMinutes().toString().padStart(2, "0");
var seconds = date.getUTCSeconds().toString().padStart(2, "0");
var milliseconds = date.getUTCMilliseconds().toString().padStart(3, "0");
var iso8601 = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;
return iso8601;
}
function btn_position_click(x) {
if (x) {
var b = x.bounds();
print(b.centerX())
print(b.centerY())
var c = click(b.centerX(), b.centerY())
console.log("点击是否成功:"+c);
}
}