您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Allows you to copy the gog languages in a BBCode fashion
- // ==UserScript==
- // @name GOG Language BBCode quick copy
- // @namespace https://gf.qytechs.cn/
- // @version 0.02
- // @description Allows you to copy the gog languages in a BBCode fashion
- // @author byJ
- // @license MIT
- // @match https://www.gog.com/en/game/*
- // @grant GM_xmlhttpRequest
- // @grant GM_setClipboard
- // @grant GM_setValue
- // @grant GM_getValue
- // ==/UserScript==
- (function() {
- 'use strict';
- if(window.location.hostname === 'www.gog.com'){
- gogButton();
- }
- function gogButton(){
- const $btn = document.createElement('a');
- const text = 'Copy BBCode';
- $btn.classList.add('btnv6_blue_hoverfade', 'btn_small');
- const $text = $btn.appendChild(document.createElement('span'));
- $text.innerHTML = `${text}<img src="https://ptpimg.me/sx226x.png">`;
- $btn.addEventListener('click', function(){
- GM_setClipboard(parseGOGLanguage(document), 'text');
- $text.childNodes[0].nodeValue = 'copied';
- setTimeout(function(){$text.childNodes[0].nodeValue = text; }, 3000);
- });
- const $container = document.querySelector('div.details.table.table--without-border.ng-scope')
- const $before = document.querySelectorAll('.details__separator')[1]
- $container.insertBefore($btn, $before);
- }
- function parseGOGLanguage($document){
- let languages_div_list = $document.querySelectorAll('div.details__content.table__row-content.details__languages-row');
- if(!languages_div_list) return;
- let languages = {
- 'Audio': [],
- 'Text': [],
- };
- languages_div_list.forEach(function (element) {
- let language = element.querySelector('div').textContent.trim();
- let audio = element.querySelectorAll('use')[0].getAttribute('xlink:href');
- let text = element.querySelectorAll('use')[1].getAttribute('xlink:href');
- if (audio === '#check_tick'){ languages['Audio'].push(language) }
- if (text === '#check_tick'){ languages['Text'].push(language) }
- })
- let output = ''
- let keys = Object.keys(languages);
- for(var i = 0; i < keys.length; i++){
- let key = keys[i];
- if (languages[key].length === 0){
- continue
- }
- let keygroup = [key];
- if(i < keys.length - 1){
- for(var iNext = i+1; iNext < keys.length; iNext){
- if(areSame(languages[keys[i]], languages[keys[iNext]])) {
- keygroup.push(keys[iNext]);
- keys.splice(iNext,1);
- } else {
- iNext++;
- }
- }
- }
- const multi = languages[key].length > 1;
- if(keys.length === 1){
- output += `[b]Language${multi ? "s": ""}[/b]: `;
- }else {
- output += `[b]${keygroup.join(' and ')} Language${multi ? "s": ""}[/b]: `;
- }
- if(multi){
- let lastItem = languages[key].pop();
- output += languages[key].join(', ');
- output += ` and ${lastItem}`;
- } else {
- output += languages[key];
- }
- output += '\n';
- }
- return output;
- }
- function areSame(array1, array2){
- return array1.length === array2.length && array1.sort().every((value, index) => value === array2.sort()[index])
- }
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址