web/assets/libs/subtitle/1.0.0/subtitle.browser.min.js

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{var g;g="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,g.Subtitle=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){function extend(){for(var target={},i=0;i<arguments.length;i++){var source=arguments[i];for(var key in source)hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target}module.exports=extend;var hasOwnProperty=Object.prototype.hasOwnProperty},{}],2:[function(require,module,exports){"use strict";function Subtitle(srt){return this instanceof Subtitle?(this._subtitles=[],void(srt&&this.parse(srt))):new Subtitle(srt)}var extend=require("xtend/immutable");Subtitle.prototype.parse=function(srt){var index,time,text,start,end,subs=[];if(!srt)throw new Error("No SRT to parse");return srt=srt.trim(),srt+="\n",srt=srt.replace(/\r\n/g,"\n").split("\n"),srt.forEach(function(line){if(line=line.toString(),!index&&/^\d+$/.test(line))return void(index=parseInt(line));if(!time){var match=line.match(/^(\d{2}:\d{2}:\d{2},\d{3}) --> (\d{2}:\d{2}:\d{2},\d{3})$/);if(match)return start=match[1],end=match[2],void(time=!0)}""===line.trim()?(subs.push({index:index,start:start,end:end,duration:Subtitle.toMS(end)-Subtitle.toMS(start),text:text}),index=time=start=end=text=null):text?text+="\n"+line:text=line}),this._subtitles=subs,this},Subtitle.prototype.add=function(caption){if(!caption.start||!caption.end||!caption.text)throw new Error("Invalid caption data");for(var prop in caption)if(caption.hasOwnProperty(prop)&&"text"!==prop&&("start"===prop||"end"===prop)){if(/^(\d{2}):(\d{2}):(\d{2}),(\d{3})$/.test(caption[prop]))continue;if(!/^\d+$/.test(caption[prop]))throw new Error("Invalid caption time format");caption[prop]=Subtitle.toSrtTime(caption[prop])}return this._subtitles.push({index:this._subtitles.length+1,start:caption.start,end:caption.end,duration:Subtitle.toMS(caption.end)-Subtitle.toMS(caption.start),text:caption.text}),this},Subtitle.toMS=function(time){var match=time.match(/^(\d{2}):(\d{2}):(\d{2}),(\d{3})$/);if(!match)throw new Error("Invalid SRT time format");var hours=parseInt(match[1],10),minutes=parseInt(match[2],10),seconds=parseInt(match[3],10),milliseconds=parseInt(match[4],10);return hours*=36e5,minutes*=6e4,seconds*=1e3,hours+minutes+seconds+milliseconds},Subtitle.toSrtTime=function(time){if(!/^\d+$/.test(time.toString()))throw new Error("Time should be an Integer value in milliseconds");time=parseInt(time);var date=new Date(0,0,0,0,0,0,time),hours=date.getHours()<10?"0"+date.getHours():date.getHours(),minutes=date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes(),seconds=date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds(),ms=time-(36e5*hours+6e4*minutes+1e3*seconds);ms<100&&ms>=10?ms="0"+ms:ms<10&&(ms="00"+ms);var srtTime=hours+":"+minutes+":"+seconds+","+ms;return srtTime},Subtitle.prototype.getSubtitles=function(options){var subtitles=this._subtitles,defaults={timeFormat:"srt",duration:!1};return options=extend(defaults,options),"ms"===options.timeFormat&&(subtitles=subtitles.map(function(caption){return caption.start=Subtitle.toMS(caption.start),caption.end=Subtitle.toMS(caption.end),caption})),options.duration||(subtitles=subtitles.map(function(caption){return delete caption.duration,caption})),subtitles},Subtitle.prototype.stringify=function(){var buffer="";return this._subtitles.forEach(function(caption,index){index>0&&(buffer+="\n"),buffer+=caption.index,buffer+="\n",buffer+=caption.start+" --> "+caption.end,buffer+="\n",buffer+=caption.text,buffer+="\n"}),buffer},Subtitle.prototype.resync=function(time){if(!/(-|\+)?\d+/.test(time.toString()))throw new Error("Invalid time: "+time+".Expected a valid integer");return time=parseInt(time,10),this._subtitles=this._subtitles.map(function(caption){var start=Subtitle.toMS(caption.start),end=Subtitle.toMS(caption.end);return start+=time,end+=time,caption.start=start<0?Subtitle.toSrtTime(0):Subtitle.toSrtTime(start),caption.end=end<0?Subtitle.toSrtTime(0):Subtitle.toSrtTime(end),caption}),this},module.exports=Subtitle},{"xtend/immutable":1}]},{},[2])(2)});

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。