您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
将各种国际货币金额转为你所在地区的币种(如CNY,HKD,NTD,USD,JPY等)
当前为
// ==UserScript== // @name YouTube SuperChat货币转换器 // @name:zh-CN YouTube SuperChat货币转换器 // @name:zh-TW YouTube SuperChat貨幣轉換器 // @name:zh-HK YouTube SuperChat貨幣轉換器 // @name:ja YouTube SuperChat通貨変換器 // @name:kr YouTube SuperChat 화폐 변환기 // @name:ar محول العملات لـ YouTube SuperChat // @name:bg YouTube SuperChat Конвертор на валута // @name:cs YouTube SuperChat Převodník měn // @name:da YouTube SuperChat Valutaomregner // @name:de YouTube SuperChat Währungsrechner // @name:el YouTube SuperChat Μετατροπέας νομισμάτων // @name:es Convertidor de divisas de YouTube SuperChat // @name:fr Convertisseur de devises YouTube SuperChat // @name:he ממיר מטבעות של YouTube SuperChat // @name:hi YouTube SuperChat मुद्रा परिवर्तक // @name:hu YouTube SuperChat Pénzváltó // @name:id YouTube SuperChat Konverter Mata Uang // @name:it Convertitore di valuta YouTube SuperChat // @name:nl YouTube SuperChat Valuta Converter // @name:no YouTube SuperChat Valutakonverterer // @name:pl Konwerter walut YouTube SuperChat // @name:pt-BR Conversor de moedas YouTube SuperChat // @name:ro Convertor de valute YouTube SuperChat // @name:ru Конвертер валют YouTube SuperChat // @name:sv YouTube SuperChat Valutakonverterare // @name:th ตัวแปลงสกุลเงิน YouTube SuperChat // @name:tr YouTube SuperChat Döviz Çevirici // @name:uk Конвертер валют YouTube SuperChat // @name:vi Trình chuyển đổi tiền tệ YouTube SuperChat // @description 将各种国际货币金额转为你所在地区的币种(如CNY,HKD,NTD,USD,JPY等) // @description:zh-CN 将各种国际货币金额转为你所在地区的币种(如CNY,HKD,NTD,USD,JPY等) // @description:zh-TW 將各種國際貨幣金額轉為你所在地區的幣種(如CNY,HKD,NTD,USD,JPY等) // @description:zh-HK 將各種國際貨幣金額轉為你所在地區的幣種(如CNY,HKD,NTD,USD,JPY等) // @description:ja 各国の通貨をあなたの地域の通貨に変換します(CNY, HKD, NTD, USD, JPYなど) // @description:kr 다양한 국제 통화를 거주 지역의 통화로 변환합니다 (예: CNY, HKD, NTD, USD, JPY 등) // @description:ar تحويل مبالغ العملات الدولية المختلفة إلى عملة منطقتك (مثل CNY، HKD، NTD، USD، JPY، إلخ.) // @description:bg Преобразуване на суми от различни международни валути във валутата на вашия регион (като CNY, HKD, NTD, USD, JPY и др.) // @description:cs Převod různých mezinárodních měn na měnu vašeho regionu (např. CNY, HKD, NTD, USD, JPY atd.) // @description:da Konverter forskellige internationale valutaer til din regions valuta (f.eks. CNY, HKD, NTD, USD, JPY osv.) // @description:de Konvertieren Sie verschiedene internationale Währungen in die Währung Ihrer Region (z.B. CNY, HKD, NTD, USD, JPY usw.) // @description:el Μετατροπή διαφόρων διεθνών νομισμάτων στο νόμισμα της περιοχής σας (π.χ. CNY, HKD, NTD, USD, JPY κ.λπ.) // @description:es Convierte diferentes monedas internacionales a la moneda de tu región (como CNY, HKD, NTD, USD, JPY, etc.) // @description:fr Convertissez différentes devises internationales en la devise de votre région (comme CNY, HKD, NTD, USD, JPY, etc.) // @description:he המרת סכומים במטבעות שונים למטבע המקומי שלך (כגון CNY, HKD, NTD, USD, JPY ועוד) // @description:hi विभिन्न अंतरराष्ट्रीय मुद्राओं को अपने क्षेत्र की मुद्रा में परिवर्तित करें (जैसे CNY, HKD, NTD, USD, JPY आदि) // @description:hu Különböző nemzetközi valuták összegeit átváltja a régiója pénznemére (pl. CNY, HKD, NTD, USD, JPY stb.) // @description:id Mengonversi berbagai jumlah mata uang internasional ke mata uang daerah Anda (seperti CNY, HKD, NTD, USD, JPY, dll.) // @description:it Converti diversi importi di valuta internazionale nella valuta della tua regione (come CNY, HKD, NTD, USD, JPY, ecc.) // @description:nl Converteert verschillende internationale valuta naar de valuta van uw regio (zoals CNY, HKD, NTD, USD, JPY, enz.) // @description:no Konverter forskjellige internasjonale valutaer til valutaen i din region (f.eks. CNY, HKD, NTD, USD, JPY osv.) // @description:pl Przekształć różne międzynarodowe waluty na walutę swojego regionu (np. CNY, HKD, NTD, USD, JPY itp.) // @description:pt-BR Converta diferentes moedas internacionais para a moeda da sua região (como CNY, HKD, NTD, USD, JPY, etc.) // @description:ro Convertiți diverse sume de valută internațională în moneda regiunii dvs. (cum ar fi CNY, HKD, NTD, USD, JPY etc.) // @description:ru Конвертируйте различные международные валюты в валюту вашего региона (например, CNY, HKD, NTD, USD, JPY и т. д.) // @description:sv Konvertera olika internationella valutor till din regions valuta (t.ex. CNY, HKD, NTD, USD, JPY osv.) // @description:th แปลงสกุลเงินต่างประเทศเป็นสกุลเงินในท้องถิ่นของคุณ (เช่น CNY, HKD, NTD, USD, JPY เป็นต้น) // @description:tr Farklı uluslararası para birimlerini kendi bölgenizin para birimine çevirin (örneğin CNY, HKD, NTD, USD, JPY vb.) // @description:uk Конвертуйте різні міжнародні валюти у валюту вашого регіону (наприклад, CNY, HKD, NTD, USD, JPY тощо) // @description:vi Chuyển đổi các loại tiền tệ quốc tế khác nhau sang tiền tệ của khu vực bạn (như CNY, HKD, NTD, USD, JPY, v.v.) // @description:en Convert various international currency amounts to your local currency (such as CNY, HKD, NTD, USD, JPY, etc.) // @namespace http://tampermonkey.net/ // @version 1.0 // @author kksskkoopp // @match https://www.youtube.com/* // @grant GM_xmlhttpRequest // @require https://code.jquery.com/jquery-3.6.0.min.js // @connect v6.exchangerate-api.com // @license MIT // @run-at document-start // ==/UserScript== /* globals $ */ (function() { 'use strict'; // 汇率API信息 let targetCurrencyCode = 'CNY'; // 目标币种,targetCurrencyCode let targetCurrencyPrecision = 1 // 目标币种保留的小数位数; // API密钥请在 https://www.exchangerate-api.com/ 免费获取:邮箱注册->一键激活->获得API密钥->替换下面的API_KEY let API_KEY = '0c719520222e5b86cf26f479'; // API密钥 let API_URL = `https://v6.exchangerate-api.com/v6/${API_KEY}/latest/${targetCurrencyCode}`; // API地址 // YoutubeSuperChat货币符号 : ISO-4217货币码 let currencyMap = { '$': 'USD', // 美元 '¥': 'JPY', // 日元 '₱': 'PHP', // 菲律宾比索 '£': 'GBP', // 英镑 '€': 'EUR', // 欧元 '₩': 'KRW', // 韩元 '₽': 'RUB', // 卢布 '₹': 'INR', // 卢比 '฿': 'THB', // 泰铢 '₣': 'FRF', // 法朗 '₫': 'VND', // 越南盾 'A$': 'AUD', // 澳大利亚元 'NZ$': 'NZD', // 新西兰元 'R$': 'BRL', // 巴西雷亚尔 'HK$': 'HKD', // 港币 'NT$': 'TWD', // 新台币 'CA$': 'CAD', // 加拿大元 'AED': 'AED', // 阿联酋迪拉姆 'ARS': 'ARS', // 阿根廷比索 'SGD': 'SGD', // 新加坡元 'MYR': 'MYR' // 马来西亚林吉特 }; let exchangeRates = {}; /* 计算公式 targetCurrencyAmount = fromCurrencyAmount * exchangeRates[fromCurrenyCode] */ // 获取汇率信息 function fetchExchangeRates(callback) { console.log(`开始请求汇率${API_URL}`); GM_xmlhttpRequest({ method: 'GET', url: API_URL, onload: function(response) { let data = JSON.parse(response.responseText); if (data.result == 'success') { exchangeRates = data.conversion_rates; let datetime = new Date(); console.log(`汇率 ${datetime.toLocaleDateString()} ${datetime.toLocaleTimeString()}`); console.log(exchangeRates); console.log('汇率请求完毕'); callback(); } else if (data.result == 'error') { console.error(`错误:error-type:${data.error-type}`); console.error(`详情见https://www.exchangerate-api.com/docs/standard-requests`); } }, onerror: function() { console.error('无法获取汇率'); } }); } // 解析金额和货币类型 function parseAmountAndCurrency(text) { // 去除空白字符 text = text.replace(/\s+/g, ''); // 遍历currencyMap字典,找到匹配的货币符号 for (let [symbol, code] of Object.entries(currencyMap)) { if (text.startsWith(symbol)) { // 提取金额部分,并去除货币符号和千位分隔符 let amount = parseFloat(text.replace(symbol, '').replace(/,/g, '')); return { amount, fromCurrencyCode: code }; } } console.error(`新的币种${text}.`); return null; // 如果未找到匹配的货币符号,返回null } // 观察DOM变化并转换SuperChat金额 function observeSuperChat() { let targetNode = document.body; let config = { childList: true, subtree: true }; let callback = function(mutationsList, observer) { for(let mutation of mutationsList) { if (mutation.type === 'childList') { // 遍历新增的节点,检查是否包含SuperChat消息 $(mutation.addedNodes).each(function() { let element = $(this).find('yt-formatted-string.style-scope.yt-live-chat-paid-message-renderer, yt-formatted-string.style-scope.yt-live-chat-paid-sticker-renderer'); if (element.length > 0) { // 处理每个SuperChat消息 element.each(function() { if (!$(this).attr('YoutubeSuperChatCurrencyConverter-converted')) { let message = $(this).text().trim(); console.log(`捕获到超级留言${message}`); let parsed = parseAmountAndCurrency(message); if (parsed) { console.log(`解析成功${message}:${parsed.fromCurrencyCode} ${parsed.amount}`); // 获取汇率并计算转换后的金额 let targetCurrencyAmount = parsed.amount / exchangeRates[parsed.fromCurrencyCode]; let targetCurrencyAmount_str = targetCurrencyAmount.toFixed(targetCurrencyPrecision); let newText = `${message}=${targetCurrencyCode} ${targetCurrencyAmount_str}`; $(this).text(newText); $(this).attr('YoutubeSuperChatCurrencyConverter-converted', 'true'); // 标记为已处理 } else { console.log(`解析失败${message}`); } } }); } }); } } }; // 创建并启动MutationObserver let observer = new MutationObserver(callback); observer.observe(targetNode, config); } // 启动观察器 $(document).ready(function() { fetchExchangeRates(observeSuperChat); }); })();