2025-06-06 02:17:54 +09:00
|
|
|
|
#nullable enable
|
|
|
|
|
|
|
2025-06-04 23:10:11 +09:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
|
|
namespace UVC.Data
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// URL <20>ּҸ<D6BC> Ű-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static class URLList
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// URL<52><4C> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> Dictionary <20>÷<EFBFBD><C3B7><EFBFBD>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private static Dictionary<string, string> urls = new Dictionary<string, string>();
|
2025-06-20 17:37:20 +09:00
|
|
|
|
public static IReadOnlyDictionary<string, string> Urls => urls;
|
2025-06-04 23:10:11 +09:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ű<><C5B0> URL<52><4C> <20>÷<EFBFBD><C3B7>ǿ<EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>. Ű<><C5B0> <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> URL<52><4C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD>մϴ<D5B4>.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="key">URL<52><4C> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ű</param>
|
|
|
|
|
|
/// <param name="url"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> URL <20><><EFBFBD>ڿ<EFBFBD></param>
|
|
|
|
|
|
/// <example>
|
|
|
|
|
|
/// <code>
|
|
|
|
|
|
/// URLList.Add("google", "https://www.google.com");
|
|
|
|
|
|
/// URLList.Add("naver", "https://www.naver.com");
|
|
|
|
|
|
///
|
|
|
|
|
|
/// // <20><><EFBFBD><EFBFBD> Ű<><C5B0> URL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|
|
|
|
|
/// URLList.Add("google", "https://www.google.co.kr");
|
|
|
|
|
|
/// </code>
|
|
|
|
|
|
/// </example>
|
|
|
|
|
|
public static void Add(string key, string url)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!urls.ContainsKey(key))
|
|
|
|
|
|
{
|
|
|
|
|
|
urls.Add(key, url);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
urls[key] = url; // Update existing URL
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ű<><C5B0> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> URL<52><4C> <20>÷<EFBFBD><C3B7>ǿ<EFBFBD><C7BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="key"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> URL<52><4C> Ű</param>
|
|
|
|
|
|
/// <example>
|
|
|
|
|
|
/// <code>
|
|
|
|
|
|
/// URLList.Add("temp", "https://www.temp.com");
|
|
|
|
|
|
///
|
|
|
|
|
|
/// // URL <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
/// URLList.Remove("temp");
|
|
|
|
|
|
///
|
|
|
|
|
|
/// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> Ű <20><><EFBFBD><EFBFBD> <20>õ<EFBFBD>(<28>ƹ<EFBFBD> <20>ϵ<EFBFBD> <20><EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|
|
|
|
|
/// URLList.Remove("nonexistent");
|
|
|
|
|
|
/// </code>
|
|
|
|
|
|
/// </example>
|
|
|
|
|
|
public static void Remove(string key)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (urls.ContainsKey(key))
|
|
|
|
|
|
{
|
|
|
|
|
|
urls.Remove(key);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ű<><C5B0> <20>÷<EFBFBD><C3B7>ǿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD> Ȯ<><C8AE><EFBFBD>մϴ<D5B4>.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="key">Ȯ<><C8AE><EFBFBD><EFBFBD> Ű</param>
|
|
|
|
|
|
/// <returns>Ű<><C5B0> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> true, <20><EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> false</returns>
|
|
|
|
|
|
/// <example>
|
|
|
|
|
|
/// <code>
|
|
|
|
|
|
/// URLList.Add("github", "https://github.com");
|
|
|
|
|
|
///
|
|
|
|
|
|
/// // Ű <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE>
|
|
|
|
|
|
/// if(URLList.ContainsKey("github"))
|
|
|
|
|
|
/// {
|
|
|
|
|
|
/// Console.WriteLine("GitHub URL<52><4C> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.");
|
|
|
|
|
|
/// }
|
|
|
|
|
|
///
|
|
|
|
|
|
/// if(!URLList.ContainsKey("gitlab"))
|
|
|
|
|
|
/// {
|
|
|
|
|
|
/// Console.WriteLine("GitLab URL<52><4C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>.");
|
|
|
|
|
|
/// }
|
|
|
|
|
|
/// </code>
|
|
|
|
|
|
/// </example>
|
|
|
|
|
|
public static bool ContainsKey(string key)
|
|
|
|
|
|
{
|
|
|
|
|
|
return urls.ContainsKey(key);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ű<><C5B0> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> URL<52><4C> <20><>ȯ<EFBFBD>մϴ<D5B4>.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="key"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> URL<52><4C> Ű</param>
|
|
|
|
|
|
/// <returns>Ű<><C5B0> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> URL <20>Ǵ<EFBFBD> Ű<><C5B0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> null</returns>
|
|
|
|
|
|
/// <example>
|
|
|
|
|
|
/// <code>
|
|
|
|
|
|
/// URLList.Add("youtube", "https://www.youtube.com");
|
|
|
|
|
|
///
|
|
|
|
|
|
/// // URL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/// string youtubeUrl = URLList.Get("youtube");
|
|
|
|
|
|
/// if (youtubeUrl != null)
|
|
|
|
|
|
/// {
|
|
|
|
|
|
/// Console.WriteLine($"YouTube URL: {youtubeUrl}");
|
|
|
|
|
|
/// }
|
|
|
|
|
|
///
|
|
|
|
|
|
/// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> Ű<><C5B0> URL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/// string nullUrl = URLList.Get("nonexistent");
|
|
|
|
|
|
/// if (nullUrl == null)
|
|
|
|
|
|
/// {
|
|
|
|
|
|
/// Console.WriteLine("URL<52><4C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>.");
|
|
|
|
|
|
/// }
|
|
|
|
|
|
/// </code>
|
|
|
|
|
|
/// </example>
|
|
|
|
|
|
public static string? Get(string key)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (urls.TryGetValue(key, out string url))
|
|
|
|
|
|
{
|
|
|
|
|
|
return url;
|
|
|
|
|
|
}
|
|
|
|
|
|
return null; // or throw an exception if preferred
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// URL<52><4C><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="url"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> URL</param>
|
|
|
|
|
|
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD> <20>Ľ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> null</returns>
|
|
|
|
|
|
/// <example>
|
|
|
|
|
|
/// <code>
|
|
|
|
|
|
/// string domain = URLList.ExtractDomain("https://www.example.com/path/page.html");
|
|
|
|
|
|
/// Console.WriteLine(domain); // <20><><EFBFBD><EFBFBD>: www.example.com
|
|
|
|
|
|
/// </code>
|
|
|
|
|
|
/// </example>
|
|
|
|
|
|
public static string? ExtractDomain(string url)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (string.IsNullOrEmpty(url))
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
Uri uri = new Uri(url);
|
|
|
|
|
|
return uri.Host;
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (UriFormatException)
|
|
|
|
|
|
{
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|