msgbartop
PHP语言, PHP扩展, Zend引擎相关的研究,技术,新闻分享 – 左手代码 右手诗
msgbarbottom

10 May 09 东方时尚约车脚本(greaseMoney)

因为东方时尚改版, 请参看约车脚本2.0

约车辛苦啊, 不停的刷新。。。
刚看到有车, 一点又没了,,,

愤怒之下, 写了个自动刷新脚本, 自动帮你约车.
可以定义多个需要预订的时段~~

脚本可以无人值守…

享受吧~~ 呵呵

安装地址: dffs booking script

代码如下:

// ==UserScript==
// @name           dffs_booking_script
// @namespace      dffs.booking
// @include        http://yueche.dfss.cn/web/cmp/yc.aspx?StudentID=0942978
// @version		   1.0.3
// @author		   laruence<laruence at yahoo.com.cn>
// @copyright	   Copyright (c) 2009  laruence , All rights Reserved
// ==/UserScript==
//

/**
 * monday = 1, sunday = 0
 * 7:00-9:00 = 1, 19:00-21:00 = 5 ,
 * [ [5, 5], [6, 1] ] 的意思是, 我要预约星期5晚上19点到21点,
 * 和星期六7点到9点,
 * 修改这个为你想要的时段吧
 */
var expect_period = [
[6, 1], [6, 2],
[0, 1], [0, 2], [0, 3], [0, 4],[0, 5]
];	 

//每次请求之间的延迟, 不用太短, 机器会郁闷的。
var delay = 10; //5秒
//

var START = true;
var delegate = function(expect_period) {
	var day_map 	= ['日', '一', '二', '三', '四', '五', '六'];
	var period_map	= ['7-9', '9-13', '13-17', '17-19', '19-21'];
	var url			= window.location.href;
	var book_day 	= [];
	var book_period = [];
	var self		= this;
	var time		= new Date();
	var today		= time.getDay();

	for ( var key in expect_period ) {
		book_day[key]  	  = day_map[expect_period[key][0]];
		book_period[key]  = period_map[expect_period[key][1] -1];
	}

	if( typeof delegate.__initilized__ == 'undefined' ) {
		delegate.prototype.init  = function(flag) {
			var x = document.createElement("div");
			var btn = null;
			x.id = "m-btn-o";
			x.innerHTML = "<style>#m-btn-o{border:solid 2px red;background-color:#ccc;left:740px;top:110px;position:absolute;}</style>";
			document.body.appendChild(x);
			if ( flag ) {
				x.innerHTML += "<button id='m-btn'>开始约车</button>";
				btn = document.getElementById("m-btn");
				btn.addEventListener("click", function() {
						window.location.replace(url + '&automatic_booking=1');
				}, false);
			} else {
				x.innerHTML += "<button id='m-btn'>停止</button>";
				btn = document.getElementById("m-btn");
				btn.addEventListener('click', function() {
							window.location.replace(url.replace('&automatic_booking=1', ''));
						}, false);
				setTimeout( function() {
					self.start();
				},  2000);
			}
		}

		delegate.prototype.start = function() {
			/*
			GM_xmlhttpRequest( {
				method : "GET",
				url : url,
				onload : function(o) {
					var text = o.responseText;
					self.isAvailable(text);
				},
				onerror : function(e) {
					GM_log("Error occurred");
				}
			});
			*/
			var text = document.getElementById('gridgrid_div').innerHTML;
			self.isAvailable(text);
		}
		delegate.prototype.isAvailable = function(text){
			for ( var i=0, l=expect_period.length; i<l; i++ ) {
					var expect_day	= expect_period[i][0];
					expect_day		= ((expect_day - today) + 7) % 7;
					var id = "grid_grid_ci_0_" + expect_period[i][1] + "_" + expect_day	+ "_imgButton";
					var input = null;
					if( (input = document.getElementById(id) )
							&& input.src.indexOf('02.gif') != -1 ) {
						/**
						 * igtbl functions
						 * defined in ig_WebGrid.js line 2477
						 */
						var grid = unsafeWindow.igtbl_getGridById('gridgrid');
						var cellId = "gridgridrc_" + expect_day + "_" + expect_period[i][1];
						var cell   = unsafeWindow.igtbl_getCellById(cellId);
 						grid.setActiveCell(cell); // important
						var evt = document.createEvent("MouseEvents");
						evt.initEvent("click", true, true);
						input.dispatchEvent(evt);
						return true;
					}
				}
				url	+= (url.indexOf("automatic_booking") != -1) ?  '' : '&automatic_booking=1';
				window.location.replace(url);
		}
		delegate.__initilized__ = true;
	}
}

window.addEventListener('load',  function() {
	var agent = new delegate(expect_period);
	if ( window.location.href.indexOf('automatic_booking=1') != -1 ) {
		agent.init(!START);
	} else {
		agent.init(START);
	}
}, false);

使用方法, 使用firefox, 并且安装greaseMonkey插件。 对这个不明白, 可以问问google, 他知道.


分享到:



Random Posts:

16 Responses to “东方时尚约车脚本(greaseMoney)”

Pages: [2] 1 » Show All

  1. 东方时尚约车脚本(greaseMoney)V2.0 | 风雪之隅 |

    [...] 原来的脚本不能用了. 马上有人要报名了, [...]

  2. 雷恩 |

    看到大哥的贴子相当兴奋,心想总算看到了约车的希望了。可是俺是新手,不会玩这么高的技术,能不能送佛送到西,再详尽一点?我已经装了插件,也安装了脚本(点击了您提供的地址),接着应该是要改代码了吧?就这一步不会…

  3. 雪候鸟 |

    @tangtang dfsf改版了,,我也没有账户可以测试修改… 所以不能用了.

  4. tangtang |

    怎么我用了也没效果呢?还请赐教呀!!

  5. Fisher |

    老大?为啥我测试了2.0-3.0-3.5三个版本的FF,始终没有见到过其自动刷新的效果呢?多谢,敬请指教:)

    yuningilike@163.com

  6. 儿童游戏 |

    路过,顺便顶下

Pages: [2] 1 » Show All

Leave a Reply

*