用户:RedDragon/Test:修订间差异
来自Rizline中文维基
更多操作
小 |
小 |
||
| (未显示6个用户的68个中间版本) | |||
| 第1行: | 第1行: | ||
<html> | <html> | ||
< | <div style="margin: 5%"> | ||
<div style="margin-top: 100px; display: flex; justify-content: center; align-items: center"> | |||
<input type="text" id="alias-input" | |||
style="padding: 0.6rem; background: #ffffff; font-size: 16px; width: 14rem; border-radius: 5px 0 0 5px" | |||
placeholder="输入曲目名称或别名..."> | |||
<button id="alias-btn" | |||
style="padding: 0.5rem 1rem; background: #3366CC; color: #ffffff; font-size: 16px; border: none; border-radius: 0 5px 5px 0">搜索</button> | |||
</div> | |||
<div style="display: flex; justify-content: center; align-items: center; margin-top: 1rem;"> | |||
<label for="algorithm-select" style="margin-right: 0.5rem;">算法:</label> | |||
<select id="algorithm-select" style="padding: 0.3rem; margin-right: 1rem;"> | |||
<option value="custom">神秘算法</option> | |||
<option value="fuse">Fuse.js</option> | |||
</select> | |||
<div id="custom-filter-container"> | |||
<label for="score-filter" style="margin-right: 0.5rem;">筛选匹配度 ≥</label> | |||
<input type="number" id="score-filter" value="4" min="1" max="100" | |||
style="width: 4rem; padding: 0.3rem;"> | |||
</div> | |||
<div id="fuse-filter-container" style="display: none;"> | |||
<label for="fuse-threshold" style="margin-right: 0.5rem;">匹配阈值 ≤</label> | |||
<input type="number" id="fuse-threshold" value="0.4" min="0" max="1" step="0.1" | |||
style="width: 4rem; padding: 0.3rem;"> | |||
</div> | |||
</div> | |||
<div style="margin-top: 100px"> | |||
<h3>搜索结果:</h3> | |||
<div id="alias-results" style="color: #333"> | |||
</div> | |||
</div> | |||
<div style="margin-top: 100px"> | |||
<h3>别名列表:</h3> | |||
<ul id="all-alias" style="color: #333"></ul> | |||
</div> | |||
</div> | |||
<script src="https://cdn.jsdelivr.net/npm/fuse.js@6.6.2/dist/fuse.min.js"></script> | |||
<script> | <script> | ||
let fuseInstance = null | |||
document.addEventListener('DOMContentLoaded', function () { | |||
initAllAliases() | |||
initFuse() | |||
document.getElementById('alias-btn').addEventListener('click', searchSongs) | |||
document.getElementById('alias-input').addEventListener('keypress', function (e) { | |||
if (e.key == 'Enter') searchSongs() | |||
}) | |||
document.getElementById('algorithm-select').addEventListener('change', function () { | |||
const algorithm = this.value | |||
const customContainer = document.getElementById('custom-filter-container') | |||
const fuseContainer = document.getElementById('fuse-filter-container') | |||
if (algorithm == 'fuse') { | |||
customContainer.style.display = 'none' | |||
fuseContainer.style.display = 'block' | |||
} else { | |||
customContainer.style.display = 'block' | |||
fuseContainer.style.display = 'none' | |||
} | |||
searchSongs() | |||
}) | |||
}) | |||
function initAllAliases() { | |||
const container = document.getElementById('all-alias') | |||
container.innerHTML = '' | |||
songlist.forEach(function (song) { | |||
const li = document.createElement('li') | |||
const aliases = song.aliases || [] | |||
let aliasText = aliases.length > 0 ? aliases.join('、') : '<span style="color:#888">无别名</span>' | |||
li.innerHTML = `<span class="song-title">${song.title || ''}</span>: <span class="aliases">${aliasText}</span>` | |||
container.appendChild(li) | |||
}) | |||
} | |||
function initFuse() { | |||
const fuseOptions = { | |||
includeScore: true, | |||
includeMatches: true, | |||
threshold: 0.4, | |||
minMatchCharLength: 1, | |||
keys: ['title', 'aliases'] | |||
} | |||
const searchData = songlist.map(function (song) { | |||
return { | |||
id: song.title, | |||
title: song.title, | |||
aliases: song.aliases ? song.aliases.join(' ') : '' | |||
} | |||
}) | |||
fuseInstance = new Fuse(searchData, fuseOptions) | |||
} | |||
// Fuse.js搜索函数 | |||
function searchWithFuse(searchText, threshold) { | |||
if (!fuseInstance) initFuse() | |||
const results = fuseInstance.search(searchText, { | |||
limit: 50, | |||
threshold: threshold | |||
}) | |||
return results.map(function (result) { | |||
const song = songlist.find(function (s) { | |||
return s.title == result.item.id | |||
}) | |||
return { | |||
song: song, | |||
score: Math.round((1 - (result.score || 0)) * 100), | |||
matched: result.matches ? result.matches[0].value : '', | |||
matchedAlias: '', | |||
fuseScore: result.score | |||
} | |||
}) | |||
} | |||
/*计算权重 | |||
输入字符只在目标字符串中匹配一次 | |||
允许间隔,顺序匹配 | |||
每匹配一个字符加1分 | |||
连续匹配加0.5分 | |||
大小写精确匹配加0.3分 | |||
开头匹配加1.5分 | |||
完全包含关系额外加分 | |||
*/ | |||
function getMatchScore(input, target) { | |||
if (!input || !target) return { score: 0, matched: "" } | |||
const originalInput = input | |||
const originalTarget = target | |||
input = input.toLowerCase() | |||
target = target.toLowerCase() | |||
if (input == target) return { score: 100, matched: originalTarget } | |||
let containBonus = 0 | |||
if (input.includes(target)) { | |||
if (target.length >= 5) { | |||
if (input.length >= 3) { | |||
containBonus = 6 + (target.length * 0.3) | |||
} | |||
} else { | |||
if (input.length >= 2) { | |||
containBonus = 6 + (target.length * 0.3) | |||
} | |||
} | |||
} else if (target.includes(input)) { | |||
if (target.length >= 5) { | |||
if (input.length >= 3) { | |||
containBonus = 5 + (input.length * 0.3) | |||
} | |||
} else { | |||
if (input.length >= 2) { | |||
containBonus = 5 + (input.length * 0.3) | |||
} | |||
} | |||
} | |||
function calculateScore(src, tgt, originalSrc, originalTgt) { | |||
let score = 0, matched = "", lastPos = -1, bonus = 0, pos = 0, caseBonus = 0 | |||
let skipCount = 0 | |||
const maxSkip = 2 | |||
for (let i = 0; i < src.length; i++) { | |||
let found = false | |||
const srcChar = src[i] | |||
const associatedChars = getAssociatedChars(srcChar) | |||
for (let j = pos; j < tgt.length; j++) { | |||
const tgtChar = tgt[j] | |||
if (srcChar === tgtChar || associatedChars.includes(tgtChar)) { | |||
score++ | |||
matched += originalTgt[j] | |||
if (originalSrc[i] == originalTgt[j]) { | |||
caseBonus += 0.3 | |||
} | |||
else if (associatedChars.includes(tgtChar)) { | |||
caseBonus += 0.1 | |||
} | |||
if (lastPos >= 0) { | |||
if (j == lastPos + 1) { | |||
bonus += 0.5 | |||
} | |||
} | |||
lastPos = j | |||
pos = j + 1 | |||
found = true | |||
break | |||
} | |||
} | |||
if (!found) { | |||
skipCount++ | |||
if (skipCount > maxSkip) { | |||
break | |||
} | |||
} | |||
} | |||
let startBonus = 0 | |||
if (matched.length > 0) { | |||
if (tgt.indexOf(src[0]) == 0) { | |||
startBonus = 1.5 | |||
} | |||
} | |||
return { | |||
score: score + bonus + caseBonus + startBonus + containBonus, | |||
matched | |||
} | |||
} | |||
const result1 = calculateScore(input, target, originalInput, originalTarget) | |||
const result2 = calculateScore(target, input, originalTarget, originalInput) | |||
if (result1.score >= result2.score) { | |||
return result1 | |||
} else { | |||
return result2 | |||
} | |||
} | |||
function searchSongs() { | |||
const searchText = document.getElementById('alias-input').value.trim() | |||
const resultsContainer = document.getElementById('alias-results') | |||
const algorithm = document.getElementById('algorithm-select').value | |||
if (!searchText) { | |||
resultsContainer.innerHTML = '<div>输入关键词进行搜索</div>' | |||
return | |||
} | |||
let results = [] | |||
if (algorithm == 'fuse') { | |||
const threshold = parseFloat(document.getElementById('fuse-threshold').value) || 0.4 | |||
results = searchWithFuse(searchText, threshold) | |||
// console.log(`Fuse.js搜索: "${searchText}", 阈值: ${threshold}, 结果数: ${results.length}`) | |||
} else { | |||
const resc = Number(document.getElementById('score-filter').value) || 4 | |||
results = songlist.map(function (song) { | |||
let best = getMatchScore(searchText, song.title || '') | |||
let bestAlias = "" | |||
if (song.aliases) { | |||
if (song.aliases.length > 0) { | |||
song.aliases.forEach(function (alias) { | |||
let result = getMatchScore(searchText, alias) | |||
if (result.score > best.score) { | |||
best = result | |||
bestAlias = alias | |||
} | |||
}) | |||
} | |||
} | |||
return { | |||
song: song, | |||
score: best.score, | |||
matched: best.matched, | |||
matchedAlias: bestAlias | |||
} | |||
}).filter(function (result) { | |||
// if (result.score >= resc) { | |||
// console.log( | |||
// `${result.song.title}: [${result.matched}]${(result.matchedAlias ? ` (${result.matchedAlias})` : "")} ${result.score} ` | |||
// ) | |||
// } | |||
return result.score >= resc | |||
}).sort(function (a, b) { | |||
return b.score - a.score | |||
}) | |||
} | |||
if (results.length == 0) { | |||
resultsContainer.innerHTML = '<div>没有找到匹配的曲目</div>' | |||
} else { | |||
resultsContainer.innerHTML = '' | |||
results.forEach(function (result) { | |||
const div = document.createElement('div') | |||
div.className = 'result-item' | |||
div.style.margin = "0 0 0.5rem 1rem" | |||
div.style.lineHeight = "1.5" | |||
var songTitle = result.song.title || '' | |||
var link = `<a href="/wiki/${encodeURIComponent(songTitle)}" title="${songTitle}">${songTitle}</a>` | |||
div.innerHTML = `<div class="song-title">${link}</div> | |||
<div class="aliases" style="font-size: 13px; margin-left: 1rem">alias: ${result.song.aliases.join('、')}</div>` | |||
resultsContainer.appendChild(div) | |||
}) | |||
} | |||
} | |||
const | function getAssociatedChars(char) { | ||
const associations = new Set([char]) | |||
if (charAssociations[char]) { | |||
charAssociations[char].forEach(assocChar => associations.add(assocChar)) | |||
} | |||
for (const [key, values] of Object.entries(charAssociations)) { | |||
if (values.includes(char)) { | |||
associations.add(key) | |||
} | |||
} | |||
return Array.from(associations) | |||
} | |||
// 关联字符库,冒号前的字符可通过中括号里的字符匹配 | |||
const charAssociations = { | |||
'ィ': ['イ', '亻', 'ィ', '人'], | |||
'イ': ['ィ', '亻', 'イ', '人'], | |||
'人': ['ィ', '亻', 'イ', 'イ'], | |||
'亻': ['ィ', 'イ', 'イ', '人'], | |||
'ェ': ['エ', '工', 'ェ'], | |||
'エ': ['ェ', '工', 'エ'], | |||
'的': ['得', '地', 'の', '之'], | |||
'得': ['的', '地', 'の', '之'], | |||
'の': ['的', '得', '地', '之'], | |||
'之': ['的', '得', 'の', '地'], | |||
'地': ['的', '得', 'の', '之'], | |||
'*': ['x', '×'], | |||
'x': ['*', '×'], | |||
'×': ['x', '*'], | |||
'℟': ['R'], | |||
'Α': ['α', 'A', 'a', 'alpha'], | |||
'α': ['Α', 'a', 'A', 'alpha'], | |||
'alpha': ['Α', 'α', 'A', 'a'] | |||
} | |||
// 别名库 | |||
const songlist = [ | |||
{ | |||
title: "Pastel Lines", | |||
aliases: ["粉彩线条"] | |||
}, | |||
{ | |||
title: "Gleam feat. ふわまろ", | |||
aliases: ["微光","gleam"] | |||
}, | |||
{ | |||
title: "Power Attack", | |||
aliases: ["力攻","pa","小机器人"] | |||
}, | |||
{ | |||
title: "Skyscape", | |||
aliases: ["天穹景致"] | |||
}, | |||
{ | |||
title: "On And On!!", | |||
aliases: ["oao", "onandon", "上和上", "我们相亲相爱的","永不停歇!!","小鸟游六花"] | |||
}, | |||
{ | |||
title: "Polygons", | |||
aliases: ["多边形","polytone"] | |||
}, | |||
{ | |||
title: "Abgrund", | |||
aliases: ["深渊"] | |||
}, | |||
{ | |||
title: "Journey To The Rainbows", | |||
aliases: ["彩虹之旅", "彩虹是个好东西"] | |||
}, | |||
{ | |||
title: "Midnight Flux", | |||
aliases: ["午夜流"] | |||
}, | |||
{ | |||
title: "NO ONE YES MAN", | |||
aliases: ["noym", "没一个是人","梅姨阁诗人","NO ONE YES PIGEONS"] | |||
}, | |||
{ | |||
title: "Clock Paradox", | |||
aliases: ["时钟悖论","时悖","钟漠","时钟佯谬","钟盒","CP","雪漠的钟"] | |||
}, | |||
{ | |||
title: "F℟IEND", | |||
aliases: ["恶魔朋友","friend","朋友"] | |||
}, | |||
{ | |||
title: "Shattered", | |||
aliases: ["支离破碎"] | |||
}, | |||
{ | |||
title: "Swing Sweet Twee Dance feat. ななきなな", | |||
aliases: ["sstd","摇摆甜蜜稚趣舞 feat. 七木七奈","Swing Sweet Twee Dance"] | |||
}, | |||
{ | |||
title: "V!rtuaresort", | |||
aliases: ["Virtuaresort"] | |||
}, | |||
{ | |||
title: "Dice 20", | |||
aliases: ["二十面骰","rd20"] | |||
}, | |||
{ | |||
title: "macro.wav", | |||
aliases: ["宏波", "宏波炉","滴滴滴滴","微波炉2"] | |||
}, | |||
{ | |||
title: "The Next Arcady", | |||
aliases: ["世外桃源","3d","下一个世外桃源"] | |||
}, | |||
{ | |||
title: "Sakura Fubuki", | |||
aliases: ["樱吹雪"] | |||
}, | |||
{ | |||
title: "Tempest", | |||
aliases: ["风暴"] | |||
}, | |||
{ | |||
title: "Authentic (Game ver.)", | |||
aliases: ["本真"] | |||
}, | |||
{ | |||
title: "MilK", | |||
aliases: ["牛奶","><",">▽<"] | |||
}, | |||
{ | |||
title: "ILLEGAL LEGACY", | |||
aliases: ["il", "非法遗产","恭喜你爬完了梯子!"] | |||
}, | |||
{ | |||
title: "竹", | |||
aliases: ["小心立秋","bamboo"] | |||
}, | |||
{ | |||
title: "R.I.P.", | |||
aliases: ["rip","逝者安息"] | |||
}, | |||
{ | |||
title: "Empire", | |||
aliases: ["王朝"] | |||
}, | |||
{ | |||
title: "DropDown", | |||
aliases: ["坠落","dd"] | |||
}, | |||
{ | |||
title: "Contact", | |||
aliases: ["连接","接触"] | |||
}, | |||
{ | |||
title: "CANDYLAND", | |||
aliases: ["糖果岛","初代魔王","糖果乐园"] | |||
}, | |||
{ | |||
title: "Arcade ViruZ", | |||
aliases: ["街机病毒","街机还会中毒?"] | |||
}, | |||
{ | |||
title: "LINK x LIN#S", | |||
aliases: ["连接起来吧……","LxL","II","连线","相连的心","ll"] | |||
}, | |||
{ | |||
title: "LEONIDS", | |||
aliases: ["狮子座", "星座","向狮子座许愿吧!"] | |||
}, | |||
{ | |||
title: "FORTALiCE", | |||
aliases: ["堡垒"] | |||
}, | |||
{ | |||
title: "Paradial Resonator", | |||
aliases: ["pr","天堂谐振器","咏歌和Para","咏帕"] | |||
}, | |||
{ | |||
title: "Lavender Leaf (feat. Lexi)", | |||
aliases: ["薰衣草","Lavender Leaf"] | |||
}, | |||
{ | |||
title: "Puppet Show", | |||
aliases: ["Jazz","木偶戏"] | |||
}, | |||
{ | |||
title: "Vicious Mockery", | |||
aliases: ["vm","狂暴之嘲","vici","vc","维C","狂暴猴子","还是不要随意打开为好……","幽蓝列车"] | |||
}, | |||
{ | |||
title: "BRAVE: ROAD", | |||
aliases: ["br", "勇气之路", "勇敢之路","勇者之路","勇路","真正的勇者","gr2","魔王曲", "勇者之路","真格✧大勇士","荣耀之路2","里红2","新手教程"] | |||
}, | |||
{ | |||
title: "Dot-Line (feat. ななひら)", | |||
aliases: ["点线","因为我们的羁绊","Dot-Line"] | |||
}, | |||
{ | |||
title: "光 (阿卡姆巫师 Remix)", | |||
aliases: ["阿卡姆光","光","一缕崭新的阳光"] | |||
}, | |||
{ | |||
title: "Lost Future", | |||
aliases: ["失落未来","找回遗失的未来","夹娃娃机"] | |||
}, | |||
{ | |||
title: "sAtElLites", | |||
aliases: ["卫星"] | |||
}, | |||
{ | |||
title: "Intruder", | |||
aliases: ["入侵者"] | |||
}, | |||
{ | |||
title: "Rule The World", | |||
aliases: ["定义世界"] | |||
}, | |||
{ | |||
title: "felys -final remix-", | |||
aliases: ["菲莉丝","飞雷神","felys"] | |||
}, | |||
{ | |||
title: "Destr0yer", | |||
aliases: ["Destroyer","d0","毁灭者","削除射线","sakuzyo beam","削除二连冠","削除本人出演"] | |||
}, | |||
{ | |||
title: "crystallized", | |||
aliases: ["结晶","结晶化"] | |||
}, | |||
{ | |||
title: "Cosmos Capsule", | |||
aliases: ["交互胶囊"] | |||
}, | |||
{ | |||
title: "Yellow Shining!! feat. 成田なる", | |||
aliases: ["黄色闪耀!! feat. 成田鸣琉","唱响金色的乐章","Yellow Shining!!","Yellow Shining"] | |||
}, | |||
{ | |||
title: "Abatement", | |||
aliases: ["缓和"] | |||
}, | |||
{ | |||
title: "Rapture", | |||
aliases: ["狂喜"] | |||
}, | |||
{ | |||
title: "Turning POINT", | |||
aliases: ["tp","转折点"] | |||
}, | |||
{ | |||
title: "Reversed Zenith", | |||
aliases: ["逆天顶","rz"] | |||
}, | |||
{ | |||
title: "Restricted Access", | |||
aliases: ["ra","限制通道","立入禁止"] | |||
}, | |||
{ | |||
title: "The Last Page", | |||
aliases: ["最后一页","终页"] | |||
}, | |||
{ | |||
title: "Super Universe (Knighthood Remix)", | |||
aliases: ["超宇宙","超宇", "Super Universe Remix","Super Universe"] | |||
}, | |||
{ | |||
title: "Enneaquest", | |||
aliases: ["九重试炼"] | |||
}, | |||
{ | |||
title: "Colorful Flavor", | |||
aliases: ["缤纷风味"] | |||
}, | |||
{ | |||
title: "Abiogenesis", | |||
aliases: ["无生源论"] | |||
}, | |||
{ | |||
title: "Revenant", | |||
aliases: ["荒野猎人","怪物猎人","怪猎"] | |||
}, | |||
{ | |||
title: "Antler", | |||
aliases: ["鹿角","鹿角巷"] | |||
}, | |||
{ | |||
title: "Contortion", | |||
aliases: ["扭曲"] | |||
}, | |||
{ | |||
title: "Bring Me Back", | |||
aliases: ["带我回来","带我归来","bmb"] | |||
}, | |||
{ | |||
title: "Hullbreaker", | |||
aliases: ["破舰者"] | |||
}, | |||
{ | |||
title: "D-Birth", | |||
aliases: ["D-诞生","被毁灭后的世界"] | |||
}, | |||
{ | |||
title: "NightTheater", | |||
aliases: ["夜剧场", "夜剧院", "NT"] | |||
}, | |||
{ | |||
title: "Grimheart", | |||
aliases: ["冷酷的心", "寒冷的心", "冷心"] | |||
}, | |||
{ | |||
title: "Encrux", | |||
aliases: ["翼龙"] | |||
}, | |||
{ | |||
title: "slic.hertz", | |||
aliases: ["切片.赫兹","对面转起来了"] | |||
}, | |||
{ | |||
title: "Giselle", | |||
aliases: ["吉赛尔"] | |||
}, | |||
{ | |||
title: "Afterdark", | |||
aliases: ["黑暗之后"] | |||
}, | |||
{ | |||
title: "蒼天 (Sta's Key-Kai mix)", | |||
aliases: ["苍天"] | |||
}, | |||
{ | |||
title: "Conway's Child", | |||
aliases: ["康威之子","生命游戏","康威生命游戏"] | |||
}, | |||
{ | |||
title: "Crimsonate", | |||
aliases: ["深红化"] | |||
}, | |||
{ | |||
title: "Sthenno", | |||
aliases: ["丝西娜"] | |||
}, | |||
{ | |||
title: "Kaguya", | |||
aliases: ["辉夜姬","竹取物语"] | |||
}, | |||
{ | |||
title: "Relieve", | |||
aliases: ["信任","咏歌你怎么跟没有名字的人同框啊"] | |||
}, | |||
{ | |||
title: "Alexandrite", | |||
aliases: ["变石"] | |||
}, | |||
{ | |||
title: "Hydra", | |||
aliases: ["九头蛇","骇爪"] | |||
}, | |||
{ | |||
title: "漂流", | |||
aliases: [] | |||
}, | |||
{ | |||
title: "Comet Coaster", | |||
aliases: ["彗星过山车"] | |||
}, | |||
{ | |||
title: "DOMINATOR", | |||
aliases: ["支配者"] | |||
}, | |||
{ | |||
title: "天灵灵地灵灵", | |||
aliases: ["小学妹"] | |||
}, | |||
{ | |||
title: "Psychometry", | |||
aliases: ["心灵感应"] | |||
}, | |||
{ | |||
title: "Electric Comet", | |||
aliases: ["电子彗星"] | |||
}, | |||
{ | |||
title: "Eschatology", | |||
aliases: ["末世论"] | |||
}, | |||
{ | |||
title: "너를 그리는 밤하늘의 이야기 (Planetarium) prod. Scarlette", | |||
aliases: ["天文馆","一串韩文","一堆韩文","韩文字括号英文字括号英文字"] | |||
}, | |||
{ | |||
title: "Avataar ~Reincarnation of Kalpa~", | |||
aliases: ["Avataar","arok","卡尔帕转世","化生~劫之轮回~","劫之轮回","蓝魔王","转生的小曲"] | |||
}, | |||
{ | |||
title: "Frozen Heart", | |||
aliases: ["冰心","解放冰封的心"] | |||
}, | |||
{ | |||
title: "amethyst", | |||
aliases: ["紫水晶"] | |||
}, | |||
{ | |||
title: "Alfheim's faith", | |||
aliases: ["亚尔夫海姆的信仰"] | |||
}, | |||
{ | |||
title: "翠杜", | |||
aliases: ["脆肚","suito"] | |||
}, | |||
{ | |||
title: "驟雨の狭間", | |||
aliases: ["骤雨狭间", "骤雨的缝隙","骤雨的隙间","骤雨","周瑜"] | |||
}, | |||
{ | |||
title: "enchanted love", | |||
aliases: ["附魔爱","醉心之爱","醉心爱","青蛙王子"] | |||
}, | |||
{ | |||
title: "Crazy Audiophile", | |||
aliases: ["疯狂的高保真音响爱好者"] | |||
}, | |||
{ | |||
title: "419kB", | |||
aliases: [] | |||
}, | |||
{ | |||
title: "VICIOUS", | |||
aliases: ["狂暴"] | |||
}, | |||
{ | |||
title: "Crush Alcohol", | |||
aliases: ["酒精","酒驾","不要酒驾"] | |||
}, | |||
{ | |||
title: "インフェルノシティ", | |||
aliases: ["地狱城", "地狱都市","亻冫乛工儿丿氵亍亻","inferno city"] | |||
}, | |||
{ | |||
title: "No-name Requiem", | |||
aliases: ["无名安魂曲"] | |||
}, | |||
{ | |||
title: "Change the Game feat. 松永依織", | |||
aliases: ["Change the Game","游戏逆转","改变游戏"] | |||
}, | |||
{ | |||
title: "T+ VS SHARK", | |||
aliases: ["OMG!!! It's a SHARK!!!","tpz大战鲨鱼","OMG!!! It's a 🦈","🦈","鲨鱼"] | |||
}, | |||
{ | |||
title: "Future Downloader", | |||
aliases: ["未来下载器"] | |||
}, | |||
{ | |||
title: "Echo over you...", | |||
aliases: ["回响于心"] | |||
}, | |||
{ | |||
title: "Fairy's Crown", | |||
aliases: ["仙子冠冕"] | |||
}, | |||
{ | |||
title: "Graves -Ancient Memories-", | |||
aliases: ["墓碑 -古老的记忆-","Graves"] | |||
}, | |||
{ | |||
title: "GREAT GREAT", | |||
aliases: ["棒棒","GG","炫彩鸽子","🕊","咕咕"] | |||
}, | |||
{ | |||
title: "Clouds clear and...", | |||
aliases: ["云散之后..."] | |||
}, | |||
{ | |||
title: "NLAMTA", | |||
aliases: ["No Longer a Melodic Trance Attempt"] | |||
}, | |||
{ | |||
title: "Antikythera", | |||
aliases: ["安提凯希拉"] | |||
}, | |||
{ | |||
title: "Speed Up!", | |||
aliases: ["冲刺!"] | |||
}, | |||
{ | |||
title: "天地開闢", | |||
aliases: ["天地开辟","开天辟地"] | |||
}, | |||
{ | |||
title: "水槽に沈む街", | |||
aliases: ["沈阳大街","沉入水槽的街","水槽沈阳大街","水槽沈街"] | |||
}, | |||
{ | |||
title: "Inevitability", | |||
aliases: ["不可避免","才没有什么必然!","鲷鱼烧"] | |||
}, | |||
{ | |||
title: "8BLUE", | |||
aliases: ["泡泡","🐟8ブル🫧","爸宝蓝","八宝蓝","🫧","泡泡 o ·。· O .","8B博弈"] | |||
}, | |||
{ | |||
title: "Fade Away", | |||
aliases: ["我褪色了","走路人","艾伦沃克","阿兰走路人"] | |||
} | |||
] | |||
</script> | </script> | ||
</html> | </html> | ||
---- | |||
[[User:RedDragon/Test]] | |||
[[User:RedDragon/Test1]] | |||
[[User:RedDragon/Test2]] | |||