public void Add(string filename) { using (var streamReader = new StreamReader(filename, Encoding.GetEncoding(1252))) { var document = htmlParser.ParseDocument(streamReader.ReadToEnd()); var source = filename.Replace("\\", "/");; if (source.Contains("doppiaggio")) { source = source.Substring(source.IndexOf("doppiaggio") + "doppiaggio".Length + 1); } var dubber = new Dubber() { source = source }; var dubberRef = document.QuerySelector("div[align]"); ExtractDubberName(dubberRef, ref dubber); ExtractDubberPhoto(dubberRef, ref dubber); ExtractDubberAudio(document.QuerySelectorAll("table"), ref dubber); idibData.dubbers.Add(dubber); } }
private void ExtractDubberName(IElement dubberRef, ref Dubber dubber) { var elem = dubberRef.QuerySelector("font[color='#003300']"); if (elem == null) { return; } dubber.name = Utils.Cleanup(elem.TextContent); if (dubber.name.Contains("\"")) { var start = dubber.name.IndexOf("\""); var stop = dubber.name.LastIndexOf("\""); if (start != -1 && stop != -1) { dubber.nickname = dubber.name; dubber.name = Utils.Cleanup(dubber.nickname.Remove(start, stop - start + 1)); } } if (dubber.name.Contains("(")) { var start = dubber.name.IndexOf("("); var stop = dubber.name.LastIndexOf(")"); if (start != -1 && stop != -1) { dubber.altname = dubber.name.Substring(start + 1, stop - start - 1); dubber.name = Utils.Cleanup(dubber.name.Remove(start, stop - start + 1)); } } }
private void ExtractDubberAudio(IHtmlCollection <IElement> tablesRef, ref Dubber dubber) { if (tablesRef.Length < 3 || tablesRef[2].QuerySelector("a") == null) { return; } dubber.audio = new AudioRef(); dubber.audio.description = Utils.Cleanup(tablesRef[2].TextContent.Replace("File audio:", null), false); dubber.audio.description = char.ToUpper(dubber.audio.description[0]) + dubber.audio.description.Substring(1); dubber.audio.name = tablesRef[2].QuerySelector("a").Attributes.GetNamedItem("href").Value.Replace("../", null); }
private void ExtractDubberPhoto(IElement dubberRef, ref Dubber dubber) { var photo = dubberRef.QuerySelectorAll("img"); if (photo.Length < 2 || photo[1].Attributes.GetNamedItem("src") == null) { return; } var parentPath = Utils.ParentURL(dubber.source); dubber.photo = new ImageRef(); dubber.photo.name = Utils.CombineURL(parentPath, photo[1].Attributes.GetNamedItem("src").Value); dubber.photo.description = photo[1].Attributes.GetNamedItem("alt") != null ? photo[1].Attributes.GetNamedItem("alt").Value : null; }