puggan icon

agdq_s.user.js

puggan | PRO | 01/12/17 08:50:57 AM UTC | 0 ⭐ | 607 👁️ | Never ⏰ | []
JavaScript |

2 KB

|

None

|

0 👍

/

0 👎

// ==UserScript==
// @name        AGDQ schedule
// @namespace   puggan
// @description Filter AGDQ Schedule
// @include     https://gamesdonequick.com/schedule
// @version     1
// @grant       none
// ==/UserScript==
 
setTimeout(function() {
    var today = new Date().toISOString().substr(0,10)
    var dateprefix = today.substr(0,8);
    var current_hour = parseInt(new Date().toISOString().substr(11,2));
    var current_minutes = today.substr(14,2);
    var runTable = document.getElementById('runTable');
    var baseTbody = runTable.lastElementChild;
    var newTbody;
    var daychange = true;
    while(baseTbody.lastElementChild)
    {
        if(daychange)
        {
            newTbody = document.createElement('TBODY');
            daychange = false;
        }
        if(baseTbody.lastElementChild.className == "day-split")
        {
            daychange = true;
            newTbody.datestring = baseTbody.lastElementChild.lastElementChild.innerHTML.trim();
            newTbody.date = new Date(dateprefix + newTbody.datestring.replace(/[^0-9]+/g,''));
            var isodate = newTbody.date.toISOString().substr(0,10);
            newTbody.setAttribute('data-date', isodate);
            if(today > isodate)
            {
                newTbody.style.display = 'none';
            }
            else if(today == isodate)
            {
                var hidden = false;
                for(tr of newTbody.children)
                {
                    if(!tr.className)
                    {
                        var time_parts = /([0-9]+):([0-9]+) (AM|PM)/.exec(tr.firstElementChild.innerHTML);
                        var hour = parseInt(time_parts[1]) % 12 + (time_parts[3] == 'PM' ? 12 : 0);
                        if(current_hour < hour)
                        {
                            hidden = false;
                        }
                        else
                        {
                            hidden = true;
                        }
                    }
                    if(hidden)
                    {
                        tr.style.display = 'none';
                    }
                }
            }
        }
        if(newTbody.firstElementChild)
        {
            newTbody.insertBefore(baseTbody.lastElementChild, newTbody.firstElementChild);
        }
        else
        {
            newTbody.appendChild(baseTbody.lastElementChild)
        }
        if(daychange)
        {
            runTable.insertBefore(newTbody, runTable.firstElementChild.nextElementSibling);
            newTbody = null;
        }
    }
}, 500);

Comments