您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A second clock that counts down to the next shop restock, with links to all active shops
当前为
// ==UserScript== // @name Grundos.cafe - RS Clock ONLY (Left Sidebar) // @namespace https://greasyfork.org/users/1008951 // @version v3.9 // @description A second clock that counts down to the next shop restock, with links to all active shops // @author dani, ben (mushroom), rowan // @match https://grundos.cafe/* // @match https://www.grundos.cafe/* // @exclude https://www.grundos.cafe/~* // @exclude https://grundos.cafe/process/ // @exclude https://www.grundos.cafe/userlookup/* // @exclude https://www.grundos.cafe/market/browseshop/?owner=* // @exclude https://www.grundos.cafe/petlookup/?pet_name=* // @exclude https://www.grundos.cafe/~* // @require https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js // @noframes // @grant none // ==/UserScript== /* globals $ */ var storage; localStorage.getItem("GCRSlogger==") != null ? storage = JSON.parse(localStorage.getItem("GCRSlogger==")) : storage = {ea_m: "N/A", ea_s: "N/A"}; var loc = window.location.href; //User Settings------------------------------------------------------------ //to enable/disable sound change to "on"/"off" below let alarm = localStorage.getItem('alarm', 0); let sound = localStorage.getItem('sound', "http://codeskulptor-demos.commondatastorage.googleapis.com/pang/pop.mp3"); if (document.getElementById("userinfo")) { var settingsButton = document.createElement("div"); settingsButton.id = "settingsButton"; document.querySelector("#sb_lang").prepend(settingsButton); settingsButton.innerHTML = `<button class="open-settings" style="z-index:0; font:10px verdana;">[Clock Settings]</button>`; var settingsButtonClose = document.createElement("div"); settingsButtonClose.id = "settingsButtonClose"; document.querySelector("#sb_lang").prepend(settingsButtonClose); settingsButtonClose.innerHTML = `<button class="close-settings" style="z-index:0;font:10px verdana;">[Close Settings]</button>`; var settings_modal = document.createElement("div"); settings_modal.id = "settings_modal"; document.querySelector("#sb_lang").prepend(settings_modal); settings_modal.innerHTML = ` <div class="settings-modal"> <div class="settings-title"> RS Clock Settings </div> <div class="settings-form"> <div class="seperator"></div> <div class="seperator"><label><a href="https://emopets.net/rssound" target="_blank">Sounds</a><br> </label> <select id="sound"> <option value="">------OFF-</option> <option value="">------mario-</option> <option value="https://emopets.net/soundfiles/smb3_1-up.wav">1UP</option> <option value="https://emopets.net/soundfiles/smb3_coin.wav">ChaChing</option> <option value="https://emopets.net/soundfiles/smb3_enter_level.wav">Level Start</option> <option value="https://emopets.net/soundfiles/smb3_hurry_up.wav">Hurry!</option> <option value="https://emopets.net/soundfiles/smb3_jump.wav">Jump</option> <option value="https://emopets.net/soundfiles/smb3_level_clear.wav">Level Clear</option> <option value="https://emopets.net/soundfiles/smb3_mushroom_appears.wav">Big Man</option> <option value="https://emopets.net/soundfiles/smb3_pause.wav">Hold on</option> <option value="https://emopets.net/soundfiles/smb3_player_down.wav">Oh no!</option> <option value="https://emopets.net/soundfiles/smb3_power-up.wav">Powerful</option> <option value="https://emopets.net/soundfiles/smb3_whistle.wav">Warped</option> <option value="">----------tv-</option> <option value="https://xenafan.com/buffy/sounds/grrargh.wav">Grr Argh</option> <option value="https://emopets.net/soundfiles/Flashback.mp3">Flashback</option> <option value="http://downloads.bbc.co.uk/doctorwho/sounds/tardis.mp3?ject">Tardis</option> <option value="">----games-</option> <option value="http://codeskulptor-demos.commondatastorage.googleapis.com/GalaxyInvaders/bonus.wav">Invaders</option> <option value="http://codeskulptor-demos.commondatastorage.googleapis.com/descent/Zombie.mp3">Minecraft</option> <option value="https://noproblo.dayjo.org/ZeldaSounds/WW_New/WW_Link_Call.wav">C'mon</option> <option value="http://www.noproblo.dayjo.org/ZeldaSounds/OOT/OOT_Navi_Hey1.wav">Hey</option> <option value="http://www.noproblo.dayjo.org/ZeldaSounds/OOT/OOT_Navi_Listen1.wav">Listen</option> <option value="">----random-</option> <option value="http://codeskulptor-demos.commondatastorage.googleapis.com/pang/pop.mp3">Pop</option> <option value="http://codeskulptor-demos.commondatastorage.googleapis.com/descent/gotitem.mp3">Success!</option> <option value="http://commondatastorage.googleapis.com/codeskulptor-demos/riceracer_assets/music/start.ogg">Sick Riff</option> <option value="http://commondatastorage.googleapis.com/codeskulptor-demos/pyman_assets/extralife.ogg">BAM!</option> <option value="http://commondatastorage.googleapis.com/codeskulptor-demos/pyman_assets/eatedible.ogg">*bloop*</option> <option value="http://commondatastorage.googleapis.com/codeskulptor-assets/week7-brrring.m4a">Shiny</option> </select></div> <button class="save-settings">Save Settings</button> </div> </div> `; $(`#sound option[value="${sound}"]`).attr('selected', true); $('.open-settings').on('click', function(e) { $('.settings-modal').show(); $(this).hide(); $('.close-settings').show(); }); $('.close-settings').on('click', function(e) { $('.settings-modal').hide(); $(this).hide(); $('.open-settings').show(); }); $('.save-settings').on('click', function(e) { let alarmVal = $('#alarm').prop('checked') ? 1 : 0; let soundVal = $('#sound').children('option:selected').val(); localStorage.setItem('alarm', alarmVal); localStorage.setItem('sound', soundVal); }); // Append the CSS to the page let customCSS = ` .settings-title { padding: 10px; background: #ffcf01; color: black; font-weight: bold; font-size: 0.9em; text-align: center; text-shadow: 2px 2px 5px #FFF; } .open-settings, .close-settings { position:relative; top: -5px; left: 0px; padding: 0px; margin:auto; border: 0px; } .close-settings { display: none; } .seperator { margin-bottom: 10px; } .settings-modal { display: none; position: absolute; top: 555px; left: 140px; margin: auto; background: rgba(255, 255, 255, 1); border-radius: 25px; width: 200px; height: 200px; border: 2px solid rgba(0, 0, 0, 1); overflow: hidden; } .settings-form { display: flex; align-content: center; justify-content: center; flex-direction: column; padding: 20px; } `; $("<style>").prop("type", "text/css").html(customCSS).appendTo("head"); //alert color time in seconds, to change, only edit numbers //yellow is at 1 min var orange = 35 var red = 10 //to change colors change hex codes below //hex codes online: https://coolors.co/ var shoplinks = "#BC617C" var linksbg = "#C19EBE" var clockfont = "black" var clockbg = "#FFFF63" //change the font too ^ var border = "black" //1m-36s var clockfont1m = "#ffff00" var clockbg1m = "#000000" //35s-11s var clockfont35s = "#FFA500" var clockbg35s = "#000000" //10-0s var clockfont10s = "#000000" var clockbg10s = "#FF0000" //Begin Code------------------------------------------------------------ var m = storage.ea_m var s = storage.ea_s var st = 60 - s //Sidebar check if (document.getElementById("userinfo")) { //Containers var timerContainer = document.createElement("div"); timerContainer.id = "timerContainer"; document.querySelector("#sb_clock").append(timerContainer); timerContainer.innerHTML = "RS: 06:" + st; timerContainer.style = "position:absolute;background:" + clockbg + ";padding-top:1px;padding-bottom:2px;width:auto;font-size:12px;color:" + clockfont + ";text-align:center;"; } } function checkTime() { var today = new Date(); var mins = parseInt(document.querySelector("#NST_clock_minutes").innerHTML) var secs = parseInt(document.querySelector("#NST_clock_seconds").innerHTML) secs = secs < 10 ? `0${secs}` : secs; var m = mins var s = secs var st = 59 - s var ans = st if (st<10) { ans = "0" + st; } else { ans = st; } if (sound && loc.indexOf("www.grundos.cafe/") > -1) { var player = document.createElement('audio'); player.src = sound; player.preload = 'auto'; } var containerStyle1 = "margin:5px auto 0px;height:10px;border:1px solid;background:" var containerStyle1b = ";border-color:" var containerStyle2 = ";padding-top:2px;padding-bottom:2px;margin-top:10px;width:105px;height:15px;font-size:12px;color:" var containerStyle3 = ";text-align:center;" if ( m == 0 || m == 6 || m == 12 || m == 18 || m == 24 || m == 30 || m == 36 || m == 42 || m == 48 || m == 54 || m == 60) { timerContainer.innerHTML = "5:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg + containerStyle1b + border + containerStyle2 + clockfont + containerStyle3; } else if ( m == 1 || m == 7 || m == 13 || m == 19 || m == 25 || m == 31 || m == 37 || m == 43 || m == 49 || m == 55) { timerContainer.innerHTML = "4:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg + containerStyle1b + border + containerStyle2 + clockfont + containerStyle3; } else if ( m == 2 || m == 8 || m == 14 || m == 20 || m == 26 || m == 32 || m == 38 || m == 44 || m == 50 || m == 56) { timerContainer.innerHTML = "3:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg + containerStyle1b + border + containerStyle2 + clockfont + containerStyle3; } else if ( m == 3 || m == 9 || m == 15 || m == 21 || m == 27 || m == 33 || m == 39 || m == 45 || m == 51 || m == 57){ timerContainer.innerHTML = "2:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg + containerStyle1b + border + containerStyle2 + clockfont + containerStyle3; } else if ( m == 4 || m == 10 || m == 16 || m == 22 || m == 28 || m == 34 || m == 40 || m == 46 || m == 52 || m == 58) { timerContainer.innerHTML = "1:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg + containerStyle1b + border + containerStyle2 + clockfont + containerStyle3; } else if ( m == 5 || m == 11 || m == 17 || m == 23 || m == 29 || m == 35 || m == 41 || m == 47 || m == 53 || m == 59) { timerContainer.innerHTML = "0:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg + containerStyle2 + clockfont + containerStyle3; if ( ans > orange ) { timerContainer.innerHTML = "0:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg1m + containerStyle2 + clockfont1m + containerStyle3; } if ( ans == orange ) { timerContainer.innerHTML = "0:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg35s + containerStyle2 + clockfont35s + containerStyle3; if(alarm) { player.play(); } } if ( ans <= orange && ans > red ) { timerContainer.innerHTML = "0:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg35s + containerStyle2 + clockfont35s + containerStyle3; } if ( ans <= red && ans > -1 ) { timerContainer.innerHTML = "0:" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg10s + containerStyle2 + clockfont10s + containerStyle3; } } else { timerContainer.innerHTML = m + ":" + ans + " until RS"; timerContainer.style = containerStyle1 + clockbg + containerStyle2 + clockfont + containerStyle3; } } (function(){ "use strict"; //first check checkTime() //refresh every 1 seconds setInterval(checkTime, 500); })();