Steam Community Items Forum Code Quick Generation

Extracts image urls from Steam Card Exchange

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Steam Community Items Forum Code Quick Generation
// @namespace    http://tampermonkey.net/
// @version      1.01
// @author       祈之羽
// @match        https://www.steamcardexchange.net/index.php?gamepage-appid-*
// @grant        GM_setClipboard
// @license      MIT
// @description Extracts image urls from Steam Card Exchange
// ==/UserScript==

(function() {
    'use strict';
    var showcaseElement = document.querySelector('span.tracking-wider.text-3\\.5xl.font-league-gothic.truncate');
    showcaseElement.addEventListener('click', function() {
        var divElements = document.querySelectorAll('div.flex.justify-between.w-full.text-sxs');
        var normalCards = [];
        var shinyCards = [];
        var badges = [];
        var emoticons = [];
        var profileBackgrounds = [];
        divElements.forEach((div, index) => {
            var parentDiv = div.parentNode;
            var imgElement = parentDiv.querySelector('img');
            if (imgElement !== null) {
                if (index < divElements.length / 2) {
                    normalCards.push(`[img]${imgElement.src}[/img]`);
                } else {
                    shinyCards.push(`[img]${imgElement.src}[/img]`);
                }
            }
        });
        var booster = document.querySelector('div.flex.flex-col.items-center.p-5.gap-y-4.bg-gray-light > img');
        var boosterSrc = `[img]${booster.src.replace('&l=english', '&l=chinese')}[/img]`;
        var badgeElements = document.querySelectorAll('div.flex.flex-col.items-center.p-5.gap-y-2.bg-gray-light');
        badgeElements.forEach((badgeElement) => {
            var targetElement = badgeElement.querySelector('.text-xs.text-key-gray');
            if (targetElement) {
                var imgElement = badgeElement.querySelector('img');
                if (imgElement !== null) {
                    badges.push(`[img]${imgElement.src}[/img]`);
                }
            }
        });
        var shinyBadge = badges.pop();
        var emoticonElements = document.querySelectorAll('div.text-sm.text-center.break-all');
        emoticonElements.forEach((emoticonElement) => {
            var parentElement = emoticonElement.parentNode;
            var imgElements = parentElement.querySelectorAll('img');
            if (imgElements.length > 1) {
                emoticons.push(`[img]${imgElements[1].src}[/img]`);
            }
        });
        var backgroundElements = document.querySelectorAll('div.flex.justify-end.w-full.text-sxs');
        backgroundElements.forEach((backgroundElement) => {
            var parentElement = backgroundElement.parentNode;
            var imgElement = parentElement.querySelector('img.cursor-pointer.gallery-static-trigger');
            if (imgElement !== null) {
                var src = imgElement.src.split('?')[0];
                profileBackgrounds.push(`[img]${src}[/img]`);
            }
        });
        var currentURL = window.location.href;
        var appid = currentURL.split('gamepage-appid-')[1];
        var outputString = "[sframe]" + appid + "[/sframe]\n数据来源:[url=" + currentURL + "]" +
            currentURL + "[/url]" + "\n\n[k1]普通卡牌[/k1]\n" + normalCards.join('') +
            "\n\n[k1]闪亮卡牌[/k1]\n" + shinyCards.join('') +
            "\n\n[k1]补充包[/k1]\n" + boosterSrc +
            "\n\n[k1]普通徽章[/k1]\n" + badges.join('') +
            "\n\n[k1]闪亮徽章[/k1]\n" + shinyBadge +
            "\n\n[k1]表情[/k1]\n" + emoticons.join('') +
            "\n\n[k1]个人资料背景[/k1]\n" + profileBackgrounds.join('');
        GM_setClipboard(outputString); // Copy to clipboard
        alert("Generated code has been copied to clipboard!");
    }, false);
})();