Changes: Removes ad container on the bottom right, Refreshes every 30 minutes to bypass 30 minute timeout, Adds the aircraft count on the title (you need the statistic widget enabled!)
// ==UserScript==
// @name [Flightradar24] Combo FlightRadar24 Script
// @namespace HKR
// @match https://www.flightradar24.com/*
// @grant none
// @version 1.4.1
// @license MIT
// @author Bruna
// @description Changes: Removes ad container on the bottom right, Refreshes every 30 minutes to bypass 30 minute timeout, Adds the aircraft count on the title (you need the statistic widget enabled!)
// @run-at document-start
// ==/UserScript==
// Function to remove the ad once it appears
function removeAdWhenReady() {
const ad = document.getElementById("primisAdContainer");
if (ad) {
ad.remove(); // Remove the ad if found
observer.disconnect(); // Disconnect the observer once done
}
}
// Callback function for the observer
function observeDOM() {
const targetNode = document.body; // Assuming the ad container might be within the body
// Options for the observer (we want to observe child additions)
const config = { childList: true };
// Create an observer instance linked to the callback function
const observer = new MutationObserver(removeAdWhenReady);
// Start observing the target node for configured mutations
observer.observe(targetNode, config);
// Immediately check for the ad in case it's already there
removeAdWhenReady();
}
// Start observing the DOM
observeDOM();
// Define a function to update the document title
function updateDocumentTitle() {
// Assuming your HTML snippet is directly available within the document
var statisticsWidget = document.querySelector('[data-widget-type="statistics"]');
if (statisticsWidget) {
// Find the element within the statistics widget that contains the text
var textElement = statisticsWidget.querySelector('.font-normal');
if (textElement) {
// Get the trimmed text content of the element
var textContent = textElement.textContent.trim();
// Split the text content by '/'
var parts = textContent.split('/');
// Check if there are at least two parts (before and after '/')
if (parts.length > 0) {
// Extract the first part and remove any commas
var firstNumber = parts[0].replace(',', '');
// Set the document title with the extracted number
document.title = `[${firstNumber}] Flightradar24`;
} else {
document.title = '[Error! Check console] Flightradar24';
console.error('Could not find a valid format for the text');
}
} else {
document.title = '[Error! Check console] Flightradar24';
console.error('Could not find element with class .font-normal');
}
} else {
document.title = '[Error! Check console] Flightradar24';
console.error('Could not find statistics widget. Select Widgets on the menu and enable the "Statistics" one. Upon that, go back to the app. Everything should work.');
}
}
// Call the function immediately to update the title initially
updateDocumentTitle();
const tillThirty = setTimeout(thirty, 1798000);
function thirty() {
console.log("30 Minute time reached. Refreshing...")
location.reload();
}
// Set interval to update the title every 20ms
setInterval(updateDocumentTitle, 20);