CSGL TimeZone Changer

Change CSGO timezones.

目前为 2014-11-09 提交的版本。查看 最新版本

// ==UserScript==
// @name        CSGL TimeZone Changer
// @version     1.4
// @description Change CSGO timezones.
// @match       http://csgolounge.com/*
// @match 		http://dota2lounge.com/*
// @require     http://code.jquery.com/jquery-2.1.1.js
// @copyright   Josh Hubbard
// @namespace 	https://greasyfork.org/users/5596
// ==/UserScript==

// TODO: Dry up the code. Things need to be speeded up.

$(function () {
    var dt = new Date(),
        tzOffset = (dt.getTimezoneOffset()/60) + 2,
        AMorPM = "";
    
    $timeBox = $('.half:contains("CET")');
    
    // Converts CEST to local on match page.
    if ($timeBox.length) {
        var timeInCEST = $timeBox.text(),
            hour = timeInCEST.split(" ")[0].split(":")[0],
            minute = timeInCEST.split(" ")[0].split(":")[1];
        
        hour = hour - tzOffset;
        
        if (hour < 0) hour = 24 + hour;  
        
        if (hour == 12) {
            AMorPM = "PM";
        } else if (hour > 12) {
            hour = hour - 12;
            AMorPM = "PM";      
        } else {
            AMorPM = "AM";
        }
        
        $timeBox.html("(" + hour + ":" + minute + " " + AMorPM + ") " + $timeBox.html());
    }
    
    // Gets match information for all upcoming matches and converts time.
    $boxes = $(".matchmain:has(.whenm:contains('hour'):contains('from now'),.whenm:contains('minute'):contains('from now'))");
    
    $boxes.each(function(i) {
        var $this = $(this),
            link = $this.find("a[href*='match']").attr("href"),
            $whenBox =  $this.find(".whenm:first");
        
        $.get(link, function(data) {
            var response = $('<html />').html(data),
                $timeBox = response.find('.half:contains("CET")'),
                timeInCEST = $timeBox.text(),
                hour = timeInCEST.split(" ")[0].split(":")[0] - tzOffset,
                minute = timeInCEST.split(" ")[0].split(":")[1];
            
            if (hour < 0) hour = 24 + hour;  
            
            if (hour == 12) {
                AMorPM = "PM";
            } else if (hour > 12) {
                hour = hour - 12;
                AMorPM = "PM";      
            } else {
                AMorPM = "AM";
            }
            
            $whenBox.html($whenBox.html() + " (" + hour + ":" + minute + " " + AMorPM + ")");
        });
        
    });
});