Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        public string ConvertToString(IVideoData data)
        {
            YoutubeVideoData parsedData = GetParsedData(data);

            return(_serializer.Serialize(parsedData));
        }