Пример #1
0
 /// <summary>
 /// Path to check for invalid characters
 /// </summary>
 /// <param name="IOPath"></param>
 /// <returns></returns>
 public static String SafeFileName(this String IOPath)
 {
     foreach (Char InvalidChar in Path.GetInvalidFileNameChars())
     {
         IOPath = IOPath.Replace(InvalidChar.ToString(), String.Empty);
     }
     return(IOPath);
 }
Пример #2
0
        /// <summary>
        /// 获取安全目录名(去除目录名非法字符)
        /// </summary>
        /// <returns></returns>
        public static string GetSafeDirectoryName(string directoryname)
        {
            StringBuilder SafeDirectoryName = new StringBuilder(directoryname);

            foreach (char InvalidChar in Path.GetInvalidPathChars())
            {
                SafeDirectoryName.Replace(InvalidChar.ToString(), string.Empty);
            }
            return(SafeDirectoryName.ToString());
        }
Пример #3
0
        /// <summary>
        /// 获取安全文件名(去除文件名非法字符)
        /// </summary>
        /// <returns></returns>
        public static string GetSafeFileName(string filename)
        {
            StringBuilder SafeFileName = new StringBuilder(filename);

            foreach (char InvalidChar in Path.GetInvalidFileNameChars())
            {
                SafeFileName.Replace(InvalidChar.ToString(), string.Empty);
            }
            return(SafeFileName.ToString());
        }
Пример #4
0
        // Add value to list
        private static bool AppendValue(string value, List <string> domains)
        {
            string domain = value
                            .Replace("www.", "").ToLower();

            // Check for invalid chars
            foreach (char InvalidChar in InvalidChars)
            {
                if (domain.Contains(InvalidChar.ToString()))
                {
                    return(false);
                }
            }
            // Remove search results
            if (
                domain.Contains("google") ||
                domain.Contains("bing") ||
                domain.Contains("yandex") ||
                domain.Contains("duckduckgo"))
            {
                return(false);
            }
            // If cookie value
            if (domain
                .StartsWith("."))
            {
                domain = domain.Substring(1);
            }
            // Get hostname from url
            try {
                domain = new Uri(domain).Host;
            } catch (UriFormatException) { }
            // Remove .com, .org
            domain = System.IO.Path.GetFileNameWithoutExtension(domain);
            domain = domain.Replace(".com", "").Replace(".org", "");
            // Check if domain already exists in list
            foreach (string domainValue in domains)
            {
                if (domain.ToLower().Replace(" ", "").Contains(domainValue.ToLower().Replace(" ", "")))
                {
                    return(false);
                }
            }
            // Convert first char to upper-case
            domain = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(domain);
            domains.Add(domain);
            return(true);
        }
Пример #5
0
 /// <summary>
 /// Verify the path exists and create it if need be
 /// </summary>
 /// <param name="IOPath">Path to check</param>
 /// <param name="Create">Create it if the path does not exist</param>
 /// <returns></returns>
 public static String SafeFolder(this String IOPath, Boolean Create = true)
 {
     foreach (Char InvalidChar in Path.GetInvalidPathChars())
     {
         IOPath = IOPath.Replace(InvalidChar.ToString(), String.Empty);
     }
     String[] Directories = (IOPath.Contains(":\\") ? IOPath.Substring(3) : IOPath).Split('\\');
     IOPath = Path.GetPathRoot(IOPath);
     foreach (String _Directory in Directories)
     {
         IOPath = Path.Combine(IOPath, _Directory.SafeFileName());
         if (!File.Exists(IOPath) && !Directory.Exists(IOPath) && Create)
         {
             Directory.CreateDirectory(IOPath);
         }
     }
     return(IOPath);
 }
Пример #6
0
        public static void DownloadImdb()
        {
            if (File.Exists("title.basics.tsv.gz"))
            {
                File.Delete("title.basics.tsv.gz");
            }

            if (File.Exists("title.basics.tsv"))
            {
                File.Delete("title.basics.tsv");
            }

            using (var client = new WebClient())
            {
                client.DownloadFile("https://datasets.imdbws.com/title.basics.tsv.gz", "title.basics.tsv.gz");
            }

            var info = new FileInfo("title.basics.tsv.gz");

            Decompress(info);
            string line;
            int    counter = 0;
            var    file    = new StreamReader("title.basics.tsv");

            while ((line = file.ReadLine()) != null)
            {
                counter = counter + 1;
                if (string.IsNullOrEmpty(line))
                {
                    continue;
                }
                var    elements  = line.Split('\t');
                string showTitle = elements[2].Where(c => !InvalidChar.Contains(c)).Aggregate(string.Empty, (current, c) => current + c);
                int    key       = showTitle.GetHashCode();

                if (!TitleIndex.ContainsKey(key))
                {
                    string TitleType = "series";
                    if (elements[1].Equals("short", StringComparison.InvariantCultureIgnoreCase))
                    {
                        TitleType = "movie";
                    }
                    else if (elements[1].Equals("movie", StringComparison.InvariantCultureIgnoreCase))
                    {
                        TitleType = "movie";
                    }
                    else if (elements[1].Equals("tvMovice", StringComparison.InvariantCultureIgnoreCase))
                    {
                        TitleType = "movie";
                    }
                    else if (elements[1].Equals("tvShort", StringComparison.InvariantCultureIgnoreCase))
                    {
                        TitleType = "movie";
                    }
                    else if (elements[1].Equals("tvSpecial", StringComparison.InvariantCultureIgnoreCase))
                    {
                        TitleType = "movie";
                    }
                    else if (elements[1].Equals("video", StringComparison.InvariantCultureIgnoreCase))
                    {
                        TitleType = "movie";
                    }
                    else if (elements[1].Equals("tvSeries", StringComparison.InvariantCultureIgnoreCase))
                    {
                        TitleType = "series";
                    }
                    else if (elements[1].Equals("tvEpisode", StringComparison.InvariantCultureIgnoreCase))
                    {
                        TitleType = "series";
                    }
                    else if (elements[1].Equals("tvMiniSeries", StringComparison.InvariantCultureIgnoreCase))
                    {
                        TitleType = "series";
                    }
                    else
                    {
                        continue;
                    }

                    TitleIndex.Add(key, new MovieData()
                    {
                        TitleID           = elements[0],
                        TitleType         = TitleType,
                        OriginalTitleType = elements[1],
                        Genres            = elements[8].Split(',').ToList()
                    });
                }
            }
        }