Sortiert Angeboote auf flaschenpost.de nach Bestpreis pro Liter.
当前为
// ==UserScript==
// @name Flaschenpost.de Bestpreis Sortierer
// @description Sortiert Angeboote auf flaschenpost.de nach Bestpreis pro Liter.
// @namespace https://www.flaschenpost.de
// @version 0.14
// @license MIT
// @match https://www.flaschenpost.de/*
// @run-at document-end
// @icon https://www.google.com/s2/favicons?sz=64&domain=flaschenpost.de
// @require https://code.jquery.com/jquery-3.6.3.js
// ==/UserScript==
$(window).bind("load", function() {
const sortButton = $(`<button
id="bestpreisbtn"
class="fp_button fp_button_primary fp_button_medium"
style="margin-top: 1.25rem;">Sortieren nach Bestpreis
</button>`);
sortButton.click(function() {
$('.products_list_vue_container, .products_grid_vue_container, .product_groups').each(function() {
const listElements = $(this).find('.fp_product');
console.log('listElements', listElements);
$(listElements).sort(function(a, b) {
function extract_price(e) {
const priceElements = $(e).find('.fp_article_pricePerUnit_deposit');
const prices = $.map(priceElements, function (e) {
const htmlText = $(e).text();
console.log('htmlText', htmlText);
const regExMatch = htmlText.match(/\(([0-9\,]+) €\//); // match (_,__ €/___...) Unit can be "L" "Liter" "kg"
console.log('regExMatch', regExMatch);
return Number.parseFloat(regExMatch[1].replace(',', '.'));
});
console.log('prices', prices);
return Math.min(...prices);
}
return extract_price(a) - extract_price(b);
}).appendTo(this);
});
});
setInterval(() => {
if (!$('.fp-benefits_holder #bestpreisbtn').length) {
$('.fp-benefits_holder').append(sortButton);
}
}, 1000);
});