| /* | |
| 12306 Auto Submit => A javascript snippet to help you auto submit. | |
| Copyright (C) 2011 Kevintop | |
| Includes jQuery | |
| Copyright 2011, John Resig | |
| Dual licensed under the MIT or GPL Version 2 licenses. | |
| http://jquery.org/license | |
| Includes 12306.user.js | |
| https://gist.github.com/1554666 | |
| Copyright (C) 2011 Jingqin Lynn | |
| Released GNU Licenses. | |
| This program is free software: you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation, either version 3 of the License, or | |
| (at your option) any later version. | |
| This program is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU General Public License for more details. | |
| You should have received a copy of the GNU General Public License | |
| along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| */ | |
| // ==UserScript== | |
| // @name 12306 Auto Submit | |
| // @author kevintop@gmail.com | |
| // @namespace https://plus.google.com/107416899831145722597/none | |
| // @description A javascript snippet to help you auto login 12306.com | |
| // @include *://dynamic.12306.cn/otsweb/order/confirmPassengerAction.do* | |
| // ==/UserScript== | |
| function withjQuery(callback, safe){ | |
| if(typeof(jQuery) == "undefined") { | |
| var script = document.createElement("script"); | |
| script.type = "text/javascript"; | |
| script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"; | |
| if(safe) { | |
| var cb = document.createElement("script"); | |
| cb.type = "text/javascript"; | |
| cb.textContent = "jQuery.noConflict();(" + callback.toString() + ")(jQuery);"; | |
| script.addEventListener('load', function() { | |
| document.head.appendChild(cb); | |
| }); | |
| } | |
| else { | |
| var dollar = undefined; | |
| if(typeof($) != "undefined") dollar = $; | |
| script.addEventListener('load', function() { | |
| jQuery.noConflict(); | |
| $ = dollar; | |
| callback(jQuery); | |
| }); | |
| } | |
| document.head.appendChild(script); | |
| } else { | |
| callback(jQuery); | |
| } | |
| } | |
| withjQuery(function($){ | |
| var userInfoUrl = 'https://dynamic.12306.cn/otsweb/sysuser/user_info.jsp'; | |
| //var userInfoUrl = 'https://dynamic.12306.cn/otsweb/order/myOrderAction.do?method=queryMyOrderNotComplete&leftmenu=Y'; | |
| var count = 1; | |
| function submitForm(){ | |
| jQuery.ajax({ | |
| url: $("#confirmPassenger").attr('action'), | |
| data: $('#confirmPassenger').serialize(), | |
| type: "POST", | |
| timeout: 30000, | |
| success: function(msg) | |
| { | |
| //Refresh token | |
| var match = msg && msg.match(/org\.apache\.struts\.taglib\.html\.TOKEN['"]?\s*value=['"]?([^'">]+)/i); | |
| var newToken = match && match[1]; | |
| if(newToken) { | |
| $("input[name='org.apache.struts.taglib.html.TOKEN']").val(newToken); | |
| } | |
| if( msg.indexOf('payButton') > -1 ) { | |
| //Success! | |
| alert("车票预订成功,恭喜!"); | |
| window.location.replace(userInfoUrl); | |
| return; | |
| } | |
| var reTryMessage = ['用户过多','确认客票的状态后再尝试后续操作','请不要重复提交']; | |
| for (var i = reTryMessage.length - 1; i >= 0; i--) { | |
| if( msg.indexOf( reTryMessage[i] ) > -1 ) { | |
| reSubmitForm(); | |
| return; | |
| } | |
| }; | |
| //Parse error message | |
| msg = msg.match(/var\s+message\s*=\s*"([^"]*)/); | |
| stop(msg && msg[1] || '出错了。。。。 啥错? 我也不知道。。。。。'); | |
| }, | |
| error: function(msg){ | |
| reSubmitForm(); | |
| } | |
| }); | |
| }; | |
| function reSubmitForm(){ | |
| count ++; | |
| $('#refreshButton').html("("+count+")次自动提交中..."); | |
| setTimeout(submitForm, 500); | |
| } | |
| //初始化 | |
| if($("#refreshButton").size()<1){ | |
| $(".tj_btn").append($("<a href='#' style='padding: 5px 10px; background: #2CC03E;border-color: #259A33;border-right-color: #2CC03E;border-bottom-color:#2CC03E;color: white;border-radius: 5px;text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.2);'/>").attr("id", "refreshButton").html("自动提交订单").click(function() { | |
| alert('开始自动提交订单,请点确定后耐心等待!'); | |
| count = 1; | |
| $(this).html("(1)次自动提交中..."); | |
| if(window.submit_form_check && !submit_form_check("confirmPassenger") ) { | |
| return; | |
| } | |
| submitForm(); | |
| return false; | |
| })); | |
| alert('如果使用自动提交订单功能,请在确认订单正确无误后,再点击自动提交按钮!'); | |
| } | |
| }, true); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment