您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
On BaseballReference adds a link to a YouTube search for a random baseball game.
// ==UserScript== // @name Watch Random Games // @description On BaseballReference adds a link to a YouTube search for a random baseball game. // @namespace baseballsimulator.com // @include https://www.baseball-reference.com/teams/*-schedule-scores.shtml // @version 1 // ==/UserScript== var thisURL = document.URL; theYear = thisURL.substring(thisURL.lastIndexOf('/') + 1,thisURL.lastIndexOf('/') + 5); var theLink; var gameNumbers = document.evaluate("//table[@id='team_schedule']/tbody/tr/th[@data-stat='team_game']",document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var dates = document.evaluate("//table[@id='team_schedule']/tbody/tr/td[@data-stat='date_game']",document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var teams = document.evaluate("//table[@id='team_schedule']/tbody/tr/td[@data-stat='team_ID']",document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var locations = document.evaluate("//table[@id='team_schedule']/tbody/tr/td[@data-stat='homeORvis']",document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var opponents = document.evaluate("//table[@id='team_schedule']/tbody/tr/td[@data-stat='opp_ID']",document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); myRandom = Math.floor(Math.random() * 162) + 1; var gameNumber; var theDate; var newMonth; var newDate; var newTeam; var newOpponent; var location; var searchString; var youTubeURL = 'https://www.youtube.com/results?search_query='; var anchorTextDate; var anchorTextString; for (var i = 0; i < gameNumbers.snapshotLength; i++) { gameNumber = gameNumbers.snapshotItem(i); if(i == myRandom){ theDate = dates.snapshotItem(i).textContent; theDate = theDate.substring(theDate.indexOf(',') + 2); theMonth = theDate.substring(0,3); theDay = theDate.substring(4); if(theDay < 10){ theDay = 0 + theDay; } switch(theMonth) { case 'Mar': newMonth = 'March'; break; case 'Apr': newMonth = 'April'; break; case 'Jun': newMonth = 'June'; break; case 'Jul': newMonth = 'July'; break; case 'Aug': newMonth = 'August'; break; case 'Sep': newMonth = 'September'; break; case 'Oct': newMonth = 'October'; break; default: newMonth = theMonth; } newDate = newMonth + '+' + theDay + '%2C+' + theYear; anchorTextDate = newMonth + ' ' + theDay + ', ' + theYear; theDate = theDate.replace(theMonth,newMonth); //newDate theTeam = teams.snapshotItem(i).textContent; switch(theTeam) { case 'SFG': newTeam = 'SFN'; break; case 'TBR': newTeam = 'TBA'; break; case 'NYY': newTeam = 'NYA'; break; case 'NYM': newTeam = 'NYN'; break; case 'KCR': newTeam = 'KCA'; break; case 'CHC': newTeam = 'CHN'; break; case 'CHW': newTeam = 'CHA'; break; default: newTeam = theTeam; } //newTeam theOpponent = opponents.snapshotItem(i).textContent; switch(theOpponent) { case 'SFG': newOpponent = 'SFN'; break; case 'TBR': newOpponent = 'TBA'; break; case 'NYY': newOpponent = 'NYA'; break; case 'NYM': newOpponent = 'NYN'; break; case 'KCR': newOpponent = 'KCA'; break; case 'CHC': newOpponent = 'CHN'; break; case 'CHW': newOpponent = 'CHA'; break; default: newOpponent = theOpponent; } location = locations.snapshotItem(i).textContent; if(location == '@'){ searchString = newTeam + '+at+' + newOpponent + '+-+' + newDate; anchorTextString = newTeam + ' AT ' + newOpponent + ' - ' + anchorTextDate; } else { searchString = newOpponent + '+at+' + newTeam + '+-+' + newDate; anchorTextString = newOpponent + ' AT ' + newTeam + ' - ' + anchorTextDate; } youTubeURL = youTubeURL + searchString; } } var aboveRecordLocation = document.evaluate("//p/strong",document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); aboveRecordLocation = aboveRecordLocation.snapshotItem(0); var theLink = document.createElement("p"); theLink.innerHTML = '<a href="'+youTubeURL+'" target="_blank">YouTube: '+anchorTextString+'</a>'; aboveRecordLocation.parentNode.insertBefore(theLink,aboveRecordLocation);