diff options
Diffstat (limited to 'Emby.Server.Implementations')
13 files changed, 232 insertions, 25 deletions
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index 5bf9c4fc2..ceda0bd64 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -40,6 +40,7 @@ using Jellyfin.MediaEncoding.Hls.Playlist; using Jellyfin.Networking.Manager; using Jellyfin.Networking.Udp; using Jellyfin.Server.Implementations; +using Jellyfin.Server.Implementations.MediaSegments; using MediaBrowser.Common; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Events; @@ -552,6 +553,8 @@ namespace Emby.Server.Implementations serviceCollection.AddScoped<DynamicHlsHelper>(); serviceCollection.AddScoped<IClientEventLogger, ClientEventLogger>(); serviceCollection.AddSingleton<IDirectoryService, DirectoryService>(); + + serviceCollection.AddSingleton<IMediaSegmentManager, MediaSegmentManager>(); } /// <summary> @@ -635,6 +638,7 @@ namespace Emby.Server.Implementations UserView.TVSeriesManager = Resolve<ITVSeriesManager>(); UserView.CollectionManager = Resolve<ICollectionManager>(); BaseItem.MediaSourceManager = Resolve<IMediaSourceManager>(); + BaseItem.MediaSegmentManager = Resolve<IMediaSegmentManager>(); CollectionFolder.XmlSerializer = _xmlSerializer; CollectionFolder.ApplicationHost = this; } diff --git a/Emby.Server.Implementations/ConfigurationOptions.cs b/Emby.Server.Implementations/ConfigurationOptions.cs index c06cd8510..f0c267627 100644 --- a/Emby.Server.Implementations/ConfigurationOptions.cs +++ b/Emby.Server.Implementations/ConfigurationOptions.cs @@ -19,8 +19,7 @@ namespace Emby.Server.Implementations { FfmpegAnalyzeDurationKey, "200M" }, { PlaylistsAllowDuplicatesKey, bool.FalseString }, { BindToUnixSocketKey, bool.FalseString }, - { SqliteCacheSizeKey, "20000" }, - { SqliteDisableSecondLevelCacheKey, bool.FalseString } + { SqliteCacheSizeKey, "20000" } }; } } diff --git a/Emby.Server.Implementations/Data/BaseSqliteRepository.cs b/Emby.Server.Implementations/Data/BaseSqliteRepository.cs index 5291999dc..8ed72c208 100644 --- a/Emby.Server.Implementations/Data/BaseSqliteRepository.cs +++ b/Emby.Server.Implementations/Data/BaseSqliteRepository.cs @@ -56,7 +56,7 @@ namespace Emby.Server.Implementations.Data /// <summary> /// Gets the journal size limit. <see href="https://www.sqlite.org/pragma.html#pragma_journal_size_limit" />. - /// The default (-1) is overriden to prevent unconstrained WAL size, as reported by users. + /// The default (-1) is overridden to prevent unconstrained WAL size, as reported by users. /// </summary> /// <value>The journal size limit.</value> protected virtual int? JournalSizeLimit => 134_217_728; // 128MiB diff --git a/Emby.Server.Implementations/Localization/Core/en-US.json b/Emby.Server.Implementations/Localization/Core/en-US.json index 1a69627fa..d1410ef5e 100644 --- a/Emby.Server.Implementations/Localization/Core/en-US.json +++ b/Emby.Server.Implementations/Localization/Core/en-US.json @@ -122,6 +122,8 @@ "TaskCleanTranscodeDescription": "Deletes transcode files more than one day old.", "TaskRefreshChannels": "Refresh Channels", "TaskRefreshChannelsDescription": "Refreshes internet channel information.", + "TaskDownloadMissingLyrics": "Download missing lyrics", + "TaskDownloadMissingLyricsDescription": "Downloads lyrics for songs", "TaskDownloadMissingSubtitles": "Download missing subtitles", "TaskDownloadMissingSubtitlesDescription": "Searches the internet for missing subtitles based on metadata configuration.", "TaskOptimizeDatabase": "Optimize database", diff --git a/Emby.Server.Implementations/Localization/Core/enm.json b/Emby.Server.Implementations/Localization/Core/enm.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/Emby.Server.Implementations/Localization/Core/enm.json @@ -0,0 +1 @@ +{} diff --git a/Emby.Server.Implementations/Localization/Core/fr.json b/Emby.Server.Implementations/Localization/Core/fr.json index a13ee48d5..e8c0f7fc3 100644 --- a/Emby.Server.Implementations/Localization/Core/fr.json +++ b/Emby.Server.Implementations/Localization/Core/fr.json @@ -15,7 +15,7 @@ "Favorites": "Favoris", "Folders": "Dossiers", "Genres": "Genres", - "HeaderAlbumArtists": "Artistes de l'album", + "HeaderAlbumArtists": "Artistes d'albums", "HeaderContinueWatching": "Continuer de regarder", "HeaderFavoriteAlbums": "Albums favoris", "HeaderFavoriteArtists": "Artistes préférés", diff --git a/Emby.Server.Implementations/Localization/Core/km.json b/Emby.Server.Implementations/Localization/Core/km.json index 02f9d4443..5d10975f3 100644 --- a/Emby.Server.Implementations/Localization/Core/km.json +++ b/Emby.Server.Implementations/Localization/Core/km.json @@ -1,3 +1,133 @@ { - "Albums": "Albums" + "Albums": "អាលប៊ុម", + "MessageApplicationUpdatedTo": "ម៉ាស៊ីនមេនៃJellyfinត្រូវបានអាប់ដេតទៅកាន់ {0}", + "MessageNamedServerConfigurationUpdatedWithValue": "ការកំណត់ម៉ាស៊ីនមេ ផ្នែក {0} ត្រូវបានអាប់ដេត", + "MessageServerConfigurationUpdated": "ការកំណត់ម៉ាស៊ីនមេត្រូវបានអាប់ដេត", + "AppDeviceValues": "កម្មវិធី: {0}, ឧបករណ៍: {1}", + "MixedContent": "មាតិកាចម្រុះ", + "UserLockedOutWithName": "អ្នកប្រើប្រាស់ {0} ត្រូវបានផ្អាក", + "Application": "កម្មវិធី", + "Artists": "សិល្បករ", + "AuthenticationSucceededWithUserName": "{0} បានផ្ទៀងផ្ទាត់ដោយជោគជ័យ", + "Books": "សៀវភៅ", + "NameSeasonNumber": "រដូវកាលទី {0}", + "NotificationOptionPluginInstalled": "Plugin បានដំឡើងរួច", + "CameraImageUploadedFrom": "រូបភាពកាមេរ៉ាថ្មីត្រូវបានបង្ហោះពី {0}", + "Channels": "ប៉ុស្ត៍", + "ChapterNameValue": "ជំពូក {0}", + "Collections": "បណ្តុំ", + "External": "ខាងក្រៅ", + "Default": "លំនាំដើម", + "NotificationOptionInstallationFailed": "ការដំឡើងមិនបានសម្រេច", + "DeviceOfflineWithName": "{0} បានផ្តាច់", + "Folders": "ថតឯកសារ", + "DeviceOnlineWithName": "{0} បានភ្ចាប់", + "HearingImpaired": "ខ្សោយការស្តាប់", + "HomeVideos": "វីឌីអូថតខ្លួនឯង", + "Favorites": "ចំណូលចិត្ត", + "HeaderFavoriteEpisodes": "ភាគដែលចូលចិត្ត", + "Forced": "បង្ខំ", + "Genres": "ប្រភេទ", + "HeaderFavoriteArtists": "សិល្បករដែលចូលចិត្ត", + "NotificationOptionApplicationUpdateAvailable": "កម្មវិធី យើងអាចអាប់ដេតបាន", + "NotificationOptionApplicationUpdateInstalled": "កម្មវិធី ដែលបានដំឡើងរួច", + "NotificationOptionAudioPlaybackStopped": "ការចាក់សម្លេងបានផ្អាក", + "HeaderContinueWatching": "បន្តមើល", + "HeaderFavoriteAlbums": "អាល់ប៊ុមដែលចូលចិត្ត", + "HeaderFavoriteShows": "រឿងភាគដែលចូលចិត្ត", + "NewVersionIsAvailable": "មានជំនាន់ថ្មី ម៉ាស៊ីនមេJellyfin អាចទាញយកបាន.", + "HeaderAlbumArtists": "សិល្បករអាល់ប៊ុម", + "NotificationOptionCameraImageUploaded": "រូបភាពពីកាំមេរ៉ាបានអាប់ឡូតរួច", + "HeaderFavoriteSongs": "ចម្រៀងដែលចូលចិត្ត", + "HeaderNextUp": "បន្ទាប់", + "HeaderLiveTV": "ទូរទស្សន៍ផ្សាយផ្ទាល់", + "Movies": "រឿង", + "HeaderRecordingGroups": "ក្រុមនៃការថត", + "Music": "តន្ត្រី", + "Inherit": "មរតក", + "MusicVideos": "វីដេអូតន្ត្រី", + "NameInstallFailed": "{0} ការដំឡើងបានបរាជ័យ", + "NotificationOptionNewLibraryContent": "មាតិកាថ្មីៗត្រូវបានបន្ថែម", + "ItemAddedWithName": "{0} ត្រូវបានបន្ថែមទៅបណ្ណាល័យ", + "NameSeasonUnknown": "រដូវកាលមិនច្បាស់លាស់", + "ItemRemovedWithName": "{0} ត្រូវបានដកចេញពីបណ្ណាល័យ", + "LabelIpAddressValue": "លេខ IP: {0}", + "LabelRunningTimeValue": "ពេលវេលាកំពុងដំណើរការ: {0}", + "Latest": "ចុងក្រោយ", + "NotificationOptionAudioPlayback": "ការចាក់សំឡេងបានចាប់ផ្ដើម", + "NotificationOptionPluginError": "Plugin មិនដំណើរការ", + "NotificationOptionPluginUninstalled": "Plugin បានលុបចេញរួច", + "MessageApplicationUpdated": "ម៉ាស៊ីនមេនៃJellyfinត្រូវបានអាប់ដេត", + "NotificationOptionPluginUpdateInstalled": "Plugin អាប់ដេតបានដំឡើងរួច", + "NotificationOptionUserLockedOut": "អ្នកប្រើប្រាស់ត្រូវបានជាប់គាំង", + "NotificationOptionServerRestartRequired": "តម្រូវឱ្យចាប់ផ្ដើមម៉ាស៊ីនមេឡើងវិញ", + "Photos": "រូបថត", + "Playlists": "បញ្ជីចាក់", + "Plugin": "Plugin", + "PluginInstalledWithName": "{0} ត្រូវបានដំឡើង", + "NotificationOptionTaskFailed": "កិច្ចការដែលបានគ្រោងទុកបានបរាជ័យ", + "PluginUpdatedWithName": "{0} ត្រូវបានអាប់ដេត", + "NotificationOptionVideoPlayback": "ការចាក់វីដេអូបានចាប់ផ្តើម", + "Songs": "ចម្រៀង", + "ScheduledTaskStartedWithName": "{0} បានចាប់ផ្តើម", + "NotificationOptionVideoPlaybackStopped": "ការចាក់វីដេអូបានបញ្ឈប់", + "PluginUninstalledWithName": "{0} ត្រូវបានលុបចេញ", + "Shows": "រឿងភាគ", + "ProviderValue": "អ្នកផ្តល់សេវា: {0}", + "SubtitleDownloadFailureFromForItem": "សាប់ថាយថលបានបរាជ័យក្នុងការទាញយកពី {0} នៃ {1}", + "Sync": "ធ្វើអោយដំណាលគ្នា", + "System": "ប្រព័ន្ធ", + "TvShows": "កម្មវិធីទូរទស្សន៍", + "ScheduledTaskFailedWithName": "{0} បានបរាជ័យ", + "Undefined": "មិនបានកំណត់", + "User": "អ្នកប្រើប្រាស់", + "UserCreatedWithName": "អ្នកប្រើប្រាស់ {0} ត្រូវបានបង្កើតឡើង", + "ServerNameNeedsToBeRestarted": "{0} ចាំបាច់ត្រូវចាប់ផ្តើមឡើងវិញ", + "StartupEmbyServerIsLoading": "ម៉ាស៊ីនមេJellyfin កំពុងដំណើរការ. សូមព្យាយាមម្តងទៀតក្នុងពេលឆាប់ៗនេះ.", + "UserDeletedWithName": "អ្នកប្រើប្រាស់ {0} ត្រូវបានលុបចេញ", + "UserOnlineFromDevice": "{0} បានឃើញអនឡានពី {1}", + "UserDownloadingItemWithValues": "{0} កំពុងទាញយក {1}", + "UserOfflineFromDevice": "{0} បានផ្តាច់ចេញពី {1}", + "UserStartedPlayingItemWithValues": "{0} កំពុងចាក់ {1} នៅលើ {2}", + "TaskRefreshChapterImagesDescription": "បង្កើតរូបភាពតូចៗសម្រាប់វីដេអូដែលមានតាមជំពូក.", + "VersionNumber": "កំណែ {0}", + "TasksMaintenanceCategory": "តំហែរទាំ", + "TasksLibraryCategory": "បណ្ណាល័យ", + "TasksApplicationCategory": "កម្មវិធី", + "TaskCleanActivityLog": "សម្អាតកំណត់ហេតុសកម្មភាព", + "UserPasswordChangedWithName": "ពាក្យសម្ងាត់ត្រូវបានផ្លាស់ប្តូរសម្រាប់អ្នកប្រើប្រាស់ {0}", + "TaskCleanCache": "សម្អាតបញ្ជីឃ្លាំងសម្ងាត់", + "TaskRefreshChapterImages": "ដកស្រង់រូបភាពតាមជំពូក", + "UserPolicyUpdatedWithName": "គោលការណ៍អ្នកប្រើប្រាស់ត្រូវបានធ្វើបច្ចុប្បន្នភាពសម្រាប់ {0}", + "UserStoppedPlayingItemWithValues": "{0} បានបញ្ចប់ការចាក់ {1} នៅលើ {2}", + "ValueHasBeenAddedToLibrary": "{0} ត្រូវបានបញ្ចូលទៅក្នុងបណ្ណាល័យរឿងរបស់អ្នក", + "ValueSpecialEpisodeName": "ពិសេស - {0}", + "TasksChannelsCategory": "ប៉ុស្តតាមអ៊ីនធឺណិត", + "TaskAudioNormalization": "ធ្វើឱ្យមានតន្ត្រីមានសម្លេងស្មើគ្នា", + "TaskCleanActivityLogDescription": "លុបកំណត់ហេតុសកម្មភាពចាស់ជាងអាយុដែលបានកំណត់រចនាសម្ព័ន្ធ.", + "TaskCleanCacheDescription": "លុបឯកសារឃ្លាំងសម្ងាត់លែងត្រូវការដោយប្រព័ន្ធ.", + "TaskRefreshLibraryDescription": "ស្កេនបណ្ណាល័យរឿងរបស់អ្នក សម្រាប់ឯកសារថ្មីៗ និងmetadata ឡើងវិញ.", + "TaskCleanLogsDescription": "លុបឯកសារកំណត់ហេតុដែលមានអាយុកាលលើសពី {0} ថ្ងៃ.", + "TaskRefreshPeopleDescription": "ធ្វើបច្ចុប្បន្នភាព metadata សម្រាប់តួសម្តែង និងអ្នកដឹកនាំនៅក្នុងបណ្ណាល័យរឿងរបស់អ្នក.", + "TaskOptimizeDatabaseDescription": "បង្រួម Database និង Truncate free space. ដំណើរការកិច្ចការនេះ បន្ទាប់ពីការស្កេនបណ្ណាល័យ ឬធ្វើការផ្លាស់ប្តូរផ្សេងទៀត ដែលបញ្ជាក់ថា ការកែប្រែ Database អាចធ្វើឱ្យដំណើរការប្រសើរឡើង.", + "TaskRefreshTrickplayImages": "បង្កើតបណ្តុំរូបភាពតាម Trickplay", + "TaskRefreshTrickplayImagesDescription": "បង្កើត trickplay previews សម្រាប់វីដេអូក្នុងបណ្ណាល័យដែលបានបង្ហាញ.", + "TaskKeyframeExtractorDescription": "ស្រង់យកFrame គន្លឹះៗពីវីដេអូ ដើម្បីបង្កើតបញ្ជីចាក់ HLS ច្បាស់លាស់ជាងមុន. កិច្ចការនេះអាចនឹងដំណើរការយូរ.", + "FailedLoginAttemptWithUserName": "បរាជ័យក្នុងការព្យាយាមចូលពី {0}", + "TaskCleanTranscode": "សម្អាតថតឯកសារ Transcode", + "TaskRefreshChannelsDescription": "Refreshes ព័ត៌មានបណ្តាញអ៊ីនធឺណិត.", + "TaskDownloadMissingSubtitles": "ទាញយកសាប់ថាយថលដែលបាត់", + "TaskRefreshChannels": "Refresh ឆានែល", + "TaskKeyframeExtractor": "ការញែក Keyframe", + "TaskAudioNormalizationDescription": "ស្កែនឯកសារសម្រាប់ធ្វើឱ្យមានតន្ត្រីមានសម្លេងស្មើគ្នា.", + "TaskRefreshLibrary": "ស្កេនបណ្ណាល័យរឿង", + "TaskCleanLogs": "សម្អាត Log Directory", + "TaskRefreshPeople": "Refresh អ្នកប្រើប្រាស់", + "TaskUpdatePlugins": "ធ្វើបច្ចុប្បន្នភាព Plugins", + "TaskUpdatePluginsDescription": "ទាញយក និងដំឡើងបច្ចុប្បន្នភាពសម្រាប់Plugins ដែលត្រូវបាន Config ដើម្បីធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិ.", + "TaskCleanTranscodeDescription": "លុបឯកសារ Transcode ដែលលើសពីមួយថ្ងៃ.", + "TaskDownloadMissingSubtitlesDescription": "ស្វែងរកតាមអ៊ីនធឺណិត សម្រាប់សាប់ថាយថល ដែលបាត់ដោយផ្អែកលើ metadata.", + "TaskOptimizeDatabase": "ធ្វើឱ្យ Database ប្រសើរឡើង", + "TaskCleanCollectionsAndPlaylistsDescription": "លុបរបស់របរចេញពីបណ្តុំ និងបញ្ជីចាក់ដែលលែងមាន.", + "TaskCleanCollectionsAndPlaylists": "សម្អាតបណ្តុំ និងបញ្ជីចាក់" } diff --git a/Emby.Server.Implementations/Localization/Core/kw.json b/Emby.Server.Implementations/Localization/Core/kw.json new file mode 100644 index 000000000..d6ff58785 --- /dev/null +++ b/Emby.Server.Implementations/Localization/Core/kw.json @@ -0,0 +1,63 @@ +{ + "Collections": "Kuntellow", + "DeviceOfflineWithName": "{0} re anjunyas", + "External": "A-ves", + "Folders": "Plegellow", + "HeaderFavoriteAlbums": "Albomow Drudh", + "HeaderFavoriteArtists": "Artydhyon Drudh", + "HeaderFavoriteEpisodes": "Towlennow Drudh", + "HeaderFavoriteSongs": "Kanow Drudh", + "HeaderRecordingGroups": "Bagasow Rekordya", + "HearingImpaired": "Klewans Aperys", + "HomeVideos": "Gwydhyow Tre", + "Inherit": "Herya", + "LabelRunningTimeValue": "Prys ow ponya: {0}", + "Latest": "Diwettha", + "MessageApplicationUpdated": "Servell Jellyfin re beu nowedhys", + "MessageApplicationUpdatedTo": "Servell Jellyfin re beu nowedhys dhe {0}", + "MessageNamedServerConfigurationUpdatedWithValue": "Rann dewisyans servell {0} re beu nowedhys", + "MixedContent": "Dalgh kemmyskys", + "Movies": "Fylmow", + "MusicVideos": "Gwydhyow Ilow", + "NameSeasonUnknown": "Seson Anwodhvedhys", + "NotificationOptionAudioPlayback": "Seneans dallethys", + "NotificationOptionAudioPlaybackStopped": "Seneans hedhys", + "NotificationOptionPluginError": "Defowt ystynnans", + "NotificationOptionPluginUninstalled": "Ystynnans anynstallys", + "NotificationOptionPluginUpdateInstalled": "Nowedheans ystynnans ynstallys", + "Application": "Gweythres", + "Favorites": "Drudh", + "Forced": "Konstrynys", + "Albums": "Albomow", + "Books": "Lyvrow", + "Channels": "Gothi", + "AppDeviceValues": "App: {0}, Devis: {1}", + "Artists": "Artydhyon", + "HeaderAlbumArtists": "Albom artydhyon", + "HeaderNextUp": "Nessa", + "CameraImageUploadedFrom": "Skeusen kamera nowydh re beu ughkargys a-dhyworth {0}", + "ChapterNameValue": "Chaptra {0}", + "FailedLoginAttemptWithUserName": "Assay omgelm fyllys a-dhyworth {0}", + "AuthenticationSucceededWithUserName": "{0} omgelmys yn sewen", + "Default": "Defowt", + "DeviceOnlineWithName": "{0} yw junys", + "ItemRemovedWithName": "{0} a veu dileys a-dhyworth an lyverva", + "LabelIpAddressValue": "Trigva PK: {)}", + "Music": "Ilow", + "HeaderContinueWatching": "Pesya ow kweles", + "NameSeasonNumber": "Seson {0}", + "NotificationOptionApplicationUpdateInstalled": "Nowedheans gweythres ynstallys", + "NotificationOptionCameraImageUploaded": "Skeusen kamera ughkargys", + "HeaderFavoriteShows": "Diskwedhyansow Drudh", + "HeaderLiveTV": "PW Yn Fyw", + "MessageServerConfigurationUpdated": "Dewisyans servell re beu nowedhys", + "ItemAddedWithName": "{0} a veu keworrys dhe'n lyverva", + "NameInstallFailed": "{0} ynstallyans fyllys", + "NotificationOptionNewLibraryContent": "Dalgh nowydh keworrys", + "NewVersionIsAvailable": "Yma versyon nowydh a Servell Jellyfin neb yw kavadow rag iskarga.", + "NotificationOptionApplicationUpdateAvailable": "Nowedheans gweythres kavadow", + "NotificationOptionInstallationFailed": "Defowt ynstallyans", + "Genres": "Eghennow", + "NotificationOptionPluginInstalled": "Ystynnans ynstallys", + "NotificationOptionServerRestartRequired": "Dastalleth servell yw res" +} diff --git a/Emby.Server.Implementations/Localization/Core/nl.json b/Emby.Server.Implementations/Localization/Core/nl.json index 4f076b680..39e7cd546 100644 --- a/Emby.Server.Implementations/Localization/Core/nl.json +++ b/Emby.Server.Implementations/Localization/Core/nl.json @@ -25,7 +25,7 @@ "HeaderLiveTV": "Live TV", "HeaderNextUp": "Volgende", "HeaderRecordingGroups": "Opnamegroepen", - "HomeVideos": "Thuis video's", + "HomeVideos": "Homevideo's", "Inherit": "Erven", "ItemAddedWithName": "{0} is toegevoegd aan de bibliotheek", "ItemRemovedWithName": "{0} is verwijderd uit de bibliotheek", @@ -130,5 +130,7 @@ "TaskCleanCollectionsAndPlaylists": "Collecties en afspeellijsten opruimen", "TaskCleanCollectionsAndPlaylistsDescription": "Verwijdert niet langer bestaande items uit collecties en afspeellijsten.", "TaskAudioNormalization": "Geluidsnormalisatie", - "TaskAudioNormalizationDescription": "Scant bestanden op gegevens voor geluidsnormalisatie." + "TaskAudioNormalizationDescription": "Scant bestanden op gegevens voor geluidsnormalisatie.", + "TaskDownloadMissingLyrics": "Ontbrekende liedteksten downloaden", + "TaskDownloadMissingLyricsDescription": "Downloadt liedteksten" } diff --git a/Emby.Server.Implementations/Localization/Core/pl.json b/Emby.Server.Implementations/Localization/Core/pl.json index f36385be2..a24a837ab 100644 --- a/Emby.Server.Implementations/Localization/Core/pl.json +++ b/Emby.Server.Implementations/Localization/Core/pl.json @@ -130,5 +130,7 @@ "TaskCleanCollectionsAndPlaylistsDescription": "Usuwa elementy z kolekcji i list odtwarzania, które już nie istnieją.", "TaskCleanCollectionsAndPlaylists": "Oczyść kolekcje i listy odtwarzania", "TaskAudioNormalization": "Normalizacja dźwięku", - "TaskAudioNormalizationDescription": "Skanuje pliki w poszukiwaniu danych normalizacji dźwięku." + "TaskAudioNormalizationDescription": "Skanuje pliki w poszukiwaniu danych normalizacji dźwięku.", + "TaskDownloadMissingLyrics": "Pobierz brakujące słowa", + "TaskDownloadMissingLyricsDescription": "Pobierz słowa piosenek" } diff --git a/Emby.Server.Implementations/Localization/Core/ro.json b/Emby.Server.Implementations/Localization/Core/ro.json index cd0120fc7..2f52aafa3 100644 --- a/Emby.Server.Implementations/Localization/Core/ro.json +++ b/Emby.Server.Implementations/Localization/Core/ro.json @@ -125,5 +125,9 @@ "TaskKeyframeExtractor": "Extractor de cadre cheie", "HearingImpaired": "Ascultare Impară", "TaskRefreshTrickplayImages": "Generează imagini Trickplay", - "TaskRefreshTrickplayImagesDescription": "Generează previzualizările trickplay pentru videourile din librăriile selectate." + "TaskRefreshTrickplayImagesDescription": "Generează previzualizările trickplay pentru videourile din librăriile selectate.", + "TaskAudioNormalizationDescription": "Scanează fișiere pentru date necesare normalizării sunetului.", + "TaskAudioNormalization": "Normalizare sunet", + "TaskCleanCollectionsAndPlaylists": "Curăță colecțiile și listele de redare", + "TaskCleanCollectionsAndPlaylistsDescription": "Elimină elementele care nu mai există din colecții și liste de redare." } diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs index 3dda5fdee..681c252b6 100644 --- a/Emby.Server.Implementations/Session/SessionManager.cs +++ b/Emby.Server.Implementations/Session/SessionManager.cs @@ -237,7 +237,7 @@ namespace Emby.Server.Implementations.Session ArgumentException.ThrowIfNullOrEmpty(deviceId); var activityDate = DateTime.UtcNow; - var session = await GetSessionInfo(appName, appVersion, deviceId, deviceName, remoteEndPoint, user).ConfigureAwait(false); + var session = GetSessionInfo(appName, appVersion, deviceId, deviceName, remoteEndPoint, user); var lastActivityDate = session.LastActivityDate; session.LastActivityDate = activityDate; @@ -435,7 +435,7 @@ namespace Emby.Server.Implementations.Session /// <param name="remoteEndPoint">The remote end point.</param> /// <param name="user">The user.</param> /// <returns>SessionInfo.</returns> - private async Task<SessionInfo> GetSessionInfo( + private SessionInfo GetSessionInfo( string appName, string appVersion, string deviceId, @@ -453,7 +453,7 @@ namespace Emby.Server.Implementations.Session if (!_activeConnections.TryGetValue(key, out var sessionInfo)) { - sessionInfo = await CreateSession(key, appName, appVersion, deviceId, deviceName, remoteEndPoint, user).ConfigureAwait(false); + sessionInfo = CreateSession(key, appName, appVersion, deviceId, deviceName, remoteEndPoint, user); _activeConnections[key] = sessionInfo; } @@ -478,7 +478,7 @@ namespace Emby.Server.Implementations.Session return sessionInfo; } - private async Task<SessionInfo> CreateSession( + private SessionInfo CreateSession( string key, string appName, string appVersion, @@ -508,7 +508,7 @@ namespace Emby.Server.Implementations.Session deviceName = "Network Device"; } - var deviceOptions = await _deviceManager.GetDeviceOptions(deviceId).ConfigureAwait(false); + var deviceOptions = _deviceManager.GetDeviceOptions(deviceId); if (string.IsNullOrEmpty(deviceOptions.CustomName)) { sessionInfo.DeviceName = deviceName; @@ -1297,7 +1297,7 @@ namespace Emby.Server.Implementations.Session return new[] { item }; } - private IEnumerable<BaseItem> TranslateItemForInstantMix(Guid id, User user) + private List<BaseItem> TranslateItemForInstantMix(Guid id, User user) { var item = _libraryManager.GetItemById(id); @@ -1307,7 +1307,7 @@ namespace Emby.Server.Implementations.Session return new List<BaseItem>(); } - return _musicManager.GetInstantMixFromItem(item, user, new DtoOptions(false) { EnableImages = false }); + return _musicManager.GetInstantMixFromItem(item, user, new DtoOptions(false) { EnableImages = false }).ToList(); } /// <inheritdoc /> @@ -1520,12 +1520,12 @@ namespace Emby.Server.Implementations.Session // This should be validated above, but if it isn't don't delete all tokens. ArgumentException.ThrowIfNullOrEmpty(deviceId); - var existing = (await _deviceManager.GetDevices( + var existing = _deviceManager.GetDevices( new DeviceQuery { DeviceId = deviceId, UserId = user.Id - }).ConfigureAwait(false)).Items; + }).Items; foreach (var auth in existing) { @@ -1553,12 +1553,12 @@ namespace Emby.Server.Implementations.Session ArgumentException.ThrowIfNullOrEmpty(accessToken); - var existing = (await _deviceManager.GetDevices( + var existing = _deviceManager.GetDevices( new DeviceQuery { Limit = 1, AccessToken = accessToken - }).ConfigureAwait(false)).Items; + }).Items; if (existing.Count > 0) { @@ -1597,10 +1597,10 @@ namespace Emby.Server.Implementations.Session { CheckDisposed(); - var existing = await _deviceManager.GetDevices(new DeviceQuery + var existing = _deviceManager.GetDevices(new DeviceQuery { UserId = userId - }).ConfigureAwait(false); + }); foreach (var info in existing.Items) { @@ -1787,11 +1787,11 @@ namespace Emby.Server.Implementations.Session /// <inheritdoc /> public async Task<SessionInfo> GetSessionByAuthenticationToken(string token, string deviceId, string remoteEndpoint) { - var items = (await _deviceManager.GetDevices(new DeviceQuery + var items = _deviceManager.GetDevices(new DeviceQuery { AccessToken = token, Limit = 1 - }).ConfigureAwait(false)).Items; + }).Items; if (items.Count == 0) { diff --git a/Emby.Server.Implementations/TV/TVSeriesManager.cs b/Emby.Server.Implementations/TV/TVSeriesManager.cs index c1a615666..34c9e86f2 100644 --- a/Emby.Server.Implementations/TV/TVSeriesManager.cs +++ b/Emby.Server.Implementations/TV/TVSeriesManager.cs @@ -91,7 +91,7 @@ namespace Emby.Server.Implementations.TV } string? presentationUniqueKey = null; - int? limit = request.Limit; + int? limit = null; if (!request.SeriesId.IsNullOrEmpty()) { if (_libraryManager.GetItemById(request.SeriesId.Value) is Series series) |
