|
(function($) { |
|
var trainCodes = []; // 指定车次,注意字母一般大写 |
|
var startDays = []; // 轮番查询不同日期,格式 2013-09-30 |
|
|
|
var frame = document.getElementById('main').contentWindow.document, |
|
startdatepicker = $('#startdatepicker', frame), |
|
searchBtn = $('#submitQuery', frame); |
|
|
|
var lockDate; // 当有票时锁定日期 |
|
|
|
// 触发查询动作 |
|
function autoSearch () { |
|
if (searchBtn[0].className.indexOf('search_u') !== -1) { |
|
// 轮番查询 |
|
var day = toggleDate(); |
|
if (day) { |
|
startdatepicker.val(day); |
|
} |
|
searchBtn.click(); |
|
} |
|
} |
|
|
|
// 查找余票 |
|
function searchTicket () { |
|
var tableRows = $('.row20px', frame).find('tr'); |
|
var ret = []; |
|
|
|
tableRows.each(function () { |
|
var _this = this, |
|
cols = $('td', _this), |
|
// 获取硬座余票数量 |
|
num = cols.eq(12).text(), |
|
// 获取当前车次 |
|
code = cols.eq(0).text(); |
|
|
|
if (checkCode(code) && (num === '有' || parseInt(num, 10) > 0)) { |
|
ret.push({ |
|
code: code, |
|
num: num, |
|
day: startdatepicker.val() |
|
}); |
|
} |
|
}); |
|
|
|
if (ret.length) { |
|
createNotification(ret); |
|
lockDate = true; |
|
} else { |
|
lockDate = false; |
|
} |
|
} |
|
|
|
// 匹配指定车次 |
|
function checkCode (code) { |
|
if (!trainCodes.length) return true; |
|
if (trainCodes.length && trainCodes.indexOf(code) > -1) return true; |
|
return false; |
|
} |
|
|
|
// 切换查询日期 |
|
var dayIndex = 0; |
|
function toggleDate () { |
|
if (!startDays.length || lockDate) return false; // 不轮询查询 |
|
|
|
if (dayIndex === startDays.length) dayIndex = 0; |
|
var day = startDays[dayIndex]; |
|
dayIndex ++; |
|
|
|
return day; |
|
} |
|
|
|
// 打开桌面提示 |
|
Notification.requestPermission(); |
|
|
|
// 弹出提示信息 |
|
function createNotification (ret) { |
|
var msg = ''; |
|
ret.forEach(function (item) { |
|
msg += item.day + ' 车次 ' + item.code + '有余票 ' + item.num + '张!!!\n'; |
|
}); |
|
|
|
var data = { |
|
dir: "auto", |
|
body: msg, |
|
icon: "http://ww3.sinaimg.cn/mw690/6fb2c1e4gw1e8jp394fabj203k03kgli.jpg" |
|
}; |
|
|
|
new Notification('赶紧抢票!!!!!', data); |
|
} |
|
|
|
// 开始执行 |
|
setInterval(autoSearch, 3000); |
|
setInterval(searchTicket, 3000); |
|
$('.wc_titlewb', frame).append('<p style="font-size:20px;color:red;font-weight:bold;">程序正在为你自动查询中...</p>'); |
|
console.log('OK,程序已开始执行,有票时屏幕右下角将会出现提示,不用盯着看啦。'); |
|
})(jQuery); |