【Javascript】101soundboards网站游戏音乐提取(已封存)
·
<!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>
更多推荐
所有评论(0)