Skip to content

Latest commit

 

History

History
183 lines (183 loc) · 6.17 KB

live.md

File metadata and controls

183 lines (183 loc) · 6.17 KB
layout title permalink meta
default
MCAMC Live Round
/mcamc/live/
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'], inlineMath: [['$','$']] } }); </script> <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
Authorize Sign Out
<script type="text/javascript"> var CLIENT_ID = '570864691277-5mrhsfgqd0in8tqn7jvfin3ocn9furga.apps.googleusercontent.com'; var API_KEY = 'AIzaSyCTlqgObl4U_BXEk3aJxi_R42tRH9128nw'; var SCOPES = "https://www.googleapis.com/auth/spreadsheets.readonly"; var authorizeButton = document.getElementById('authorize_button'); var signoutButton = document.getElementById('signout_button'); let tokenClient; let gapiInited; let gisInited; authorizeButton.style.visibility="hidden"; signoutButton.style.visibility="hidden"; authorizeButton.onclick = handleAuthClick; signoutButton.onclick = handleSignoutClick; function checkBeforeStart() { if (gapiInited && gisInited) { authorizeButton.style.visibility="visible"; signoutButton.style.visibility="visible"; } } function gapiInit() { gapi.client.init({}).then(function() { gapi.client.load('https://sheets.googleapis.com/$discovery/rest?version=v4'); gapiInited = true; checkBeforeStart(); }); } function gapiLoad() { gapi.load('client', gapiInit) } function gisInit() { tokenClient = google.accounts.oauth2.initTokenClient({ client_id: CLIENT_ID, scope: SCOPES, callback: '', }); gisInited = true; checkBeforeStart(); } function handleAuthClick(event) { tokenClient.callback = (resp) => { if (resp.error !== undefined) { throw(resp); } authorizeButton.style.visibility="hidden"; signoutButton.style.visibility="hidden"; listMajors(); } if (gapi.client.getToken() === null) { tokenClient.requestAccessToken({prompt: 'consent'}); } else { tokenClient.requestAccessToken({prompt: ''}); } } function handleSignoutClick(event) { let cred = gapi.client.getToken(); if (cred !== null) { google.accounts.oauth2.revoke(cred.access_token, () => {console.log('Revoked: ' + cred.access_token)}); gapi.client.setToken(''); } } function appendPre(message) { var pre = document.getElementById('content'); var textContent = document.createTextNode(message + '\n'); pre.appendChild(textContent); } function analyzeRow(row) { var rowData = {}; sum = row.slice(2, row.length).reduce((a, b) => parseInt(a) + parseInt(b)); rowData.score = sum; rowData.setsComplete = Math.floor(row.slice(2, row.length).filter(function(val) { return parseInt(val) !== 0; }).length/3); rowData.teamName = row[1]; rowData.teamNumber = row[0]; return rowData } var scores = []; function onOpenFunc() { PropertiesService.getScriptProperties().setProperty("accessToken", ScriptApp.getOAuthToken()); } function listMajors() { gapi.client.sheets.spreadsheets.values.get({ spreadsheetId: '17oX1WsQa5oSJfoEinkW8ZTIwkPDkF5mQI_s3LevkeLc', range: 'Data!2:44', }).then(function(response) { var range = response.result; if (range.values.length > 0) { for (i = 0; i < range.values.length; i++) { var row = range.values[i]; rowData = analyzeRow(row); scores[i] = []; scores[i][0] = rowData.teamNumber; scores[i][1] = rowData.teamName; scores[i][2] = rowData.score; scores[i][3] = rowData.setsComplete; } } }, function(response) {}); scores.sort(function(a,b) { return b[2] - a[2]}); var html = ""; var split = Math.round((scores.length/3)); for (var i = 0; i < split; i++) { html+=""; html+=""; html+=""; html+=""; html+=""; html+=""; } html+="
#Name         ScoreSets
"+scores[i][0]+""+scores[i][1]+""+""+scores[i][2]+""+scores[i][3]+"/8"+"
"; var html2 = ""; for (var i = split; i < (split*2); i++) { html2+=""; html2+=""; html2+=""; html2+=""; html2+=""; html2+=""; } html2+="
#Name         ScoreSets
"+scores[i][0]+""+scores[i][1]+""+""+scores[i][2]+""+scores[i][3]+"/8"+"
"; var html3 = ""; for (var i = split*2; i < scores.length; i++) { html3+=""; html3+=""; html3+=""; html3+=""; html3+=""; html3+=""; } html3+="
#Name         ScoreSets
"+scores[i][0]+""+scores[i][1]+""+""+scores[i][2]+""+scores[i][3]+"/8"+"
"; document.getElementById("live-table").innerHTML = html; document.getElementById("live-table2").innerHTML = html2; document.getElementById("live-table3").innerHTML = html3; setTimeout(listMajors, 5000); } </script>
<script async defer src="https://apis.google.com/js/api.js" onload="gapiLoad()"></script> <script async defer src="https://accounts.google.com/gsi/client" onload="gisInit()"></script>