修改查票流程
This commit is contained in:
parent
57801451f1
commit
87f2abae80
@ -122,6 +122,15 @@ var notification = (function () {
|
|||||||
chrome.windows.update((m.detail && m.detail.windowid), { drawAttention: true, focused: true, state: "maximized" });
|
chrome.windows.update((m.detail && m.detail.windowid), { drawAttention: true, focused: true, state: "maximized" });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
chrome.runtime.onMessage.addListener(function (m, sender) {
|
||||||
|
if (!m || !m.action)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (m.action === "attention" && sender.tab) {
|
||||||
|
chrome.tabs.update((m.detail && m.detail.tabid) || sender.tab.id, { active: true, highlighted: true });
|
||||||
|
chrome.windows.update((m.detail && m.detail.windowid), { drawAttention: true, focused: true, state: "maximized" });
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return new notify();
|
return new notify();
|
||||||
@ -428,12 +437,21 @@ var CFG_MANGER = (function () {
|
|||||||
return url.replace(qtc, escape(ntc));
|
return url.replace(qtc, escape(ntc));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function parseCookies(v) {
|
||||||
|
var arr = {};
|
||||||
|
v.split('; ').forEach(function (x) { var idx = x.indexOf("="); arr[x.substr(0, idx)] = x.substr(idx + 1); });
|
||||||
|
return arr;
|
||||||
|
};
|
||||||
|
|
||||||
function processRequest(details) {
|
function processRequest(details) {
|
||||||
var url = details.url;
|
var url = details.url;
|
||||||
|
|
||||||
var skipBlacklist = !CFG_MANGER.config.blockDynamicJs;
|
var skipBlacklist = !CFG_MANGER.config.blockDynamicJs;
|
||||||
var newHeaders = {};
|
var newHeaders = {};
|
||||||
|
|
||||||
|
var newCookies = null;
|
||||||
|
var oldCookiesValue = null;
|
||||||
|
|
||||||
for (var i = 0; i < details.requestHeaders.length; ++i) {
|
for (var i = 0; i < details.requestHeaders.length; ++i) {
|
||||||
var h = details.requestHeaders[i];
|
var h = details.requestHeaders[i];
|
||||||
var name = h.name;
|
var name = h.name;
|
||||||
@ -446,13 +464,21 @@ var CFG_MANGER = (function () {
|
|||||||
} else if (h.name == "Referer") {
|
} else if (h.name == "Referer") {
|
||||||
if (!newHeaders["Referer"] && value.indexOf("12306.cn") != -1)
|
if (!newHeaders["Referer"] && value.indexOf("12306.cn") != -1)
|
||||||
newHeaders["Referer"] = value;
|
newHeaders["Referer"] = value;
|
||||||
} else if (name.indexOf("Fish-") != -1) {
|
} else if (name === "Cookie") {
|
||||||
|
oldCookiesValue = value;
|
||||||
|
newHeaders["Cookie"] = value;
|
||||||
|
} else if (name.indexOf("Fish-") !== -1) {
|
||||||
name = name.substr(5);
|
name = name.substr(5);
|
||||||
if (!value) {
|
|
||||||
if (newHeaders[name])
|
if (name === "Cookie") {
|
||||||
delete newHeaders[name];
|
newCookies = parseCookies(value);
|
||||||
} else {
|
} else {
|
||||||
newHeaders[name] = value;
|
if (!value) {
|
||||||
|
if (newHeaders[name])
|
||||||
|
delete newHeaders[name];
|
||||||
|
} else {
|
||||||
|
newHeaders[name] = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
skipBlacklist = true;
|
skipBlacklist = true;
|
||||||
} else if (!newHeaders[name]) {
|
} else if (!newHeaders[name]) {
|
||||||
@ -460,6 +486,14 @@ var CFG_MANGER = (function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (newCookies) {
|
||||||
|
var oc = parseCookies(oldCookiesValue);
|
||||||
|
newCookies = _.extend({}, oc, newCookies);
|
||||||
|
newHeaders["Cookie"] = _.map(newCookies, function (v, k) {
|
||||||
|
return k + "=" + encodeURIComponent((v));
|
||||||
|
}).join("; ");
|
||||||
|
}
|
||||||
|
|
||||||
var headerCollection = [];
|
var headerCollection = [];
|
||||||
for (var i in newHeaders) {
|
for (var i in newHeaders) {
|
||||||
headerCollection.push({ name: i, value: newHeaders[i] });
|
headerCollection.push({ name: i, value: newHeaders[i] });
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
"description": "12306订票助手 v7: 帮您订票的小助手 by 木鱼,全力为您的车票购买献计献策!",
|
"description": "12306订票助手 v7: 帮您订票的小助手 by 木鱼,全力为您的车票购买献计献策!",
|
||||||
"key": "7k6gnXVACvUPU2DfslJgSrWJTHqIg5uwd+Kgl/5zSg==",
|
"key": "7k6gnXVACvUPU2DfslJgSrWJTHqIg5uwd+Kgl/5zSg==",
|
||||||
"name": "猎豹抢票党/12306订票助手 V7",
|
"name": "猎豹抢票党/12306订票助手 V7",
|
||||||
"version": "7.1.1",
|
"version": "7.2.1",
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"icons": {
|
"icons": {
|
||||||
"16": "icons/icon_16.png",
|
"16": "icons/icon_16.png",
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
var parser = require("../platform/parser.js");
|
var parser = require("../platform/parser.js");
|
||||||
var ev = require("../platform/EventObject.js");
|
var ev = require("../platform/EventObject.js");
|
||||||
|
|
||||||
|
var extensionVersion = parseInt(document.body.dataset["targetExtensionVersion"].replace(/\./g, ""));
|
||||||
|
|
||||||
exports.events = new ev();
|
exports.events = new ev();
|
||||||
|
|
||||||
//记录参数
|
//记录参数
|
||||||
@ -148,7 +150,7 @@
|
|||||||
return trainData;
|
return trainData;
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.queryTicket = function (from, to, date, student, noProcess, noAction) {
|
exports.queryTicket = function (from, fromName, to, toName, date, student, resign, noProcess, noAction) {
|
||||||
var def = new $.Deferred();
|
var def = new $.Deferred();
|
||||||
var queryCount = 0;
|
var queryCount = 0;
|
||||||
|
|
||||||
@ -163,6 +165,19 @@
|
|||||||
"leftTicketDTO.to_station": to,
|
"leftTicketDTO.to_station": to,
|
||||||
"purpose_codes": student ? "0X00" : "ADULT"
|
"purpose_codes": student ? "0X00" : "ADULT"
|
||||||
};
|
};
|
||||||
|
var cookie = (function (obj) { var arr = [];
|
||||||
|
_.forEach(obj, function (v, k) { arr.push(k + '=' + v); });
|
||||||
|
return arr.join("; ");
|
||||||
|
})(extensionVersion >= 720 ? {
|
||||||
|
"_jc_save_fromStation": escape(fromName + "," + from),
|
||||||
|
"_jc_save_toStation": escape(toName + "," + to),
|
||||||
|
"_jc_save_fromDate": date,
|
||||||
|
"_jc_save_toDate": date,
|
||||||
|
"_jc_save_wfdc_flag": resign ? "gc" : "dc"
|
||||||
|
} : {});
|
||||||
|
if (isLogOpen) {
|
||||||
|
exports.log(p, cookie);
|
||||||
|
}
|
||||||
ajax.sendGet(queryTicketUrl, "leftTicket/init", p, "json", function () {
|
ajax.sendGet(queryTicketUrl, "leftTicket/init", p, "json", function () {
|
||||||
//url changed?
|
//url changed?
|
||||||
if (!this.model.status && this.model.c_url) {
|
if (!this.model.status && this.model.c_url) {
|
||||||
@ -183,6 +198,8 @@
|
|||||||
def.reject("重试次数过多,请重新点击查询按钮");
|
def.reject("重试次数过多,请重新点击查询按钮");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}, false, {
|
||||||
|
"Cookie": cookie
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
var fetchTicketUrl = function () {
|
var fetchTicketUrl = function () {
|
||||||
@ -217,11 +234,17 @@
|
|||||||
return def.promise();
|
return def.promise();
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.log = function (data) {
|
exports.log = function (data, cookies) {
|
||||||
if (!isLogOpen || (lastLogTime && (new Date() - lastLogTime) < 5000))
|
if (!isLogOpen || (lastLogTime && (new Date() - lastLogTime) < 5000))
|
||||||
return;
|
return;
|
||||||
lastLogTime = new Date();
|
lastLogTime = new Date();
|
||||||
ajax.sendGet("leftTicket/log", "leftTicket/init", data, "json");
|
ajax.sendGet("leftTicket/log", "leftTicket/init", data, "json", function() {
|
||||||
|
|
||||||
|
},function() {
|
||||||
|
|
||||||
|
}, false, {
|
||||||
|
"Cookie": cookies
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.queryTrainStop = function (id, from, to, date) {
|
exports.queryTrainStop = function (id, from, to, date) {
|
||||||
|
@ -120,7 +120,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
var t = serverSuggestion.pop();
|
var t = serverSuggestion.pop();
|
||||||
query.queryTicket(t.fromCode, t.toCode, t.date, cp.studentTicket, false, true)
|
query.queryTicket(t.fromCode, t.fromText, t.toCode, t.toText, t.date, cp.studentTicket, false, false, true)
|
||||||
.done(function () {
|
.done(function () {
|
||||||
loaded.unshift(t);
|
loaded.unshift(t);
|
||||||
|
|
||||||
@ -235,6 +235,10 @@
|
|||||||
var ctx = {
|
var ctx = {
|
||||||
TSS: new TSS(),
|
TSS: new TSS(),
|
||||||
setQueryResult: function (result, queryCount) {
|
setQueryResult: function (result, queryCount) {
|
||||||
|
//改签或学生票,忽略
|
||||||
|
if (cp.reisgn || cp.studentTicket)
|
||||||
|
return;
|
||||||
|
|
||||||
ctx.TSS.setQueryResult(result, queryCount);
|
ctx.TSS.setQueryResult(result, queryCount);
|
||||||
},
|
},
|
||||||
clearQueryResultCache: function () {
|
clearQueryResultCache: function () {
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
exports.notify = function (title, content) {
|
exports.notify = function (title, content) {
|
||||||
port.sendMessage({ action: "notify", title: title, content: content });
|
port.sendMessage({ action: "notify", title: title, content: content });
|
||||||
|
port.sendMessage({ action: "attention" });
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#btn_stop_sound").click(exports.stop);
|
$("#btn_stop_sound").click(exports.stop);
|
||||||
|
@ -16,7 +16,7 @@ define(function (require, exports, module) {
|
|||||||
if (url[4] === ":" || url[5] === ":") return url;
|
if (url[4] === ":" || url[5] === ":") return url;
|
||||||
return config.baseUri + url;
|
return config.baseUri + url;
|
||||||
};
|
};
|
||||||
this.send = function (method, url, refer, data, responseType, done, failed, appendatt) {
|
this.send = function (method, url, refer, data, responseType, done, failed, appendatt, headers) {
|
||||||
var def = new $.Deferred();
|
var def = new $.Deferred();
|
||||||
|
|
||||||
if (appendatt) {
|
if (appendatt) {
|
||||||
@ -30,7 +30,8 @@ define(function (require, exports, module) {
|
|||||||
timeout: 120000,
|
timeout: 120000,
|
||||||
type: method,
|
type: method,
|
||||||
dataType: responseType,
|
dataType: responseType,
|
||||||
refer: that.getFullUri(refer)
|
refer: that.getFullUri(refer),
|
||||||
|
headers: headers
|
||||||
};
|
};
|
||||||
|
|
||||||
var e = new CustomEvent("ajaxproxy", { detail: { data: xhrData, index: ajaxCount++ }, cancelable: true });
|
var e = new CustomEvent("ajaxproxy", { detail: { data: xhrData, index: ajaxCount++ }, cancelable: true });
|
||||||
@ -77,7 +78,7 @@ define(function (require, exports, module) {
|
|||||||
|
|
||||||
return def;
|
return def;
|
||||||
};
|
};
|
||||||
this.sendGet = function (url, refer, data, responseType, done, failed, appendatt) {
|
this.sendGet = function (url, refer, data, responseType, done, failed, appendatt, headers) {
|
||||||
/// <summary>以GET模式发送AJAX请求</summary>
|
/// <summary>以GET模式发送AJAX请求</summary>
|
||||||
/// <param name="url">要请求的地址</param>
|
/// <param name="url">要请求的地址</param>
|
||||||
/// <param name="refer">请求的引用地址</param>
|
/// <param name="refer">请求的引用地址</param>
|
||||||
@ -85,9 +86,9 @@ define(function (require, exports, module) {
|
|||||||
/// <param name="responseType">要请求的地址</param>
|
/// <param name="responseType">要请求的地址</param>
|
||||||
/// <param name="done">完成请求的回调</param>
|
/// <param name="done">完成请求的回调</param>
|
||||||
/// <param name="failed">请求失败的回调</param>
|
/// <param name="failed">请求失败的回调</param>
|
||||||
return that.send("GET", url, refer, data, responseType, done, failed, appendatt);
|
return that.send("GET", url, refer, data, responseType, done, failed, appendatt, headers);
|
||||||
};
|
};
|
||||||
this.sendPost = function (url, refer, data, responseType, done, failed, appendatt) {
|
this.sendPost = function (url, refer, data, responseType, done, failed, appendatt, headers) {
|
||||||
var args = [].slice.call(arguments);
|
var args = [].slice.call(arguments);
|
||||||
args.unshift("POST");
|
args.unshift("POST");
|
||||||
return that.send.apply(this, args);
|
return that.send.apply(this, args);
|
||||||
|
@ -354,7 +354,7 @@
|
|||||||
|
|
||||||
queryLoadingRow.show();
|
queryLoadingRow.show();
|
||||||
queryErrorRow.hide();
|
queryErrorRow.hide();
|
||||||
query.queryTicket(cp.fromCode, cp.toCode, cp.depDate, cp.studentTicket, true)
|
query.queryTicket(cp.fromCode, cp.fromText, cp.toCode, cp.toText, cp.depDate, cp.studentTicket, cp.resign || false, true)
|
||||||
.done(function () {
|
.done(function () {
|
||||||
traindata = this;
|
traindata = this;
|
||||||
if (!this.original.length) {
|
if (!this.original.length) {
|
||||||
|
@ -50,12 +50,15 @@
|
|||||||
this.clear = function () {
|
this.clear = function () {
|
||||||
$("#result").empty();
|
$("#result").empty();
|
||||||
};
|
};
|
||||||
this.load = function (ui, from, to, date, stu) {
|
this.load = function (ui, from, fromText, to, toText, date, stu, resign) {
|
||||||
ui = ui === undefined ? true : ui;
|
ui = ui === undefined ? true : ui;
|
||||||
from = from || sessMgr.currentProfile.fromCode;
|
from = from || sessMgr.currentProfile.fromCode;
|
||||||
|
fromText = fromText || sessMgr.currentProfile.fromText;
|
||||||
to = to || sessMgr.currentProfile.toCode;
|
to = to || sessMgr.currentProfile.toCode;
|
||||||
|
toText = toText || sessMgr.currentProfile.toText;
|
||||||
date = date || sessMgr.currentProfile.depDate;
|
date = date || sessMgr.currentProfile.depDate;
|
||||||
stu = stu || sessMgr.currentProfile.studentTicket;
|
stu = stu || sessMgr.currentProfile.studentTicket;
|
||||||
|
resign = resign || sessMgr.currentProfile.resign || false;
|
||||||
|
|
||||||
if (!from || !to || !date) {
|
if (!from || !to || !date) {
|
||||||
mp.showMessagePopup("error", "亲,还没有设置查询的条件哦。");
|
mp.showMessagePopup("error", "亲,还没有设置查询的条件哦。");
|
||||||
@ -73,7 +76,7 @@
|
|||||||
tip.show();
|
tip.show();
|
||||||
}
|
}
|
||||||
ticketQuery
|
ticketQuery
|
||||||
.queryTicket(from, to, date, stu)
|
.queryTicket(from, fromText, to, toText, date, stu, resign)
|
||||||
.done(function () {
|
.done(function () {
|
||||||
if (tip) {
|
if (tip) {
|
||||||
tip.setState("ok", "完成...");
|
tip.setState("ok", "完成...");
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
|
|
||||||
var tip = new mp.MessagePopup("loading", "正在查询中,请稍等...");
|
var tip = new mp.MessagePopup("loading", "正在查询中,请稍等...");
|
||||||
tip.show();
|
tip.show();
|
||||||
query.queryTicket(sessMgr.currentProfile.fromCode, sessMgr.currentProfile.toCode, utility.formatDate(data.maxDate, 'yyyy-MM-dd'), sessMgr.currentProfile.studentTicket, true)
|
query.queryTicket(sessMgr.currentProfile.fromCode, sessMgr.currentProfile.fromText, sessMgr.currentProfile.toCode, sessMgr.currentProfile.toText, utility.formatDate(data.maxDate, 'yyyy-MM-dd'), sessMgr.currentProfile.studentTicket, sessMgr.currentProfile.resign || false, true)
|
||||||
.done(function () {
|
.done(function () {
|
||||||
tip.setState("ok", "查询成功!");
|
tip.setState("ok", "查询成功!");
|
||||||
tip.close();
|
tip.close();
|
||||||
|
Loading…
Reference in New Issue
Block a user