Greasy Fork

Greasy Fork is available in English.

Pandabuy converter

Converts price to GBP on pandabuy

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Pandabuy converter
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Converts price to GBP on pandabuy
// @author       You
// @match        https://www.pandabuy.com/product*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=pandabuy.com
// @grant        none
// @license MIT
// ==/UserScript==

// Bulky but makes the script nicer overall

let data = [
    {
      "currency": "Albania Lek",
      "abbreviation": "ALL",
      "symbol": "Lek"
    },
    {
      "currency": "Afghanistan Afghani",
      "abbreviation": "AFN",
      "symbol": "؋"
    },
    {
      "currency": "Argentina Peso",
      "abbreviation": "ARS",
      "symbol": "$"
    },
    {
      "currency": "Aruba Guilder",
      "abbreviation": "AWG",
      "symbol": "ƒ"
    },
    {
      "currency": "Australia Dollar",
      "abbreviation": "AUD",
      "symbol": "$"
    },
    {
      "currency": "Azerbaijan New Manat",
      "abbreviation": "AZN",
      "symbol": "ман"
    },
    {
      "currency": "Bahamas Dollar",
      "abbreviation": "BSD",
      "symbol": "$"
    },
    {
      "currency": "Barbados Dollar",
      "abbreviation": "BBD",
      "symbol": "$"
    },
    {
      "currency": "Belarus Ruble",
      "abbreviation": "BYR",
      "symbol": "p."
    },
    {
      "currency": "Belize Dollar",
      "abbreviation": "BZD",
      "symbol": "BZ$"
    },
    {
      "currency": "Bermuda Dollar",
      "abbreviation": "BMD",
      "symbol": "$"
    },
    {
      "currency": "Bolivia Boliviano",
      "abbreviation": "BOB",
      "symbol": "$b"
    },
    {
      "currency": "Bosnia and Herzegovina Convertible Marka",
      "abbreviation": "BAM",
      "symbol": "KM"
    },
    {
      "currency": "Botswana Pula",
      "abbreviation": "BWP",
      "symbol": "P"
    },
    {
      "currency": "Bulgaria Lev",
      "abbreviation": "BGN",
      "symbol": "лв"
    },
    {
      "currency": "Brazil Real",
      "abbreviation": "BRL",
      "symbol": "R$"
    },
    {
      "currency": "Brunei Darussalam Dollar",
      "abbreviation": "BND",
      "symbol": "$"
    },
    {
      "currency": "Cambodia Riel",
      "abbreviation": "KHR",
      "symbol": "៛"
    },
    {
      "currency": "Canada Dollar",
      "abbreviation": "CAD",
      "symbol": "$"
    },
    {
      "currency": "Cayman Islands Dollar",
      "abbreviation": "KYD",
      "symbol": "$"
    },
    {
      "currency": "Chile Peso",
      "abbreviation": "CLP",
      "symbol": "$"
    },
    {
      "currency": "China Yuan Renminbi",
      "abbreviation": "CNY",
      "symbol": "¥"
    },
    {
      "currency": "Colombia Peso",
      "abbreviation": "COP",
      "symbol": "$"
    },
    {
      "currency": "Costa Rica Colon",
      "abbreviation": "CRC",
      "symbol": "₡"
    },
    {
      "currency": "Croatia Kuna",
      "abbreviation": "HRK",
      "symbol": "kn"
    },
    {
      "currency": "Cuba Peso",
      "abbreviation": "CUP",
      "symbol": "₱"
    },
    {
      "currency": "Czech Republic Koruna",
      "abbreviation": "CZK",
      "symbol": "Kč"
    },
    {
      "currency": "Denmark Krone",
      "abbreviation": "DKK",
      "symbol": "kr"
    },
    {
      "currency": "Dominican Republic Peso",
      "abbreviation": "DOP",
      "symbol": "RD$"
    },
    {
      "currency": "East Caribbean Dollar",
      "abbreviation": "XCD",
      "symbol": "$"
    },
    {
      "currency": "Egypt Pound",
      "abbreviation": "EGP",
      "symbol": "£"
    },
    {
      "currency": "El Salvador Colon",
      "abbreviation": "SVC",
      "symbol": "$"
    },
    {
      "currency": "Estonia Kroon",
      "abbreviation": "EEK",
      "symbol": "kr"
    },
    {
      "currency": "Euro Member Countries",
      "abbreviation": "EUR",
      "symbol": "€"
    },
    {
      "currency": "Falkland Islands (Malvinas) Pound",
      "abbreviation": "FKP",
      "symbol": "£"
    },
    {
      "currency": "Fiji Dollar",
      "abbreviation": "FJD",
      "symbol": "$"
    },
    {
      "currency": "Ghana Cedis",
      "abbreviation": "GHC",
      "symbol": "¢"
    },
    {
      "currency": "Gibraltar Pound",
      "abbreviation": "GIP",
      "symbol": "£"
    },
    {
      "currency": "Guatemala Quetzal",
      "abbreviation": "GTQ",
      "symbol": "Q"
    },
    {
      "currency": "Guernsey Pound",
      "abbreviation": "GGP",
      "symbol": "£"
    },
    {
      "currency": "Guyana Dollar",
      "abbreviation": "GYD",
      "symbol": "$"
    },
    {
      "currency": "Honduras Lempira",
      "abbreviation": "HNL",
      "symbol": "L"
    },
    {
      "currency": "Hong Kong Dollar",
      "abbreviation": "HKD",
      "symbol": "$"
    },
    {
      "currency": "Hungary Forint",
      "abbreviation": "HUF",
      "symbol": "Ft"
    },
    {
      "currency": "Iceland Krona",
      "abbreviation": "ISK",
      "symbol": "kr"
    },
    {
      "currency": "India Rupee",
      "abbreviation": "INR",
      "symbol": null
    },
    {
      "currency": "Indonesia Rupiah",
      "abbreviation": "IDR",
      "symbol": "Rp"
    },
    {
      "currency": "Iran Rial",
      "abbreviation": "IRR",
      "symbol": "﷼"
    },
    {
      "currency": "Isle of Man Pound",
      "abbreviation": "IMP",
      "symbol": "£"
    },
    {
      "currency": "Israel Shekel",
      "abbreviation": "ILS",
      "symbol": "₪"
    },
    {
      "currency": "Jamaica Dollar",
      "abbreviation": "JMD",
      "symbol": "J$"
    },
    {
      "currency": "Japan Yen",
      "abbreviation": "JPY",
      "symbol": "¥"
    },
    {
      "currency": "Jersey Pound",
      "abbreviation": "JEP",
      "symbol": "£"
    },
    {
      "currency": "Kazakhstan Tenge",
      "abbreviation": "KZT",
      "symbol": "лв"
    },
    {
      "currency": "Korea (North) Won",
      "abbreviation": "KPW",
      "symbol": "₩"
    },
    {
      "currency": "Korea (South) Won",
      "abbreviation": "KRW",
      "symbol": "₩"
    },
    {
      "currency": "Kyrgyzstan Som",
      "abbreviation": "KGS",
      "symbol": "лв"
    },
    {
      "currency": "Laos Kip",
      "abbreviation": "LAK",
      "symbol": "₭"
    },
    {
      "currency": "Latvia Lat",
      "abbreviation": "LVL",
      "symbol": "Ls"
    },
    {
      "currency": "Lebanon Pound",
      "abbreviation": "LBP",
      "symbol": "£"
    },
    {
      "currency": "Liberia Dollar",
      "abbreviation": "LRD",
      "symbol": "$"
    },
    {
      "currency": "Lithuania Litas",
      "abbreviation": "LTL",
      "symbol": "Lt"
    },
    {
      "currency": "Macedonia Denar",
      "abbreviation": "MKD",
      "symbol": "ден"
    },
    {
      "currency": "Malaysia Ringgit",
      "abbreviation": "MYR",
      "symbol": "RM"
    },
    {
      "currency": "Mauritius Rupee",
      "abbreviation": "MUR",
      "symbol": "₨"
    },
    {
      "currency": "Mexico Peso",
      "abbreviation": "MXN",
      "symbol": "$"
    },
    {
      "currency": "Mongolia Tughrik",
      "abbreviation": "MNT",
      "symbol": "₮"
    },
    {
      "currency": "Mozambique Metical",
      "abbreviation": "MZN",
      "symbol": "MT"
    },
    {
      "currency": "Namibia Dollar",
      "abbreviation": "NAD",
      "symbol": "$"
    },
    {
      "currency": "Nepal Rupee",
      "abbreviation": "NPR",
      "symbol": "₨"
    },
    {
      "currency": "Netherlands Antilles Guilder",
      "abbreviation": "ANG",
      "symbol": "ƒ"
    },
    {
      "currency": "New Zealand Dollar",
      "abbreviation": "NZD",
      "symbol": "$"
    },
    {
      "currency": "Nicaragua Cordoba",
      "abbreviation": "NIO",
      "symbol": "C$"
    },
    {
      "currency": "Nigeria Naira",
      "abbreviation": "NGN",
      "symbol": "₦"
    },
    {
      "currency": "Korea (North) Won",
      "abbreviation": "KPW",
      "symbol": "₩"
    },
    {
      "currency": "Norway Krone",
      "abbreviation": "NOK",
      "symbol": "kr"
    },
    {
      "currency": "Oman Rial",
      "abbreviation": "OMR",
      "symbol": "﷼"
    },
    {
      "currency": "Pakistan Rupee",
      "abbreviation": "PKR",
      "symbol": "₨"
    },
    {
      "currency": "Panama Balboa",
      "abbreviation": "PAB",
      "symbol": "B/."
    },
    {
      "currency": "Paraguay Guarani",
      "abbreviation": "PYG",
      "symbol": "Gs"
    },
    {
      "currency": "Peru Nuevo Sol",
      "abbreviation": "PEN",
      "symbol": "S/."
    },
    {
      "currency": "Philippines Peso",
      "abbreviation": "PHP",
      "symbol": "₱"
    },
    {
      "currency": "Poland Zloty",
      "abbreviation": "PLN",
      "symbol": "zł"
    },
    {
      "currency": "Qatar Riyal",
      "abbreviation": "QAR",
      "symbol": "﷼"
    },
    {
      "currency": "Romania New Leu",
      "abbreviation": "RON",
      "symbol": "lei"
    },
    {
      "currency": "Russia Ruble",
      "abbreviation": "RUB",
      "symbol": "руб"
    },
    {
      "currency": "Saint Helena Pound",
      "abbreviation": "SHP",
      "symbol": "£"
    },
    {
      "currency": "Saudi Arabia Riyal",
      "abbreviation": "SAR",
      "symbol": "﷼"
    },
    {
      "currency": "Serbia Dinar",
      "abbreviation": "RSD",
      "symbol": "Дин."
    },
    {
      "currency": "Seychelles Rupee",
      "abbreviation": "SCR",
      "symbol": "₨"
    },
    {
      "currency": "Singapore Dollar",
      "abbreviation": "SGD",
      "symbol": "$"
    },
    {
      "currency": "Solomon Islands Dollar",
      "abbreviation": "SBD",
      "symbol": "$"
    },
    {
      "currency": "Somalia Shilling",
      "abbreviation": "SOS",
      "symbol": "S"
    },
    {
      "currency": "South Africa Rand",
      "abbreviation": "ZAR",
      "symbol": "R"
    },
    {
      "currency": "Korea (South) Won",
      "abbreviation": "KRW",
      "symbol": "₩"
    },
    {
      "currency": "Sri Lanka Rupee",
      "abbreviation": "LKR",
      "symbol": "₨"
    },
    {
      "currency": "Sweden Krona",
      "abbreviation": "SEK",
      "symbol": "kr"
    },
    {
      "currency": "Switzerland Franc",
      "abbreviation": "CHF",
      "symbol": "CHF"
    },
    {
      "currency": "Suriname Dollar",
      "abbreviation": "SRD",
      "symbol": "$"
    },
    {
      "currency": "Syria Pound",
      "abbreviation": "SYP",
      "symbol": "£"
    },
    {
      "currency": "Taiwan New Dollar",
      "abbreviation": "TWD",
      "symbol": "NT$"
    },
    {
      "currency": "Thailand Baht",
      "abbreviation": "THB",
      "symbol": "฿"
    },
    {
      "currency": "Trinidad and Tobago Dollar",
      "abbreviation": "TTD",
      "symbol": "TT$"
    },
    {
      "currency": "Turkey Lira",
      "abbreviation": "TRY",
      "symbol": null
    },
    {
      "currency": "Turkey Lira",
      "abbreviation": "TRL",
      "symbol": "₤"
    },
    {
      "currency": "Tuvalu Dollar",
      "abbreviation": "TVD",
      "symbol": "$"
    },
    {
      "currency": "Ukraine Hryvna",
      "abbreviation": "UAH",
      "symbol": "₴"
    },
    {
      "currency": "United Kingdom Pound",
      "abbreviation": "GBP",
      "symbol": "£"
    },
    {
      "currency": "United States Dollar",
      "abbreviation": "USD",
      "symbol": "$"
    },
    {
      "currency": "Uruguay Peso",
      "abbreviation": "UYU",
      "symbol": "$U"
    },
    {
      "currency": "Uzbekistan Som",
      "abbreviation": "UZS",
      "symbol": "лв"
    },
    {
      "currency": "Venezuela Bolivar",
      "abbreviation": "VEF",
      "symbol": "Bs"
    },
    {
      "currency": "Viet Nam Dong",
      "abbreviation": "VND",
      "symbol": "₫"
    },
    {
      "currency": "Yemen Rial",
      "abbreviation": "YER",
      "symbol": "﷼"
    },
    {
      "currency": "Zimbabwe Dollar",
      "abbreviation": "ZWD",
      "symbol": "Z$"
    }
  ]

  function decodeHTMLEntities(text) {
    let textArea = document.createElement('textarea');
    textArea.innerHTML = text;
    return textArea.value;
  }

