Greasy Fork is available in English.
Provides a button to lookup license plates easily from the upload page on Platesmania.
当前为
// ==UserScript==
// @name Platesmania Lookup Toolbox
// @version 1.3
// @description Provides a button to lookup license plates easily from the upload page on Platesmania.
// @match https://platesmania.com/*/add*
// @grant none
// @license MIT
// @namespace http://greasyfork.icu/users/976031
// ==/UserScript==
(function() {
'use strict';
// Choose your preferred lookup sites here!
// Put two slashes (//) in front of the lookup site(s) you DON'T want to use and remove them from the one you want to use.
// Make sure ONLY ONE is active per country, otherwise the script will not work!
// Save this script and reload the PM upload page for changes to apply.
// Netherlands
const NLlookupSite = 'https://finnik.nl/kenteken/';
// const NLlookupSite = 'https://www.rdwdata.nl/kenteken/';
// const NLlookupSite = 'https://www.autoweek.nl/kentekencheck/';
// Sweden
const SElookupSite = 'https://www.car.info/?s=';
// const SElookupSite = 'https://biluppgifter.se/fordon/';
// const SElookupSite = 'https://fordon-fu-regnr.transportstyrelsen.se/?ts-regnr-sok=';
// Ukraine
const UAlookupSite = 'https://ua.carplates.app/en/number/';
// const UAlookupSite = 'https://baza-gai.com.ua/nomer/';
// const UAlookupSite = 'https://auto-inform.com.ua/search/';
// Actual script starts here, don't change anything from here unless you know what you're doing.
// Function to check if lookup site exists for the current page
function isLookupSiteAvailable() {
return window.location.href.includes('platesmania.com/nl/add') ||
window.location.href.includes('platesmania.com/ua/add') ||
window.location.href.includes('platesmania.com/no/add') ||
window.location.href.includes('platesmania.com/dk/add') ||
window.location.href.includes('platesmania.com/fr/add') ||
window.location.href.includes('platesmania.com/uk/add') ||
window.location.href.includes('platesmania.com/fi/add') ||
window.location.href.includes('platesmania.com/pl/add') ||
window.location.href.includes('platesmania.com/lt/add') ||
window.location.href.includes('platesmania.com/se/add');
}
// Function to check if all necessary fields contain data
function areFieldsFilled() {
if (window.location.href.includes('platesmania.com/nl/add')) {
return document.getElementById('nomer').value !== '';
} else if (window.location.href.includes('platesmania.com/ua/add')) {
const region = document.getElementById('region1').value;
const digits = document.getElementById('digit1').value;
return region !== '' && digits !== '';
} else if (window.location.href.includes('platesmania.com/no/add')) {
const letField = document.getElementById('let').value;
const digitField = document.getElementById('digit').value;
return letField !== '' && digitField !== '';
} else if (window.location.href.includes('platesmania.com/dk/add')) {
const letField = document.getElementById('let').value;
const digitField = document.getElementById('digit').value;
return letField !== '' && digitField !== '';
} else if (window.location.href.includes('platesmania.com/fr/add')) {
const b1 = document.getElementById('b1').value;
const digit2 = document.getElementById('digit2').value;
const b2 = document.getElementById('b2').value;
return b1 !== '' && digit2 !== '' && b2 !== '';
} else if (window.location.href.includes('platesmania.com/se/add')) {
const letField = document.getElementById('let').value;
const digitField = document.getElementById('digit').value;
return letField !== '' && digitField !== '';
} else if (window.location.href.includes('platesmania.com/de/add')) {
const digitField = document.getElementById('digit').value;
return digitField !== '';
} else if (window.location.href.includes('platesmania.com/ch/add')) {
const digitField = document.getElementById('digit').value;
return digitField !== '';
} else if (window.location.href.includes('platesmania.com/pl/add')) {
const digitField = document.getElementById('nomerpl').value;
return digitField !== '';
} else if (window.location.href.includes('platesmania.com/uk/add')) {
const digitField = document.getElementById('nomerpl').value;
return digitField !== '';
} else if (window.location.href.includes('platesmania.com/fi/add')) {
const letField = document.getElementById('let1').value;
const digitField = document.getElementById('digit').value;
return digitField !== '';
} else if (window.location.href.includes('platesmania.com/lt/add')) {
const digitField = document.getElementById('digit2').value;
return digitField !== '';
}
return false;
}
// Function to create or update the lookup button
function createOrUpdateLookupButton() {
// Check if lookup site exists for the current page
if (!isLookupSiteAvailable()) {
// If no lookup site exists, remove the button
const lookupButton = document.getElementById('lookupButton');
if (lookupButton) {
lookupButton.parentNode.removeChild(lookupButton);
}
return;
}
// Check if all necessary fields contain data
const fieldsFilled = areFieldsFilled();
// Get the button or create it if it doesn't exist
let lookupButton = document.getElementById('lookupButton');
if (!lookupButton) {
lookupButton = document.createElement('button');
lookupButton.id = 'lookupButton';
lookupButton.innerText = 'Lookup';
lookupButton.style.marginBottom = '10px';
lookupButton.style.width = '100%'; // Make the button as wide as its parent element
lookupButton.style.backgroundColor = '#3498db'; // Blue color for clickable button
lookupButton.style.color = '#ffffff'; // White text color
lookupButton.style.border = 'none'; // Remove border
lookupButton.style.cursor = 'pointer'; // Change cursor to pointer on hover
document.getElementById('zoomimgid').parentNode.insertBefore(lookupButton, document.getElementById('zoomimgid'));
}
// Set button link and enable/disable based on field data
if (fieldsFilled) {
lookupButton.disabled = false; // Enable button
lookupButton.onclick = function() {
let plateNumber = '';
if (window.location.href.includes('platesmania.com/nl/add')) {
plateNumber = document.getElementById('nomer').value;
window.open(NLlookupSite + plateNumber);
} else if (window.location.href.includes('platesmania.com/ua/add')) {
const region = document.getElementById('region1').value;
const digits = document.getElementById('digit1').value;
const b1 = document.getElementById('b1').value;
const b2 = document.getElementById('b2').value;
plateNumber = `${region}${digits}${b1}${b2}`;
window.open(UAlookupSite + plateNumber);
} else if (window.location.href.includes('platesmania.com/no/add')) {
const letField = document.getElementById('let').value;
const digitField = document.getElementById('digit').value;
plateNumber = letField + digitField;
window.open('https://www.vegvesen.no/en/vehicles/buy-and-sell/vehicle-information/sjekk-kjoretoyopplysninger/?registreringsnummer=' + plateNumber);
} else if (window.location.href.includes('platesmania.com/dk/add')) {
const letField = document.getElementById('let').value;
const digitField = document.getElementById('digit').value;
plateNumber = letField + digitField;
window.open('https://app.digitalservicebog.dk/search?country=dk&Registration=' + plateNumber);
} else if (window.location.href.includes('platesmania.com/fr/add')) {
const b1 = document.getElementById('b1').value;
const digit2 = document.getElementById('digit2').value;
const b2 = document.getElementById('b2').value;
plateNumber = `${b1}${digit2}${b2}`;
window.open('https://immatriculation-auto.info/vehicle/' + plateNumber);
} else if (window.location.href.includes('platesmania.com/se/add')) {
const letField = document.getElementById('let').value;
const digitField = document.getElementById('digit').value;
plateNumber = letField + digitField;
window.open(SElookupSite + plateNumber);
} else if (window.location.href.includes('platesmania.com/fi/add')) {
const letField = document.getElementById('let1').value;
const digitField = document.getElementById('digit').value;
plateNumber = letField + '-' + digitField;
window.open('https://www.motonet.fi/api/vehicleInfo/registrationNumber/FI?locale=fi®istrationNumber=' + plateNumber);
} else if (window.location.href.includes('platesmania.com/uk/add')) {
const fieldData = document.getElementById('nomerpl').value;
window.open('https://www.checkcardetails.co.uk/cardetails/' + fieldData);
} else if (window.location.href.includes('platesmania.com/pl/add')) {
const regionField = document.getElementById('region');
const selectedRegionText = regionField.options[regionField.selectedIndex].text;
const digitField = document.getElementById('nomerpl').value;
plateNumber = selectedRegionText + digitField;
let form = document.createElement('form');
form.action = 'https://auto-info.gratis/sprawdzam/';
form.method = 'POST';
form.target = '_blank';
let inputCountry = document.createElement('input');
inputCountry.type = 'hidden';
inputCountry.name = 'kraj';
inputCountry.value = 'PL';
let inputPlate = document.createElement('input');
inputPlate.type = 'hidden';
inputPlate.name = 'numer';
inputPlate.value = plateNumber;
form.appendChild(inputCountry);
form.appendChild(inputPlate);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
} else if (window.location.href.includes('platesmania.com/lt/add')) {
const b1 = document.getElementById('b1');
const b2 = document.getElementById('b2');
const b3 = document.getElementById('b3');
const digitField1 = document.getElementById('digit1');
const digitField2 = document.getElementById('digit2');
const digitField3 = document.getElementById('digit3');
const vanityComb = document.getElementById('nomer');
const selectedValue = document.getElementById("ctype").value;
if (selectedValue === "1") {
// Cars
plateNumber = b1.value + b2.value + b3.value + digitField2.value;
} else if (selectedValue === "2") {
// Motorcycles
plateNumber = digitField1.value + b1.value + b2.value;
} else if (selectedValue === "3") {
// Trailers
plateNumber = b1.value + b2.value + digitField2.value;
} else if (selectedValue === "4") {
// Scooters
plateNumber = digitField1.value + b1.value + b2.value + b3.value;
} else if (selectedValue === "5" || selectedValue === "6" || selectedValue === "7" || selectedValue === "9") {
// Vanity, Electric, Oldtimers, Diplo
plateNumber = vanityComb.value;
} else if (selectedValue === "8") {
// Transit plates
plateNumber = digitField3.value + b1.value + b2.value;
}
};
let form = document.createElement('form');
form.action = 'https://www.cab.lt/draustumo-patikra/';
form.method = 'POST';
form.target = '_blank';
let inputCountry = document.createElement('input');
inputCountry.type = 'hidden';
inputCountry.name = 'country';
inputCountry.value = 'LT';
let inputPlate = document.createElement('input');
inputPlate.type = 'hidden';
inputPlate.name = 'plate';
inputPlate.value = plateNumber;
form.appendChild(inputCountry);
form.appendChild(inputPlate);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
} else {
lookupButton.disabled = true; // Disable button
lookupButton.onclick = null; // Remove click event
}
}
// Function to create or update the Google Images button
function createOrUpdateGoogleImagesButton() {
// Check if all necessary fields contain data
const fieldsFilled = areFieldsFilled();
// Get the button or create it if it doesn't exist
let googleImagesButton = document.getElementById('googleImagesButton');
if (!googleImagesButton) {
googleImagesButton = document.createElement('button');
googleImagesButton.id = 'googleImagesButton';
googleImagesButton.innerText = 'Search combination on Google Images';
googleImagesButton.style.marginBottom = '10px';
googleImagesButton.style.width = '100%'; // Make the button as wide as its parent element
googleImagesButton.style.backgroundColor = '#3498db'; // Blue color for clickable button
googleImagesButton.style.color = '#ffffff'; // White text color
googleImagesButton.style.border = 'none'; // Remove border
googleImagesButton.style.cursor = 'pointer'; // Change cursor to pointer on hover
document.getElementById('zoomimgid').parentNode.insertBefore(googleImagesButton, document.getElementById('zoomimgid'));
}
// Set button link and enable/disable based on field data
if (fieldsFilled) {
googleImagesButton.disabled = false; // Enable button
googleImagesButton.onclick = function() {
let plateNumber = '';
if (window.location.href.includes('platesmania.com/nl/add')) {
plateNumber = document.getElementById('nomer').value;
} else if (window.location.href.includes('platesmania.com/ua/add')) {
const region = document.getElementById('region1').value;
const digits = document.getElementById('digit1').value;
const b1 = document.getElementById('b1').value;
const b2 = document.getElementById('b2').value;
plateNumber = `${region} ${digits} ${b1}${b2}`;
} else if (window.location.href.includes('platesmania.com/no/add')) {
const letField = document.getElementById('let').value;
const digitField = document.getElementById('digit').value;
plateNumber = letField + ' ' + digitField;
} else if (window.location.href.includes('platesmania.com/dk/add')) {
const letField = document.getElementById('let').value;
const digitField = document.getElementById('digit').value;
plateNumber = letField + ' ' + digitField;
} else if (window.location.href.includes('platesmania.com/fr/add')) {
const b1 = document.getElementById('b1').value;
const digit2 = document.getElementById('digit2').value;
const b2 = document.getElementById('b2').value;
plateNumber = `${b1} ${digit2} ${b2}`;
} else if (window.location.href.includes('platesmania.com/se/add')) {
const letField = document.getElementById('let').value;
const digitField = document.getElementById('digit').value;
plateNumber = letField + ' ' + digitField;
} else if (window.location.href.includes('platesmania.com/de/add')) {
const regionField = document.getElementById('region').value;
const letField = document.getElementById('b1').value;
const letField2 = document.getElementById('b2').value;
const digitField = document.getElementById('digit').value;
plateNumber = regionField + ' ' + letField + ' ' + digitField + letField2;
} else if (window.location.href.includes('platesmania.com/ch/add')) {
const regionField = document.getElementById('region').value;
const digitField = document.getElementById('digit').value;
plateNumber = regionField + ' ' + digitField;
} else if (window.location.href.includes('platesmania.com/fi/add')) {
const letField = document.getElementById('let1').value;
const digitField = document.getElementById('digit').value;
plateNumber = letField + '-' + digitField;
} else if (window.location.href.includes('platesmania.com/pl/add')) {
const regionField = document.getElementById('region');
const selectedRegionText = regionField.options[regionField.selectedIndex].text;
const digitField = document.getElementById('nomerpl').value;
plateNumber = selectedRegionText + ' ' + digitField;
} else if (window.location.href.includes('platesmania.com/uk/add')) {
const fieldData = document.getElementById('nomerpl').value;
plateNumber = fieldData;
} else if (window.location.href.includes('platesmania.com/lt/add')) {
const b1 = document.getElementById('b1');
const b2 = document.getElementById('b2');
const b3 = document.getElementById('b3');
const digitField1 = document.getElementById('digit1');
const digitField2 = document.getElementById('digit2');
const digitField3 = document.getElementById('digit3');
const vanityComb = document.getElementById('nomer');
const selectedValue = document.getElementById("ctype").value;
if (selectedValue === "1") {
// Cars
plateNumber = b1.value + b2.value + b3.value + digitField2.value;
} else if (selectedValue === "2") {
// Motorcycles
plateNumber = digitField1.value + b1.value + b2.value;
} else if (selectedValue === "3") {
// Trailers
plateNumber = b1.value + b2.value + digitField2.value;
} else if (selectedValue === "4") {
// Scooters
plateNumber = digitField1.value + b1.value + b2.value + b3.value;
} else if (selectedValue === "5" || selectedValue === "6" || selectedValue === "7" || selectedValue === "9") {
// Vanity, Electric, Oldtimers, Diplo
plateNumber = vanityComb.value;
} else if (selectedValue === "8") {
// Transit plates
plateNumber = digitField3.value + b1.value + b2.value;
}
};
window.open('https://www.google.com/search?tbm=isch&q="' + plateNumber + '"');
}
}
else {
googleImagesButton.disabled = true; // Disable button
googleImagesButton.onclick = null; // Remove click event
}
}
// Create or update the lookup and Google Images buttons initially
createOrUpdateLookupButton();
createOrUpdateGoogleImagesButton();
// Set interval to update button every 1-2 seconds
setInterval(() => {
createOrUpdateLookupButton();
createOrUpdateGoogleImagesButton();
}, 1000);
})();