Răsfoiți Sursa

Merge remote-tracking branch 'upstream/master' into livetv-ts-fix

crobibero 4 ani în urmă
părinte
comite
41b38c6735

+ 3 - 0
.ci/azure-pipelines-abi.yml

@@ -62,6 +62,7 @@ jobs:
 
       - task: DownloadPipelineArtifact@2
         displayName: 'Download Reference Assembly Build Artifact'
+        enabled: false
         inputs:
           source: "specific"
           artifact: "$(NugetPackageName)"
@@ -73,6 +74,7 @@ jobs:
 
       - task: CopyFiles@2
         displayName: 'Copy Reference Assembly Build Artifact'
+        enabled: false
         inputs:
           sourceFolder: $(System.ArtifactsDirectory)/current-artifacts
           contents: '**/*.dll'
@@ -83,6 +85,7 @@ jobs:
 
       - task: DotNetCoreCLI@2
         displayName: 'Execute ABI Compatibility Check Tool'
+        enabled: false
         inputs:
           command: custom
           custom: compat

+ 3 - 1
Emby.Server.Implementations/Localization/Core/cs.json

@@ -113,5 +113,7 @@
     "TasksChannelsCategory": "Internetové kanály",
     "TasksApplicationCategory": "Aplikace",
     "TasksLibraryCategory": "Knihovna",
-    "TasksMaintenanceCategory": "Údržba"
+    "TasksMaintenanceCategory": "Údržba",
+    "TaskCleanActivityLogDescription": "Smazat záznamy o aktivitě, které jsou starší než zadaná doba.",
+    "TaskCleanActivityLog": "Smazat záznam aktivity"
 }

+ 4 - 2
Emby.Server.Implementations/Localization/Core/ja.json

@@ -96,7 +96,7 @@
     "TaskRefreshLibraryDescription": "メディアライブラリをスキャンして新しいファイルを探し、メタデータをリフレッシュします。",
     "TaskRefreshLibrary": "メディアライブラリのスキャン",
     "TaskCleanCacheDescription": "不要なキャッシュを消去します。",
-    "TaskCleanCache": "キャッシュの掃除",
+    "TaskCleanCache": "キャッシュを消去",
     "TasksChannelsCategory": "ネットチャンネル",
     "TasksApplicationCategory": "アプリケーション",
     "TasksLibraryCategory": "ライブラリ",
@@ -112,5 +112,7 @@
     "TaskDownloadMissingSubtitlesDescription": "メタデータ構成に基づいて、欠落している字幕をインターネットで検索します。",
     "TaskRefreshChapterImagesDescription": "チャプターのあるビデオのサムネイルを作成します。",
     "TaskRefreshChapterImages": "チャプター画像を抽出する",
-    "TaskDownloadMissingSubtitles": "不足している字幕をダウンロードする"
+    "TaskDownloadMissingSubtitles": "不足している字幕をダウンロードする",
+    "TaskCleanActivityLogDescription": "設定された期間よりも古いアクティビティの履歴を削除します。",
+    "TaskCleanActivityLog": "アクティビティの履歴を消去"
 }

+ 21 - 21
Emby.Server.Implementations/Localization/Core/sl-SI.json

@@ -3,20 +3,20 @@
     "AppDeviceValues": "Aplikacija: {0}, Naprava: {1}",
     "Application": "Aplikacija",
     "Artists": "Izvajalci",
-    "AuthenticationSucceededWithUserName": "{0} preverjanje pristnosti uspešno",
+    "AuthenticationSucceededWithUserName": "{0} se je uspešno prijavil",
     "Books": "Knjige",
-    "CameraImageUploadedFrom": "Nova fotografija je bila naložena z {0}",
+    "CameraImageUploadedFrom": "Nova fotografija je bila naložena iz {0}",
     "Channels": "Kanali",
     "ChapterNameValue": "Poglavje {0}",
     "Collections": "Zbirke",
     "DeviceOfflineWithName": "{0} je prekinil povezavo",
     "DeviceOnlineWithName": "{0} je povezan",
