<!DOCTYPE html>
<html>
<head>
    <title>音频源提取器</title>
    <style>
        .container { max-width: 800px; margin: 20px auto }
        textarea {
            width: 100%; height: 200px;
            padding: 10px; margin: 10px 0;
            border: 1px solid #ccc
        }
        button {
            padding: 8px 20px;
            background: #007bff; color: white;
            border: none; cursor: pointer
        }
        #result { margin-top: 20px; padding: 15px }
    </style>
</head>
<body>
	游戏名:<input id="game"><br>
	用序号替换名称:<input type="checkbox" id="id">
    <div class="container">
        <h3>粘贴HTML代码:</h3>
        <textarea id="htmlInput" placeholder="粘贴复制的HTML代码..."></textarea>
        <button onclick="parseHTML()">解析音频源</button>
        <div id="result"></div>
    </div>

    <script>
		function copy(s){
			navigator.clipboard.writeText(s);
		};
		
        function parseHTML() {
            const htmlContent = document.getElementById('htmlInput').value;
            const resultDiv = document.getElementById('result');
            try {
                // 创建文档解析器:ml-citation{ref="3,5" data="citationList"}
                const parser = new DOMParser();
                const doc = parser.parseFromString(htmlContent, 'text/html');
				const scripts = doc.querySelectorAll('script[type="application/ld+json"]')
				const json = JSON.parse(scripts[1].textContent).itemListElement;
                // 结果输出处理
                if (json.length === 0) {
                    resultDiv.innerHTML = "<span style='color:#666'>未找到音频源</span>";
                    return;
                }
                let output = `<strong>找到 ${json.length} 个音频源:</strong><ul>`;
                json.forEach((obj, index) => {
					let name = obj.name, url = obj.contentUrl;
					let file_name = document.getElementById('game').value + ' - ';
					if(document.getElementById('id').checked)
						file_name += index + 1;
					else
						file_name += name.replace(/^\s*\d+\. /, '').replace(/\s*-.*/, '');
					file_name = file_name.replace(/\s+$/, '');
					let site = url.replace(/\?.*/, '');
					output += `
						<li>
							(${index+1}) ${file_name}
							<a href="${site}" download="1.mp3" style="font-size: 0.5em"
							oncontextmenu="copy('${file_name}')">${site}</a>
						</li>
					`;


                });
                output += '</ul>';
                resultDiv.innerHTML = output;
            } catch (error) {
				console.error(error);
                resultDiv.innerHTML = `<span style='color:red'>解析错误:${error.message}</span>`;
            }
        }
    </script>
</body>
</html>

更多推荐