public List<ISubtitle> GetLastSubtitles(int number = 100, SubtitleLanguage type = SubtitleLanguage.VOVF) { List<ISubtitle> list = new List<ISubtitle>(); if (type == SubtitleLanguage.Other) { throw new ArgumentException("Cannot use SubtitleLanguage : Other for this request"); } string stype = type.ToString(); if (number < 0) { number = 100; } XmlDocument doc = Utils.UtilsXML.GetUrl("/subtitles/last.xml", "&number=" + number + "&language=" + stype); XmlElement xe = doc["root"]["subtitles"]; if (xe == null) { throw new BetaSeriesException(1003, "Invalid action."); } foreach (XmlElement sub in xe.GetElementsByTagName("subtitle")) { ISubtitle s = SubtitleFactory.CreateSubtitle(sub); list.Add(s); } return list; }
protected override bool EnumerateStreams(bool forceRefresh) { //FIXME: TSReader only offers Audio in IAMStreamSelect, it would be cleaner to expose subs as well. bool refreshed = base.EnumerateStreams(forceRefresh); if (refreshed) { // If base class has refreshed the stream infos, then update the subtitle streams. ISubtitleStream subtitleStream = _sourceFilter as ISubtitleStream; int count = 0; if (subtitleStream != null) { _streamInfoSubtitles = new StreamInfoHandler(); subtitleStream.GetSubtitleStreamCount(ref count); if (count > 0) { StreamInfo subStream = new StreamInfo(null, NO_STREAM_INDEX, NO_SUBTITLES, 0); _streamInfoSubtitles.AddUnique(subStream); } for (int i = 0; i < count; ++i) { //FIXME: language should be passed back also as LCID SubtitleLanguage language = new SubtitleLanguage(); subtitleStream.GetSubtitleStreamLanguage(i, ref language); int lcid = LookupLcidFromName(language.lang); // Note: the "type" is no longer considered in MP1 code as well, so I guess DVBSub3 only supports Bitmap subs at all. string name = language.lang; StreamInfo subStream = new StreamInfo(null, i, name, lcid); _streamInfoSubtitles.AddUnique(subStream); } } } return(refreshed); }
public async Task <SubtitleData> SubtitleDataAsync(string id, SubtitleLanguage language, int?seasonNumber = null) { try { string initUrl = $"{language.ToString()}/API/Subtitles/{_apiKey}/{id}"; if (seasonNumber.HasValue) { initUrl = $"{language.ToString()}/API/Subtitles/{_apiKey}/{id}/{seasonNumber}"; } string url = $"{BaseUrl}/{initUrl}"; string json = await Utils.DownloadJsonAsync(url); if (string.IsNullOrEmpty(json)) { return new SubtitleData() { ErrorMessage = "Server Not Founded" } } ; var data = JsonConvert.DeserializeObject <SubtitleData>(json); return(data); } catch (Exception ex) { return(new SubtitleData() { ErrorMessage = ex.Message }); } }
public TsReaderStreamInfoHandler(ISubtitleStream subtitleStream) { if (subtitleStream == null) { return; } int count = 0; _subtitleStream = subtitleStream; subtitleStream.GetSubtitleStreamCount(ref count); if (count > 0) { StreamInfo subStream = new StreamInfo(null, NO_STREAM_INDEX, VideoPlayer.NO_SUBTITLES, 0); AddUnique(subStream); } for (int i = 0; i < count; ++i) { //FIXME: language should be passed back also as LCID SubtitleLanguage language = new SubtitleLanguage(); subtitleStream.GetSubtitleStreamLanguage(i, ref language); int lcid = BaseDXPlayer.LookupLcidFromName(language.lang); // Note: the "type" is no longer considered in MP1 code as well, so I guess DVBSub3 only supports Bitmap subs at all. string name = language.lang; StreamInfo subStream = new StreamInfo(null, i, name, lcid); AddUnique(subStream); } }
public SettingsViewModel(INavigator navigator) { this.navigator = navigator; var wantLangs = App.Settings.WantedLanguages; foreach (var x in SubtitleLanguage.AllLanguages) { LanguageList.Add(x); } if (wantLangs != null) { foreach (var x in wantLangs) { WantedLanguageList.Add(x); } } selectedLanguage = null; selectedWantedLanguage = null; alwaysOnTop = App.Settings.KeepWindowOnTop; downloadToSubsFolder = App.Settings.DownloadToSubsFolder; allowMultipleDownloads = App.Settings.AllowMultipleDownloads; overwriteSameLanguageSubs = App.Settings.OverwriteSameLanguageSub; }
public Settings(bool enabled, byte size, Color color, SubtitleLanguage language) { Size = size >= MinSize ? size : throw new ArgumentException(nameof(size)); Enabled = enabled; Color = color; Language = language; }
public TsReaderTeletextInfoHandler(ITeletextSource teletextSource) { if (teletextSource == null) { return; } int teletextStreamCount = 0; _teletextSource = teletextSource; teletextSource.GetTeletextStreamCount(ref teletextStreamCount); if (teletextStreamCount > 0) { StreamInfo subStream = new StreamInfo(null, NO_STREAM_INDEX, VideoPlayer.GetNoSubsName(), 0); AddUnique(subStream); } for (int i = 0; i < teletextStreamCount; ++i) { //FIXME: language should be passed back also as LCID SubtitleLanguage language = new SubtitleLanguage(); teletextSource.GetTeletextStreamLanguage(i, ref language); int lcid = BaseDXPlayer.LookupLcidFromName(language.lang); string name = language.lang; StreamInfo subStream = new StreamInfo(null, i, name, lcid); AddUnique(subStream); } }
public static async Task<SubtitleData[]> GetSubtitles(int imdbid, SubtitleLanguage langid) { try { Debug.WriteLine($"Requesting http://www.opensubtitles.org/en/search/imdbid-{imdbid}/sublanguageid-{langid}/xml"); var rq = (HttpWebRequest)WebRequest.Create($"http://www.opensubtitles.org/en/search/imdbid-{imdbid}/sublanguageid-{langid}/xml"); rq.Timeout = 1000; rq.ReadWriteTimeout = 10000; var response = await rq.GetResponseAsync() as HttpWebResponse; using (var responseStream = response.GetResponseStream()) { XmlTextReader reader = new XmlTextReader(responseStream); var osXml = XDocument.Load(reader, LoadOptions.None); var subs = osXml.XPathSelectElements("//opensubtitles/search/results/subtitle").Select(x => new SubtitleData { LinkDownload = x.Element("IDSubtitle")?.Attribute("LinkDownload")?.Value, ReleaseName = x.Element("MovieReleaseName")?.Value }).ToArray(); return subs; } } catch (Exception ex) { // ignored } return new SubtitleData[0]; }
private HashSet <SubtitleLanguage> GetSupportedLanguages(HashSet <string> languages) { var result = new HashSet <SubtitleLanguage>(); foreach (var language in languages) { result.Add(SubtitleLanguage.Find(language)); } return(result); }
/// <summary> /// Constructor. /// </summary> /// <param name="output">The output from the server.</param> public GetSubLanguagesOutput(XmlRpcStruct output) : base(output) { XmlRpcStruct[] data = output.GetXmlRpcStructArray("data"); Languages = new SubtitleLanguage[data.Length]; for (int Index = 0; Index < data.Length; Index++) { Languages[Index] = new SubtitleLanguage(data[Index]); } }
private int CompareLanguages(ListViewItem row1, ListViewItem row2) { string lang1 = row1.SubItems[Columns.Language].Text; string lang2 = row2.SubItems[Columns.Language].Text; bool pref1 = SubtitleLanguage.IsPrefferedLanguage(lang1); bool pref2 = SubtitleLanguage.IsPrefferedLanguage(lang2); // Preferred language should go on top int res = (pref2 ? 1 : 0) - (pref1 ? 1 : 0); if (res != 0) return res; return string.Compare(lang1, lang2); }
private void lvSubtitles_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { // Show preffered language with bold text if (e.ColumnIndex == Columns.Language) { if (e.Value != null && SubtitleLanguage.IsPrefferedLanguage(e.Value.ToString())) { e.CellStyle.Font = new Font(ThemeManager.NormalFont, FontStyle.Bold); } e.Handled = true; return; } // Mark higherst prio items with red if (e.ColumnIndex == Columns.ServerOrder) { if (e.Value != null && e.Value.ToString() == _highestPrio.ToString()) { e.CellStyle.ForeColor = ThemeManager.SelectedColor; e.CellStyle.BackColor = ThemeManager.BackColor; e.CellStyle.SelectionForeColor = ThemeManager.BackColor; e.CellStyle.SelectionBackColor = ThemeManager.SelectedColor; } e.Handled = true; return; } if (e.Value != null && e.Value.ToString() == none) { e.CellStyle.ForeColor = ThemeManager.BorderColor; e.Handled = true; return; } }
protected override bool EnumerateStreams(bool forceRefresh) { //FIXME: TSReader only offers Audio in IAMStreamSelect, it would be cleaner to expose subs as well. bool refreshed = base.EnumerateStreams(forceRefresh); if (refreshed) { // If base class has refreshed the stream infos, then update the subtitle streams. ISubtitleStream subtitleStream = _fileSource as ISubtitleStream; int count = 0; if (subtitleStream != null) { _streamInfoSubtitles = new StreamInfoHandler(); subtitleStream.GetSubtitleStreamCount(ref count); if (count > 0) { StreamInfo subStream = new StreamInfo(null, NO_STREAM_INDEX, NO_SUBTITLES, 0); _streamInfoSubtitles.AddUnique(subStream); } for (int i = 0; i < count; ++i) { //FIXME: language should be passed back also as LCID SubtitleLanguage language = new SubtitleLanguage(); int type = 0; subtitleStream.GetSubtitleStreamLanguage(i, ref language); subtitleStream.GetSubtitleStreamType(i, ref type); int lcid = LookupLcidFromName(language.lang); string name = type == 0 ? String.Format("{0} (DVB)", language.lang) : String.Format("{0} (Teletext)", language.lang); StreamInfo subStream = new StreamInfo(null, i, name, lcid); _streamInfoSubtitles.AddUnique(subStream); } } } return(refreshed); }
public SubtitleSettingsBuilder WithLanguage(SubtitleLanguage language) { _language = language; return(this); }
public void GetSubtitleStreamLanguage(int stream, ref SubtitleLanguage szLanguage) { szLanguage.lang = _subtitleLanguage; }
public void GetTeletextStreamLanguage(int stream, ref SubtitleLanguage szLanguage) { szLanguage.lang = _teletextSubtitleLanguage; }
public List<ISubtitle> GetSubtitles(string urlSerie, int season, int episode, SubtitleLanguage type = SubtitleLanguage.VOVF) { IEpisode ep = EpisodeFactory.CreateEpisode(); ep.UrlShow = urlSerie; ep.Season = season; ep.Number = episode; return ep.GetSubtitles(type); }
public List<ISubtitle> GetSubtitles(string urlSerie, SubtitleLanguage type = SubtitleLanguage.VOVF) { IShow show = ShowFactory.CreateShow(); show.Url = urlSerie; return show.GetSubtitles(type); }
void SubtitleDownloadNotifyForm_Load(object sender, EventArgs e) { foreach (SubtitleDownloader sd in _subtitleDownloadInfo.Keys) { if (sd.Priority < _highestPrio) _highestPrio = sd.Priority; } foreach (KeyValuePair<SubtitleDownloader, List<SubtitleInfo>> kvp in _subtitleDownloadInfo) { SubtitleDownloader sd = kvp.Key; List<SubtitleInfo> list = kvp.Value; if (sd != null && list != null) { foreach (SubtitleInfo si in list) { string[] data = new string[] { string.IsNullOrEmpty(si.SubFileName) ? none : si.SubFileName, string.IsNullOrEmpty(sd.ServerUrl) ? none : sd.ServerUrl, sd.Priority.ToString(), string.IsNullOrEmpty(si.LanguageName) ? none : si.LanguageName, string.IsNullOrEmpty(si.SubSize) ? none : si.SubSize }; ListViewItem item = new ListViewItem(data); SubtitleDownloadInfo sdi = new SubtitleDownloadInfo(); sdi.sd = sd; sdi.si = si; item.Tag = sdi; lvSubtitles.Items.Add(item); //item.UseItemStyleForSubItems = true; if (SubtitleLanguage.IsPrefferedLanguage(si.LanguageName)) { item.ForeColor = ThemeManager.HighlightColor; foreach (ListViewItem.ListViewSubItem lvsi in item.SubItems) { lvsi.ForeColor = ThemeManager.HighlightColor; } } if (_highestPrio == sd.Priority) { item.Font = ThemeManager.SmallFont; foreach (ListViewItem.ListViewSubItem lvsi in item.SubItems) { lvsi.Font = ThemeManager.SmallFont; } } } } } int count = lvSubtitles.Items.Count; string movieName = string.Format("'{0}'", Path.GetFileName(_movieFilePath)); lvSubtitles.ListViewItemSorter = new SubtitleFormComparer(Columns.Language, _sortOrderParam); lvSubtitles.Sort(); SetTitle(Translator.Translate("TXT_SUBTITLEDOWNLOADNOTIFY", count, movieName)); }
public ImdbBrowserWorker(SubtitleLanguage subtitleLang) { _subtitleLang = subtitleLang; _imdbRepository = new ImdbMovieRepository(); }
public List<ISubtitle> GetLastSubtitles(string urlSerie, int number = 100, SubtitleLanguage type = SubtitleLanguage.VOVF) { IShow show = ShowFactory.CreateShow(); show.Url = urlSerie; return show.GetLastSubtitles(number, type); }
public TorrentWorkerFacade(SubtitleLanguage subtitleLang, CancellationToken cancellationToken) { _cancellationToken = cancellationToken; _imdbWorker = new ImdbBrowserWorker(subtitleLang); _torrentWorker = new TorrentBrowserWorker(); }
public List<ISubtitle> GetSubtitles(string urlSerie, int season, SubtitleLanguage type = SubtitleLanguage.VOVF) { ISeason s = SeasonFactory.CreateSeason(); s.UrlShow = urlSerie; s.Number = season; return s.GetSubtitles(type); }