// ==UserScript== | |
// @name 露天拍賣登入便(可自動登入) | |
// @namespace wsmwason.ruten.easylogin | |
// @description 在露天拍賣(www.ruten.com.tw)登入時,可使用 Enter 直接登入,免去辨識圖片登入按鈕位置,亦可修改本 Script 輸入帳號密碼進行自動登入。 | |
// @include https://member.ruten.com.tw/* | |
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js | |
// @version 1.0 | |
// @auther wsmwason | |
// @grant none | |
// @downloadURL none | // ==/UserScript==<< |
/** | |
* Update: | |
* 2014/12/19 | |
* | |
* Authors: | |
* 露天拍賣的登入實際上需要 Captcha 的驗證,只是做成了圖片位置座標變換, | |
* 需要以肉眼判斷座標位置,此 Script 使用 HTML5 canvas 讀取圖片位置, | |
* 將可透過 Enter 直接進行登入。 | |
* 這年頭了露天拍賣居然還可以使用 big5 撐到現在,實在厲害。 | |
* | |
* Changelog: | |
* | |
* 2014/12/19 Ver 1.0 | |
* -- 改放 GitHub 同步更新 | |
* | |
* 2014/10/15 Ver 1.0 | |
* -- 更新 2014/10 新版露天 Captcha 驗證方式 | |
* -- 引用 jquery 1.7.2 | |
* | |
* 2014/06/14 Ver 0.6 | |
* -- 改放 Greasy Fork | |
* | |
* 2012/06/22 Ver 0.5 | |
* -- 提供露天拍賣自動登入 | |
* -- 提供露天拍賣免辨識圖片登入按鈕位置直接以 Enter 登入 | |
*/ | |
// 設定帳號 | |
var userName = ''; | |
// 設定密碼 | |
var passWord = ''; | |
// 設定是否自動登入 | |
var autoLogin = false; | |
// 取消一些沒用的檢查 | |
var overwriteScriptCode = new Array(); | |
overwriteScriptCode = [ | |
'function noenter(event){ return true; }', | |
'function img_reload(){ }' | |
]; | |
var script = document.createElement('script'); | |
script.innerHTML = overwriteScriptCode.join('\n'); | |
document.getElementsByTagName('head')[0].appendChild(script); | |
// 讀取驗證圖片寫入 Captcha | |
var captchaX, captchaY = 0; | |
var img = new Image(); | |
var context; | |
var canvas = document.createElement('canvas'); | |
img.onload = function() { | |
canvas.width = img.width; | |
canvas.height = img.height; | |
canvas.getContext('2d').drawImage(img, 0, 0); | |
context = canvas.getContext("2d") | |
context.drawImage(img, 0, 0); | |
var imageData = context.getImageData(0, 0, canvas.width, canvas.height); | |
var findPixel = false; | |
for(x=0;x<=canvas.width;x++){ | |
if(findPixel==true) break; | |
for(y=0;y<=canvas.height;y++){ | |
var index = (y*imageData.width + x) * 4; | |
var red = imageData.data[index]; | |
var green = imageData.data[index + 1]; | |
var blue = imageData.data[index + 2]; | |
var alpha = imageData.data[index + 3]; | |
if(red==4 && green==2 && blue==4 && alpha==255){ | |
captchaX = x; | |
captchaY = y; | |
findPixel = true; | |
break; | |
} | |
} | |
} | |
$('#btn_login').after('<input type="hidden" name="btn_login.x" value="'+captchaX+'" />'); | |
$('#btn_login').after('<input type="hidden" name="btn_login.y" value="'+captchaY+'" />'); | |
if(userName!='' && passWord!='' && autoLogin==true){ | |
var $form = $('form[name="main"]'); | |
$form.attr('action', 'login.php?refer=https%3A%2F%2Fmember.ruten.com.tw%2Fuser%2Flogin.htm'); | |
$form.submit(); | |
} | |
}; | |
// 2014/10 版本 captcha 方式 | |
$.ajax({ | |
url: 'image_key.php', | |
dataType: 'json', | |
success: function(data){ | |
$('#userid').focus(); | |
$('#captcha').val(data.key); | |
$('#btn_login').attr('src', 'image.php?key='+data.key); | |
img.src = 'image.php?key='+data.key; | |
} | |
}); |