/// <summary> /// 上传一个srt文件 /// </summary> /// <param name="userId"></param> /// <param name="fileName"></param> /// <param name="context"></param> /// <param name="ismerge">是否合并弹幕</param> /// <returns></returns> public SrtFile UploadSrtFile(int userId, string fileName, byte[] context, bool ismerge = true) { var saveFile = Path.Combine("upfiles/", userId + "_" + fileName); File.WriteAllBytes(saveFile, context); var fileBattuate = new SrtManager().LoadBattuteByFile(saveFile); // 因为本地文件的srt与原始的不一样了,这里要做一下转换 var jsonObj = new SrtJsonFile(); jsonObj.Battutas = ConverSrtToSubtitles(fileBattuate); jsonObj.FileName = fileName; jsonObj.Version = 1; var jsonSaveFile = Path.Combine("jsonfiles/", userId + "_" + fileName + ".json"); File.WriteAllText(jsonSaveFile, JsonConvert.SerializeObject(jsonObj, Formatting.Indented)); var srtItem = new SrtFile() { UserId = userId, LastUpdate = DateTime.Now, UploadTime = DateTime.Now, SourceLocalFileName = saveFile, SrtFileName = fileName, JsonSrtFileName = jsonSaveFile }; using (var db = DbSet.GetDb()) { db.Insert(srtItem); } return(srtItem); }
static void Main(string[] args) { var fileName = "翻译中字英语 (自动生成)When Fast is Faster Than Fastest.srt"; var srt = new SrtManager(); var battute = srt.LoadBattuteByFile(fileName); var rets = 合并字幕(battute, 5.1); rets = 合并字幕(rets, 6.0); var newfile = fileName.Replace(".srt", ""); newfile += "_fix.srt"; Console.WriteLine("{1}/{0}", battute.Count, rets.Count); SrtManager.SaveBattute(newfile, rets); }
static void Main(string[] args) { if (!File.Exists("config.json")) { Console.WriteLine("找不到配置文件 config.json"); return; } var config = Config.LoadConfig(); if (config == null) { return; } _config = config; var fileName = _config.srtfile; if (!File.Exists(fileName)) { Console.WriteLine("没找到弹幕文件:{0}", fileName); return; } var lines = File.ReadAllLines(fileName, Encoding.Default); var srtReader = new SrtManager(); var battutes = srtReader.LoadBattute(lines); for (var i = 10; i < battutes.Count; i++) { var item = battutes[i]; Console.WriteLine(item.Id); var client = GetClient(); var post = GetPostData((int)(item.FromSec * 视频每秒多少ms), item.Text); var postEscape = Uri.EscapeUriString(post); Console.WriteLine(post); var ret = client.UploadData(弹幕Url, Encoding.UTF8.GetBytes(postEscape)); var json = Encoding.UTF8.GetString(ret); Console.WriteLine(json); Thread.Sleep(31000); } }