lastfmService = $lastfmService; $this->youTubeService = $youTubeService; $this->iTunesService = $iTunesService; $this->mediaCacheService = $mediaCacheService; $this->settingRepository = $settingRepository; $this->playlistRepository = $playlistRepository; $this->interactionRepository = $interactionRepository; $this->userRepository = $userRepository; $this->applicationInformationService = $applicationInformationService; $this->currentUser = $currentUser; } public function index() { return response()->json($this->mediaCacheService->get() + [ 'settings' => $this->currentUser->is_admin ? $this->settingRepository->getAllAsKeyValueArray() : [], 'playlists' => $this->playlistRepository->getAllByCurrentUser(), 'interactions' => $this->interactionRepository->getAllByCurrentUser(), 'recentlyPlayed' => $this->interactionRepository->getRecentlyPlayed( $this->currentUser, self::RECENTLY_PLAYED_EXCERPT_COUNT ), 'users' => $this->currentUser->is_admin ? $this->userRepository->getAll() : [], 'currentUser' => $this->currentUser, 'useLastfm' => $this->lastfmService->used(), 'useYouTube' => $this->youTubeService->enabled(), 'useiTunes' => $this->iTunesService->used(), 'allowDownload' => config('koel.download.allow'), 'supportsTranscoding' => config('koel.streaming.ffmpeg_path') && is_executable(config('koel.streaming.ffmpeg_path')), 'cdnUrl' => static_url(), 'currentVersion' => koel_version(), 'latestVersion' => $this->currentUser->is_admin ? $this->applicationInformationService->getLatestVersionNumber() : koel_version(), ]); } }