Merge pull request #2962 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2017-10-17 15:50:31 -04:00 committed by GitHub
commit 497819b345
40 changed files with 174 additions and 116 deletions

View File

@ -1071,8 +1071,10 @@ namespace Emby.Dlna.Didl
writer.WriteStartElement(string.Empty, "res", NS_DIDL); writer.WriteStartElement(string.Empty, "res", NS_DIDL);
var width = albumartUrlInfo.Width; // Images must have a reported size or many clients (Bubble upnp), will only use the first thumbnail
var height = albumartUrlInfo.Height; // rather than using a larger one when available
var width = albumartUrlInfo.Width ?? maxWidth;
var height = albumartUrlInfo.Height ?? maxHeight;
var contentFeatures = new ContentFeatureBuilder(_profile) var contentFeatures = new ContentFeatureBuilder(_profile)
.BuildImageHeader(format, width, height, imageInfo.IsDirectStream, org_Pn); .BuildImageHeader(format, width, height, imageInfo.IsDirectStream, org_Pn);
@ -1083,10 +1085,7 @@ namespace Emby.Dlna.Didl
contentFeatures contentFeatures
)); ));
if (width.HasValue && height.HasValue) writer.WriteAttributeString("resolution", string.Format("{0}x{1}", width, height));
{
writer.WriteAttributeString("resolution", string.Format("{0}x{1}", width.Value, height.Value));
}
writer.WriteString(albumartUrlInfo.Url); writer.WriteString(albumartUrlInfo.Url);

View File

