-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathgetLeagueData.js
136 lines (128 loc) · 3.9 KB
/
getLeagueData.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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/**
* Gets the league information from Yahoo to save the info to a sheet
*/
function getLeagueData() {
console.log(`getting League data`)
let ss = SpreadsheetApp.openById(GLOBALS.sheetId);
let leagueDataSheet = ss.getSheetByName("LeagueData");
if(!leagueDataSheet){
ss.insertSheet("LeagueData", 1);
let leagueDataSheet = ss.getSheetByName("LeagueData");
}
let service = getService();
if (service.hasAccess()) {
let response
leagueDataSheet.clear();
let url = `https://fantasysports.yahooapis.com/fantasy/v2/league/${yearId}.l.${GLOBALS.leagueId}`;
try{
response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + service.getAccessToken()
}
});
}
catch(e){
Logger.log(e)
}
let xml = response.getContentText();
let json = XML_to_JSON(xml);
Logger.log(JSON.stringify(json))
let keys = Object.keys(json.fantasy_content.league);
leagueDataSheet.appendRow(keys)
let leagueData = json.fantasy_content.league;
let leagueValues = [];
for (let i=0;i<keys.length;i++){
leagueValues.push(leagueData[keys[i]].Text);
}
leagueDataSheet.appendRow(leagueValues)
}
else{
showSidebar();
}
}
/**
* Gets the roster positions for your League
*/
function getRosterData() {
console.log(`getting roster data`)
let ss = SpreadsheetApp.openById(GLOBALS.sheetId);
let rosterInfoSheet = ss.getSheetByName("Roster Info");
if(!rosterInfoSheet){
ss.insertSheet("Roster Info", 2);
let rosterInfoSheet = ss.getSheetByName("Roster Info");
}
let service = getService();
if (service.hasAccess()) {
let response
rosterInfoSheet.clear();
let url = `https://fantasysports.yahooapis.com/fantasy/v2/league/${yearId}.l.${GLOBALS.leagueId}/settings`;
try{
response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + service.getAccessToken()
}
});
}
catch(e){
Logger.log(e)
}
let xml = response.getContentText();
let json = XML_to_JSON(xml);
let keys = Object.keys(json.fantasy_content.league.settings.roster_positions);
rosterInfoSheet.appendRow(["Position", "Number of"]);
let rosterData = json.fantasy_content.league.settings.roster_positions.roster_position;
for (let i=0;i<rosterData.length;i++){
let rosterValues = [];
rosterValues.push(rosterData[i].position.Text,rosterData[i].count.Text);
rosterInfoSheet.appendRow(rosterValues)
}
}
else{
showSidebar();
}
}
/**
* Gets the Statistics keys and names of statistics for your league
*/
function getStatKeys(){
console.log(`getting stats data`)
let ss = SpreadsheetApp.openById(GLOBALS.sheetId);
let statKeysSheet = ss.getSheetByName("Stat Keys");
if(!statKeysSheet){
ss.insertSheet("Stat Keys", 3);
let statKeysSheet = ss.getSheetByName("Stat Keys");
}
let service = getService();
if (service.hasAccess()) {
let response
statKeysSheet.clear();
let url = `https://fantasysports.yahooapis.com/fantasy/v2/league/${yearId}.l.${GLOBALS.leagueId}/settings`;
try{
response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + service.getAccessToken()
}
});
}
catch(e){
Logger.log(e)
}
let xml = response.getContentText();
let json = XML_to_JSON(xml);
Logger.log(JSON.stringify(json))
let keys = Object.keys(json.fantasy_content.league.settings.stat_categories.stats.stat[0]);
statKeysSheet.appendRow(keys);
let statKeysData = json.fantasy_content.league.settings.stat_categories.stats.stat;
//console.log(statKeysData)
for (let i=0;i<statKeysData.length;i++){
let statKeysValues = [];
for (let j=0;j<keys.length;j++){
statKeysValues.push(statKeysData[i][keys[j]].Text);
}
statKeysSheet.appendRow(statKeysValues)
}
}
else{
showSidebar();
}
}