mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-28 06:52:35 +01:00
Refactor subtitle formats part 1
This commit is contained in:
parent
9c05056775
commit
36efd10e64
@ -133,6 +133,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
sb.AppendLine(p.Text);
|
||||
string text = HtmlUtil.RemoveHtmlTags(sb.ToString());
|
||||
string textToLower = text.ToLower();
|
||||
listViewNames.BeginUpdate();
|
||||
foreach (string name in namesEtcList)
|
||||
{
|
||||
int startIndex = textToLower.IndexOf(name.ToLower(), StringComparison.Ordinal);
|
||||
@ -167,6 +168,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
}
|
||||
}
|
||||
listViewNames.EndUpdate();
|
||||
groupBoxNames.Text = string.Format(Configuration.Settings.Language.ChangeCasingNames.NamesFoundInSubtitleX, listViewNames.Items.Count);
|
||||
}
|
||||
|
||||
|
@ -56,12 +56,13 @@ BEWARE : No more than 40 characters ON A LINE
|
||||
ATTENTION : Pas plus de 40 caractères PAR LIGNE
|
||||
|
||||
");
|
||||
const string writeFormant = "* {0} :\t{1}\t{2}\t{3}{4}{5}";
|
||||
int index = 0;
|
||||
foreach (Paragraph p in subtitle.Paragraphs)
|
||||
{
|
||||
index++;
|
||||
string text = HtmlUtil.RemoveHtmlTags(p.Text);
|
||||
sb.AppendLine(string.Format("* {0} :\t{1}\t{2}\t{3}{4}{5}", index, EncodeTimeCode(p.StartTime), EncodeTimeCode(p.EndTime), GetMaxCharsForDuration(p.Duration.TotalSeconds) + "c", Environment.NewLine, text));
|
||||
var text = HtmlUtil.RemoveHtmlTags(p.Text, true);
|
||||
sb.AppendLine(string.Format(writeFormant, index, EncodeTimeCode(p.StartTime), EncodeTimeCode(p.EndTime), GetMaxCharsForDuration(p.Duration.TotalSeconds) + "c", Environment.NewLine, text));
|
||||
sb.AppendLine();
|
||||
if (!text.Contains(Environment.NewLine))
|
||||
sb.AppendLine();
|
||||
@ -72,7 +73,7 @@ ATTENTION : Pas plus de 40 caractères PAR LIGNE
|
||||
private static string EncodeTimeCode(TimeCode time)
|
||||
{
|
||||
//00:03:15:22 (last is frame)
|
||||
return string.Format("{0:00}:{1:00}:{2:00}:{3:00}", time.Hours, time.Minutes, time.Seconds, MillisecondsToFramesMaxFrameRate(time.Milliseconds));
|
||||
return time.ToHHMMSSFF();
|
||||
}
|
||||
|
||||
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
|
||||
@ -129,15 +130,15 @@ ATTENTION : Pas plus de 40 caractères PAR LIGNE
|
||||
private TimeCode DecodeTimeCode(string[] parts)
|
||||
{
|
||||
//00:00:07:12
|
||||
string hour = parts[0];
|
||||
string minutes = parts[1];
|
||||
string seconds = parts[2];
|
||||
int frames = int.Parse(parts[3]);
|
||||
var hour = int.Parse(parts[0]);
|
||||
var minutes = int.Parse(parts[1]);
|
||||
var seconds = int.Parse(parts[2]);
|
||||
var frames = int.Parse(parts[3]);
|
||||
|
||||
if (frames > _maxMsDiv10)
|
||||
_maxMsDiv10 = frames;
|
||||
|
||||
return new TimeCode(int.Parse(hour), int.Parse(minutes), int.Parse(seconds), FramesToMillisecondsMax999(frames));
|
||||
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,7 +8,6 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
{
|
||||
public class TmpegEncAW5 : TmpegEncXml
|
||||
{
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "TMPGEnc AW5"; }
|
||||
@ -26,7 +25,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
{
|
||||
XmlNode paragraph = xml.CreateElement("SubtitleItem");
|
||||
|
||||
string text = HtmlUtil.RemoveHtmlTags(p.Text);
|
||||
var text = HtmlUtil.RemoveHtmlTags(p.Text, true);
|
||||
paragraph.InnerText = text;
|
||||
paragraph.InnerXml = "<Text><![CDATA[" + paragraph.InnerXml.Replace(Environment.NewLine, "\\n") + "\\n]]></Text>";
|
||||
|
||||
|
@ -24,7 +24,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
|
||||
public override bool IsMine(List<string> lines, string fileName)
|
||||
{
|
||||
Subtitle subtitle = new Subtitle();
|
||||
var subtitle = new Subtitle();
|
||||
this.LoadSubtitle(subtitle, lines, fileName);
|
||||
return subtitle.Paragraphs.Count > 0;
|
||||
}
|
||||
@ -147,4 +147,4 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -7,7 +7,6 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
{
|
||||
public class TurboTitler : SubtitleFormat
|
||||
{
|
||||
|
||||
private static Regex regexTimeCodes = new Regex(@"^\d:\d\d:\d\d\.\d\d,\d:\d\d:\d\d\.\d\d,NTP ", RegexOptions.Compiled);
|
||||
|
||||
public override string Extension
|
||||
@ -27,7 +26,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
|
||||
public override bool IsMine(List<string> lines, string fileName)
|
||||
{
|
||||
Subtitle subtitle = new Subtitle();
|
||||
var subtitle = new Subtitle();
|
||||
LoadSubtitle(subtitle, lines, fileName);
|
||||
return subtitle.Paragraphs.Count > _errorCount;
|
||||
}
|
||||
@ -40,10 +39,10 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
|
||||
const string paragraphWriteFormat = "{0},{1},NTP {2}";
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
var sb = new StringBuilder();
|
||||
foreach (Paragraph p in subtitle.Paragraphs)
|
||||
{
|
||||
string text = p.Text.Replace(Environment.NewLine, "|");
|
||||
var text = p.Text.Replace(Environment.NewLine, "|");
|
||||
sb.AppendLine(string.Format(paragraphWriteFormat, EncodeTimeCode(p.StartTime), EncodeTimeCode(p.EndTime), text));
|
||||
}
|
||||
return sb.ToString().Trim();
|
||||
@ -96,11 +95,11 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
|
||||
private static TimeCode DecodeTimeCode(string[] parts)
|
||||
{
|
||||
string hour = parts[0];
|
||||
string minutes = parts[1];
|
||||
string seconds = parts[2];
|
||||
string ms = parts[3];
|
||||
return new TimeCode(int.Parse(hour), int.Parse(minutes), int.Parse(seconds), int.Parse(ms) * 10);
|
||||
var hour = int.Parse(parts[0]);
|
||||
var minutes = int.Parse(parts[1]);
|
||||
var seconds = int.Parse(parts[2]);
|
||||
var ms = int.Parse(parts[3]);
|
||||
return new TimeCode(hour, minutes, seconds, ms * 10);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
/// </summary>
|
||||
public class UnknownSubtitle7 : SubtitleFormat
|
||||
{
|
||||
|
||||
private enum ExpectingLine
|
||||
{
|
||||
TimeStart,
|
||||
@ -50,7 +49,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
|
||||
const string paragraphWriteFormat = "{0} {2}{3}{1}\t";
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
var sb = new StringBuilder();
|
||||
foreach (Paragraph p in subtitle.Paragraphs)
|
||||
{
|
||||
sb.AppendLine(string.Format(paragraphWriteFormat, EncodeTimeCode(p.StartTime), EncodeTimeCode(p.EndTime), p.Text, Environment.NewLine));
|
||||
@ -64,7 +63,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
var regexTimeCodeEnd = new Regex(@"^\d\d:\d\d:\d\d:\d\d\t$", RegexOptions.Compiled);
|
||||
|
||||
var paragraph = new Paragraph();
|
||||
ExpectingLine expecting = ExpectingLine.TimeStart;
|
||||
var expecting = ExpectingLine.TimeStart;
|
||||
_errorCount = 0;
|
||||
|
||||
subtitle.Paragraphs.Clear();
|
||||
@ -139,18 +138,16 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
|
||||
private static string EncodeTimeCode(TimeCode time)
|
||||
{
|
||||
return string.Format("{0:00}:{1:00}:{2:00}:{3:00}", time.Hours, time.Minutes, time.Seconds, MillisecondsToFramesMaxFrameRate(time.Milliseconds));
|
||||
return time.ToHHMMSSFF();
|
||||
}
|
||||
|
||||
private static TimeCode DecodeTimeCode(string[] parts)
|
||||
{
|
||||
string hour = parts[0];
|
||||
string minutes = parts[1];
|
||||
string seconds = parts[2];
|
||||
string frames = parts[3];
|
||||
|
||||
TimeCode tc = new TimeCode(int.Parse(hour), int.Parse(minutes), int.Parse(seconds), FramesToMillisecondsMax999(int.Parse(frames)));
|
||||
return tc;
|
||||
var hour = int.Parse(parts[0]);
|
||||
var minutes = int.Parse(parts[1]);
|
||||
var seconds = int.Parse(parts[2]);
|
||||
var frames = int.Parse(parts[3]);
|
||||
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
{
|
||||
public class UnknownSubtitle70 : SubtitleFormat
|
||||
{
|
||||
private static Regex _regexMicroDvdLine = new Regex(@"^\[-?\d+\]\[-?\d+\].*$", RegexOptions.Compiled);
|
||||
private static readonly Regex _regexMicroDvdLine = new Regex(@"^\[-?\d+\]\[-?\d+\].*$", RegexOptions.Compiled);
|
||||
public string Errors { get; private set; }
|
||||
private StringBuilder _errors;
|
||||
private int _lineNumber;
|
||||
@ -563,4 +563,4 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -201,18 +201,17 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
|
||||
private static string EncodeTimeCode(TimeCode time)
|
||||
{
|
||||
string s = string.Format("{0:00}:{1:00}:{2:00}:{3:00}", time.Hours, time.Minutes, time.Seconds, MillisecondsToFramesMaxFrameRate(time.Milliseconds));
|
||||
var s = time.ToHHMMSSFF();
|
||||
return AddSpaces(s);
|
||||
}
|
||||
|
||||
private static TimeCode DecodeTimeCode(string[] parts)
|
||||
{
|
||||
string hour = parts[0];
|
||||
string minutes = parts[1];
|
||||
string seconds = parts[2];
|
||||
string frames = parts[3];
|
||||
|
||||
return new TimeCode(int.Parse(hour), int.Parse(minutes), int.Parse(seconds), FramesToMillisecondsMax999(int.Parse(frames)));
|
||||
var hour = int.Parse(parts[0]);
|
||||
var minutes = int.Parse(parts[1]);
|
||||
var seconds = int.Parse(parts[2]);
|
||||
var frames = int.Parse(parts[3]);
|
||||
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
public class UnknownSubtitle73 : SubtitleFormat
|
||||
{
|
||||
//59:00:22:09:14 00:22:12:04 02:15
|
||||
private static Regex regexTimeCodes = new Regex(@"^\d+:\d\d:\d\d:\d\d:\d\d \d\d:\d\d:\d\d:\d\d \d\d:\d\d$", RegexOptions.Compiled);
|
||||
private static readonly Regex regexTimeCodes = new Regex(@"^\d+:\d\d:\d\d:\d\d:\d\d \d\d:\d\d:\d\d:\d\d \d\d:\d\d$", RegexOptions.Compiled);
|
||||
|
||||
public override string Extension
|
||||
{
|
||||
@ -123,14 +123,12 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
|
||||
private static TimeCode DecodeTimeCode(string[] parts)
|
||||
{
|
||||
//00:00:07:12
|
||||
string hour = parts[0];
|
||||
string minutes = parts[1];
|
||||
string seconds = parts[2];
|
||||
string frames = parts[3];
|
||||
|
||||
TimeCode tc = new TimeCode(int.Parse(hour), int.Parse(minutes), int.Parse(seconds), FramesToMillisecondsMax999(int.Parse(frames)));
|
||||
return tc;
|
||||
var hour = int.Parse(parts[0]);
|
||||
var minutes = int.Parse(parts[1]);
|
||||
var seconds = int.Parse(parts[2]);
|
||||
var frames = int.Parse(parts[3]);
|
||||
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user