打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

用户:RedDragon/Test:修订间差异

来自Rizline中文维基
RedDragon
RedDragon留言 | 贡献 (撤销RedDragon讨论)的修订版本5721
第1行: 第1行:
<html>
<html>


<table width="100%" style="border:none; border-collapse:collapse;">
    <div style="margin: 10%">
  <tr>
        <div style="margin-top: 100px; display: flex; justify-content: center; align-items: center">
    <td colspan="2" style="text-align:center; background-color:#57E4C4;">
            <input type="text" id="alias-input" style="padding: 8px; background: #ffffff; font-size: 16px; width: 15rem; border-radius:  5px 0 0 5px" placeholder="输入曲目名称或别名...">
      <div id="difficulty" onclick="cycleDifficulty(this)" data-states='["EZ 1", "HD 6", "IN 11"]' data-current="0" style="cursor:pointer;">EZ 2</div>
            <button id="alias-btn" style="padding: 8px 18px; background: #3366CC; color: #ffffff; font-size: 16px; border: none; border-radius: 0 5px 5px 0">搜索</button>
    </td>
        </div>
  </tr>
        <div style="margin-top: 100px">
  <tr style="height:300px">
            <h3>搜索结果:</h3>
    <td width="15%" onclick="cycleRatio(document.getElementById('ratio'))" style="text-align:center; background-color:#ABCDEF; cursor:pointer;">
            <div id="alias-results" style="color: #333">
      <div id="ratio" data-states='["16:9", "4:3"]' data-current="0" style="height:100%; cursor:pointer;">16:9</div>
                <div class="no-results"></div>
    </td>
            </div>
    <td style="height:100%; position:relative; text-align:center;">
        </div>
      <span id="output" style="display:inline-block; height:300px; overflow:hidden;"></span>
        <div style="margin-top: 100px">
    </td>
            <h3>别名列表:</h3>
  </tr>
            <ul id="all-alias" style="color: #333"></ul>
</table>
        </div>
    </div>


