您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Typing Tubeの編集画面にlrcファイルのダウンロードリンクを追加します。
// ==UserScript== // @name lrcDownloader[typing-tube.net] // @namespace TyepingTubeLrcDownloader // @version 1.4 // @description Typing Tubeの編集画面にlrcファイルのダウンロードリンクを追加します。 // @author aetenotnk // @match https://typing-tube.net/movie/edit/* // @grant none // ==/UserScript== function CreateDownloadElement(){ var editTab = $("#edit"); if(!editTab.length){ return false; } var downloadDiv = $("<div>"); downloadDiv.addClass("row"); downloadDiv.addClass("ml-2"); downloadDiv.addClass("w-100"); downloadDiv.attr("id", "lrcDownLoader"); editTab.append(downloadDiv); var downloadLink = $("<a>"); downloadLink.attr("id", "lrcDwonloadLink"); downloadLink.attr("download", $("#title").attr("value") + ".lrc"); downloadLink.attr("href", "dummy"); downloadLink.addClass("col-2"); downloadLink.text("lrcファイルをダウンロード"); downloadLink.click(GetLyrics); downloadDiv.append(downloadLink); return true; } function SetDownloadLinkFile(text){ var downloadLink = $("#lrcDwonloadLink"); var file = new Blob([text], {type: "text/plain"}); downloadLink.attr("href", URL.createObjectURL(file)); } function GetLyrics(){ var lyrics = $("#subtitles_table > tbody > tr"); var lyricList = []; for(var i = 1; i < lyrics.length - 1; i++){ var tds = $(lyrics[i]).find("td"); var time = $(tds[0]).text().replace(" ", ""); var lyric = $(tds[1]).text(); lyricList.push({ second: time, lyric: lyric }); } SetDownloadLinkFile(FormatLRC(lyricList)); } function FormatLRC(lyricList){ var rowFormat = "[mm:ss.xx]lyric"; var lines = []; for(var i = 0; i < lyricList.length; i++){ var time = lyricList[i].second; var timeParts = time.split("."); var mm = ("00" + parseInt(parseInt(time) / 60)).slice(-2); var ss = ("00" + (parseInt(time) - mm * 60)).slice(-2); var xx = timeParts.length > 1 ? ("00" + timeParts[timeParts.length - 1]).slice(-2) : "00"; lines.push( rowFormat .replace("mm", mm) .replace("ss", ss) .replace("xx", xx) .replace("lyric", lyricList[i].lyric)); } return lines.join("\n"); } CreateDownloadElement();