Esempio n. 1
0
        string IPlugin.DoAction(Form parentForm, string content, double frameRate, string uiLineBreak, string fileName, string videoFileName, string rawText)
        {
            if (string.IsNullOrWhiteSpace(content))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            if (string.IsNullOrEmpty(uiLineBreak))
            {
                Options.UILineBreak = uiLineBreak;
            }

            var list     = content.SplitToLines().ToList();
            var subrip   = new SubRip();
            var subtitle = new Subtitle(subrip);

            subrip.LoadSubtitle(subtitle, list, fileName);
            using (var form = new MainForm(subtitle, (this as IPlugin).Name, (this as IPlugin).Description))
            {
                if (form.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(form.Subtitle);
                }
            }
            return(string.Empty);
        }
Esempio n. 2
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            subtitle = subtitle.Trim();
            if (string.IsNullOrEmpty(subtitle))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            var subRip = new SubRip();
            var sub    = new Subtitle(subRip);

            subRip.LoadSubtitle(sub, subtitle.SplitToLines(), subtitleFileName);
            if (sub.Paragraphs.Count < 1)
            {
                return(string.Empty);
            }

            using (var mainForm = new MainForm(sub, subtitleFileName, (this as IPlugin).Version.ToString(CultureInfo.InvariantCulture)))
            {
                if (mainForm.ShowDialog() == DialogResult.OK)
                {
                    return(mainForm.Subtitle);
                }
            }

            return(string.Empty);
        }
