2017-03-30 03:49:38 +00:00
|
|
|
|
using NzbDrone.Common.EnvironmentInfo;
|
2014-12-07 20:54:07 +00:00
|
|
|
|
|
|
|
|
|
namespace NzbDrone.Common.Http
|
|
|
|
|
{
|
2017-01-04 02:36:47 +00:00
|
|
|
|
public interface IUserAgentBuilder
|
2014-12-07 20:54:07 +00:00
|
|
|
|
{
|
2017-01-04 02:36:47 +00:00
|
|
|
|
string GetUserAgent(bool simplified = false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class UserAgentBuilder : IUserAgentBuilder
|
|
|
|
|
{
|
|
|
|
|
private readonly string _userAgentSimplified;
|
|
|
|
|
private readonly string _userAgent;
|
|
|
|
|
|
|
|
|
|
public string GetUserAgent(bool simplified)
|
|
|
|
|
{
|
|
|
|
|
if (simplified)
|
|
|
|
|
{
|
|
|
|
|
return _userAgentSimplified;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _userAgent;
|
|
|
|
|
}
|
2014-12-07 20:54:07 +00:00
|
|
|
|
|
2017-01-04 02:36:47 +00:00
|
|
|
|
public UserAgentBuilder(IOsInfo osInfo)
|
2014-12-07 20:54:07 +00:00
|
|
|
|
{
|
2017-01-05 18:25:05 +00:00
|
|
|
|
var osName = OsInfo.Os.ToString();
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(osInfo.Name))
|
|
|
|
|
{
|
|
|
|
|
osName = osInfo.Name.ToLower();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var osVersion = osInfo.Version?.ToLower();
|
2016-08-10 18:45:48 +00:00
|
|
|
|
|
2017-03-30 03:49:38 +00:00
|
|
|
|
_userAgent = $"Lidarr/{BuildInfo.Version} ({osName} {osVersion})";
|
|
|
|
|
_userAgentSimplified = $"Lidarr/{BuildInfo.Version.ToString(2)}";
|
2014-12-07 20:54:07 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|