mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-12-27 09:56:33 +00:00
Fix more analyzer warnings
This commit is contained in:
parent
ee89236fe8
commit
a709cbdc64
|
@ -236,7 +236,9 @@ namespace Emby.Dlna.Api
|
|||
|
||||
public object Get(GetIcon request)
|
||||
{
|
||||
var contentType = "image/" + Path.GetExtension(request.Filename).TrimStart('.').ToLower();
|
||||
var contentType = "image/" + Path.GetExtension(request.Filename)
|
||||
.TrimStart('.')
|
||||
.ToLowerInvariant();
|
||||
|
||||
var cacheLength = TimeSpan.FromDays(365);
|
||||
var cacheKey = Request.RawUrl.GetMD5();
|
||||
|
|
|
@ -265,7 +265,7 @@ namespace Emby.Dlna.Didl
|
|||
// <sec:CaptionInfo sec:type="srt">http://192.168.1.3:9999/video.srt</sec:CaptionInfo>
|
||||
|
||||
writer.WriteStartElement("sec", "CaptionInfoEx", null);
|
||||
writer.WriteAttributeString("sec", "type", null, info.Format.ToLower());
|
||||
writer.WriteAttributeString("sec", "type", null, info.Format.ToLowerInvariant());
|
||||
|
||||
writer.WriteString(info.Url);
|
||||
writer.WriteFullEndElement();
|
||||
|
@ -282,7 +282,7 @@ namespace Emby.Dlna.Didl
|
|||
else
|
||||
{
|
||||
writer.WriteStartElement(string.Empty, "res", NS_DIDL);
|
||||
var protocolInfo = string.Format("http-get:*:text/{0}:*", info.Format.ToLower());
|
||||
var protocolInfo = string.Format("http-get:*:text/{0}:*", info.Format.ToLowerInvariant());
|
||||
writer.WriteAttributeString("protocolInfo", protocolInfo);
|
||||
|
||||
writer.WriteString(info.Url);
|
||||
|
@ -844,7 +844,7 @@ namespace Emby.Dlna.Didl
|
|||
// var type = types.FirstOrDefault(i => string.Equals(i, actor.Type, StringComparison.OrdinalIgnoreCase) || string.Equals(i, actor.Role, StringComparison.OrdinalIgnoreCase))
|
||||
// ?? PersonType.Actor;
|
||||
|
||||
// AddValue(writer, "upnp", type.ToLower(), actor.Name, NS_UPNP);
|
||||
// AddValue(writer, "upnp", type.ToLowerInvariant(), actor.Name, NS_UPNP);
|
||||
|
||||
// index++;
|
||||
|
||||
|
@ -1147,7 +1147,7 @@ namespace Emby.Dlna.Didl
|
|||
|
||||
if (stubType.HasValue)
|
||||
{
|
||||
id = stubType.Value.ToString().ToLower() + "_" + id;
|
||||
id = stubType.Value.ToString().ToLowerInvariant() + "_" + id;
|
||||
}
|
||||
|
||||
return id;
|
||||
|
|
|
@ -300,7 +300,7 @@ namespace Emby.Dlna
|
|||
|
||||
profile = ReserializeProfile(tempProfile);
|
||||
|
||||
profile.Id = path.ToLower().GetMD5().ToString("N");
|
||||
profile.Id = path.ToLowerInvariant().GetMD5().ToString("N");
|
||||
|
||||
_profiles[path] = new Tuple<InternalProfileInfo, DeviceProfile>(GetInternalProfileInfo(_fileSystem.GetFileInfo(path), type), profile);
|
||||
|
||||
|
@ -352,7 +352,7 @@ namespace Emby.Dlna
|
|||
|
||||
Info = new DeviceProfileInfo
|
||||
{
|
||||
Id = file.FullName.ToLower().GetMD5().ToString("N"),
|
||||
Id = file.FullName.ToLowerInvariant().GetMD5().ToString("N"),
|
||||
Name = _fileSystem.GetFileNameWithoutExtension(file),
|
||||
Type = type
|
||||
}
|
||||
|
@ -506,7 +506,7 @@ namespace Emby.Dlna
|
|||
? ImageFormat.Png
|
||||
: ImageFormat.Jpg;
|
||||
|
||||
var resource = GetType().Namespace + ".Images." + filename.ToLower();
|
||||
var resource = GetType().Namespace + ".Images." + filename.ToLowerInvariant();
|
||||
|
||||
return new ImageStream
|
||||
{
|
||||
|
|
|
@ -263,7 +263,7 @@ namespace Emby.Dlna.Main
|
|||
|
||||
var fullService = "urn:schemas-upnp-org:device:MediaServer:1";
|
||||
|
||||
_logger.LogInformation("Registering publisher for {0} on {1}", fullService, address.ToString());
|
||||
_logger.LogInformation("Registering publisher for {0} on {1}", fullService, address);
|
||||
|
||||
var descriptorUri = "/dlna/" + udn + "/description.xml";
|
||||
var uri = new Uri(_appHost.GetLocalApiUrl(address) + descriptorUri);
|
||||
|
|
|
@ -902,54 +902,75 @@ namespace Emby.Dlna.PlayTo
|
|||
|
||||
var name = document.Descendants(uPnpNamespaces.ud.GetName("friendlyName")).FirstOrDefault();
|
||||
if (name != null && !string.IsNullOrWhiteSpace(name.Value))
|
||||
{
|
||||
friendlyNames.Add(name.Value);
|
||||
}
|
||||
|
||||
var room = document.Descendants(uPnpNamespaces.ud.GetName("roomName")).FirstOrDefault();
|
||||
if (room != null && !string.IsNullOrWhiteSpace(room.Value))
|
||||
{
|
||||
friendlyNames.Add(room.Value);
|
||||
}
|
||||
|
||||
deviceProperties.Name = string.Join(" ", friendlyNames.ToArray());
|
||||
deviceProperties.Name = string.Join(" ", friendlyNames);
|
||||
|
||||
var model = document.Descendants(uPnpNamespaces.ud.GetName("modelName")).FirstOrDefault();
|
||||
if (model != null)
|
||||
{
|
||||
deviceProperties.ModelName = model.Value;
|
||||
}
|
||||
|
||||
var modelNumber = document.Descendants(uPnpNamespaces.ud.GetName("modelNumber")).FirstOrDefault();
|
||||
if (modelNumber != null)
|
||||
{
|
||||
deviceProperties.ModelNumber = modelNumber.Value;
|
||||
}
|
||||
|
||||
var uuid = document.Descendants(uPnpNamespaces.ud.GetName("UDN")).FirstOrDefault();
|
||||
if (uuid != null)
|
||||
{
|
||||
deviceProperties.UUID = uuid.Value;
|
||||
}
|
||||
|
||||
var manufacturer = document.Descendants(uPnpNamespaces.ud.GetName("manufacturer")).FirstOrDefault();
|
||||
if (manufacturer != null)
|
||||
{
|
||||
deviceProperties.Manufacturer = manufacturer.Value;
|
||||
}
|
||||
|
||||
var manufacturerUrl = document.Descendants(uPnpNamespaces.ud.GetName("manufacturerURL")).FirstOrDefault();
|
||||
if (manufacturerUrl != null)
|
||||
{
|
||||
deviceProperties.ManufacturerUrl = manufacturerUrl.Value;
|
||||
}
|
||||
|
||||
var presentationUrl = document.Descendants(uPnpNamespaces.ud.GetName("presentationURL")).FirstOrDefault();
|
||||
if (presentationUrl != null)
|
||||
{
|
||||
deviceProperties.PresentationUrl = presentationUrl.Value;
|
||||
}
|
||||
|
||||
var modelUrl = document.Descendants(uPnpNamespaces.ud.GetName("modelURL")).FirstOrDefault();
|
||||
if (modelUrl != null)
|
||||
{
|
||||
deviceProperties.ModelUrl = modelUrl.Value;
|
||||
}
|
||||
|
||||
var serialNumber = document.Descendants(uPnpNamespaces.ud.GetName("serialNumber")).FirstOrDefault();
|
||||
if (serialNumber != null)
|
||||
{
|
||||
deviceProperties.SerialNumber = serialNumber.Value;
|
||||
}
|
||||
|
||||
var modelDescription = document.Descendants(uPnpNamespaces.ud.GetName("modelDescription")).FirstOrDefault();
|
||||
if (modelDescription != null)
|
||||
{
|
||||
deviceProperties.ModelDescription = modelDescription.Value;
|
||||
}
|
||||
|
||||
deviceProperties.BaseUrl = string.Format("http://{0}:{1}", url.Host, url.Port);
|
||||
|
||||
var icon = document.Descendants(uPnpNamespaces.ud.GetName("icon")).FirstOrDefault();
|
||||
|
||||
if (icon != null)
|
||||
{
|
||||
deviceProperties.Icon = CreateIcon(icon);
|
||||
|
@ -958,12 +979,16 @@ namespace Emby.Dlna.PlayTo
|
|||
foreach (var services in document.Descendants(uPnpNamespaces.ud.GetName("serviceList")))
|
||||
{
|
||||
if (services == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var servicesList = services.Descendants(uPnpNamespaces.ud.GetName("service"));
|
||||
|
||||
if (servicesList == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (var element in servicesList)
|
||||
{
|
||||
|
@ -1065,13 +1090,10 @@ namespace Emby.Dlna.PlayTo
|
|||
|
||||
private void OnPlaybackStart(uBaseObject mediaInfo)
|
||||
{
|
||||
if (PlaybackStart != null)
|
||||
PlaybackStart?.Invoke(this, new PlaybackStartEventArgs
|
||||
{
|
||||
PlaybackStart.Invoke(this, new PlaybackStartEventArgs
|
||||
{
|
||||
MediaInfo = mediaInfo
|
||||
});
|
||||
}
|
||||
MediaInfo = mediaInfo
|
||||
});
|
||||
}
|
||||
|
||||
private void OnPlaybackProgress(uBaseObject mediaInfo)
|
||||
|
@ -1082,36 +1104,28 @@ namespace Emby.Dlna.PlayTo
|
|||
return;
|
||||
}
|
||||
|
||||
if (PlaybackProgress != null)
|
||||
PlaybackProgress?.Invoke(this, new PlaybackProgressEventArgs
|
||||
{
|
||||
PlaybackProgress.Invoke(this, new PlaybackProgressEventArgs
|
||||
{
|
||||
MediaInfo = mediaInfo
|
||||
});
|
||||
}
|
||||
MediaInfo = mediaInfo
|
||||
});
|
||||
}
|
||||
|
||||
private void OnPlaybackStop(uBaseObject mediaInfo)
|
||||
{
|
||||
if (PlaybackStopped != null)
|
||||
|
||||
PlaybackStopped?.Invoke(this, new PlaybackStoppedEventArgs
|
||||
{
|
||||
PlaybackStopped.Invoke(this, new PlaybackStoppedEventArgs
|
||||
{
|
||||
MediaInfo = mediaInfo
|
||||
});
|
||||
}
|
||||
MediaInfo = mediaInfo
|
||||
});
|
||||
}
|
||||
|
||||
private void OnMediaChanged(uBaseObject old, uBaseObject newMedia)
|
||||
{
|
||||
if (MediaChanged != null)
|
||||
MediaChanged?.Invoke(this, new MediaChangedEventArgs
|
||||
{
|
||||
MediaChanged.Invoke(this, new MediaChangedEventArgs
|
||||
{
|
||||
OldMediaInfo = old,
|
||||
NewMediaInfo = newMedia
|
||||
});
|
||||
}
|
||||
OldMediaInfo = old,
|
||||
NewMediaInfo = newMedia
|
||||
});
|
||||
}
|
||||
|
||||
#region IDisposable
|
||||
|
|
|
@ -107,19 +107,19 @@ namespace Emby.Dlna.Server
|
|||
'&'
|
||||
};
|
||||
|
||||
private static readonly string[] s_escapeStringPairs = new string[]
|
||||
{
|
||||
"<",
|
||||
"<",
|
||||
">",
|
||||
">",
|
||||
"\"",
|
||||
""",
|
||||
"'",
|
||||
"'",
|
||||
"&",
|
||||
"&"
|
||||
};
|
||||
private static readonly string[] s_escapeStringPairs = new[]
|
||||
{
|
||||
"<",
|
||||
"<",
|
||||
">",
|
||||
">",
|
||||
"\"",
|
||||
""",
|
||||
"'",
|
||||
"'",
|
||||
"&",
|
||||
"&"
|
||||
};
|
||||
|
||||
private static string GetEscapeSequence(char c)
|
||||
{
|
||||
|
@ -133,7 +133,7 @@ namespace Emby.Dlna.Server
|
|||
return result;
|
||||
}
|
||||
}
|
||||
return c.ToString();
|
||||
return c.ToString(CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
/// <summary>Replaces invalid XML characters in a string with their valid XML equivalent.</summary>
|
||||
|
@ -145,6 +145,7 @@ namespace Emby.Dlna.Server
|
|||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
StringBuilder stringBuilder = null;
|
||||
int length = str.Length;
|
||||
int num = 0;
|
||||
|
@ -230,9 +231,9 @@ namespace Emby.Dlna.Server
|
|||
|
||||
var serverName = new string(characters);
|
||||
|
||||
var name = (_profile.FriendlyName ?? string.Empty).Replace("${HostName}", serverName, StringComparison.OrdinalIgnoreCase);
|
||||
var name = _profile.FriendlyName?.Replace("${HostName}", serverName, StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
return name;
|
||||
return name ?? string.Empty;
|
||||
}
|
||||
|
||||
private void AppendIconList(StringBuilder builder)
|
||||
|
@ -295,65 +296,62 @@ namespace Emby.Dlna.Server
|
|||
}
|
||||
|
||||
private IEnumerable<DeviceIcon> GetIcons()
|
||||
{
|
||||
var list = new List<DeviceIcon>();
|
||||
|
||||
list.Add(new DeviceIcon
|
||||
=> new[]
|
||||
{
|
||||
MimeType = "image/png",
|
||||
Depth = "24",
|
||||
Width = 240,
|
||||
Height = 240,
|
||||
Url = "icons/logo240.png"
|
||||
});
|
||||
new DeviceIcon
|
||||
{
|
||||
MimeType = "image/png",
|
||||
Depth = "24",
|
||||
Width = 240,
|
||||
Height = 240,
|
||||
Url = "icons/logo240.png"
|
||||
},
|
||||
|
||||
list.Add(new DeviceIcon
|
||||
{
|
||||
MimeType = "image/jpeg",
|
||||
Depth = "24",
|
||||
Width = 240,
|
||||
Height = 240,
|
||||
Url = "icons/logo240.jpg"
|
||||
});
|
||||
new DeviceIcon
|
||||
{
|
||||
MimeType = "image/jpeg",
|
||||
Depth = "24",
|
||||
Width = 240,
|
||||
Height = 240,
|
||||
Url = "icons/logo240.jpg"
|
||||
},
|
||||
|
||||
list.Add(new DeviceIcon
|
||||
{
|
||||
MimeType = "image/png",
|
||||
Depth = "24",
|
||||
Width = 120,
|
||||
Height = 120,
|
||||
Url = "icons/logo120.png"
|
||||
});
|
||||
new DeviceIcon
|
||||
{
|
||||
MimeType = "image/png",
|
||||
Depth = "24",
|
||||
Width = 120,
|
||||
Height = 120,
|
||||
Url = "icons/logo120.png"
|
||||
},
|
||||
|
||||
list.Add(new DeviceIcon
|
||||
{
|
||||
MimeType = "image/jpeg",
|
||||
Depth = "24",
|
||||
Width = 120,
|
||||
Height = 120,
|
||||
Url = "icons/logo120.jpg"
|
||||
});
|
||||
new DeviceIcon
|
||||
{
|
||||
MimeType = "image/jpeg",
|
||||
Depth = "24",
|
||||
Width = 120,
|
||||
Height = 120,
|
||||
Url = "icons/logo120.jpg"
|
||||
},
|
||||
|
||||
list.Add(new DeviceIcon
|
||||
{
|
||||
MimeType = "image/png",
|
||||
Depth = "24",
|
||||
Width = 48,
|
||||
Height = 48,
|
||||
Url = "icons/logo48.png"
|
||||
});
|
||||
new DeviceIcon
|
||||
{
|
||||
MimeType = "image/png",
|
||||
Depth = "24",
|
||||
Width = 48,
|
||||
Height = 48,
|
||||
Url = "icons/logo48.png"
|
||||
},
|
||||
|
||||
list.Add(new DeviceIcon
|
||||
{
|
||||
MimeType = "image/jpeg",
|
||||
Depth = "24",
|
||||
Width = 48,
|
||||
Height = 48,
|
||||
Url = "icons/logo48.jpg"
|
||||
});
|
||||
|
||||
return list;
|
||||
}
|
||||
new DeviceIcon
|
||||
{
|
||||
MimeType = "image/jpeg",
|
||||
Depth = "24",
|
||||
Width = 48,
|
||||
Height = 48,
|
||||
Url = "icons/logo48.jpg"
|
||||
}
|
||||
};
|
||||
|
||||
private IEnumerable<DeviceService> GetServices()
|
||||
{
|
||||
|
|
|
@ -144,7 +144,7 @@ namespace Emby.Drawing
|
|||
|
||||
private static readonly string[] TransparentImageTypes = new string[] { ".png", ".webp", ".gif" };
|
||||
public bool SupportsTransparency(string path)
|
||||
=> TransparentImageTypes.Contains(Path.GetExtension(path).ToLower());
|
||||
=> TransparentImageTypes.Contains(Path.GetExtension(path).ToLowerInvariant());
|
||||
|
||||
public async Task<(string path, string mimeType, DateTime dateModified)> ProcessImage(ImageProcessingOptions options)
|
||||
{
|
||||
|
@ -374,7 +374,7 @@ namespace Emby.Drawing
|
|||
|
||||
filename += "v=" + Version;
|
||||
|
||||
return GetCachePath(ResizedImageCachePath, filename, "." + format.ToString().ToLower());
|
||||
return GetCachePath(ResizedImageCachePath, filename, "." + format.ToString().ToLowerInvariant());
|
||||
}
|
||||
|
||||
public ImageDimensions GetImageSize(BaseItem item, ItemImageInfo info)
|
||||
|
|
|
@ -121,7 +121,7 @@ namespace IsoMounter
|
|||
path,
|
||||
Path.GetExtension(path),
|
||||
EnvironmentInfo.OperatingSystem,
|
||||
ExecutablesAvailable.ToString()
|
||||
ExecutablesAvailable
|
||||
);
|
||||
|
||||
if (ExecutablesAvailable)
|
||||
|
@ -183,7 +183,7 @@ namespace IsoMounter
|
|||
_logger.LogInformation(
|
||||
"[{0}] Disposing [{1}].",
|
||||
Name,
|
||||
disposing.ToString()
|
||||
disposing
|
||||
);
|
||||
|
||||
if (disposing)
|
||||
|
@ -229,9 +229,8 @@ namespace IsoMounter
|
|||
var uid = getuid();
|
||||
|
||||
_logger.LogDebug(
|
||||
"[{0}] Our current UID is [{1}], GetUserId() returned [{2}].",
|
||||
"[{0}] GetUserId() returned [{2}].",
|
||||
Name,
|
||||
uid.ToString(),
|
||||
uid
|
||||
);
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ namespace Emby.Server.Implementations.AppBase
|
|||
|
||||
private string GetConfigurationFile(string key)
|
||||
{
|
||||
return Path.Combine(CommonApplicationPaths.ConfigurationDirectoryPath, key.ToLower() + ".xml");
|
||||
return Path.Combine(CommonApplicationPaths.ConfigurationDirectoryPath, key.ToLowerInvariant() + ".xml");
|
||||
}
|
||||
|
||||
public object GetConfiguration(string key)
|
||||
|
|
|
@ -3905,7 +3905,7 @@ namespace Emby.Server.Implementations.Data
|
|||
// lowercase this because SortName is stored as lowercase
|
||||
if (statement != null)
|
||||
{
|
||||
statement.TryBind("@NameStartsWithOrGreater", query.NameStartsWithOrGreater.ToLower());
|
||||
statement.TryBind("@NameStartsWithOrGreater", query.NameStartsWithOrGreater.ToLowerInvariant());
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(query.NameLessThan))
|
||||
|
@ -3914,7 +3914,7 @@ namespace Emby.Server.Implementations.Data
|
|||
// lowercase this because SortName is stored as lowercase
|
||||
if (statement != null)
|
||||
{
|
||||
statement.TryBind("@NameLessThan", query.NameLessThan.ToLower());
|
||||
statement.TryBind("@NameLessThan", query.NameLessThan.ToLowerInvariant());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4822,7 +4822,7 @@ namespace Emby.Server.Implementations.Data
|
|||
return value;
|
||||
}
|
||||
|
||||
return value.RemoveDiacritics().ToLower();
|
||||
return value.RemoveDiacritics().ToLowerInvariant();
|
||||
}
|
||||
|
||||
private bool EnableGroupByPresentationUniqueKey(InternalItemsQuery query)
|
||||
|
|
|
@ -264,7 +264,7 @@ namespace Emby.Server.Implementations.HttpClientManager
|
|||
}
|
||||
|
||||
var url = options.Url;
|
||||
var urlHash = url.ToLower().GetMD5().ToString("N");
|
||||
var urlHash = url.ToLowerInvariant().GetMD5().ToString("N");
|
||||
|
||||
var responseCachePath = Path.Combine(_appPaths.CachePath, "httpclient", urlHash);
|
||||
|
||||
|
@ -384,11 +384,11 @@ namespace Emby.Server.Implementations.HttpClientManager
|
|||
{
|
||||
if (options.LogRequestAsDebug)
|
||||
{
|
||||
_logger.LogDebug("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
|
||||
_logger.LogDebug("HttpClientManager {0}: {1}", httpMethod.ToUpper(CultureInfo.CurrentCulture), options.Url);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
|
||||
_logger.LogInformation("HttpClientManager {0}: {1}", httpMethod.ToUpper(CultureInfo.CurrentCulture), options.Url);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -394,7 +394,7 @@ namespace Emby.Server.Implementations.HttpServer
|
|||
{
|
||||
return contentType == null
|
||||
? null
|
||||
: contentType.Split(';')[0].ToLower().Trim();
|
||||
: contentType.Split(';')[0].ToLowerInvariant().Trim();
|
||||
}
|
||||
|
||||
private static string SerializeToXmlString(object from)
|
||||
|
|
|
@ -517,7 +517,7 @@ namespace Emby.Server.Implementations.Library
|
|||
|
||||
if (forceCaseInsensitive || !ConfigurationManager.Configuration.EnableCaseSensitiveItemIds)
|
||||
{
|
||||
key = key.ToLower();
|
||||
key = key.ToLowerInvariant();
|
||||
}
|
||||
|
||||
key = type.FullName + key;
|
||||
|
|
|
@ -2193,7 +2193,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
|
||||
if (lockData)
|
||||
{
|
||||
writer.WriteElementString("lockdata", true.ToString().ToLower());
|
||||
writer.WriteElementString("lockdata", true.ToString(CultureInfo.InvariantCulture).ToLowerInvariant());
|
||||
}
|
||||
|
||||
if (item.CriticRating.HasValue)
|
||||
|
|
|
@ -399,7 +399,7 @@ namespace Emby.Server.Implementations.LiveTv
|
|||
{
|
||||
var name = serviceName + externalId + InternalVersionNumber;
|
||||
|
||||
return _libraryManager.GetNewItemId(name.ToLower(), typeof(LiveTvChannel));
|
||||
return _libraryManager.GetNewItemId(name.ToLowerInvariant(), typeof(LiveTvChannel));
|
||||
}
|
||||
|
||||
private const string ServiceName = "Emby";
|
||||
|
@ -407,21 +407,21 @@ namespace Emby.Server.Implementations.LiveTv
|
|||
{
|
||||
var name = ServiceName + externalId + InternalVersionNumber;
|
||||
|
||||
return name.ToLower().GetMD5().ToString("N");
|
||||
return name.ToLowerInvariant().GetMD5().ToString("N");
|
||||
}
|
||||
|
||||
public Guid GetInternalSeriesTimerId(string externalId)
|
||||
{
|
||||
var name = ServiceName + externalId + InternalVersionNumber;
|
||||
|
||||
return name.ToLower().GetMD5();
|
||||
return name.ToLowerInvariant().GetMD5();
|
||||
}
|
||||
|
||||
public Guid GetInternalProgramId(string externalId)
|
||||
{
|
||||
var name = ServiceName + externalId + InternalVersionNumber;
|
||||
|
||||
return _libraryManager.GetNewItemId(name.ToLower(), typeof(LiveTvProgram));
|
||||
return _libraryManager.GetNewItemId(name.ToLowerInvariant(), typeof(LiveTvProgram));
|
||||
}
|
||||
|
||||
public async Task<TimerInfo> GetTimerInfo(TimerInfoDto dto, bool isNew, LiveTvManager liveTv, CancellationToken cancellationToken)
|
||||
|
|
|
@ -492,11 +492,11 @@ namespace Emby.Server.Implementations.Localization
|
|||
|
||||
if (parts.Length == 2)
|
||||
{
|
||||
culture = parts[0].ToLower() + "-" + parts[1].ToUpper();
|
||||
culture = parts[0].ToLowerInvariant() + "-" + parts[1].ToUpperInvariant();
|
||||
}
|
||||
else
|
||||
{
|
||||
culture = culture.ToLower();
|
||||
culture = culture.ToLowerInvariant();
|
||||
}
|
||||
|
||||
return culture + ".json";
|
||||
|
|
|
@ -45,7 +45,7 @@ namespace Emby.Server.Implementations.Services
|
|||
{
|
||||
return contentType == null
|
||||
? null
|
||||
: contentType.Split(';')[0].ToLower().Trim();
|
||||
: contentType.Split(';')[0].ToLowerInvariant().Trim();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -98,7 +98,7 @@ namespace Emby.Server.Implementations.Services
|
|||
return Task.FromResult(response);
|
||||
}
|
||||
|
||||
var expectedMethodName = actionName.Substring(0, 1) + actionName.Substring(1).ToLower();
|
||||
var expectedMethodName = actionName.Substring(0, 1) + actionName.Substring(1).ToLowerInvariant();
|
||||
throw new NotImplementedException(string.Format("Could not find method named {1}({0}) or Any({0}) on Service {2}", requestDto.GetType().GetMethodName(), expectedMethodName, serviceType.GetMethodName()));
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace Emby.Server.Implementations.Services
|
|||
|
||||
public static string Key(Type serviceType, string method, string requestDtoName)
|
||||
{
|
||||
return serviceType.FullName + " " + method.ToUpper() + " " + requestDtoName;
|
||||
return serviceType.FullName + " " + method.ToUpperInvariant() + " " + requestDtoName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ namespace Emby.Server.Implementations.Services
|
|||
|
||||
public static string[] GetPathPartsForMatching(string pathInfo)
|
||||
{
|
||||
return pathInfo.ToLower().Split(new[] { PathSeperatorChar }, StringSplitOptions.RemoveEmptyEntries);
|
||||
return pathInfo.ToLowerInvariant().Split(new[] { PathSeperatorChar }, StringSplitOptions.RemoveEmptyEntries);
|
||||
}
|
||||
|
||||
public static List<string> GetFirstMatchHashKeys(string[] pathPartsForMatching)
|
||||
|
@ -104,7 +104,7 @@ namespace Emby.Server.Implementations.Services
|
|||
this.Description = description;
|
||||
this.restPath = path;
|
||||
|
||||
this.Verbs = string.IsNullOrWhiteSpace(verbs) ? ServiceExecExtensions.AllVerbs : verbs.ToUpper().Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
this.Verbs = string.IsNullOrWhiteSpace(verbs) ? ServiceExecExtensions.AllVerbs : verbs.ToUpperInvariant().Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
var componentsList = new List<string>();
|
||||
|
||||
|
@ -154,7 +154,7 @@ namespace Emby.Server.Implementations.Services
|
|||
}
|
||||
else
|
||||
{
|
||||
this.literalsToMatch[i] = component.ToLower();
|
||||
this.literalsToMatch[i] = component.ToLowerInvariant();
|
||||
|
||||
if (firstLiteralMatch == null)
|
||||
{
|
||||
|
@ -189,7 +189,7 @@ namespace Emby.Server.Implementations.Services
|
|||
foreach (var propertyInfo in GetSerializableProperties(RequestType))
|
||||
{
|
||||
var propertyName = propertyInfo.Name;
|
||||
propertyNamesMap.Add(propertyName.ToLower(), propertyName);
|
||||
propertyNamesMap.Add(propertyName.ToLowerInvariant(), propertyName);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -483,7 +483,7 @@ namespace Emby.Server.Implementations.Services
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!this.propertyNamesMap.TryGetValue(variableName.ToLower(), out var propertyNameOnRequest))
|
||||
if (!this.propertyNamesMap.TryGetValue(variableName.ToLowerInvariant(), out var propertyNameOnRequest))
|
||||
{
|
||||
if (string.Equals("ignore", variableName, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
|
|
|
@ -216,40 +216,28 @@ namespace Emby.Server.Implementations.Services
|
|||
{
|
||||
var responses = new Dictionary<string, SwaggerResponse>
|
||||
{
|
||||
{ "200", new SwaggerResponse { description = "OK" } }
|
||||
};
|
||||
|
||||
responses["200"] = new SwaggerResponse
|
||||
var apiKeySecurity = new Dictionary<string, string[]>
|
||||
{
|
||||
description = "OK"
|
||||
{ "api_key", Array.Empty<string>() }
|
||||
};
|
||||
|
||||
var security = new List<Dictionary<string, string[]>>();
|
||||
|
||||
var apiKeySecurity = new Dictionary<string, string[]>();
|
||||
apiKeySecurity["api_key"] = Array.Empty<string>();
|
||||
|
||||
security.Add(apiKeySecurity);
|
||||
|
||||
result[verb.ToLower()] = new SwaggerMethod
|
||||
result[verb.ToLowerInvariant()] = new SwaggerMethod
|
||||
{
|
||||
summary = info.Summary,
|
||||
description = info.Description,
|
||||
produces = new[]
|
||||
{
|
||||
"application/json"
|
||||
},
|
||||
consumes = new[]
|
||||
{
|
||||
"application/json"
|
||||
},
|
||||
produces = new[] { "application/json" },
|
||||
consumes = new[] { "application/json" },
|
||||
operationId = info.RequestType.Name,
|
||||
tags = Array.Empty<string>(),
|
||||
|
||||
parameters = new SwaggerParam[] { },
|
||||
parameters = Array.Empty<SwaggerParam>(),
|
||||
|
||||
responses = responses,
|
||||
|
||||
security = security.ToArray()
|
||||
security = new [] { apiKeySecurity }
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace Jellyfin.Drawing.Skia
|
|||
throw new ArgumentNullException(nameof(outputPath));
|
||||
}
|
||||
|
||||
var ext = Path.GetExtension(outputPath).ToLower();
|
||||
var ext = Path.GetExtension(outputPath).ToLowerInvariant();
|
||||
|
||||
if (ext == ".jpg" || ext == ".jpeg")
|
||||
return SKEncodedImageFormat.Jpeg;
|
||||
|
|
|
@ -360,13 +360,13 @@ namespace Jellyfin.SocketSharp
|
|||
int len = buffer.Length;
|
||||
if (dest_offset > len)
|
||||
{
|
||||
throw new ArgumentException("destination offset is beyond array size");
|
||||
throw new ArgumentException("destination offset is beyond array size", nameof(dest_offset));
|
||||
}
|
||||
|
||||
// reordered to avoid possible integer overflow
|
||||
if (dest_offset > len - count)
|
||||
{
|
||||
throw new ArgumentException("Reading would overrun buffer");
|
||||
throw new ArgumentException("Reading would overrun buffer", nameof(count));
|
||||
}
|
||||
|
||||
if (count > end - position)
|
||||
|
@ -528,7 +528,7 @@ namespace Jellyfin.SocketSharp
|
|||
}
|
||||
}
|
||||
|
||||
class HttpMultipart
|
||||
private class HttpMultipart
|
||||
{
|
||||
|
||||
public class Element
|
||||
|
@ -543,19 +543,19 @@ namespace Jellyfin.SocketSharp
|
|||
public override string ToString()
|
||||
{
|
||||
return "ContentType " + ContentType + ", Name " + Name + ", Filename " + Filename + ", Start " +
|
||||
Start.ToString() + ", Length " + Length.ToString();
|
||||
Start.ToString(CultureInfo.CurrentCulture) + ", Length " + Length.ToString(CultureInfo.CurrentCulture);
|
||||
}
|
||||
}
|
||||
|
||||
Stream data;
|
||||
string boundary;
|
||||
byte[] boundary_bytes;
|
||||
byte[] buffer;
|
||||
bool at_eof;
|
||||
Encoding encoding;
|
||||
StringBuilder sb;
|
||||
private Stream data;
|
||||
private string boundary;
|
||||
private byte[] boundary_bytes;
|
||||
private byte[] buffer;
|
||||
private bool at_eof;
|
||||
private Encoding encoding;
|
||||
private StringBuilder sb;
|
||||
|
||||
const byte LF = (byte)'\n', CR = (byte)'\r';
|
||||
private const byte LF = (byte)'\n', CR = (byte)'\r';
|
||||
|
||||
// See RFC 2046
|
||||
// In the case of multipart entities, in which one or more different
|
||||
|
@ -610,7 +610,6 @@ namespace Jellyfin.SocketSharp
|
|||
}
|
||||
|
||||
return sb.ToString();
|
||||
|
||||
}
|
||||
|
||||
private static string GetContentDispositionAttribute(string l, string name)
|
||||
|
|
|
@ -29,12 +29,24 @@ namespace Jellyfin.SocketSharp
|
|||
|
||||
private static string GetHandlerPathIfAny(string listenerUrl)
|
||||
{
|
||||
if (listenerUrl == null) return null;
|
||||
if (listenerUrl == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var pos = listenerUrl.IndexOf("://", StringComparison.OrdinalIgnoreCase);
|
||||
if (pos == -1) return null;
|
||||
if (pos == -1)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var startHostUrl = listenerUrl.Substring(pos + "://".Length);
|
||||
var endPos = startHostUrl.IndexOf('/');
|
||||
if (endPos == -1) return null;
|
||||
if (endPos == -1)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var endHostUrl = startHostUrl.Substring(endPos + 1);
|
||||
return string.IsNullOrEmpty(endHostUrl) ? null : endHostUrl.TrimEnd('/');
|
||||
}
|
||||
|
@ -210,9 +222,13 @@ namespace Jellyfin.SocketSharp
|
|||
if (acceptsAnything)
|
||||
{
|
||||
if (hasDefaultContentType)
|
||||
{
|
||||
return defaultContentType;
|
||||
if (serverDefaultContentType != null)
|
||||
}
|
||||
else if (serverDefaultContentType != null)
|
||||
{
|
||||
return serverDefaultContentType;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -229,11 +245,16 @@ namespace Jellyfin.SocketSharp
|
|||
|
||||
public static bool HasAnyOfContentTypes(IRequest request, params string[] contentTypes)
|
||||
{
|
||||
if (contentTypes == null || request.ContentType == null) return false;
|
||||
if (contentTypes == null || request.ContentType == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach (var contentType in contentTypes)
|
||||
{
|
||||
if (IsContentType(request, contentType)) return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -264,12 +285,12 @@ namespace Jellyfin.SocketSharp
|
|||
}
|
||||
}
|
||||
|
||||
format = LeftPart(format, '.').ToLower();
|
||||
format = LeftPart(format, '.').ToLowerInvariant();
|
||||
if (format.Contains("json", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return "application/json";
|
||||
}
|
||||
if (format.Contains("xml", StringComparison.OrdinalIgnoreCase))
|
||||
else if (format.Contains("xml", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return "application/xml";
|
||||
}
|
||||
|
@ -283,10 +304,9 @@ namespace Jellyfin.SocketSharp
|
|||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var pos = strVal.IndexOf(needle);
|
||||
return pos == -1
|
||||
? strVal
|
||||
: strVal.Substring(0, pos);
|
||||
return pos == -1 ? strVal : strVal.Substring(0, pos);
|
||||
}
|
||||
|
||||
public static string HandlerFactoryPath;
|
||||
|
@ -433,6 +453,7 @@ namespace Jellyfin.SocketSharp
|
|||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return Encoding.GetEncoding(param);
|
||||
|
|
|
@ -145,7 +145,7 @@ namespace MediaBrowser.Api.Images
|
|||
Theme = supportsThemes ? GetThemeName(i.FullName, path) : null,
|
||||
Context = supportsThemes ? null : GetThemeName(i.FullName, path),
|
||||
|
||||
Format = i.Extension.ToLower().TrimStart('.')
|
||||
Format = i.Extension.ToLowerInvariant().TrimStart('.')
|
||||
})
|
||||
.OrderBy(i => i.Name)
|
||||
.ToList();
|
||||
|
|
|
@ -875,7 +875,9 @@ namespace MediaBrowser.Api.LiveTv
|
|||
private string GetHashedString(string str)
|
||||
{
|
||||
// legacy
|
||||
return BitConverter.ToString(_cryptographyProvider.ComputeSHA1(Encoding.UTF8.GetBytes(str))).Replace("-", string.Empty).ToLower();
|
||||
return BitConverter.ToString(
|
||||
_cryptographyProvider.ComputeSHA1(Encoding.UTF8.GetBytes(str)))
|
||||
.Replace("-", string.Empty).ToLowerInvariant();
|
||||
}
|
||||
|
||||
public void Delete(DeleteListingProvider request)
|
||||
|
|
|
@ -135,10 +135,10 @@ namespace MediaBrowser.Api.Playback
|
|||
|
||||
if (EnableOutputInSubFolder)
|
||||
{
|
||||
return Path.Combine(folder, dataHash, dataHash + (outputFileExtension ?? string.Empty).ToLower());
|
||||
return Path.Combine(folder, dataHash, dataHash + (outputFileExtension ?? string.Empty).ToLowerInvariant());
|
||||
}
|
||||
|
||||
return Path.Combine(folder, dataHash + (outputFileExtension ?? string.Empty).ToLower());
|
||||
return Path.Combine(folder, dataHash + (outputFileExtension ?? string.Empty).ToLowerInvariant());
|
||||
}
|
||||
|
||||
protected virtual bool EnableOutputInSubFolder => false;
|
||||
|
|
|
@ -614,7 +614,7 @@ namespace MediaBrowser.Controller.Entities
|
|||
if (!string.IsNullOrEmpty(ForcedSortName))
|
||||
{
|
||||
// Need the ToLower because that's what CreateSortName does
|
||||
_sortName = ModifySortChunks(ForcedSortName).ToLower();
|
||||
_sortName = ModifySortChunks(ForcedSortName).ToLowerInvariant();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -660,7 +660,7 @@ namespace MediaBrowser.Controller.Entities
|
|||
return Name.TrimStart();
|
||||
}
|
||||
|
||||
var sortable = Name.Trim().ToLower();
|
||||
var sortable = Name.Trim().ToLowerInvariant();
|
||||
|
||||
foreach (var removeChar in ConfigurationManager.Configuration.SortRemoveCharacters)
|
||||
{
|
||||
|
|
|
@ -305,7 +305,7 @@ namespace MediaBrowser.Controller.Entities
|
|||
|
||||
private string GetUserDataKey(string providerId)
|
||||
{
|
||||
var key = providerId + "-" + ExtraType.ToString().ToLower();
|
||||
var key = providerId + "-" + ExtraType.ToString().ToLowerInvariant();
|
||||
|
||||
// Make sure different trailers have their own data.
|
||||
if (RunTimeTicks.HasValue)
|
||||
|
|
|
@ -136,7 +136,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
return "libtheora";
|
||||
}
|
||||
|
||||
return codec.ToLower();
|
||||
return codec.ToLowerInvariant();
|
||||
}
|
||||
|
||||
return "copy";
|
||||
|
@ -405,7 +405,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
return "libopus";
|
||||
}
|
||||
|
||||
return codec.ToLower();
|
||||
return codec.ToLowerInvariant();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -762,7 +762,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
// vaapi does not support Baseline profile, force Constrained Baseline in this case,
|
||||
// which is compatible (and ugly)
|
||||
if (string.Equals(videoEncoder, "h264_vaapi", StringComparison.OrdinalIgnoreCase) &&
|
||||
profile != null && profile.ToLower().Contains("baseline"))
|
||||
profile != null && profile.ToLowerInvariant().Contains("baseline"))
|
||||
{
|
||||
profile = "constrained_baseline";
|
||||
}
|
||||
|
@ -2175,7 +2175,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
{
|
||||
if (string.Equals(encodingOptions.HardwareAccelerationType, "qsv", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
switch (videoStream.Codec.ToLower())
|
||||
switch (videoStream.Codec.ToLowerInvariant())
|
||||
{
|
||||
case "avc":
|
||||
case "h264":
|
||||
|
@ -2215,7 +2215,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
|
||||
else if (string.Equals(encodingOptions.HardwareAccelerationType, "nvenc", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
switch (videoStream.Codec.ToLower())
|
||||
switch (videoStream.Codec.ToLowerInvariant())
|
||||
{
|
||||
case "avc":
|
||||
case "h264":
|
||||
|
@ -2254,7 +2254,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
|
||||
else if (string.Equals(encodingOptions.HardwareAccelerationType, "mediacodec", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
switch (videoStream.Codec.ToLower())
|
||||
switch (videoStream.Codec.ToLowerInvariant())
|
||||
{
|
||||
case "avc":
|
||||
case "h264":
|
||||
|
@ -2299,7 +2299,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
|
||||
else if (string.Equals(encodingOptions.HardwareAccelerationType, "omx", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
switch (videoStream.Codec.ToLower())
|
||||
switch (videoStream.Codec.ToLowerInvariant())
|
||||
{
|
||||
case "avc":
|
||||
case "h264":
|
||||
|
@ -2324,7 +2324,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||
return "-hwaccel dxva2";
|
||||
}
|
||||
|
||||
switch (videoStream.Codec.ToLower())
|
||||
switch (videoStream.Codec.ToLowerInvariant())
|
||||
{
|
||||
case "avc":
|
||||
case "h264":
|
||||
|
|
|
@ -417,7 +417,7 @@ namespace MediaBrowser.LocalMetadata.Images
|
|||
var seriesFiles = GetFiles(series, false, directoryService).ToList();
|
||||
|
||||
// Try using the season name
|
||||
var prefix = season.Name.ToLower().Replace(" ", string.Empty);
|
||||
var prefix = season.Name.ToLowerInvariant().Replace(" ", string.Empty);
|
||||
|
||||
var filenamePrefixes = new List<string> { prefix };
|
||||
|
||||
|
|
|
@ -172,7 +172,7 @@ namespace MediaBrowser.LocalMetadata.Savers
|
|||
|
||||
writer.WriteElementString("Added", item.DateCreated.ToLocalTime().ToString("G"));
|
||||
|
||||
writer.WriteElementString("LockData", item.IsLocked.ToString().ToLower());
|
||||
writer.WriteElementString("LockData", item.IsLocked.ToString(CultureInfo.InvariantCulture).ToLowerInvariant());
|
||||
|
||||
if (item.LockedFields.Length > 0)
|
||||
{
|
||||
|
@ -410,7 +410,9 @@ namespace MediaBrowser.LocalMetadata.Savers
|
|||
writer.WriteStartElement("Share");
|
||||
|
||||
writer.WriteElementString("UserId", share.UserId);
|
||||
writer.WriteElementString("CanEdit", share.CanEdit.ToString().ToLower());
|
||||
writer.WriteElementString(
|
||||
"CanEdit",
|
||||
share.CanEdit.ToString(CultureInfo.InvariantCulture).ToLowerInvariant());
|
||||
|
||||
writer.WriteEndElement();
|
||||
}
|
||||
|
|
|
@ -272,7 +272,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
|||
|
||||
var outputFileExtension = GetOutputFileExtension(state);
|
||||
|
||||
var filename = state.Id + (outputFileExtension ?? string.Empty).ToLower();
|
||||
var filename = state.Id + (outputFileExtension ?? string.Empty).ToLowerInvariant();
|
||||
return Path.Combine(folder, filename);
|
||||
}
|
||||
|
||||
|
@ -310,7 +310,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
|||
{
|
||||
if (string.Equals(GetEncodingOptions().HardwareAccelerationType, "qsv", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
switch (state.MediaSource.VideoStream.Codec.ToLower())
|
||||
switch (state.MediaSource.VideoStream.Codec.ToLowerInvariant())
|
||||
{
|
||||
case "avc":
|
||||
case "h264":
|
||||
|
|
|
@ -44,7 +44,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
|
|||
if (!eventsStarted)
|
||||
header.AppendLine(line);
|
||||
|
||||
if (line.Trim().ToLower() == "[events]")
|
||||
if (line.Trim().ToLowerInvariant() == "[events]")
|
||||
{
|
||||
eventsStarted = true;
|
||||
}
|
||||
|
@ -54,25 +54,25 @@ namespace MediaBrowser.MediaEncoding.Subtitles
|
|||
}
|
||||
else if (eventsStarted && line.Trim().Length > 0)
|
||||
{
|
||||
string s = line.Trim().ToLower();
|
||||
string s = line.Trim().ToLowerInvariant();
|
||||
if (s.StartsWith("format:"))
|
||||
{
|
||||
if (line.Length > 10)
|
||||
{
|
||||
format = line.ToLower().Substring(8).Split(',');
|
||||
format = line.ToLowerInvariant().Substring(8).Split(',');
|
||||
for (int i = 0; i < format.Length; i++)
|
||||
{
|
||||
if (format[i].Trim().ToLower() == "layer")
|
||||
if (format[i].Trim().ToLowerInvariant() == "layer")
|
||||
indexLayer = i;
|
||||
else if (format[i].Trim().ToLower() == "start")
|
||||
else if (format[i].Trim().ToLowerInvariant() == "start")
|
||||
indexStart = i;
|
||||
else if (format[i].Trim().ToLower() == "end")
|
||||
else if (format[i].Trim().ToLowerInvariant() == "end")
|
||||
indexEnd = i;
|
||||
else if (format[i].Trim().ToLower() == "text")
|
||||
else if (format[i].Trim().ToLowerInvariant() == "text")
|
||||
indexText = i;
|
||||
else if (format[i].Trim().ToLower() == "effect")
|
||||
else if (format[i].Trim().ToLowerInvariant() == "effect")
|
||||
indexEffect = i;
|
||||
else if (format[i].Trim().ToLower() == "style")
|
||||
else if (format[i].Trim().ToLowerInvariant() == "style")
|
||||
indexStyle = i;
|
||||
}
|
||||
}
|
||||
|
@ -222,7 +222,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
|
|||
|
||||
// switch to rrggbb from bbggrr
|
||||
color = "#" + color.Remove(color.Length - 6) + color.Substring(color.Length - 2, 2) + color.Substring(color.Length - 4, 2) + color.Substring(color.Length - 6, 2);
|
||||
color = color.ToLower();
|
||||
color = color.ToLowerInvariant();
|
||||
|
||||
text = text.Remove(start, end - start + 1);
|
||||
if (italic)
|
||||
|
@ -252,7 +252,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
|
|||
|
||||
// switch to rrggbb from bbggrr
|
||||
color = "#" + color.Remove(color.Length - 6) + color.Substring(color.Length - 2, 2) + color.Substring(color.Length - 4, 2) + color.Substring(color.Length - 6, 2);
|
||||
color = color.ToLower();
|
||||
color = color.ToLowerInvariant();
|
||||
|
||||
text = text.Remove(start, end - start + 1);
|
||||
if (italic)
|
||||
|
@ -367,7 +367,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
|
|||
color = color.PadLeft(6, '0');
|
||||
// switch to rrggbb from bbggrr
|
||||
color = "#" + color.Remove(color.Length - 6) + color.Substring(color.Length - 2, 2) + color.Substring(color.Length - 4, 2) + color.Substring(color.Length - 6, 2);
|
||||
color = color.ToLower();
|
||||
color = color.ToLowerInvariant();
|
||||
|
||||
extraTags += " color=\"" + color + "\"";
|
||||
}
|
||||
|
|
|
@ -223,7 +223,7 @@ namespace MediaBrowser.Model.Dlna
|
|||
list.Add(new NameValuePair("DeviceProfileId", item.DeviceProfileId ?? string.Empty));
|
||||
list.Add(new NameValuePair("DeviceId", item.DeviceId ?? string.Empty));
|
||||
list.Add(new NameValuePair("MediaSourceId", item.MediaSourceId ?? string.Empty));
|
||||
list.Add(new NameValuePair("Static", item.IsDirectStream.ToString().ToLower()));
|
||||
list.Add(new NameValuePair("Static", item.IsDirectStream.ToString(CultureInfo.InvariantCulture).ToLowerInvariant()));
|
||||
list.Add(new NameValuePair("VideoCodec", videoCodecs));
|
||||
list.Add(new NameValuePair("AudioCodec", audioCodecs));
|
||||
list.Add(new NameValuePair("AudioStreamIndex", item.AudioStreamIndex.HasValue ? item.AudioStreamIndex.Value.ToString(CultureInfo.InvariantCulture) : string.Empty));
|
||||
|
@ -251,7 +251,7 @@ namespace MediaBrowser.Model.Dlna
|
|||
list.Add(new NameValuePair("PlaySessionId", item.PlaySessionId ?? string.Empty));
|
||||
list.Add(new NameValuePair("api_key", accessToken ?? string.Empty));
|
||||
|
||||
string liveStreamId = item.MediaSource == null ? null : item.MediaSource.LiveStreamId;
|
||||
string liveStreamId = item.MediaSource?.LiveStreamId;
|
||||
list.Add(new NameValuePair("LiveStreamId", liveStreamId ?? string.Empty));
|
||||
|
||||
list.Add(new NameValuePair("SubtitleMethod", item.SubtitleStreamIndex.HasValue && item.SubtitleDeliveryMethod != SubtitleDeliveryMethod.External ? item.SubtitleDeliveryMethod.ToString() : string.Empty));
|
||||
|
@ -261,37 +261,37 @@ namespace MediaBrowser.Model.Dlna
|
|||
{
|
||||
if (item.RequireNonAnamorphic)
|
||||
{
|
||||
list.Add(new NameValuePair("RequireNonAnamorphic", item.RequireNonAnamorphic.ToString().ToLower()));
|
||||
list.Add(new NameValuePair("RequireNonAnamorphic", item.RequireNonAnamorphic.ToString(CultureInfo.InvariantCulture).ToLowerInvariant()));
|
||||
}
|
||||
|
||||
list.Add(new NameValuePair("TranscodingMaxAudioChannels", item.TranscodingMaxAudioChannels.HasValue ? item.TranscodingMaxAudioChannels.Value.ToString(CultureInfo.InvariantCulture) : string.Empty));
|
||||
|
||||
if (item.EnableSubtitlesInManifest)
|
||||
{
|
||||
list.Add(new NameValuePair("EnableSubtitlesInManifest", item.EnableSubtitlesInManifest.ToString().ToLower()));
|
||||
list.Add(new NameValuePair("EnableSubtitlesInManifest", item.EnableSubtitlesInManifest.ToString(CultureInfo.InvariantCulture).ToLowerInvariant()));
|
||||
}
|
||||
|
||||
if (item.EnableMpegtsM2TsMode)
|
||||
{
|
||||
list.Add(new NameValuePair("EnableMpegtsM2TsMode", item.EnableMpegtsM2TsMode.ToString().ToLower()));
|
||||
list.Add(new NameValuePair("EnableMpegtsM2TsMode", item.EnableMpegtsM2TsMode.ToString(CultureInfo.InvariantCulture).ToLowerInvariant()));
|
||||
}
|
||||
|
||||
if (item.EstimateContentLength)
|
||||
{
|
||||
list.Add(new NameValuePair("EstimateContentLength", item.EstimateContentLength.ToString().ToLower()));
|
||||
list.Add(new NameValuePair("EstimateContentLength", item.EstimateContentLength.ToString(CultureInfo.InvariantCulture).ToLowerInvariant()));
|
||||
}
|
||||
|
||||
if (item.TranscodeSeekInfo != TranscodeSeekInfo.Auto)
|
||||
{
|
||||
list.Add(new NameValuePair("TranscodeSeekInfo", item.TranscodeSeekInfo.ToString().ToLower()));
|
||||
list.Add(new NameValuePair("TranscodeSeekInfo", item.TranscodeSeekInfo.ToString().ToLowerInvariant()));
|
||||
}
|
||||
|
||||
if (item.CopyTimestamps)
|
||||
{
|
||||
list.Add(new NameValuePair("CopyTimestamps", item.CopyTimestamps.ToString().ToLower()));
|
||||
list.Add(new NameValuePair("CopyTimestamps", item.CopyTimestamps.ToString(CultureInfo.InvariantCulture).ToLowerInvariant()));
|
||||
}
|
||||
|
||||
list.Add(new NameValuePair("RequireAvc", item.RequireAvc.ToString().ToLower()));
|
||||
list.Add(new NameValuePair("RequireAvc", item.RequireAvc.ToString(CultureInfo.InvariantCulture).ToLowerInvariant()));
|
||||
}
|
||||
|
||||
list.Add(new NameValuePair("Tag", item.MediaSource.ETag ?? string.Empty));
|
||||
|
@ -316,7 +316,7 @@ namespace MediaBrowser.Model.Dlna
|
|||
list.Add(new NameValuePair("MinSegments", item.MinSegments.Value.ToString(CultureInfo.InvariantCulture)));
|
||||
}
|
||||
|
||||
list.Add(new NameValuePair("BreakOnNonKeyFrames", item.BreakOnNonKeyFrames.ToString()));
|
||||
list.Add(new NameValuePair("BreakOnNonKeyFrames", item.BreakOnNonKeyFrames.ToString(CultureInfo.InvariantCulture)));
|
||||
}
|
||||
|
||||
foreach (var pair in item.StreamOptions)
|
||||
|
@ -332,7 +332,7 @@ namespace MediaBrowser.Model.Dlna
|
|||
|
||||
if (!item.IsDirectStream)
|
||||
{
|
||||
list.Add(new NameValuePair("TranscodeReasons", string.Join(",", item.TranscodeReasons.Distinct().Select(i => i.ToString()).ToArray())));
|
||||
list.Add(new NameValuePair("TranscodeReasons", string.Join(",", item.TranscodeReasons.Distinct().Select(i => i.ToString()))));
|
||||
}
|
||||
|
||||
return list;
|
||||
|
|
|
@ -104,7 +104,7 @@ namespace MediaBrowser.Model.Entities
|
|||
attributes.Add("Default");
|
||||
}
|
||||
|
||||
return string.Join(" ", attributes.ToArray());
|
||||
return string.Join(" ", attributes);
|
||||
}
|
||||
|
||||
if (Type == MediaStreamType.Video)
|
||||
|
@ -120,10 +120,10 @@ namespace MediaBrowser.Model.Entities
|
|||
|
||||
if (!string.IsNullOrEmpty(Codec))
|
||||
{
|
||||
attributes.Add(Codec.ToUpper());
|
||||
attributes.Add(Codec.ToUpperInvariant());
|
||||
}
|
||||
|
||||
return string.Join(" ", attributes.ToArray());
|
||||
return string.Join(" ", attributes);
|
||||
}
|
||||
|
||||
if (Type == MediaStreamType.Subtitle)
|
||||
|
|
|
@ -51,7 +51,7 @@ namespace MediaBrowser.Model.Extensions
|
|||
|
||||
public static string FirstToUpper(this string str)
|
||||
{
|
||||
return string.IsNullOrEmpty(str) ? "" : str.Substring(0, 1).ToUpper() + str.Substring(1);
|
||||
return string.IsNullOrEmpty(str) ? string.Empty : str.Substring(0, 1).ToUpperInvariant() + str.Substring(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,9 +8,12 @@ namespace MediaBrowser.Model.MediaInfo
|
|||
|
||||
public static string GetFriendlyName(string codec)
|
||||
{
|
||||
if (string.IsNullOrEmpty(codec)) return "";
|
||||
if (string.IsNullOrEmpty(codec))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
switch (codec.ToLower())
|
||||
switch (codec.ToLowerInvariant())
|
||||
{
|
||||
case "ac3":
|
||||
return "Dolby Digital";
|
||||
|
@ -19,7 +22,7 @@ namespace MediaBrowser.Model.MediaInfo
|
|||
case "dca":
|
||||
return "DTS";
|
||||
default:
|
||||
return codec.ToUpper();
|
||||
return codec.ToUpperInvariant();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,7 +158,7 @@ namespace MediaBrowser.Model.Net
|
|||
// Catch-all for all video types that don't require specific mime types
|
||||
if (VideoFileExtensionsDictionary.ContainsKey(ext))
|
||||
{
|
||||
return "video/" + ext.TrimStart('.').ToLower();
|
||||
return "video/" + ext.TrimStart('.').ToLowerInvariant();
|
||||
}
|
||||
|
||||
// Type text
|
||||
|
|
|
@ -420,7 +420,7 @@ namespace MediaBrowser.Providers.Manager
|
|||
filename = GetBackdropSaveFilename(item.GetImages(type), "screenshot", "screenshot", imageIndex);
|
||||
break;
|
||||
default:
|
||||
filename = type.ToString().ToLower();
|
||||
filename = type.ToString().ToLowerInvariant();
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -429,7 +429,7 @@ namespace MediaBrowser.Providers.Manager
|
|||
extension = ".jpg";
|
||||
}
|
||||
|
||||
extension = extension.ToLower();
|
||||
extension = extension.ToLowerInvariant();
|
||||
|
||||
string path = null;
|
||||
|
||||
|
|
|
@ -148,7 +148,7 @@ namespace MediaBrowser.Providers.Manager
|
|||
}
|
||||
else
|
||||
{
|
||||
var mimeType = "image/" + response.Format.ToString().ToLower();
|
||||
var mimeType = "image/" + response.Format.ToString().ToLowerInvariant();
|
||||
|
||||
await _providerManager.SaveImage(item, response.Stream, mimeType, imageType, null, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
|
|
@ -119,7 +119,7 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
continue;
|
||||
}
|
||||
|
||||
var codec = Path.GetExtension(fullName).ToLower().TrimStart('.');
|
||||
var codec = Path.GetExtension(fullName).ToLowerInvariant().TrimStart('.');
|
||||
|
||||
if (string.Equals(codec, "txt", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
|
|
|
@ -285,7 +285,7 @@ namespace MediaBrowser.Providers.Movies
|
|||
|
||||
if (parts.Length == 2)
|
||||
{
|
||||
language = parts[0] + "-" + parts[1].ToUpper();
|
||||
language = parts[0] + "-" + parts[1].ToUpperInvariant();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ namespace MediaBrowser.Providers.Movies
|
|||
}
|
||||
|
||||
_logger.LogInformation("MovieDbProvider: Finding id for item: " + name);
|
||||
var language = idInfo.MetadataLanguage.ToLower();
|
||||
var language = idInfo.MetadataLanguage.ToLowerInvariant();
|
||||
|
||||
//nope - search for it
|
||||
//var searchType = item is BoxSet ? "collection" : "movie";
|
||||
|
|
|
@ -168,14 +168,14 @@ namespace MediaBrowser.Providers.Subtitles
|
|||
memoryStream.Position = 0;
|
||||
|
||||
var savePaths = new List<string>();
|
||||
var saveFileName = _fileSystem.GetFileNameWithoutExtension(video.Path) + "." + response.Language.ToLower();
|
||||
var saveFileName = _fileSystem.GetFileNameWithoutExtension(video.Path) + "." + response.Language.ToLowerInvariant();
|
||||
|
||||
if (response.IsForced)
|
||||
{
|
||||
saveFileName += ".forced";
|
||||
}
|
||||
|
||||
saveFileName += "." + response.Format.ToLower();
|
||||
saveFileName += "." + response.Format.ToLowerInvariant();
|
||||
|
||||
if (saveInMediaFolder)
|
||||
{
|
||||
|
@ -305,7 +305,7 @@ namespace MediaBrowser.Providers.Subtitles
|
|||
|
||||
private string GetProviderId(string name)
|
||||
{
|
||||
return name.ToLower().GetMD5().ToString("N");
|
||||
return name.ToLowerInvariant().GetMD5().ToString("N");
|
||||
}
|
||||
|
||||
private ISubtitleProvider GetProvider(string id)
|
||||
|
|
|
@ -66,7 +66,7 @@ namespace MediaBrowser.Providers.TV
|
|||
}
|
||||
|
||||
// pt-br is just pt to tvdb
|
||||
return language.Split('-')[0].ToLower();
|
||||
return language.Split('-')[0].ToLowerInvariant();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(SeriesInfo searchInfo, CancellationToken cancellationToken)
|
||||
|
@ -776,7 +776,7 @@ namespace MediaBrowser.Providers.TV
|
|||
/// <returns>System.String.</returns>
|
||||
private string GetComparableName(string name)
|
||||
{
|
||||
name = name.ToLower();
|
||||
name = name.ToLowerInvariant();
|
||||
name = _localizationManager.NormalizeFormKD(name);
|
||||
var sb = new StringBuilder();
|
||||
foreach (var c in name)
|
||||
|
@ -1620,7 +1620,7 @@ namespace MediaBrowser.Providers.TV
|
|||
{
|
||||
var seriesDataPath = GetSeriesDataPath(_config.ApplicationPaths, seriesProviderIds);
|
||||
|
||||
var seriesXmlFilename = language.ToLower() + ".xml";
|
||||
var seriesXmlFilename = language.ToLowerInvariant() + ".xml";
|
||||
|
||||
return Path.Combine(seriesDataPath, seriesXmlFilename);
|
||||
}
|
||||
|
|
|
@ -290,7 +290,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
|||
|
||||
foreach (var stream in mediaStreams)
|
||||
{
|
||||
writer.WriteStartElement(stream.Type.ToString().ToLower());
|
||||
writer.WriteStartElement(stream.Type.ToString().ToLowerInvariant());
|
||||
|
||||
if (!string.IsNullOrEmpty(stream.Codec))
|
||||
{
|
||||
|
@ -471,7 +471,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
|||
writer.WriteElementString("customrating", item.CustomRating);
|
||||
}
|
||||
|
||||
writer.WriteElementString("lockdata", item.IsLocked.ToString().ToLower());
|
||||
writer.WriteElementString("lockdata", item.IsLocked.ToString(CultureInfo.InvariantCulture).ToLowerInvariant());
|
||||
|
||||
if (item.LockedFields.Length > 0)
|
||||
{
|
||||
|
@ -871,21 +871,21 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
|||
|
||||
var userdata = userDataRepo.GetUserData(user, item);
|
||||
|
||||
writer.WriteElementString("isuserfavorite", userdata.IsFavorite.ToString().ToLower());
|
||||
writer.WriteElementString("isuserfavorite", userdata.IsFavorite.ToString(CultureInfo.InvariantCulture).ToLowerInvariant());
|
||||
|
||||
if (userdata.Rating.HasValue)
|
||||
{
|
||||
writer.WriteElementString("userrating", userdata.Rating.Value.ToString(CultureInfo.InvariantCulture).ToLower());
|
||||
writer.WriteElementString("userrating", userdata.Rating.Value.ToString(CultureInfo.InvariantCulture).ToLowerInvariant());
|
||||
}
|
||||
|
||||
if (!item.IsFolder)
|
||||
{
|
||||
writer.WriteElementString("playcount", userdata.PlayCount.ToString(UsCulture));
|
||||
writer.WriteElementString("watched", userdata.Played.ToString().ToLower());
|
||||
writer.WriteElementString("watched", userdata.Played.ToString(CultureInfo.InvariantCulture).ToLowerInvariant());
|
||||
|
||||
if (userdata.LastPlayedDate.HasValue)
|
||||
{
|
||||
writer.WriteElementString("lastplayed", userdata.LastPlayedDate.Value.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss").ToLower());
|
||||
writer.WriteElementString("lastplayed", userdata.LastPlayedDate.Value.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss").ToLowerInvariant());
|
||||
}
|
||||
|
||||
writer.WriteStartElement("resume");
|
||||
|
@ -901,12 +901,13 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
|||
|
||||
private void AddActors(List<PersonInfo> people, XmlWriter writer, ILibraryManager libraryManager, IFileSystem fileSystem, IServerConfigurationManager config, bool saveImagePath)
|
||||
{
|
||||
var actors = people
|
||||
.Where(i => !IsPersonType(i, PersonType.Director) && !IsPersonType(i, PersonType.Writer))
|
||||
.ToList();
|
||||
|
||||
foreach (var person in actors)
|
||||
foreach (var person in people)
|
||||
{
|
||||
if (IsPersonType(person, PersonType.Director) || IsPersonType(person, PersonType.Writer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
writer.WriteStartElement("actor");
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(person.Name))
|
||||
|
@ -1021,7 +1022,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
|||
|
||||
private string GetTagForProviderKey(string providerKey)
|
||||
{
|
||||
return providerKey.ToLower() + "id";
|
||||
return providerKey.ToLowerInvariant() + "id";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -486,7 +486,7 @@ namespace SocketHttpListener
|
|||
if (method == CompressionMethod.None)
|
||||
return string.Empty;
|
||||
|
||||
var m = string.Format("permessage-{0}", method.ToString().ToLower());
|
||||
var m = string.Format("permessage-{0}", method.ToString().ToLowerInvariant());
|
||||
if (parameters == null || parameters.Length == 0)
|
||||
return m;
|
||||
|
||||
|
|
|
@ -155,7 +155,7 @@ namespace SocketHttpListener.Net
|
|||
}
|
||||
else
|
||||
{
|
||||
header = header.ToLower(CultureInfo.InvariantCulture);
|
||||
header = header.ToLowerInvariant();
|
||||
_keepAlive =
|
||||
header.IndexOf("close", StringComparison.OrdinalIgnoreCase) < 0 ||
|
||||
header.IndexOf("keep-alive", StringComparison.OrdinalIgnoreCase) >= 0;
|
||||
|
|
Loading…
Reference in a new issue