-    "FailedLoginAttemptWithUserName": "Neuspešen poskus prijave z {0}",
+    "FailedLoginAttemptWithUserName": "Neuspešen poskus prijave iz {0}",
     "Favorites": "Priljubljeno",
     "Folders": "Mape",
     "Genres": "Zvrsti",
     "HeaderAlbumArtists": "Izvajalci albuma",
-    "HeaderContinueWatching": "Nadaljuj gledanje",
+    "HeaderContinueWatching": "Nadaljuj z ogledom",
     "HeaderFavoriteAlbums": "Priljubljeni albumi",
     "HeaderFavoriteArtists": "Priljubljeni izvajalci",
     "HeaderFavoriteEpisodes": "Priljubljene epizode",
@@ -32,23 +32,23 @@
     "LabelIpAddressValue": "IP naslov: {0}",
     "LabelRunningTimeValue": "Čas trajanja: {0}",
     "Latest": "Najnovejše",
-    "MessageApplicationUpdated": "Jellyfin Server je bil posodobljen",
-    "MessageApplicationUpdatedTo": "Jellyfin Server je bil posodobljen na {0}",
-    "MessageNamedServerConfigurationUpdatedWithValue": "Oddelek nastavitve strežnika {0} je bil posodobljen",
+    "MessageApplicationUpdated": "Jellyfin strežnik je bil posodobljen",
+    "MessageApplicationUpdatedTo": "Jellyfin strežnik je bil posodobljen na {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Oddelek nastavitev {0} je bil posodobljen",
     "MessageServerConfigurationUpdated": "Nastavitve strežnika so bile posodobljene",
-    "MixedContent": "Razne vsebine",
+    "MixedContent": "Mešane vsebine",
     "Movies": "Filmi",
     "Music": "Glasba",
     "MusicVideos": "Glasbeni videi",
     "NameInstallFailed": "{0} namestitev neuspešna",
     "NameSeasonNumber": "Sezona {0}",
-    "NameSeasonUnknown": "Season neznana",
+    "NameSeasonUnknown": "Neznana sezona",
     "NewVersionIsAvailable": "Nova različica Jellyfin strežnika je na voljo za prenos.",
     "NotificationOptionApplicationUpdateAvailable": "Posodobitev aplikacije je na voljo",
     "NotificationOptionApplicationUpdateInstalled": "Posodobitev aplikacije je bila nameščena",
-    "NotificationOptionAudioPlayback": "Predvajanje zvoka začeto",
-    "NotificationOptionAudioPlaybackStopped": "Predvajanje zvoka zaustavljeno",
-    "NotificationOptionCameraImageUploaded": "Posnetek kamere naložen",
+    "NotificationOptionAudioPlayback": "Predvajanje zvoka se je začelo",
+    "NotificationOptionAudioPlaybackStopped": "Predvajanje zvoka se je ustavilo",
+    "NotificationOptionCameraImageUploaded": "Fotografija naložena",
     "NotificationOptionInstallationFailed": "Namestitev neuspešna",
     "NotificationOptionNewLibraryContent": "Nove vsebine dodane",
     "NotificationOptionPluginError": "Napaka dodatka",
@@ -56,41 +56,41 @@
     "NotificationOptionPluginUninstalled": "Dodatek odstranjen",
     "NotificationOptionPluginUpdateInstalled": "Posodobitev dodatka nameščena",
     "NotificationOptionServerRestartRequired": "Potreben je ponovni zagon strežnika",
-    "NotificationOptionTaskFailed": "Razporejena naloga neuspešna",
+    "NotificationOptionTaskFailed": "Načrtovano opravilo neuspešno",
     "NotificationOptionUserLockedOut": "Uporabnik zaklenjen",
     "NotificationOptionVideoPlayback": "Predvajanje videa se je začelo",
     "NotificationOptionVideoPlaybackStopped": "Predvajanje videa se je ustavilo",
     "Photos": "Fotografije",
     "Playlists": "Seznami predvajanja",
-    "Plugin": "Plugin",
+    "Plugin": "Dodatek",
     "PluginInstalledWithName": "{0} je bil nameščen",
     "PluginUninstalledWithName": "{0} je bil odstranjen",
     "PluginUpdatedWithName": "{0} je bil posodobljen",