Esempio n. 3
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            if (string.IsNullOrWhiteSpace(subtitle))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            if (!string.IsNullOrEmpty(listViewLineSeparatorString))
            {
                Configuration.ListViewLineSeparatorString = listViewLineSeparatorString;
            }

            var list = subtitle.SplitToLines();

            var srt = new SubRip();
            var sub = new Subtitle(srt);

            srt.LoadSubtitle(sub, list, subtitleFileName);
            if (srt.ErrorCount > 0)
            {
                MessageBox.Show(srt.Errors + " Errors found while parsing .srt",
                                "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            using (var form = new PluginForm(sub))
            {
                if (form.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(form.FixedSubtitle);
                }
            }
            return(string.Empty);
        }
Esempio n. 4
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            if (string.IsNullOrWhiteSpace(subtitle))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            if (!string.IsNullOrEmpty(listViewLineSeparatorString))
            {
                Configuration.ListViewLineSeparatorString = listViewLineSeparatorString;
            }

            var srt = new SubRip();
            var sub = new Subtitle(srt);

            srt.LoadSubtitle(sub, subtitle.SplitToLines(), subtitleFileName);
            if (srt.Errors > 0)
            {
                var s = srt.Errors > 1 ? "s" : string.Empty;
                MessageBox.Show($"{srt.Errors} error{s} found while parsing .srt", $"SubRip Parse Error{s}", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            using (var form = new PluginForm(sub, (this as IPlugin).Name, (this as IPlugin).Description))
            {
                if (form.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(form.FixedSubtitle);
                }
            }
            return(string.Empty);
        }
Esempio n. 5
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            subtitle = subtitle.Trim();
            if (string.IsNullOrEmpty(subtitle))
            {
                MessageBox.Show("Titl nije učitan", parentForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            if (!string.IsNullOrEmpty(listViewLineSeparatorString))
            {
                Configuration.ListViewLineSeparatorString = listViewLineSeparatorString;
            }

            var list = subtitle.SplitToLines().ToList();

            var sub = new Subtitle();
            var srt = new SubRip();

            srt.LoadSubtitle(sub, list, subtitleFileName);
            using (var form = new MainForm(sub, (this as IPlugin).Text, (this as IPlugin).Description, parentForm))
            {
                if (form.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(form.FixedSubtitle);
                }
            }
            return(string.Empty);
        }
Esempio n. 6
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            if (string.IsNullOrEmpty(subtitle))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            if (!string.IsNullOrEmpty(listViewLineSeparatorString))
            {
                Options.UILineBreak = listViewLineSeparatorString;
            }

            var list = new List <string>();

            foreach (string line in subtitle.SplitToLines())
            {
                list.Add(line);
            }

            var srt = new SubRip();
            var sub = new Subtitle(srt);

            srt.LoadSubtitle(sub, list, subtitleFileName);
            using (var form = new Main(parentForm, sub, (this as IPlugin).Name, (this as IPlugin).Description))
            {
                if (form.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(form.FixedSubtitle);
                }
            }
            return(string.Empty);
        }
Esempio n. 7
0
        private void OpenFile2(string fileName)
        {
            var lines = new List <string>();

            foreach (var line in File.ReadAllLines(fileName))
            {
                lines.Add(line);
            }
            SubtitleFormat format = new SubRip();

            if (!format.IsMine(lines, fileName))
            {
                format = new AdvancedSubStationAlpha();
            }
            if (!format.IsMine(lines, fileName))
            {
                format = new SubStationAlpha();
            }

            if (format.IsMine(lines, fileName))
            {
                textBox2.Text = fileName;
                _subtitle2    = new Subtitle();
                format.LoadSubtitle(_subtitle2, lines, fileName);
                subtitleListView2.Fill(_subtitle2);
                if (_subtitle2.Paragraphs.Count > 0)
                {
                    subtitleListView1.SelectIndexAndEnsureVisible(0);
                }
                GeneratePreview();
            }
        }
Esempio n. 8
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            subtitle = subtitle.Trim();
            if (string.IsNullOrEmpty(subtitle))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            if (!string.IsNullOrEmpty(listViewLineSeparatorString))
            {
                Configuration.ListViewLineSeparatorString = listViewLineSeparatorString;
            }

            var list = new List <string>();

            foreach (string line in subtitle.Replace(Environment.NewLine, "\n").Split('\n'))
            {
                list.Add(line);
            }

            var sub = new Subtitle();
            var srt = new SubRip();

            srt.LoadSubtitle(sub, list, subtitleFileName);
            using (var form = new MainForm(sub, (this as IPlugin).Text, (this as IPlugin).Description, parentForm))
            {
                if (form.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(form.FixedSubtitle);
                }
            }
            return(string.Empty);
        }
Esempio n. 9
0
        public string DoAction(Form parentForm, string srtText, double frameRate, string UILineBreak, string file, string videoFile, string rawText)
        {
            AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += CurrentDomain_ReflectionOnlyAssemblyResolve;
            AppDomain.CurrentDomain.AssemblyResolve += AssemblyUtils.CurrentDomainAssemblyResolve;

            // BuildFixCasing(parentForm, new List<string>());
            var subRip   = new SubRip();
            var subtitle = new Subtitle(subRip);

            subRip.LoadSubtitle(subtitle, rawText.SplitToLines(), file);

            // Application.UserAppDataRegistry
            using (var mainForm = new Main(subtitle, UILineBreak))
            {
                if (mainForm.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(mainForm.Subtitle);
                }
            }

            // hack SE through parentForm
            // Nikse.SubtitleEdit.Core.FixCasing.cs is the file to hack
            // var formType = parentForm.GetType();
            // var fixCasingType = formType.Assembly.GetType("Nikse.SubtitleEdit.Core.FixCasing");
            //
            // Activator.CreateInstance(fixCasingType, BindingFlags.Instance | BindingFlags.Public, parentForm);

            return(string.Empty);
        }
Esempio n. 10
0
        public void Init(string srtText, string uiLineBreak, string file)
        {
            if (!string.IsNullOrEmpty(uiLineBreak))
            {
                Options.UILineBreak = uiLineBreak;
            }

            _lines = new List <string>(srtText.SplitToLines());
            var subrip = new SubRip();

            _subtitle = new Subtitle(subrip);
            subrip.LoadSubtitle(_subtitle, _lines, file);
        }
Esempio n. 11
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            subtitle = subtitle.Trim();
            if (string.IsNullOrWhiteSpace(subtitle))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }
            if (!IsOfficeInstalled())
            {
                MessageBox.Show(@"Microsoft Office (Word) is not installed in this system.", "Office is not installed!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(string.Empty);
            }

            // set frame rate
            Configuration.CurrentFrameRate = frameRate;

            // set newline visualizer for listviews
            if (!string.IsNullOrEmpty(listViewLineSeparatorString))
            {
                Configuration.ListViewLineSeparatorString = listViewLineSeparatorString;
            }

            // load subtitle text into object
            var list = new List <string>();

            foreach (string line in subtitle.Replace(Environment.NewLine, "\n").Split('\n'))
            {
                list.Add(line);
            }

            var sub = new Subtitle();
            var srt = new SubRip();

            srt.LoadSubtitle(sub, list, subtitleFileName);
            var form = new PluginForm(sub, (this as IPlugin).Name, (this as IPlugin).Description);

            if (form.ShowDialog(parentForm) == DialogResult.OK)
            {
                return(form.FixedSubtitle);
            }
            return(string.Empty);
        }
