|
|
|
@ -429,12 +429,27 @@ namespace Emby.Server.Implementations
|
|
|
|
|
_validAddressResults.Clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Version _version;
|
|
|
|
|
private Version _applicationVersion;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the current application version
|
|
|
|
|
/// Gets the current application server version
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The application version.</value>
|
|
|
|
|
public Version ApplicationVersion => _version ?? (_version = typeof(ApplicationHost).Assembly.GetName().Version);
|
|
|
|
|
/// <value>The application server version.</value>
|
|
|
|
|
public Version ApplicationVersion => _applicationVersion ?? (_applicationVersion = typeof(ApplicationHost).Assembly.GetName().Version);
|
|
|
|
|
|
|
|
|
|
public string ApplicationSemanticVersion => ApplicationVersion.ToString(3);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the current application server version
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The application server version.</value>
|
|
|
|
|
public string ApplicationUserAgent => Name.Replace(' ','-') + "/" + ApplicationSemanticVersion;
|
|
|
|
|
|
|
|
|
|
private string _productName;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the current application name
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The application name.</value>
|
|
|
|
|
public string ApplicationProductName => _productName ?? (_productName = FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly().Location).ProductName);
|
|
|
|
|
|
|
|
|
|
private DeviceId _deviceId;
|
|
|
|
|
public string SystemId
|
|
|
|
@ -454,7 +469,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
/// Gets the name.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The name.</value>
|
|
|
|
|
public string Name => "Emby Server";
|
|
|
|
|
public string Name => "Jellyfin Server";
|
|
|
|
|
|
|
|
|
|
private static Tuple<Assembly, string> GetAssembly(Type type)
|
|
|
|
|
{
|
|
|
|
@ -1004,26 +1019,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
|
|
|
|
|
protected string GetDefaultUserAgent()
|
|
|
|
|
{
|
|
|
|
|
var name = FormatAttribute(Name);
|
|
|
|
|
|
|
|
|
|
return name + "/" + ApplicationVersion;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static string FormatAttribute(string str)
|
|
|
|
|
{
|
|
|
|
|
var arr = str.ToCharArray();
|
|
|
|
|
|
|
|
|
|
arr = Array.FindAll(arr, (c => (char.IsLetterOrDigit(c)
|
|
|
|
|
|| char.IsWhiteSpace(c))));
|
|
|
|
|
|
|
|
|
|
var result = new string(arr);
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(result))
|
|
|
|
|
{
|
|
|
|
|
result = "Emby";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
return ApplicationUserAgent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual bool SupportsDualModeSockets => true;
|
|
|
|
@ -1825,7 +1821,8 @@ namespace Emby.Server.Implementations
|
|
|
|
|
{
|
|
|
|
|
HasPendingRestart = HasPendingRestart,
|
|
|
|
|
IsShuttingDown = IsShuttingDown,
|
|
|
|
|
Version = ApplicationVersion.ToString(),
|
|
|
|
|
Version = ApplicationSemanticVersion,
|
|
|
|
|
ProductName = ApplicationProductName,
|
|
|
|
|
WebSocketPortNumber = HttpPort,
|
|
|
|
|
CompletedInstallations = InstallationManager.CompletedInstallations.ToArray(),
|
|
|
|
|
Id = SystemId,
|
|
|
|
@ -1871,7 +1868,7 @@ namespace Emby.Server.Implementations
|
|
|
|
|
var wanAddress = await GetWanApiUrl(cancellationToken).ConfigureAwait(false);
|
|
|
|
|
return new PublicSystemInfo
|
|
|
|
|
{
|
|
|
|
|
Version = ApplicationVersion.ToString(),
|
|
|
|
|
Version = ApplicationSemanticVersion,
|
|
|
|
|
Id = SystemId,
|
|
|
|
|
OperatingSystem = EnvironmentInfo.OperatingSystem.ToString(),
|
|
|
|
|
WanAddress = wanAddress,
|
|
|
|
|