-    "ProviderValue": "Provider: {0}",
+    "ProviderValue": "Ponudnik: {0}",
     "ScheduledTaskFailedWithName": "{0} ni uspelo",
     "ScheduledTaskStartedWithName": "{0} začeto",
     "ServerNameNeedsToBeRestarted": "{0} mora biti ponovno zagnan",
     "Shows": "Serije",
     "Songs": "Pesmi",
-    "StartupEmbyServerIsLoading": "Jellyfin Server se nalaga. Poskusi ponovno kasneje.",
+    "StartupEmbyServerIsLoading": "Jellyfin strežnik se zaganja. Poskusite ponovno kasneje.",
     "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
     "SubtitleDownloadFailureFromForItem": "Neuspešen prenos podnapisov iz {0} za {1}",
     "Sync": "Sinhroniziraj",
-    "System": "System",
+    "System": "Sistem",
     "TvShows": "TV serije",
-    "User": "User",
+    "User": "Uporabnik",
     "UserCreatedWithName": "Uporabnik {0} je bil ustvarjen",
     "UserDeletedWithName": "Uporabnik {0} je bil izbrisan",
     "UserDownloadingItemWithValues": "{0} prenaša {1}",
     "UserLockedOutWithName": "Uporabnik {0} je bil zaklenjen",
     "UserOfflineFromDevice": "{0} je prekinil povezavo z {1}",
-    "UserOnlineFromDevice": "{0} je aktiven iz {1}",
+    "UserOnlineFromDevice": "{0} je aktiven na {1}",
     "UserPasswordChangedWithName": "Geslo za uporabnika {0} je bilo spremenjeno",
     "UserPolicyUpdatedWithName": "Pravilnik uporabe je bil posodobljen za uporabnika {0}",
     "UserStartedPlayingItemWithValues": "{0} predvaja {1} na {2}",
     "UserStoppedPlayingItemWithValues": "{0} je nehal predvajati {1} na {2}",
     "ValueHasBeenAddedToLibrary": "{0} je bil dodan vaši knjižnici",
-    "ValueSpecialEpisodeName": "Poseben - {0}",
+    "ValueSpecialEpisodeName": "Posebna - {0}",
     "VersionNumber": "Različica {0}",
     "TaskDownloadMissingSubtitles": "Prenesi manjkajoče podnapise",
     "TaskRefreshChannelsDescription": "Osveži podatke spletnih kanalov.",
@@ -102,7 +102,7 @@
     "TaskRefreshPeopleDescription": "Osveži metapodatke za igralce in režiserje v vaši knjižnici.",
     "TaskRefreshPeople": "Osveži osebe",
     "TaskCleanLogsDescription": "Izbriše dnevniške datoteke starejše od {0} dni.",
-    "TaskCleanLogs": "Počisti mapo dnevnika",
+    "TaskCleanLogs": "Počisti mapo dnevnikov",
     "TaskRefreshLibraryDescription": "Preišče vašo knjižnico za nove datoteke in osveži metapodatke.",
     "TaskRefreshLibrary": "Preišči knjižnico predstavnosti",
     "TaskRefreshChapterImagesDescription": "Ustvari sličice za poglavja videoposnetkov.",

+ 27 - 0
Jellyfin.Api/Controllers/UserController.cs

@@ -530,6 +530,33 @@ namespace Jellyfin.Api.Controllers
             return result;
         }
 
+        /// <summary>
+        /// Gets the user based on auth token.
+        /// </summary>
+        /// <response code="200">User returned.</response>
+        /// <response code="400">Token is not owned by a user.</response>
+        /// <returns>A <see cref="UserDto"/> for the authenticated user.</returns>
+        [HttpGet("Me")]
+        [Authorize(Policy = Policies.DefaultAuthorization)]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        public ActionResult<UserDto> GetCurrentUser()
+        {
+            var userId = ClaimHelpers.GetUserId(Request.HttpContext.User);
+            if (userId == null)
+            {
+                return BadRequest();
+            }
+
+            var user = _userManager.GetUserById(userId.Value);
+            if (user == null)
+            {
+                return BadRequest();
+            }
+
+            return _userManager.GetUserDto(user);
+        }
+
         private IEnumerable<UserDto> Get(bool? isHidden, bool? isDisabled, bool filterByDevice, bool filterByNetwork)
         {
             var users = _userManager.Users;