Esempio n. 12
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName,
                                string videoFileName, string rawText)
        {
            if (string.IsNullOrWhiteSpace(subtitle))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }
            // set frame rate
            Configuration.CurrentFrameRate = frameRate;

            // set newline visualizer for listviews
            if (!string.IsNullOrEmpty(listViewLineSeparatorString))
            {
                Configuration.ListViewLineSeparatorString = listViewLineSeparatorString;
            }

            // load subtitle text into object
            var list = new List <string>();

            foreach (string line in subtitle.SplitToLines())
            {
                list.Add(line);
            }
            var sub = new Subtitle();
            var srt = new SubRip();

            srt.LoadSubtitle(sub, list, subtitleFileName);

            IPlugin plugin = this;

            using (var form = new PluginForm(sub, plugin.Name, plugin.Description))
            {
                if (form.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(form.FixedSubtitle);
                }
            }
            return(string.Empty);
        }
Esempio n. 13
0
        decimal IPlugin.Version => 3.3M; //Gets or sets the major, minor, build, and revision numbers of the assembly

        #endregion

        string IPlugin.DoAction(Form parentForm, string subtitleText, double frameRate,
                                string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            // Make sure subtitle isn't null or empty
            if (string.IsNullOrWhiteSpace(subtitleText))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            // Use custom separator for list view new lines
            if (!string.IsNullOrEmpty(listViewLineSeparatorString))
            {
                Configuration.ListViewLineSeparatorString = listViewLineSeparatorString;
            }

            // Get subtitle raw lines
            var list = new List <string>();

            list.AddRange(subtitleText.SplitToLines());

            var srt = new SubRip();
            var sub = new Subtitle(srt);

            // Load raws subtitle lines into Subtitle object
            srt.LoadSubtitle(sub, list, subtitleFileName);

            IPlugin HI2UC = this;

            using (var form = new PluginForm(sub, HI2UC.Name, HI2UC.Description))
            {
                if (form.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(form.FixedSubtitle);
                }
            }
            return(string.Empty);
        }
Esempio n. 14
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            subtitle = subtitle.Trim();
            if (string.IsNullOrEmpty(subtitle))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            var list = subtitle.Replace(Environment.NewLine, "\n").Split('\n').ToList();

            var sub = new Subtitle();
            var srt = new SubRip();

            srt.LoadSubtitle(sub, list, subtitleFileName);

            foreach (var paragraph in sub.Paragraphs)
            {
                string pre = string.Empty;
                if (paragraph.Text.StartsWith("{\\") && paragraph.Text.Contains("}"))
                {
                    var idx = paragraph.Text.IndexOf("}", 2, StringComparison.Ordinal) + 1;
                    pre            = paragraph.Text.Substring(0, idx);
                    paragraph.Text = paragraph.Text.Remove(0, idx);
                }
                var lines = paragraph.Text.SplitToLines();
                var sb    = new StringBuilder(paragraph.Text.Length);
                foreach (var line in lines)
                {
                    sb.AppendLine(ReverseStringUnicodeSafe(line));
                }
                paragraph.Text = pre + sb.ToString().TrimEnd().Replace(">i<", "<i>").Replace(">i/<", "</i>");
            }

            return(srt.ToText(sub, string.Empty));
        }
