-
Notifications
You must be signed in to change notification settings - Fork 0
/
WME NY UR Project Timer.js
117 lines (116 loc) · 5.45 KB
/
WME NY UR Project Timer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
// ==UserScript==
// @name WME NY UR Project Timer
// @namespace Dude495
// @version 2019.06.18.001
// @description Adds count down timer for the NY UR Project.
// @author Dude495
// @include /^https:\/\/(www|beta)\.waze\.com\/(?!user\/)(.{2,6}\/)?editor\/?.*$/
// @require https://greasyfork.org/scripts/24851-wazewrap/code/WazeWrap.js
// @license GNU GPLv3
// @grant none
/* global W */
/* global $ */
/* global I18n */
/* global WazeWrap */
// ==/UserScript==
//Some code based off PA MapRaid Countdown Timer by MoM
(function() {
'use strict';
let phase = [];
function startClock() {
let entry = getTimerData(phase);
let PHASE = entry.phase
let phaseTime = new Date(entry.date).getTime();
let now = new Date().getTime();
let time = phaseTime - now;
let weeks = Math.floor(time / 604800000);
let days = Math.floor(time%(604800000)/86400000);
let hours = Math.floor((time%(86400000))/3600000);
let minutes = Math.floor((time % (3600000)) / 60000);
let seconds = Math.floor((time % (60000)) / 1000);
var div = [];
if (entry.status == 'ACTIVE') {
if (time > 18000001) {
div = $('<div>', {id: 'countdown-timer'}).css({marginBottom:'3px', paddingLeft:'2px', textAlign:'center', fontWeight:'600', background: 'lime'});
}
if ((time < 18000000) && (time > 0)) {
div = $('<div>', {id: 'countdown-timer'}).css({marginBottom:'3px', paddingLeft:'2px', textAlign:'center', fontWeight:'600', background: 'yellow'});
}
if (time < 0) {
div = $('<div>', {id: 'countdown-timer'}).css({marginBottom:'3px', paddingLeft:'2px', textAlign:'center', fontWeight:'600', background: 'red'});
}
}
else {
if (time > 18000001) {
div = $('<div>', {id: 'countdown-timer'}).css({marginBottom:'3px', paddingLeft:'2px', textAlign:'center', fontWeight:'600', background: 'red'});
}
if ((time < 18000000) && (time > 0)) {
div = $('<div>', {id: 'countdown-timer'}).css({marginBottom:'3px', paddingLeft:'2px', textAlign:'center', fontWeight:'600', background: 'yellow'});
}
if (time <= 0) {
div = $('<div>', {id: 'countdown-timer'}).css({marginBottom:'3px', paddingLeft:'2px', textAlign:'center', fontWeight:'600', background: 'green'});
}
}
if ($('#countdown-timer').length <= 0) {
div;
$('#user-box').after(div);
$('#user-profile').css('margin-bottom','5px');
}
$('#user-box').css('padding-bottom','5px');
if (entry.status == 'INACTIVE') {
if (time => 604800000) {
document.getElementById('countdown-timer').innerHTML = 'The ' + PHASE + ' phase begins in '+ weeks + 'w ' + days + 'd ' + hours + 'h ' + minutes + 'm ' + seconds + 's ';
}
if (time < 604800000) {
document.getElementById('countdown-timer').innerHTML = 'The ' + PHASE + ' phase begins in ' + days + 'd ' + hours + 'h ' + minutes + 'm ' + seconds + 's ';
//debugger;
}
if (time < 0) {
document.getElementById('countdown-timer').innerHTML = 'The ' + PHASE + ' phase has started, Happy Editing!';
}
}
if (entry.status == 'ACTIVE') {
document.getElementById('countdown-timer').innerHTML = 'The ' + PHASE + ' phase ends in ' + weeks + 'w ' + days + 'd ' + hours + 'h ' + minutes + 'm ' + seconds + 's ';
if((time < 604800000) && (time >= 18000001)) {
document.getElementById('countdown-timer').innerHTML = 'The ' + PHASE + ' phase ends in ' + days + 'd ' + hours + 'h ' + minutes + 'm ' + seconds + 's ';
}
if ((time <= 18000000) && (time > 0)) {
document.getElementById('countdown-timer').innerHTML = 'The ' + PHASE + ' phase ends in ' + hours + 'h ' + minutes + 'm ' + seconds + 's ';
}
if (time < 0) {
document.getElementById('countdown-timer').innerHTML = 'The ' + PHASE + ' phase has ended! <br> Thank you for all your efforts!';
}
}
}
var Timer = [];
var URL = 'https://sheets.googleapis.com/v4/spreadsheets/1T6ByV5NzQ6GwqiUW6i2JgeE2cBTz9KSjRKN69Ng1zfo/values/data';
var u8Er = 'QUl6YVN5Q0Jza1RKMnZJN0NXRG9rMFZncUUwX3ByRDNoMjBkcEFn';
async function loadProjectData() {
console.log('NY UR Project: Loading Timer Data....');
var SHEET = URL +'/?key='+atob(u8Er);
await $.getJSON(SHEET, function(ldata){
Timer = ldata;
console.log('NY UR Project: Timer Data Loaded....');
});
}
function getTimerData(Phase) {
let TimerData = Timer.values.map(obj =>{
return {phase: obj[0], date: obj[1], status: obj[2]}
});
for(let i=0; i<TimerData.length; i++){
return TimerData[i];
}
return null;
}
function bootstrap() {
if (W && W.loginManager && W.loginManager.isLoggedIn()) {
loadProjectData();
setTimeout(setInterval(startClock, 1000), 5000);
console.log(GM_info.script.name, 'Initialized');
} else {
console.log(GM_info.script.name, 'Bootstrap failed. Trying again...');
window.setTimeout(() => bootstrap(), 500);
}
}
bootstrap();
})();