@ -775,7 +775,14 @@ namespace Emby.Server.Implementations
} }
// Put the app config in the log for troubleshooting purposes // Put the app config in the log for troubleshooting purposes
Logger.LogMultiline("Application configuration:", LogSeverity.Info, new StringBuilder(JsonSerializer.SerializeToString(ConfigurationManager.CommonConfiguration))); var configJson = new StringBuilder(JsonSerializer.SerializeToString(ConfigurationManager.CommonConfiguration));
if (!string.IsNullOrWhiteSpace(ServerConfigurationManager.Configuration.CertificatePassword))
{
configJson = configJson.Replace(ServerConfigurationManager.Configuration.CertificatePassword, "####");
}
Logger.LogMultiline("Application configuration:", LogSeverity.Info, configJson);
if (Plugins != null) if (Plugins != null)
{ {

View File

@ -5,6 +5,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Model.Services; using MediaBrowser.Model.Services;
using System.Linq; using System.Linq;
using System.Threading;
namespace Emby.Server.Implementations.HttpServer.Security namespace Emby.Server.Implementations.HttpServer.Security
{ {
@ -95,23 +96,44 @@ namespace Emby.Server.Implementations.HttpServer.Security
{ {
info.UserId = tokenInfo.UserId; info.UserId = tokenInfo.UserId;
var updateToken = false;
// TODO: Remove these checks for IsNullOrWhiteSpace // TODO: Remove these checks for IsNullOrWhiteSpace
if (string.IsNullOrWhiteSpace(info.Client)) if (string.IsNullOrWhiteSpace(info.Client))
{ {
info.Client = tokenInfo.AppName; info.Client = tokenInfo.AppName;
} }
if (string.IsNullOrWhiteSpace(info.Device))
{
info.Device = tokenInfo.DeviceName;
}
if (string.IsNullOrWhiteSpace(info.DeviceId)) if (string.IsNullOrWhiteSpace(info.DeviceId))
{ {
info.DeviceId = tokenInfo.DeviceId; info.DeviceId = tokenInfo.DeviceId;
} }
if (string.IsNullOrWhiteSpace(info.Device))
{
info.Device = tokenInfo.DeviceName;
}
else if (!string.Equals(info.Device, tokenInfo.DeviceName, StringComparison.OrdinalIgnoreCase))
{
updateToken = true;
tokenInfo.DeviceName = info.Device;
}
if (string.IsNullOrWhiteSpace(info.Version)) if (string.IsNullOrWhiteSpace(info.Version))
{ {
info.Version = tokenInfo.AppVersion; info.Version = tokenInfo.AppVersion;
} }
else if (!string.Equals(info.Version, tokenInfo.AppVersion, StringComparison.OrdinalIgnoreCase))
{
updateToken = true;
tokenInfo.AppVersion = info.Version;
}
if (updateToken)
{
_authRepo.Update(tokenInfo, CancellationToken.None);
}
} }
else else
{ {

View File

@ -25,15 +25,6 @@ namespace Emby.Server.Implementations.HttpServer.Security
{ {
var authorization = _authContext.GetAuthorizationInfo(requestContext); var authorization = _authContext.GetAuthorizationInfo(requestContext);
//if (!string.IsNullOrWhiteSpace(authorization.Token))
//{
// var auth = GetTokenInfo(requestContext);
// if (auth != null)
// {
// return _sessionManager.GetSessionByAuthenticationToken(auth, authorization.DeviceId, requestContext.RemoteIp, authorization.Version);
// }
//}
var user = string.IsNullOrWhiteSpace(authorization.UserId) ? null : _userManager.GetUserById(authorization.UserId); var user = string.IsNullOrWhiteSpace(authorization.UserId) ? null : _userManager.GetUserById(authorization.UserId);
return _sessionManager.LogSessionActivity(authorization.Client, authorization.Version, authorization.DeviceId, authorization.Device, requestContext.RemoteIp, user); return _sessionManager.LogSessionActivity(authorization.Client, authorization.Version, authorization.DeviceId, authorization.Device, requestContext.RemoteIp, user);
} }

View File

@ -96,7 +96,7 @@ namespace Emby.Server.Implementations.Library
if (parents.Count > 0) if (parents.Count > 0)
{ {
var localizationKey = string.Equals(viewType, CollectionType.TvShows, StringComparison.OrdinalIgnoreCase) ? var localizationKey = string.Equals(viewType, CollectionType.TvShows, StringComparison.OrdinalIgnoreCase) ?
"Shows" : "TvShows" :
"Movies"; "Movies";
list.Add(GetUserView(parents, viewType, localizationKey, string.Empty, user, query.PresetViews, cancellationToken)); list.Add(GetUserView(parents, viewType, localizationKey, string.Empty, user, query.PresetViews, cancellationToken));

View File

@ -27,6 +27,7 @@
"Artists": "\u0627\u0644\u0641\u0646\u0627\u0646\u0648\u0646", "Artists": "\u0627\u0644\u0641\u0646\u0627\u0646\u0648\u0646",
"Folders": "\u0627\u0644\u0645\u062c\u0644\u062f\u0627\u062a", "Folders": "\u0627\u0644\u0645\u062c\u0644\u062f\u0627\u062a",
"Songs": "\u0627\u0644\u0623\u063a\u0627\u0646\u064a", "Songs": "\u0627\u0644\u0623\u063a\u0627\u0646\u064a",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "\u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0623\u0641\u0644\u0627\u0645", "Genres": "\u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0623\u0641\u0644\u0627\u0645",
"NameSeasonNumber": "\u0627\u0644\u0645\u0648\u0633\u0645 {0}", "NameSeasonNumber": "\u0627\u0644\u0645\u0648\u0633\u0645 {0}",

View File

@ -27,6 +27,7 @@
"Artists": "\u0418\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438", "Artists": "\u0418\u0437\u043f\u044a\u043b\u043d\u0438\u0442\u0435\u043b\u0438",
"Folders": "\u041f\u0430\u043f\u043a\u0438", "Folders": "\u041f\u0430\u043f\u043a\u0438",
"Songs": "\u041f\u0435\u0441\u043d\u0438", "Songs": "\u041f\u0435\u0441\u043d\u0438",
"TvShows": "TV Shows",
"Shows": "\u0421\u0435\u0440\u0438\u0430\u043b\u0438", "Shows": "\u0421\u0435\u0440\u0438\u0430\u043b\u0438",
"Genres": "\u0416\u0430\u043d\u0440\u043e\u0432\u0435", "Genres": "\u0416\u0430\u043d\u0440\u043e\u0432\u0435",
"NameSeasonNumber": "\u0421\u0435\u0437\u043e\u043d {0}", "NameSeasonNumber": "\u0421\u0435\u0437\u043e\u043d {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "G\u00e8neres", "Genres": "G\u00e8neres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Um\u011blci", "Artists": "Um\u011blci",
"Folders": "Slo\u017eky", "Folders": "Slo\u017eky",
"Songs": "Skladby", "Songs": "Skladby",
"TvShows": "TV Shows",
"Shows": "Seri\u00e1ly", "Shows": "Seri\u00e1ly",
"Genres": "\u017d\u00e1nry", "Genres": "\u017d\u00e1nry",
"NameSeasonNumber": "Sez\u00f3na {0}", "NameSeasonNumber": "Sez\u00f3na {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Kunstner", "Artists": "Kunstner",
"Folders": "Mapper", "Folders": "Mapper",
"Songs": "Sange", "Songs": "Sange",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "Genre", "Genres": "Genre",
"NameSeasonNumber": "S\u00e6son {0}", "NameSeasonNumber": "S\u00e6son {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Interpreten", "Artists": "Interpreten",
"Folders": "Verzeichnisse", "Folders": "Verzeichnisse",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Serien", "Shows": "Serien",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Staffel {0}", "NameSeasonNumber": "Staffel {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -1,95 +1,96 @@
{ {
"Latest": "Latest", "Latest": "Latest",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Inherit": "Inherit", "Inherit": "Inherit",
"Books": "Books", "Books": "Books",
"Music": "Music", "Music": "Music",
"Games": "Games", "Games": "Games",
"Photos": "Photos", "Photos": "Photos",
"MixedContent": "Mixed content", "MixedContent": "Mixed content",
"MusicVideos": "Music videos", "MusicVideos": "Music videos",
"HomeVideos": "Home videos", "HomeVideos": "Home videos",
"Playlists": "Playlists", "Playlists": "Playlists",
"HeaderRecordingGroups": "Recording Groups", "HeaderRecordingGroups": "Recording Groups",
"HeaderContinueWatching": "Continue Watching", "HeaderContinueWatching": "Continue Watching",
"HeaderFavoriteArtists": "Favorite Artists", "HeaderFavoriteArtists": "Favorite Artists",
"HeaderFavoriteSongs": "Favorite Songs", "HeaderFavoriteSongs": "Favorite Songs",
"HeaderAlbumArtists": "Album Artists", "HeaderAlbumArtists": "Album Artists",
"HeaderFavoriteAlbums": "Favorite Albums", "HeaderFavoriteAlbums": "Favorite Albums",
"HeaderFavoriteEpisodes": "Favorite Episodes", "HeaderFavoriteEpisodes": "Favorite Episodes",
"HeaderFavoriteShows": "Favorite Shows", "HeaderFavoriteShows": "Favorite Shows",
"HeaderNextUp": "Next Up", "HeaderNextUp": "Next Up",
"Favorites": "Favorites", "Favorites": "Favorites",
"Collections": "Collections", "Collections": "Collections",
"Channels": "Channels", "Channels": "Channels",
"Movies": "Movies", "Movies": "Movies",
"Albums": "Albums", "Albums": "Albums",
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"Shows": "Shows", "TvShows": "TV Shows",
"Genres": "Genres", "Shows": "Shows",
"NameSeasonNumber": "Season {0}", "Genres": "Genres",
"AppDeviceValues": "App: {0}, Device: {1}", "NameSeasonNumber": "Season {0}",
"UserDownloadingItemWithValues": "{0} is downloading {1}", "AppDeviceValues": "App: {0}, Device: {1}",
"HeaderLiveTV": "Live TV", "UserDownloadingItemWithValues": "{0} is downloading {1}",
"ChapterNameValue": "Chapter {0}", "HeaderLiveTV": "Live TV",
"ScheduledTaskFailedWithName": "{0} failed", "ChapterNameValue": "Chapter {0}",
"LabelRunningTimeValue": "Running time: {0}", "ScheduledTaskFailedWithName": "{0} failed",
"ScheduledTaskStartedWithName": "{0} started", "LabelRunningTimeValue": "Running time: {0}",
"VersionNumber": "Version {0}", "ScheduledTaskStartedWithName": "{0} started",
"PluginInstalledWithName": "{0} was installed", "VersionNumber": "Version {0}",
"StartupEmbyServerIsLoading": "Emby Server is loading. Please try again shortly.", "PluginInstalledWithName": "{0} was installed",
"PluginUpdatedWithName": "{0} was updated", "StartupEmbyServerIsLoading": "Emby Server is loading. Please try again shortly.",
"PluginUninstalledWithName": "{0} was uninstalled", "PluginUpdatedWithName": "{0} was updated",
"ItemAddedWithName": "{0} was added to the library", "PluginUninstalledWithName": "{0} was uninstalled",
"ItemRemovedWithName": "{0} was removed from the library", "ItemAddedWithName": "{0} was added to the library",
"LabelIpAddressValue": "Ip address: {0}", "ItemRemovedWithName": "{0} was removed from the library",
"DeviceOnlineWithName": "{0} is connected", "LabelIpAddressValue": "Ip address: {0}",
"UserOnlineFromDevice": "{0} is online from {1}", "DeviceOnlineWithName": "{0} is connected",
"ProviderValue": "Provider: {0}", "UserOnlineFromDevice": "{0} is online from {1}",
"SubtitlesDownloadedForItem": "Subtitles downloaded for {0}", "ProviderValue": "Provider: {0}",
"UserCreatedWithName": "User {0} has been created", "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
"UserPasswordChangedWithName": "Password has been changed for user {0}", "UserCreatedWithName": "User {0} has been created",
"UserDeletedWithName": "User {0} has been deleted", "UserPasswordChangedWithName": "Password has been changed for user {0}",
"UserConfigurationUpdatedWithName": "User configuration has been updated for {0}", "UserDeletedWithName": "User {0} has been deleted",
"MessageServerConfigurationUpdated": "Server configuration has been updated", "UserConfigurationUpdatedWithName": "User configuration has been updated for {0}",
"MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated", "MessageServerConfigurationUpdated": "Server configuration has been updated",
"MessageApplicationUpdated": "Emby Server has been updated", "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
"FailedLoginAttemptWithUserName": "Failed login attempt from {0}", "MessageApplicationUpdated": "Emby Server has been updated",
"AuthenticationSucceededWithUserName": "{0} successfully authenticated", "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
"UserOfflineFromDevice": "{0} has disconnected from {1}", "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
"DeviceOfflineWithName": "{0} has disconnected", "UserOfflineFromDevice": "{0} has disconnected from {1}",
"UserStartedPlayingItemWithValues": "{0} has started playing {1}", "DeviceOfflineWithName": "{0} has disconnected",
"UserStoppedPlayingItemWithValues": "{0} has stopped playing {1}", "UserStartedPlayingItemWithValues": "{0} has started playing {1}",
"NotificationOptionPluginError": "Plugin failure", "UserStoppedPlayingItemWithValues": "{0} has stopped playing {1}",
"NotificationOptionApplicationUpdateAvailable": "Application update available", "NotificationOptionPluginError": "Plugin failure",
"NotificationOptionApplicationUpdateInstalled": "Application update installed", "NotificationOptionApplicationUpdateAvailable": "Application update available",
"NotificationOptionPluginUpdateInstalled": "Plugin update installed", "NotificationOptionApplicationUpdateInstalled": "Application update installed",
"NotificationOptionPluginInstalled": "Plugin installed", "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
"NotificationOptionPluginUninstalled": "Plugin uninstalled", "NotificationOptionPluginInstalled": "Plugin installed",
"NotificationOptionVideoPlayback": "Video playback started", "NotificationOptionPluginUninstalled": "Plugin uninstalled",
"NotificationOptionAudioPlayback": "Audio playback started", "NotificationOptionVideoPlayback": "Video playback started",
"NotificationOptionGamePlayback": "Game playback started", "NotificationOptionAudioPlayback": "Audio playback started",
"NotificationOptionVideoPlaybackStopped": "Video playback stopped", "NotificationOptionGamePlayback": "Game playback started",
"NotificationOptionAudioPlaybackStopped": "Audio playback stopped", "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
"NotificationOptionGamePlaybackStopped": "Game playback stopped", "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
"NotificationOptionTaskFailed": "Scheduled task failure", "NotificationOptionGamePlaybackStopped": "Game playback stopped",
"NotificationOptionInstallationFailed": "Installation failure", "NotificationOptionTaskFailed": "Scheduled task failure",
"NotificationOptionNewLibraryContent": "New content added", "NotificationOptionInstallationFailed": "Installation failure",
"NotificationOptionCameraImageUploaded": "Camera image uploaded", "NotificationOptionNewLibraryContent": "New content added",
"NotificationOptionUserLockedOut": "User locked out", "NotificationOptionCameraImageUploaded": "Camera image uploaded",
"NotificationOptionServerRestartRequired": "Server restart required", "NotificationOptionUserLockedOut": "User locked out",
"UserLockedOutWithName": "User {0} has been locked out", "NotificationOptionServerRestartRequired": "Server restart required",
"SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}", "UserLockedOutWithName": "User {0} has been locked out",
"Sync": "Sync", "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
"User": "User", "Sync": "Sync",
"System": "System", "User": "User",
"Application": "Application", "System": "System",
"Plugin": "Plugin", "Application": "Application",
"LabelExit": "Exit", "Plugin": "Plugin",
"LabelVisitCommunity": "Visit Community", "LabelExit": "Exit",
"LabelBrowseLibrary": "Browse Library", "LabelVisitCommunity": "Visit Community",
"LabelConfigureServer": "Configure Emby", "LabelBrowseLibrary": "Browse Library",
"LabelRestartServer": "Restart Server" "LabelConfigureServer": "Configure Emby",
"LabelRestartServer": "Restart Server"
} }

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Series", "Shows": "Series",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artistas", "Artists": "Artistas",
"Folders": "Carpetas", "Folders": "Carpetas",
"Songs": "Canciones", "Songs": "Canciones",
"TvShows": "TV Shows",
"Shows": "Programas", "Shows": "Programas",
"Genres": "G\u00e9neros", "Genres": "G\u00e9neros",
"NameSeasonNumber": "Temporada {0}", "NameSeasonNumber": "Temporada {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artistas", "Artists": "Artistas",
"Folders": "Carpetas", "Folders": "Carpetas",
"Songs": "Canciones", "Songs": "Canciones",
"TvShows": "TV Shows",
"Shows": "Series", "Shows": "Series",
"Genres": "G\u00e9neros", "Genres": "G\u00e9neros",
"NameSeasonNumber": "Temporada {0}", "NameSeasonNumber": "Temporada {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Series", "Shows": "Series",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artistes", "Artists": "Artistes",
"Folders": "Dossiers", "Folders": "Dossiers",
"Songs": "Chansons", "Songs": "Chansons",
"TvShows": "TV Shows",
"Shows": "\u00c9missions", "Shows": "\u00c9missions",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Saison {0}", "NameSeasonNumber": "Saison {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "\u05d6'\u05d0\u05e0\u05e8\u05d9\u05dd", "Genres": "\u05d6'\u05d0\u05e0\u05e8\u05d9\u05dd",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Izvo\u0111a\u010di", "Artists": "Izvo\u0111a\u010di",
"Folders": "Mape", "Folders": "Mape",
"Songs": "Pjesme", "Songs": "Pjesme",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "\u017danrovi", "Genres": "\u017danrovi",
"NameSeasonNumber": "Sezona {0}", "NameSeasonNumber": "Sezona {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "M\u0171fajok", "Genres": "M\u0171fajok",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artisti", "Artists": "Artisti",
"Folders": "Cartelle", "Folders": "Cartelle",
"Songs": "Canzoni", "Songs": "Canzoni",
"TvShows": "TV Shows",
"Shows": "Programmi", "Shows": "Programmi",
"Genres": "Generi", "Genres": "Generi",
"NameSeasonNumber": "Stagione {0}", "NameSeasonNumber": "Stagione {0}",

View File

@ -27,6 +27,7 @@
"Artists": "\u041e\u0440\u044b\u043d\u0434\u0430\u0443\u0448\u044b\u043b\u0430\u0440", "Artists": "\u041e\u0440\u044b\u043d\u0434\u0430\u0443\u0448\u044b\u043b\u0430\u0440",
"Folders": "\u049a\u0430\u043b\u0442\u0430\u043b\u0430\u0440", "Folders": "\u049a\u0430\u043b\u0442\u0430\u043b\u0430\u0440",
"Songs": "\u04d8\u0443\u0435\u043d\u0434\u0435\u0440", "Songs": "\u04d8\u0443\u0435\u043d\u0434\u0435\u0440",
"TvShows": "TV Shows",
"Shows": "\u041a\u04e9\u0440\u0441\u0435\u0442\u0456\u043c\u0434\u0435\u0440", "Shows": "\u041a\u04e9\u0440\u0441\u0435\u0442\u0456\u043c\u0434\u0435\u0440",
"Genres": "\u0416\u0430\u043d\u0440\u043b\u0430\u0440", "Genres": "\u0416\u0430\u043d\u0440\u043b\u0430\u0440",
"NameSeasonNumber": "{0}-\u043c\u0430\u0443\u0441\u044b\u043c", "NameSeasonNumber": "{0}-\u043c\u0430\u0443\u0441\u044b\u043c",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "\u017danrai", "Genres": "\u017danrai",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Series", "Shows": "Series",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artister", "Artists": "Artister",
"Folders": "Mapper", "Folders": "Mapper",
"Songs": "Sanger", "Songs": "Sanger",
"TvShows": "TV Shows",
"Shows": "Programmer", "Shows": "Programmer",
"Genres": "Sjanger", "Genres": "Sjanger",
"NameSeasonNumber": "Sesong {0}", "NameSeasonNumber": "Sesong {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artiesten", "Artists": "Artiesten",
"Folders": "Mappen", "Folders": "Mappen",
"Songs": "Titels", "Songs": "Titels",
"TvShows": "TV Shows",
"Shows": "Series", "Shows": "Series",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Seizoen {0}", "NameSeasonNumber": "Seizoen {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Wykonawcy", "Artists": "Wykonawcy",
"Folders": "Foldery", "Folders": "Foldery",
"Songs": "Utwory", "Songs": "Utwory",
"TvShows": "TV Shows",
"Shows": "Seriale", "Shows": "Seriale",
"Genres": "Gatunki", "Genres": "Gatunki",
"NameSeasonNumber": "Sezon {0}", "NameSeasonNumber": "Sezon {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artistas", "Artists": "Artistas",
"Folders": "Pastas", "Folders": "Pastas",
"Songs": "M\u00fasicas", "Songs": "M\u00fasicas",
"TvShows": "TV Shows",
"Shows": "S\u00e9ries", "Shows": "S\u00e9ries",
"Genres": "G\u00eaneros", "Genres": "G\u00eaneros",
"NameSeasonNumber": "Temporada {0}", "NameSeasonNumber": "Temporada {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438", "Artists": "\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438",
"Folders": "\u041f\u0430\u043f\u043a\u0438", "Folders": "\u041f\u0430\u043f\u043a\u0438",
"Songs": "\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438", "Songs": "\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438",
"TvShows": "TV Shows",
"Shows": "\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0438", "Shows": "\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0438",
"Genres": "\u0416\u0430\u043d\u0440\u044b", "Genres": "\u0416\u0430\u043d\u0440\u044b",
"NameSeasonNumber": "\u0421\u0435\u0437\u043e\u043d {0}", "NameSeasonNumber": "\u0421\u0435\u0437\u043e\u043d {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Series", "Shows": "Series",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Serije", "Shows": "Serije",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artister", "Artists": "Artister",
"Folders": "Mappar", "Folders": "Mappar",
"Songs": "L\u00e5tar", "Songs": "L\u00e5tar",
"TvShows": "TV Shows",
"Shows": "Serier", "Shows": "Serier",
"Genres": "Genrer", "Genres": "Genrer",
"NameSeasonNumber": "S\u00e4song {0}", "NameSeasonNumber": "S\u00e4song {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -27,6 +27,7 @@
"Artists": "\u827a\u672f\u5bb6", "Artists": "\u827a\u672f\u5bb6",
"Folders": "\u6587\u4ef6\u5939", "Folders": "\u6587\u4ef6\u5939",
"Songs": "\u6b4c\u66f2", "Songs": "\u6b4c\u66f2",
"TvShows": "TV Shows",
"Shows": "\u8282\u76ee", "Shows": "\u8282\u76ee",
"Genres": "\u98ce\u683c", "Genres": "\u98ce\u683c",
"NameSeasonNumber": "\u5b63 {0}", "NameSeasonNumber": "\u5b63 {0}",

View File

@ -27,6 +27,7 @@
"Artists": "Artists", "Artists": "Artists",
"Folders": "Folders", "Folders": "Folders",
"Songs": "Songs", "Songs": "Songs",
"TvShows": "TV Shows",
"Shows": "Shows", "Shows": "Shows",
"Genres": "Genres", "Genres": "Genres",
"NameSeasonNumber": "Season {0}", "NameSeasonNumber": "Season {0}",

View File

@ -1,3 +1,3 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("3.2.33.11")] [assembly: AssemblyVersion("3.2.33.12")]

View File

@ -528,7 +528,13 @@ namespace SocketHttpListener.Net
finally finally
{ {
if (s != null) if (s != null)
s.Close(); {
try
{
s.Close();
}
catch { }
}
} }
Unbind(); Unbind();
RemoveConnection(); RemoveConnection();