Esempio n. 15
0
        public string DoAction(Form parentForm, string srtText, double frame, string uiLineBreak, string file,
                               string videoFile, string rawText)
        {
            // Make sure subtitle isn't null or empty
            if (string.IsNullOrWhiteSpace(srtText))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }

            // Use custom separator for list view new lines
            if (!string.IsNullOrEmpty(uiLineBreak))
            {
                Options.UILineBreak = uiLineBreak;
            }

            // Get subtitle raw lines
            var list = new List <string>(srtText.SplitToLines());
            var srt  = new SubRip();
            var sub  = new Subtitle(srt);

            // Load raws subtitle lines into Subtitle object
            srt.LoadSubtitle(sub, list, file);

            IPlugin hi2Uc = this;

            using (var form = new PluginForm(sub, hi2Uc.Name, hi2Uc.Description))
            {
                if (form.ShowDialog(parentForm) == DialogResult.OK)
                {
                    return(form.Subtitle);
                }
            }

            return(string.Empty);
        }
Esempio n. 16
0
 public Subtitle(SubRip subrip)
 {
     _paragraphs = new List <Paragraph>();
     _format     = subrip;
 }
Esempio n. 17
0
 public Subtitle(SubRip format)
 {
     _paragraphs = new List <Paragraph>();
     _format     = format;
 }
Esempio n. 18
0
        string IPlugin.DoAction(Form parentForm, string subtitle, double frameRate, string listViewLineSeparatorString, string subtitleFileName, string videoFileName, string rawText)
        {
            subtitle = subtitle.Trim();
            if (string.IsNullOrEmpty(subtitle))
            {
                MessageBox.Show("No subtitle loaded", parentForm.Text,
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(string.Empty);
            }
            // load subtitle text into object
            var list = new List <string>();

            foreach (var line in subtitle.SplitToLines())
            {
                list.Add(line);
            }
            var sub = new Subtitle();
            var srt = new SubRip();

            srt.LoadSubtitle(sub, list, subtitleFileName);

            // write subtitle to file
            var tempDir = GetTemporaryDirectory();

            File.WriteAllText(Path.Combine(tempDir, "Subtitle.srt"), srt.ToText(sub, "temp"));

            // write program to temp dir
            var asm = System.Reflection.Assembly.GetExecutingAssembly();

            foreach (var r in asm.GetManifestResourceNames())
            {
                if (r.EndsWith(".gz", StringComparison.Ordinal))
                {
                    WriteAndUnzipRes(asm, r, tempDir);
                }
            }

            // Start exe file
            var procInfo = new ProcessStartInfo();

            procInfo.FileName         = Path.Combine(tempDir, "AviFfmpegWriter.exe");
            procInfo.WorkingDirectory = tempDir;
            var p = Process.Start(procInfo);

            p.WaitForExit();

            // Clean up
            try
            {
                Directory.Delete(tempDir, true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            /*
             * foreach (var r in asm.GetManifestResourceNames())
             * {
             *  if (r.EndsWith(".gz", StringComparison.Ordinal))
             *  {
             *      try
             *      {
             *          File.Delete(GetFileNameFromRessourceName(r));
             *      }
             *      catch (Exception ex)
             *      {
             *          MessageBox.Show(ex.Message);
             *          Process.Start(procInfo.WorkingDirectory);
             *      }
             *  }
             * }
             * try
             * {
             *  File.Delete(Path.Combine(tempDir, "Subtitle.srt"));
             *  Directory.Delete(tempDir);
             * }
             * catch (Exception ex)
             * {
             *  MessageBox.Show(ex.Message);
             *  Process.Start(procInfo.WorkingDirectory);
             * }*/
            return(string.Empty);
        }
Esempio n. 19
0
 public Subtitle(SubRip subrip)
 {
     _paragraphs = new List <Paragraph>();
     FileName    = "Untitled";
     _format     = subrip;
 }