64 lines
1.6 KiB
C#
64 lines
1.6 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Net.Mail;
|
|
|
|
namespace Wino.Core.UWP.Services;
|
|
|
|
public static class ThumbnailService
|
|
{
|
|
private static string[] knownCompanies = new string[]
|
|
{
|
|
"microsoft.com", "apple.com", "google.com", "steampowered.com", "airbnb.com", "youtube.com", "uber.com"
|
|
};
|
|
|
|
public static bool IsKnown(string mailHost) => !string.IsNullOrEmpty(mailHost) && knownCompanies.Contains(mailHost);
|
|
|
|
public static string GetHost(string address)
|
|
{
|
|
if (string.IsNullOrEmpty(address))
|
|
return string.Empty;
|
|
|
|
if (address.Contains('@'))
|
|
{
|
|
var splitted = address.Split('@');
|
|
|
|
if (splitted.Length >= 2 && !string.IsNullOrEmpty(splitted[1]))
|
|
{
|
|
try
|
|
{
|
|
return new MailAddress(address).Host;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
// TODO: Exceptions are ignored for now.
|
|
}
|
|
}
|
|
}
|
|
|
|
return string.Empty;
|
|
}
|
|
|
|
public static Tuple<bool, string> CheckIsKnown(string host)
|
|
{
|
|
// Check known hosts.
|
|
// Apply company logo if available.
|
|
|
|
try
|
|
{
|
|
var last = host.Split('.');
|
|
|
|
if (last.Length > 2)
|
|
host = $"{last[last.Length - 2]}.{last[last.Length - 1]}";
|
|
}
|
|
catch (Exception)
|
|
{
|
|
return new Tuple<bool, string>(false, host);
|
|
}
|
|
|
|
return new Tuple<bool, string>(IsKnown(host), host);
|
|
}
|
|
|
|
public static string GetKnownHostImage(string host)
|
|
=> $"ms-appx:///Assets/Thumbnails/{host}.png";
|
|
}
|