<script>
<script>
  const songName = "Pastel Lines"
    document.addEventListener('DOMContentLoaded', function () {
        initAllAliases()


  const difficultyColors = {
        document.getElementById('alias-btn').addEventListener('click', searchSongs)
    "EZ": "#57E4C4",
        document.getElementById('alias-input').addEventListener('keypress', function (e) {
    "HD": "#FDBA61",
            if (e.key == 'Enter') searchSongs()
    "IN": "#FE8661",
        })
     "AT": "#4C364B"
     })
  };


  function cycleDifficulty(element) {
    function initAllAliases() {
    const states = JSON.parse(element.getAttribute('data-states'))
        const container = document.getElementById('all-alias')
    const current = parseInt(element.getAttribute('data-current'))
        container.innerHTML = ''
    const next = (current + 1) % states.length


    element.textContent = states[next]
        songlist.forEach(function (song) {
    element.setAttribute('data-current', next.toString())
            const li = document.createElement('li')
            li.innerHTML = `<span class="song-title">${song.title}</span>: <span class="aliases">${song.aliases.join('')}</span>`
            container.appendChild(li)
        })
    }


     const difficultyType = states[next].split(' ')[0]  // 获取难度
     function searchSongs() {
    const color = difficultyColors[difficultyType] || '#FFFFFF' // 更新背景色
        const searchText = document.getElementById('alias-input').value.trim().toLowerCase()
    element.style.backgroundColor = color
        const resultsContainer = document.getElementById('alias-results')
    element.parentElement.style.backgroundColor = color


    updateOutput()
        if (!searchText) {
  }
            resultsContainer.innerHTML = '<div class="no-results">输入关键词进行搜索</div>'
            return
        }


  function cycleRatio(element) {
        // 计算匹配度并排序
    const states = JSON.parse(element.getAttribute('data-states'))
        const results = songlist.map(function (song) {
    const current = parseInt(element.getAttribute('data-current'))
            // 检查标题匹配
    const next = (current + 1) % states.length
            const titleMatch = song.title.toLowerCase().includes(searchText)
            // 检查别名匹配
            const aliasMatches = song.aliases.filter(function (alias) {
                return alias.toLowerCase().includes(searchText)
            })
            // 计算权重
            let score = 0
            if (titleMatch) score += 5  // 标题权重
            score += aliasMatches.length * 2  // 别名权重
            return {
                song: song,
                score: score
            }
        }).filter(function (result) {
            return result.score > 0  // 过滤掉不匹配的
        }).sort(function (a, b) {
            return b.score - a.score  // 按匹配度降序排序
        })


    element.textContent = states[next]
        if (results.length == 0) {
    element.setAttribute('data-current', next.toString())
            resultsContainer.innerHTML = '<div class="no-results">没有找到匹配的曲目</div>'
        } else {
            resultsContainer.innerHTML = ''
            results.forEach(function (result) {
                const div = document.createElement('div')
                div.className = 'result-item'
                div.innerHTML = `
                        <div class="song-title">${result.song.title}</div>
                        <div class="aliases">alias: ${result.song.aliases.join('、')}</div>
                    `
                resultsContainer.appendChild(div)
            })
        }
    }


     updateOutput()
     const songlist = [
  }
        {
            title: "Pastel Lines",
            aliases: []
        },
        {
            title: "Gleam feat. ふわまろ",
            aliases: []
        },
        {
            title: "Power Attack",
            aliases: []
        },
        {
            title: "Skyscape",
            aliases: []
        },
        {
            title: "On And On!!",
            aliases: []
        },
        {
            title: "Polygons",
            aliases: []
        },
        {
            title: "Abgrund",
            aliases: []
        },
        {
            title: "Journey To The Rainbows",
            aliases: []
        },
        {
            title: "Midnight Flux",
            aliases: []
        },
        {
            title: "NO ONE YES MAN",
            aliases: []
        },
        {
            title: "Clock Paradox",
            aliases: []
        },
        {
            title: "F℟IEND",
            aliases: []
        },
        {
            title: "Shattered",
            aliases: []
        },
        {
            title: "Swing Sweet Twee Dance feat. ななきなな",
            aliases: []
        },
        {
            title: "V!rtuaresort",
            aliases: []
        },
        {
            title: "Dice 20",
            aliases: []
        },
        {
            title: "macro.wav",
            aliases: []
        },
        {
            title: "The Next Arcady",
            aliases: []
        },
        {
            title: "Sakura Fubuki",
            aliases: []
        },
        {
            title: "Tempest",
            aliases: []
        },
        {
            title: "Authentic (Game ver.)",
            aliases: []
        },
        {
            title: "MilK",
            aliases: []
        },
        {
            title: "ILLEGAL LEGACY",
            aliases: []
        },
        {
            title: "竹",
            aliases: []
        },
        {
            title: "R.I.P.",
            aliases: []
        },
        {
            title: "Empire",
            aliases: []
        },
        {
            title: "DropDown",
            aliases: []
        },
        {
            title: "Contact",
            aliases: []
        },
        {
            title: "CANDYLAND",
            aliases: []
        },
        {
            title: "Arcade ViruZ",
            aliases: []
        },
        {
            title: "LINK x LIN#S",
            aliases: []
        },
        {
            title: "LEONIDS",
            aliases: []
        },
        {
            title: "FORTALiCE",
            aliases: []
        },
        {
            title: "Paradial Resonator",
            aliases: []
        },
        {
            title: "Lavender Leaf (feat. Lexi)",
            aliases: []
        },
        {
            title: "Puppet Show",
            aliases: []
        },
        {
            title: "Vicious Mockery",
            aliases: []
        },
        {
            title: "BRAVE: ROAD",
            aliases: []
        },
        {
            title: "Dot-Line (feat. ななひら)",
            aliases: []
        },
        {
            title: "光 (阿卡姆巫师 Remix)",
            aliases: []
        },
        {
            title: "Lost Future",
            aliases: []
        },
        {
            title: "sAtElLites",
            aliases: []
        },
        {
            title: "Intruder",
            aliases: []
        },
        {
            title: "Rule The World",
            aliases: []
        },
        {
            title: "felys -final remix-",
            aliases: []
        },
        {
            title: "Destr0yer",
            aliases: []
        },
        {
            title: "crystallized",
            aliases: []
        },
        {
            title: "Cosmos Capsule",
            aliases: []
        },
        {
            title: "Yellow Shining!! feat. 成田なる",
            aliases: []
        },
        {
            title: "Abatement",
            aliases: []
        },
        {
            title: "Rapture",
            aliases: []
        },
        {
            title: "Turning POINT",
            aliases: []
        },
        {
            title: "Reversed Zenith",
            aliases: []
        },
        {
            title: "Restricted Access",
            aliases: []
        },
        {
            title: "The Last Page",
            aliases: []
        },
        {
            title: "Super Universe (Knighthood Remix)",
            aliases: ["超宇宙", "Super Universe Remix"]
        },
        {
            title: "Enneaquest",
            aliases: []
        },
        {
            title: "Colorful Flavor",
            aliases: []
        },
        {
            title: "Abiogenesis",
            aliases: []
        },
        {
            title: "Revenant",
            aliases: []
        },
        {
            title: "Antler",
            aliases: []
        },
        {
            title: "Contortion",
            aliases: []
        },
        {
            title: "Bring Me Back",
            aliases: []
        },
        {
            title: "Hullbreaker",
            aliases: []
        },
        {
            title: "D-Birth",
            aliases: []
        },
        {
            title: "NightTheater",
            aliases: ["夜剧院", "夜剧场", "Night Theater", "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: []
        },
        {
            title: "Frozen Heart",
            aliases: []
        },
        {
            title: "amethyst",
            aliases: []
        },
        {
            title: "Alfheim's faith",
            aliases: []
        },
        {
            title: "翠杜",
            aliases: []
        },
        {
            title: "驟雨の狭間",
            aliases: []
        },
        {
            title: "enchanted love",
            aliases: []
        },
        {
            title: "Crazy Audiophile",
            aliases: []
        },
        {
            title: "419kB",
            aliases: []
        },
        {
            title: "VICIOUS",
            aliases: []
        },
        {
            title: "Crush Alcohol",
            aliases: []
        },
        {
            title: "インフェルノシティ",
            aliases: []
        },
        {
            title: "No-name Requiem",
            aliases: []
        },
        {
            title: "Change the Game feat. 松永依織",
            aliases: []
        },
        {
            title: "T+ VS SHARK",
            aliases: []
        },
        {
            title: "Future Downloader",
            aliases: []
        },
        {
            title: "Echo over you...",
            aliases: []
        },
        {
            title: "Fairy's Crown",
            aliases: []
        },
        {
            title: "Graves -Ancient Memories-",
            aliases: []
        },
        {
            title: "Clouds clear and...",
            aliases: []
        },
        {
            title: "NLAMTA",
            aliases: []
        },
        {
            title: "Antikythera",
            aliases: []
        }
    ]


  function updateOutput() {
    const difficultyDiv = document.getElementById('difficulty')
    const ratioDiv = document.getElementById('ratio')
    const difficulty = difficultyDiv.textContent.split(' ')[0]  // 获取难度
    const ratio = ratioDiv.textContent.replace(':', '-')
    const videoUrl = `https://raw.githubusercontent.com/Rizline-Chinese-Wiki/rizline-song-preview/main/${ratio}_${songName}_${difficulty}.mp4`
    document.getElementById('output').innerHTML = `
      <video class="html5media-video" src="${videoUrl}" controls preload="metadata" loading="lazy" style="height:100%; max-width:100%; display:block; margin:0 auto;"></video>
    `
  }
  //初始化
  document.addEventListener('DOMContentLoaded', function () {
      const diffDiv = document.getElementById('difficulty')
      const firstDiff = JSON.parse(diffDiv.getAttribute('data-states'))[0];
      const diffType = firstDiff.split(' ')[0]
     
      diffDiv.textContent = firstDiff
      diffDiv.style.backgroundColor = difficultyColors[diffType]
      diffDiv.parentElement.style.backgroundColor = difficultyColors[diffType]
     
      updateOutput();
  });
</script>
</script>


</html>
</html>
{{BMV
| songName = Pastel Lines
| difficulties = EZ1, HD6, IN11
}}
{{#widget:BMV
| songName = Abgrund
| difficulties = EZ1, HD2, IN3
}}

2025年9月11日 (四) 01:42的版本

搜索结果:

别名列表: