Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }