public bool IsInvalid(IVideoData data, LanguageShortName shortName) { YoutubeVideoData parsedData = GetParsedData(data); if (!"ok".Equals(parsedData.Status, StringComparison.InvariantCultureIgnoreCase)) { return(true); } string title = data.Title.ToLowerInvariant(); if (_titleStopWords.Any(title.Contains)) { return(true); } if (title.Contains("18+")) { //а вдруг неприличное содержимое return(true); } string trimmedTitle = _titleExcludeWords.Aggregate(title, (current, exlude) => current.Replace(exlude, "")); int latinCharsCount = 0; int russianCharsCount = 0; foreach (char ch in trimmedTitle) { if (ch >= 'a' && ch <= 'z') { latinCharsCount++; } else if (ch >= 'а' && ch <= 'я') { russianCharsCount++; } } if (russianCharsCount == 0 && latinCharsCount == 0) { //в названии нет ни русских ни латинских букв return(true); } if (russianCharsCount > latinCharsCount) { /*string nameWithoutEnding = LanguagesHelper.GetLowerNameWithoutEnding(shortName); * if (!title.Contains(nameWithoutEnding)) {*/ //в названии русских букв больше - считаем что фильм не на том языке return(true); //} } return(false); }
public IVideoData GetVideoData(string url) { string vid = GetParamFromUrl(url, "v", '?'); if (string.IsNullOrEmpty(vid)) { return(null); } var result = new YoutubeVideoData { Vid = vid, HtmlCode = GetFrameHtmlById(vid), ThumnailImage = GetResizedImage(vid), }; string metadata = LoadMetadata(vid); if (string.IsNullOrEmpty(metadata)) { return(result); } NameValueCollection pars = HttpUtility.ParseQueryString(metadata); result.Title = pars["title"]; result.ThumnailUrl = pars["thumbnail_url"]; result.Keywords = pars["keywords"]; result.Status = pars["status"]; result.Author = pars["author"]; result.Cid = pars["cid"]; result.Oid = pars["oid"]; result.Of = pars["of"]; result.ViewCount = ParseToLong(pars, "view_count"); result.LengthSeconds = ParseToLong(pars, "length_seconds"); return(result); }
public string ConvertToString(IVideoData data) { YoutubeVideoData parsedData = GetParsedData(data); return(_serializer.Serialize(parsedData)); }