Auto-click with countdown timer, availability alert, and sound
当前为
// ==UserScript==
// @name Oslo police station appointment script
// @namespace http://tampermonkey.net/
// @version 2024-09-23
// @description Auto-click with countdown timer, availability alert, and sound
// @author bipboup
// @match https://politietbooking.nemo-q.se/Booking/Booking/Index/avtale
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
const timerDisplay = document.createElement('div');
timerDisplay.style.position = 'fixed';
timerDisplay.style.top = '10px';
timerDisplay.style.right = '10px';
timerDisplay.style.padding = '10px';
timerDisplay.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';
timerDisplay.style.color = 'white';
timerDisplay.style.fontSize = '20px';
document.body.appendChild(timerDisplay);
let timeLeft = 10;
function playAlertSound() {
const audio = new Audio('https://www.soundjay.com/buttons/sounds/button-1.mp3');
let playCount = 0;
function playSound() {
if (playCount < 3) {
audio.play();
playCount++;
audio.onended = playSound;
}
}
playSound();
}
function checkAvailability() {
const noAppointmentText = "Unfortunately, there are no available appointments at the moment. Please try again later or contact the police.";
const pageContent = document.body.innerText || document.body.textContent;
if (!pageContent.includes(noAppointmentText)) {
playAlertSound();
}
}
const countdown = setInterval(() => {
if (timeLeft > 0) {
timerDisplay.innerText = `Clic dans ${timeLeft} secondes...`;
timeLeft--;
} else {
timeLeft = 10;
const bouton = document.querySelector('input[name="TimeSearchFirstAvailableButton"]');
if (bouton) {
bouton.click();
}
checkAvailability();
}
}, 1000);
})();