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

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

来自Rizline中文维基
第36行: 第36行:
<script>
<script>
     document.addEventListener('DOMContentLoaded', () => {
     document.addEventListener('DOMContentLoaded', () => {
        // 使用十六进制编码避免 & 字符
         const encodedUrl = 'https://rizwiki.cn/api.php?action=query%26titles=曲目列表%26prop=revisions%26rvprop=content%26format=json'
         const encodedUrl = 'https://rizwiki.cn/api.php?action=query%26titles=曲目列表%26prop=revisions%26rvprop=content%26format=json'


        // 解码并发送请求
         const decodedUrl = decodeURIComponent(encodedUrl)
         const decodedUrl = decodeURIComponent(encodedUrl)
         fetch(decodedUrl)
         fetch(decodedUrl)
             .then(r => r.text())
             .then(r => r.json())
             .then(text => {
             .then(data => {
                 console.log('=== 完整响应内容 ===')
                 console.log('解析后的数据:', data)
                console.log(text)
                console.log('=== 响应内容结束 ===')


                 const parser = new DOMParser()
                 if (data.query) {
                const doc = parser.parseFromString(text, 'text/html')
                    if (data.query.pages) {
                const preElement = doc.querySelector('pre')
                        const pages = data.query.pages
                        const pageId = Object.keys(pages)[0]
                        const wikitext = pages[pageId].revisions[0]['*']
                        const songs = parseSongsFromWikitext(wikitext)


                if (preElement) {
                         if (songs.length > 0) {
                    const jsonText = preElement.textContent
                            loadSongColors(songs[Math.floor(Math.random() * songs.length)])
                    console.log('=== pre元素内容 ===')
                    console.log(jsonText)
                    console.log('=== pre元素内容结束 ===')
 
                    try {
                        const data = JSON.parse(jsonText)
                        console.log('解析后的数据:', data)
 
                         if (data.query) {
                            if (data.query.pages) {
                                const pages = data.query.pages
                                const pageId = Object.keys(pages)[0]
                                const wikitext = pages[pageId].revisions[0]['*']
                                const songs = parseSongsFromWikitext(wikitext)
                            }
 
                            songs.length > 0
                                ? loadSongColors(songs[Math.floor(Math.random() * songs.length)])
                                : useMockData()
                         } else {
                         } else {
                            console.error('数据格式不正确,缺少query.pages')
                             useMockData()
                             useMockData()
                         }
                         }
                     } catch (e) {
                     } else {
                         console.error('JSON解析失败:', e)
                         console.error('数据格式不正确,缺少query.pages')
                         useMockData()
                         useMockData()
                     }
                     }
                 } else {
                 } else {
                     console.error('未找到pre元素')
                     console.error('数据格式不正确,缺少query')
                     useMockData()
                     useMockData()
                 }
                 }
第116行: 第95行:
     }
     }


function loadSongColors(song) {
    function loadSongColors(song) {
        // 同样使用十六进制编码
         const encodedUrl = `https://rizwiki.cn/api.php?action=query%26titles=${encodeURIComponent(song.title)}%26prop=revisions%26rvprop=content%26format=json`
         const encodedUrl = `https://rizwiki.cn/api.php?action=query%26titles=${encodeURIComponent(song.title)}%26prop=revisions%26rvprop=content%26format=json`
         const decodedUrl = decodeURIComponent(encodedUrl)
         const decodedUrl = decodeURIComponent(encodedUrl)


         fetch(decodedUrl)
         fetch(decodedUrl)
             .then(r => r.text())
             .then(r => r.json())
             .then(text => {
             .then(data => {
                 const parser = new DOMParser()
                 try {
                const doc = parser.parseFromString(text, 'text/html')
                    const pages = data.query.pages
                const preElement = doc.querySelector('pre')
                    const pageId = Object.keys(pages)[0]
                    if (!pages[pageId].revisions) {
                        throw new Error('页面不存在')
                    }
                    const wikitext = pages[pageId].revisions[0]['*']
                    const styles = parseStylesFromWikitext(wikitext)


                if (preElement) {
                     updateSongInfo(song, {
                     try {
                        titleStyle: styles.title || '#94E1FF',
                        const jsonText = preElement.textContent
                        headerStyle: styles.header || '#A3E5FF',
                        const data = JSON.parse(jsonText)
                        labelStyle: styles.label || '#B2E9FE',
                        const pages = data.query.pages
                        imageUrl: `https://rizwiki.cn/images/thumb/${song.image.substring(0, 1)}/${song.image.substring(0, 2)}/${song.image}/300px-${song.image}`,
                        const pageId = Object.keys(pages)[0]
                        pageUrl: `https://rizwiki.cn/wiki/${encodeURIComponent(song.title)}`
                        if (!pages[pageId].revisions) {
                    })
                            throw new Error('页面不存在')
                } catch (e) {
                        }
                    console.error('解析曲目数据失败:', e)
                        const wikitext = pages[pageId].revisions[0]['*']
                    throw e
                        const styles = parseStylesFromWikitext(wikitext)
 
                        updateSongInfo(song, {
                            titleStyle: styles.title || '#94E1FF',
                            headerStyle: styles.header || '#A3E5FF',
                            labelStyle: styles.label || '#B2E9FE',
                            imageUrl: `https://rizwiki.cn/images/thumb/${song.image.substring(0, 1)}/${song.image.substring(0, 2)}/${song.image}/300px-${song.image}`,
                            pageUrl: `https://rizwiki.cn/wiki/${encodeURIComponent(song.title)}`
                        })
                    } catch (e) {
                        console.error('解析曲目数据失败:', e)
                        throw e
                    }
                } else {
                    throw new Error('未找到JSON数据')
                 }
                 }
             })
             })

2025年10月19日 (日) 22:57的版本

曲目
限制
难度 a
流速 b
MOD c
其他 d

神秘的随机挑战!


曲目
限制
难度 a
流速 b
MOD c
其他 d

User:RedDragon/Test User:RedDragon/Test1 User:RedDragon/Test2