您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
当前为
- // ==UserScript==
- // @name Better Games Done Quick Schedule
- // @namespace http://tampermonkey.net/
- // @version 2.0
- // @description try to take over the world!
- // @author Ruben
- // @match https://gamesdonequick.com/schedule
- // @grant none
- // @require http://code.jquery.com/jquery-latest.js
- // ==/UserScript==
- (function() {
- 'use strict';
- console.log("Better AGDQ Shedule loading...");
- var tableRows = $("#runTable tbody tr").not(".day-split");
- var tableRowsDays = $("#runTable tbody tr");
- var time = "";
- var day = 0;
- var currentDate = new Date($.now());
- var rowOfCurrentRun = 0;
- var refreshInSeconds = 0;
- var refreshInTime = "";
- var newDate;
- var countdown;
- var days = {};
- var amountOfDays = 0;
- var counter = 0;
- console.log("Collecting and formatting dates and times...");
- for(var j = 0; j < tableRowsDays.length; j = j + 2)
- {
- if(tableRowsDays.eq(j).hasClass("day-split"))
- {
- day = tableRowsDays.eq(j).text().match(/\d+/)[0];
- //console.log(day);
- j--;
- continue;
- }
- //console.log(tableRowsDays.eq(j));
- days.length = amountOfDays+1;
- days[amountOfDays] = day;
- //console.log(days);
- amountOfDays++;
- }
- for(var i = 0; i < tableRows.length; i = i + 2)
- {
- time = timeFormatting(tableRows.eq(i).children().eq(0).text());
- //console.log(days[counter]);
- var date="2017/01/" + days[counter] +" " + time;
- newDate = new Date(Date.parse(date));
- //newDate = newDate -(-6000000);
- if(currentDate < newDate)
- {
- console.log("Highlighting current runs...");
- //console.log(newDate);
- //console.log(currentDate);
- //console.log(tableRows.eq(i-2));
- //console.log(tableRows.eq(i-1));
- //Ändere Background vom vorheriger Run
- tableRows.eq(i-4).css("background-color", "#f2dede");
- tableRows.eq(i-4).css("color", "black");
- tableRows.eq(i-3).css("background-color", "#f2dede");
- tableRows.eq(i-3).css("color", "black");
- $(tableRows.eq(i-4)).attr('id', 'currentRun');
- //Ändere Background vom aktuellem Run
- tableRows.eq(i-2).css("background-color", "#a00303");
- tableRows.eq(i-2).css("color", "white");
- tableRows.eq(i-1).css("background-color", "#a00303");
- tableRows.eq(i-1).css("color", "white");
- //Ändere Background vom nächsten Run
- tableRows.eq(i).css("background-color", "#f2dede");
- tableRows.eq(i).css("color", "black");
- tableRows.eq(i+1).css("background-color", "#f2dede");
- tableRows.eq(i+1).css("color", "black");
- rowOfCurrentRun = i;
- i = tableRows.length;
- }
- counter++;
- }
- console.log("Adding current run to the top of the page...");
- //Den aktuellen RUN an den Anfang der Seite einfügen
- var top = $(tableRows.eq(rowOfCurrentRun-2)).children();
- var bottom = $(tableRows.eq(rowOfCurrentRun-1)).children();
- refreshInSeconds = Math.ceil(((newDate - currentDate)/1000));
- refreshInTime = secondsToTime(refreshInSeconds);
- var countdown = "<div id='countdown' style='display: inline-block; text-align: center; padding: 5px 20px; line-height: 25px; background-color: #a00303; color: white; width: 150px; height: 100%'>Next Run in: " + refreshInTime + "</div>";
- var goToCurrentRun = "<a href='#currentRun' id='goToCurrentRun' style='display: inline-block; text-align: center; padding: 5px 20px; color: white; line-height: 25px; padding-left: 15px; height: 100%; width: 150px; text-decoration: none; background-color: #8c1616;'>Go to Current Run <img style='filter: invert(); width: 20px; height: 22px' src='https://cdn0.iconfinder.com/data/icons/navigation-set-arrows-part-one/32/DoubleChevronDown-128.png'/></a>";
- var currentRun = "<div style='overflow-x: auto; display: inline-block; max-width: 100%; vertical-align: top;'><nobr><div style='background-color: #a00303; color: white; padding: 5px 20px; line-height: 25px; display: inline-block;'>Current Run: <b>" + top.eq(1).text() + " (" + bottom.eq(1).text() + ")</b> From <b>" + top.eq(2).text() + "</b><br/>Start: <b>" + timeFormatting(top.eq(0).text()) + " </b> Duration: <b>" + timeFormatting(bottom.eq(0).text()) + " </b> Setup Length: <b>" + timeFormatting(top.eq(3).text()) + "</b></div></nobr></div>" + goToCurrentRun + countdown;
- $("#top").after(currentRun);
- //console.log($("#white-bg").eq(2));
- $("#goToCurrentRun").mouseenter(function() {
- $(this).css("background-color", "#c32323");
- }).mouseleave(function() {
- $(this).css("background-color", "#8c1616");
- });
- countdown = setInterval(function() {
- refreshInSeconds--;
- if(refreshInSeconds < 0) {
- //Refresh
- clearInterval(countdown);
- } else {
- $("#countdown").text("Next Run in: "+secondsToTime(refreshInSeconds));
- }
- }, 1000);
- console.log("Better AGDQ Shedule done");
- })();
- function timeFormatting(time)
- {
- //console.log("TimeFormatting:" + time);
- //console.log("Länge: " + time.length);
- //console.log(time);
- if(time.length == 7)
- {
- time = "0" + time;
- }
- else if(time.length == 10)
- {
- time = time.replace(/ /g, "0");
- }
- else
- {
- time = time;
- }
- return time;
- }
- function secondsToTime(seconds)
- {
- var hours = Math.floor((seconds/60/60));
- seconds = seconds - hours*60*60;
- var minutes = Math.floor((seconds/60));
- seconds = seconds - minutes*60;
- return(addZero(hours) + ":" + addZero(minutes) + ":" + addZero(seconds));
- }
- function addZero(time)
- {
- if(time.toString().length == 1)
- {
- return ("0" + time);
- }
- else return ("" + time);
- }