function GetSymbol(abbreviation){
    for (let i = 0; i < data.length; i++){
        let OBJ = data[i]
        let CHECK = OBJ["abbreviation"]
        if (CHECK == abbreviation){
            return decodeHTMLEntities(OBJ.symbol)
        }
    }
    return null
}

let Currency = "GBP"

let PossibleCurrency = localStorage.getItem("MOJAVEMF_CURRENCY")

  
if (PossibleCurrency === undefined){
    localStorage.setItem("MOJAVEMF_CURRENCY",Currency)
} else {
    Currency = PossibleCurrency
}

localStorage.setItem("MOJAVEMF_CURRENCY",Currency)

function Wait(MS){
    return new Promise((res,rej) => {
        try{
            setTimeout(() => {
                res()
            }, MS);
        } catch(err){
            rej(err)
        }
    })
}

let main = async function() {
    'use strict';

    let Currenceys = []
    
    let Fetched = await fetch("https://open.er-api.com/v6/latest/CNY")
    
    let JSON_FETCH = await Fetched.json();

    let ConversionRate = JSON_FETCH.rates[Currency]
    
    for (const key in Object.keys(JSON_FETCH.rates)){
        Currenceys.push(key)
    }

    let Defined = false;
    let PriceHolder //= document.getElementsByClassName("price-title")
    let Layout 

    while (Defined == false){
        await Wait(250);
        const holders = document.getElementsByClassName("price-goods-discount-layout");
        if (holders.length > 0){
            Layout = holders[0]
            /*
            PriceHolder = holders[0]
            Defined = true;
            */
            for (const child of holders[0].children){
                if (child.className == ""){
                    PriceHolder = child;
                    Defined = true;
                }
            }
        }
    }


    let text = PriceHolder.innerText
    let data = +text.replace(/[^0-9.]/g,"")
    let Symbol = GetSymbol(Currency)
    let newText = `| ${Currency} ${Symbol} ${Math.round((data*ConversionRate)*100)/100}` //`${text} | ${Currency} ${Symbol} ${Math.round((data*ConversionRate)*100)/100}`
    let ConvertedHolder = document.createElement("span")
    ConvertedHolder.style = PriceHolder.style
    ConvertedHolder.innerText = newText
    Layout.appendChild(ConvertedHolder)
    let ChangeCurrency = document.createElement("button")
    ChangeCurrency.className = "el-button margin-left-10 change-price el-button--text el-button--mini"
    Layout.appendChild(ChangeCurrency)
    let change = document.getElementsByClassName("el-button margin-left-10 change-price el-button--text el-button--mini")[0]
    Layout.appendChild(change)
    let Text = document.createElement("span")
    Text.innerText = "Change currency"
    ChangeCurrency.appendChild(Text)
    ChangeCurrency.onclick = function(){
        let input = window.prompt("Input currency (3 letter abbriviation)")


        if (!(JSON_FETCH.rates[input] == undefined)){
            localStorage.setItem("MOJAVEMF_CURRENCY",input)
            location.reload()
            return;
        }
        alert("Invalid currency")
    }

    document.getElementsByClassName("text-refreash")[0].addEventListener("click",function(){
        main();
    })
    PriceHolder.addEventListener("DOMSubtreeModified",function(){
        let text = PriceHolder.innerText
    let data = +text.replace(/[^0-9.]/g,"")
    let Symbol = GetSymbol(Currency)
        let newText = `| ${Currency} ${Symbol} ${Math.round((data*ConversionRate)*100)/100}` 
        ConvertedHolder.innerText = newText
    })
}

main();