private List<Subtitle> ParseSubtitlesResponse(string subs)
 {
     var subList = new List<Subtitle>();
     var subtitle = new Subtitle(this);
     foreach (var line in subs.Split(new[] {"\n"}, StringSplitOptions.RemoveEmptyEntries))
     {
         if (line.StartsWith("ticket="))
         {
             m_LastTicket = GetValue(line);
         }
         else if (line.StartsWith("movie="))
         {
             var value = GetValue(line);
             subtitle.Movie = value.Remove(value.Length - 1);
         }
         else if (line.StartsWith("subtitle="))
         {
             subtitle.Id = int.Parse(GetValue(line));
         }
         else if (line.StartsWith("language="))
         {
             subtitle.Lang = GetValue(line);
         }
         else if (line.StartsWith("name="))
         {
             subtitle.Name = GetValue(line);
         }
         else if (line.Equals("endsubtitle"))
         {
             subList.Add(subtitle);
             subtitle = new Subtitle(this);
         }
     }
     return subList;
 }
 public void SaveSubtitleFile(Subtitle subtitle)
 {
     var dir = PathHelper.GetDirectoryName(subtitle.MediaFileName);
     var subFile = string.Format(Subtitle.FILE_NAME_FORMAT, Path.GetFileNameWithoutExtension(subtitle.MediaFileName),
         subtitle.Lang);
     var fullPath = Path.Combine(dir, subFile);
     var subs = FetchSubtitleText(subtitle);
     if (string.IsNullOrWhiteSpace(subs))
         throw new Exception("Empty Subtitle");
     var subtitleLines = subs.Split(new[] {"\n"}, StringSplitOptions.RemoveEmptyEntries);
     File.WriteAllLines(@fullPath, subtitleLines);
     subtitle.FilePath = fullPath;
 }
 private void OpenSubtitlesFormFormClosed(object sender, FormClosedEventArgs e)
 {
     m_SelectedSub = null;
     subtitleBindingSource.DataSource = typeof (Subtitle);
 }
 public string FetchSubtitleText(Subtitle subtitle)
 {
     var url = string.Format(OS_DL_SUB, subtitle.Id, m_LastTicket);
     var sub = DoRequest(url);
     if (string.IsNullOrEmpty(sub))
     {
         throw new EmptyResponseException();
     }
     return sub;
 }
 private void GridViewSelectionChanged(object sender, EventArgs e)
 {
     if (gridView.SelectedRows.Count == 0)
         return;
     m_SelectedSub = (Subtitle) gridView.SelectedRows[0].DataBoundItem;
 }