-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpre-draft-rankings.js
119 lines (104 loc) · 3.31 KB
/
pre-draft-rankings.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// ==UserScript==
// @name Yahoo fantasy baseball Player Pre-draft ranker
// @namespace com.yahoo.fantasy.baseball
// @description Uses data from LastPlayerPicked to sort players
// @include https://baseball.fantasysports.yahoo.com/b1/145467/1/editprerank
// @version 1
// @grant GM_xmlhttpRequest
// @grant GM_registerMenuCommand
// @require http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js
// @require http://cdnjs.cloudflare.com/ajax/libs/q.js/0.9.2/q.js
// ==/UserScript==
var priceGuideURL = "http://priceguide.herokuapp.com/index.php?t=16&l=MLB&m=260&b=1&ds=17A&dis=600&spl=&hs=70&ps=30&R=Y&RBI=Y&OBP=Y&BB=Y&TB=Y&ERA=Y&WHIP=Y&PHR=Y&K9=Y&KBB=Y&IP=Y&C=1&1B=1&2B=1&3B=1&SS=1&OF=0&LF=1&CF=1&RF=1&CI=0&MI=1&IF=0&Util=1&mg=10&SP=6&RP=3&P=0&ms=5&mr=5&o=S";
//== Utility functions
function PlayerClass(_id, _price) {
this.Id = _id;
this.Price = _price;
}
function playerPriceSortDesc(a, b) {
if (Number(a.Price) > Number(b.Price)) {
return -1;
}
if (Number(a.Price) < Number(b.Price)) {
return 1;
}
return 0;
}
function logException(ex) {
console.log("===Exception Occurred===");
console.log(ex.message);
}
//== Register menu action
GM_registerMenuCommand("Set Draft Order", main);
//== Main
function main(){
console.log("main...");
getPlayers()
.then(buildPlayersHash)
.then(populatePrices)
.fail(logException)
.done();
}
function getPlayers(){
console.log("getPlayers...");
var deferred = Q.defer();
try {
GM_xmlhttpRequest({
method : 'GET',
url : priceGuideURL,
onload : deferred.resolve,
onerror : deferred.reject
});
} catch (ex) {
deferred.reject(ex);
}
return deferred.promise;
}
function buildPlayersHash(playersCSV) {
console.log("buildPlayersHash...");
var players = [];
var playerValues = playersCSV.response.split("\n");
var dollarValueIndex = 3;
var yahooPlayerIdIndex = 0;
for (var i = 0; i < playerValues.length - 1; i++) {
var player = playerValues[i].split(",");
var dollarValue = 0;
if (!isNaN(player[dollarValueIndex])) {
dollarValue = Number(player[dollarValueIndex]).toFixed(0);
}
if (player[yahooPlayerIdIndex] !== '') {
players.push(new PlayerClass(player[yahooPlayerIdIndex], dollarValue));
}
/*
if (players.length <= 10) {
console.log("playerID: " + player[0] + " || value: " + dollarValue);
}
*/
}
return players;
}
function populatePrices(players) {
console.log("populatePrices...");
var playerMatch = /.*sports\.yahoo\.com\/mlb\/players\/(\d\d\d\d)$/;
var stopAt = 50;
//movePlayers(players, stopAt);
}
function movePlayers(players, stopAt){
var blockCount = 50;
//console.log("stopAt: " + stopAt);
if(stopAt > 800) {
console.log("stopping....");
return;
}
var sortedPlayersDesc = players.sort(playerPriceSortDesc);
var filteredList = sortedPlayersDesc.slice(stopAt-blockCount, stopAt);
$.each(filteredList, function (index, player) {
//console.log("player.id: " + player.id + " || price: " + player.Price + " || index: " + index);
$("#all_player_list")
.find("div[data-playerid="+ player.Id +"]")
.children("div")
.children("span:nth-child(2)")
.trigger( "click" );
});
setTimeout(movePlayers(players, stopAt+blockCount), 5000);
}