七日内新公告:全站维护公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:LrcPlayer

猛汉♂百科,万男皆可猛的百科全书!转载请标注来源页面的网页链接,并声明引自猛汉百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

本模块用于将 Template:LrcPlayer 的语法转换到 Sm2Shim 的JSON播放列表并输出播放器控件。

emitModernSoundManagerPlaylist 方法

仅输出JSON播放列表的字符串表示,用于调试模块行为。

convertLegacyLrcPlayerSyntax 方法

输出LRC播放器。需要 Sm2Shim 扩展为 1800.201.531.5012 或更高版本。

local func = {}

function func.emitModernSoundManagerPlaylist ( frame )
    -- Parameters: audio, lrc, title, artist, album, autoplay, loop
    local audioUrl = frame.args[1]
    local lrcUrl = frame.args[2]
    local title = frame.args[3]
    local artist = frame.args[4]
    local album = frame.args[5]
    local autoplay = frame.args[6]
    local loop = frame.args[7]

    local function isempty(s)
        return s == nil or s == ''
    end

    -- Keep compatibility with previous definitions
    local loopEnabled = not isempty(loop);
    local autoplayEnabled = not isempty(autoplay);

    local playlistItemEntity = {
        audioFileUrl = audioUrl,
        lrcFileUrl = lrcUrl,
        title = title,
        artist = artist,
        album = album,
        isExplicit = false
    }

    local playlist = {
        schemaVersion = 1,
        loop = loopEnabled,
        autoPlay = autoplayEnabled,
        playlist = {
            playlistItemEntity
        }
    }

    return mw.text.jsonEncode(playlist)
end

function func.convertLegacyLrcPlayerSyntax( frame )
	-- Requires Sm2Shim 1800.201.531.5012 or higher version --
    return frame:extensionTag('modernsoundmanager', func.emitModernSoundManagerPlaylist(frame), {})
end

return func