From 85870a8c981754d042c48f536331cb270b2f9a49 Mon Sep 17 00:00:00 2001 From: "Y.Tory" <5343692+kagemomiji@users.noreply.github.com> Date: Sat, 30 Mar 2024 03:17:55 +0000 Subject: [PATCH 1/2] kagemomiji/airsonic-advanced#407 add *.view endpoints to RestfulAPI --- .../controller/SubsonicRESTController.java | 148 +++++++++--------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/airsonic-main/src/main/java/org/airsonic/player/controller/SubsonicRESTController.java b/airsonic-main/src/main/java/org/airsonic/player/controller/SubsonicRESTController.java index 79f3688b7..e3069b59d 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/controller/SubsonicRESTController.java +++ b/airsonic-main/src/main/java/org/airsonic/player/controller/SubsonicRESTController.java @@ -172,7 +172,7 @@ public void handleMissingRequestParam(HttpServletRequest request, error(request, response, ErrorCode.MISSING_PARAMETER, "Required param (" + exception.getParameterName() + ") is missing"); } - @RequestMapping("/ping") + @RequestMapping({"/ping", "/ping.view"}) public void ping(HttpServletRequest request, HttpServletResponse response) { Response res = createResponse(); jaxbWriter.writeResponse(request, response, res); @@ -182,7 +182,7 @@ public void ping(HttpServletRequest request, HttpServletResponse response) { /** * CAUTION : this method is required by mobile applications and must not be removed. */ - @RequestMapping("/getLicense") + @RequestMapping({"/getLicense", "/getLicense.view"}) public void getLicense(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); License license = new License(); @@ -199,7 +199,7 @@ public void getLicense(HttpServletRequest request, HttpServletResponse response) } - @RequestMapping("/getMusicFolders") + @RequestMapping({"/getMusicFolders", "/getMusicFolders.view"}) public void getMusicFolders(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); @@ -216,7 +216,7 @@ public void getMusicFolders(HttpServletRequest request, HttpServletResponse resp jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getIndexes") + @RequestMapping({"/getIndexes", "/getIndexes.view"}) public void getIndexes(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Response res = createResponse(); @@ -286,7 +286,7 @@ public void getIndexes(HttpServletRequest request, HttpServletResponse response) jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getGenres") + @RequestMapping({"/getGenres", "/getGenres.view"}) public void getGenres(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); org.subsonic.restapi.Genres genres = new org.subsonic.restapi.Genres(); @@ -303,7 +303,7 @@ public void getGenres(HttpServletRequest request, HttpServletResponse response) jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getSongsByGenre") + @RequestMapping({"/getSongsByGenre", "/getSongsByGenre.view"}) public void getSongsByGenre(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -326,7 +326,7 @@ public void getSongsByGenre(HttpServletRequest request, HttpServletResponse resp jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getArtists") + @RequestMapping({"/getArtists", "/getArtists.view"}) public void getArtists(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -352,7 +352,7 @@ public void getArtists(HttpServletRequest request, HttpServletResponse response) jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getSimilarSongs") + @RequestMapping({"/getSimilarSongs", "/getSimilarSongs.view"}) public void getSimilarSongs(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -379,7 +379,7 @@ public void getSimilarSongs(HttpServletRequest request, HttpServletResponse resp jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getSimilarSongs2") + @RequestMapping({"/getSimilarSongs2", "/getSimilarSongs2.view"}) public void getSimilarSongs2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -407,7 +407,7 @@ public void getSimilarSongs2(HttpServletRequest request, HttpServletResponse res jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getTopSongs") + @RequestMapping({"/getTopSongs", "/getTopSongs.view"}) public void getTopSongs(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -429,7 +429,7 @@ public void getTopSongs(HttpServletRequest request, HttpServletResponse response jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getArtistInfo") + @RequestMapping({"/getArtistInfo", "/getArtistInfo.view"}) public void getArtistInfo(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -465,7 +465,7 @@ public void getArtistInfo(HttpServletRequest request, HttpServletResponse respon jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getArtistInfo2") + @RequestMapping({"/getArtistInfo2", "/getArtistInfo2.view"}) public void getArtistInfo2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -522,7 +522,7 @@ private org.subsonic.restapi.Artist createJaxbArtist(MediaFile artist, String us return result; } - @RequestMapping("/getArtist") + @RequestMapping({"/getArtist", "/getArtist.view"}) public void getArtist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -585,7 +585,7 @@ private T createJaxbPlaylist(T jaxbPla return jaxbPlaylist; } - @RequestMapping("/getAlbum") + @RequestMapping({"/getAlbum", "/getAlbum.view"}) public void getAlbum(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -608,7 +608,7 @@ public void getAlbum(HttpServletRequest request, HttpServletResponse response) t jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getSong") + @RequestMapping({"/getSong", "/getSong.view"}) public void getSong(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -630,7 +630,7 @@ public void getSong(HttpServletRequest request, HttpServletResponse response) th jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getMusicDirectory") + @RequestMapping({"/getMusicDirectory", "/getMusicDirectory.view"}) public void getMusicDirectory(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -675,7 +675,7 @@ public void getMusicDirectory(HttpServletRequest request, HttpServletResponse re jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/search") + @RequestMapping({"/search", "/search.view"}) public void search(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -719,7 +719,7 @@ public void search(HttpServletRequest request, HttpServletResponse response) thr jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/search2") + @RequestMapping({"/search2", "/search2.view"}) public void search2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -758,7 +758,7 @@ public void search2(HttpServletRequest request, HttpServletResponse response) th jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/search3") + @RequestMapping({"/search3", "/search3.view"}) public void search3(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -817,7 +817,7 @@ public void search3(HttpServletRequest request, HttpServletResponse response) th jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getPlaylists") + @RequestMapping({"/getPlaylists", "/getPlaylists.view"}) public void getPlaylists(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); @@ -843,7 +843,7 @@ public void getPlaylists(HttpServletRequest request, HttpServletResponse respons jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getPlaylist") + @RequestMapping({"/getPlaylist", "/getPlaylist.view"}) public void getPlaylist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -872,7 +872,7 @@ public void getPlaylist(HttpServletRequest request, HttpServletResponse response jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/jukeboxControl") + @RequestMapping({"/jukeboxControl", "/jukeboxControl.view"}) public void jukeboxControl(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request, true); @@ -967,7 +967,7 @@ public void jukeboxControl(HttpServletRequest request, HttpServletResponse respo jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/createPlaylist") + @RequestMapping({"/createPlaylist", "/createPlaylist.view"}) public void createPlaylist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request, true); String username = securityService.getCurrentUsername(request); @@ -1008,7 +1008,7 @@ public void createPlaylist(HttpServletRequest request, HttpServletResponse respo writeEmptyResponse(request, response); } - @RequestMapping("/updatePlaylist") + @RequestMapping({"/updatePlaylist", "/updatePlaylist.view"}) public void updatePlaylist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request, true); String username = securityService.getCurrentUsername(request); @@ -1069,7 +1069,7 @@ public void updatePlaylist(HttpServletRequest request, HttpServletResponse respo writeEmptyResponse(request, response); } - @RequestMapping("/deletePlaylist") + @RequestMapping({"/deletePlaylist", "/deletePlaylist.view"}) public void deletePlaylist(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request, true); String username = securityService.getCurrentUsername(request); @@ -1089,7 +1089,7 @@ public void deletePlaylist(HttpServletRequest request, HttpServletResponse respo writeEmptyResponse(request, response); } - @RequestMapping("/getAlbumList") + @RequestMapping({"/getAlbumList", "/getAlbumList.view"}) public void getAlbumList(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1140,7 +1140,7 @@ public void getAlbumList(HttpServletRequest request, HttpServletResponse respons jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getAlbumList2") + @RequestMapping({"/getAlbumList2", "/getAlbumList2.view"}) public void getAlbumList2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -1184,7 +1184,7 @@ public void getAlbumList2(HttpServletRequest request, HttpServletResponse respon jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getRandomSongs") + @RequestMapping({"/getRandomSongs", "/getRandomSongs.view"}) public void getRandomSongs(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1208,7 +1208,7 @@ public void getRandomSongs(HttpServletRequest request, HttpServletResponse respo jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getVideos") + @RequestMapping({"/getVideos", "/getVideos.view"}) public void getVideos(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1227,7 +1227,7 @@ public void getVideos(HttpServletRequest request, HttpServletResponse response) jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getNowPlaying") + @RequestMapping({"/getNowPlaying", "/getNowPlaying.view"}) public void getNowPlaying(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); NowPlaying result = new NowPlaying(); @@ -1334,7 +1334,7 @@ private String findCoverArt(MediaFile mediaFile, MediaFile parent) { return null; } - @RequestMapping("/download") + @RequestMapping({"/download", "/download.view"}) public ResponseEntity download(Principal p, @RequestParam(required = false, name = "id") String id, @RequestParam(required = false, name = "playlist") Integer playlist, @@ -1385,7 +1385,7 @@ public ResponseEntity apiException(ServletWebRequest swr, APIException e .body(exceptionResponse.getValue()); } - @RequestMapping("/stream") + @RequestMapping({"/stream", "/stream.view"}) public ResponseEntity stream(Authentication authentication, @RequestParam(required = false, name = "playlist") Integer playlist, @RequestParam(required = false, name = "format") String format, @@ -1405,7 +1405,7 @@ public ResponseEntity stream(Authentication authentication, timeOffset, new ServletWebRequest(request, swr.getResponse())); } - @RequestMapping("/hls") + @RequestMapping({"/hls", "/hls.view"}) public void hls(Authentication authentication, @RequestParam Integer id, HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -1417,7 +1417,7 @@ public void hls(Authentication authentication, @RequestParam Integer id, HttpSer hlsController.handleHlsRequest(authentication, id, request, response); } - @RequestMapping("/scrobble") + @RequestMapping({"/scrobble", "/scrobble.view"}) public void scrobble(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -1449,12 +1449,12 @@ public void scrobble(HttpServletRequest request, HttpServletResponse response) t writeEmptyResponse(request, response); } - @RequestMapping("/star") + @RequestMapping({"/star", "/star.view"}) public void star(HttpServletRequest request, HttpServletResponse response) { starOrUnstar(request, response, true); } - @RequestMapping("/unstar") + @RequestMapping({"/unstar", "/unstar.view"}) public void unstar(HttpServletRequest request, HttpServletResponse response) { starOrUnstar(request, response, false); } @@ -1491,7 +1491,7 @@ private void starOrUnstar(HttpServletRequest request, HttpServletResponse respon } } - @RequestMapping("/getStarred") + @RequestMapping({"/getStarred", "/getStarred.view"}) public void getStarred(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1514,7 +1514,7 @@ public void getStarred(HttpServletRequest request, HttpServletResponse response) jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getStarred2") + @RequestMapping({"/getStarred2", "/getStarred2.view"}) public void getStarred2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1537,7 +1537,7 @@ public void getStarred2(HttpServletRequest request, HttpServletResponse response jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getPodcasts") + @RequestMapping({"/getPodcasts", "/getPodcasts.view"}) public void getPodcasts(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1575,7 +1575,7 @@ public void getPodcasts(HttpServletRequest request, HttpServletResponse response jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getNewestPodcasts") + @RequestMapping({"/getNewestPodcasts", "/getNewestPodcasts.view"}) public void getNewestPodcasts(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1611,7 +1611,7 @@ private org.subsonic.restapi.PodcastEpisode createJaxbPodcastEpisode(Player play return e; } - @RequestMapping("/refreshPodcasts") + @RequestMapping({"/refreshPodcasts", "/refreshPodcasts.view"}) public void refreshPodcasts(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -1623,7 +1623,7 @@ public void refreshPodcasts(HttpServletRequest request, HttpServletResponse resp writeEmptyResponse(request, response); } - @RequestMapping("/createPodcastChannel") + @RequestMapping({"/createPodcastChannel", "/createPodcastChannel.view"}) public void createPodcastChannel(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -1637,7 +1637,7 @@ public void createPodcastChannel(HttpServletRequest request, HttpServletResponse writeEmptyResponse(request, response); } - @RequestMapping("/deletePodcastChannel") + @RequestMapping({"/deletePodcastChannel", "/deletePodcastChannel.view"}) public void deletePodcastChannel(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -1651,7 +1651,7 @@ public void deletePodcastChannel(HttpServletRequest request, HttpServletResponse writeEmptyResponse(request, response); } - @RequestMapping("/deletePodcastEpisode") + @RequestMapping({"/deletePodcastEpisode", "/deletePodcastEpisode.view"}) public void deletePodcastEpisode(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -1665,7 +1665,7 @@ public void deletePodcastEpisode(HttpServletRequest request, HttpServletResponse writeEmptyResponse(request, response); } - @RequestMapping("/downloadPodcastEpisode") + @RequestMapping({"/downloadPodcastEpisode", "/downloadPodcastEpisode.view"}) public void downloadPodcastEpisode(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -1685,7 +1685,7 @@ public void downloadPodcastEpisode(HttpServletRequest request, HttpServletRespon writeEmptyResponse(request, response); } - @RequestMapping("/exportPodcasts/opml") + @RequestMapping({"/exportPodcasts/opml", "/exportPodcasts/opml.view"}) public ResponseEntity exportPodcastOPML(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -1703,7 +1703,7 @@ public ResponseEntity exportPodcastOPML(HttpServletRequest re return ResponseEntity.ok().headers(headers).body(podcastPersistenceService.exportAllChannels()); } - @RequestMapping("/getInternetRadioStations") + @RequestMapping({"/getInternetRadioStations", "/getInternetRadioStations.view"}) public void getInternetRadioStations(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); @@ -1721,7 +1721,7 @@ public void getInternetRadioStations(HttpServletRequest request, HttpServletResp jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getBookmarks") + @RequestMapping({"/getBookmarks", "/getBookmarks.view"}) public void getBookmarks(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1746,7 +1746,7 @@ public void getBookmarks(HttpServletRequest request, HttpServletResponse respons jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/createBookmark") + @RequestMapping({"/createBookmark", "/createBookmark.view"}) public void createBookmark(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1759,7 +1759,7 @@ public void createBookmark(HttpServletRequest request, HttpServletResponse respo writeEmptyResponse(request, response); } - @RequestMapping("/deleteBookmark") + @RequestMapping({"/deleteBookmark", "/deleteBookmark.view"}) public void deleteBookmark(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -1770,7 +1770,7 @@ public void deleteBookmark(HttpServletRequest request, HttpServletResponse respo writeEmptyResponse(request, response); } - @RequestMapping("/getPlayQueue") + @RequestMapping({"/getPlayQueue", "/getPlayQueue.view"}) public void getPlayQueue(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1800,7 +1800,7 @@ public void getPlayQueue(HttpServletRequest request, HttpServletResponse respons jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/savePlayQueue") + @RequestMapping({"/savePlayQueue", "/savePlayQueue.view"}) public void savePlayQueue(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1819,7 +1819,7 @@ public void savePlayQueue(HttpServletRequest request, HttpServletResponse respon writeEmptyResponse(request, response); } - @RequestMapping("/getShares") + @RequestMapping({"/getShares", "/getShares.view"}) public void getShares(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1841,7 +1841,7 @@ public void getShares(HttpServletRequest request, HttpServletResponse response) jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/createShare") + @RequestMapping({"/createShare", "/createShare.view"}) public void createShare(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); String username = securityService.getCurrentUsername(request); @@ -1881,7 +1881,7 @@ public void createShare(HttpServletRequest request, HttpServletResponse response jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/deleteShare") + @RequestMapping({"/deleteShare", "/deleteShare.view"}) public void deleteShare(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -1901,7 +1901,7 @@ public void deleteShare(HttpServletRequest request, HttpServletResponse response writeEmptyResponse(request, response); } - @RequestMapping("/updateShare") + @RequestMapping({"/updateShare", "/updateShare.view"}) public void updateShare(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -1940,7 +1940,7 @@ private org.subsonic.restapi.Share createJaxbShare(HttpServletRequest request, o return result; } - @RequestMapping("/getCoverArt") + @RequestMapping({"/getCoverArt", "/getCoverArt.view"}) public void getCoverArt(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); coverArtController.get( @@ -1950,7 +1950,7 @@ public void getCoverArt(HttpServletRequest request, HttpServletResponse response request, response); } - @RequestMapping("/getAvatar") + @RequestMapping({"/getAvatar", "/getAvatar.view"}) public void getAvatar(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Integer id = ServletRequestUtils.getIntParameter(request, "id"); @@ -1959,7 +1959,7 @@ public void getAvatar(HttpServletRequest request, HttpServletResponse response) avatarController.handleRequest(id, username, forceCustom, response); } - @RequestMapping("/changePassword") + @RequestMapping({"/changePassword", "/changePassword.view"}) public void changePassword(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -1981,7 +1981,7 @@ public void changePassword(HttpServletRequest request, HttpServletResponse respo writeEmptyResponse(request, response); } - @RequestMapping("/getUser") + @RequestMapping({"/getUser", "/getUser.view"}) public void getUser(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -2004,7 +2004,7 @@ public void getUser(HttpServletRequest request, HttpServletResponse response) th jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/getUsers") + @RequestMapping({"/getUsers", "/getUsers.view"}) public void getUsers(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); @@ -2059,7 +2059,7 @@ private org.subsonic.restapi.User createJaxbUser(org.airsonic.player.domain.User return result; } - @RequestMapping("/createUser") + @RequestMapping({"/createUser", "/createUser.view"}) public void createUser(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -2095,7 +2095,7 @@ public void createUser(HttpServletRequest request, HttpServletResponse response) writeEmptyResponse(request, response); } - @RequestMapping("/updateUser") + @RequestMapping({"/updateUser", "/updateUser.view"}) public void updateUser(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -2153,7 +2153,7 @@ private boolean hasParameter(HttpServletRequest request, String name) { return request.getParameter(name) != null; } - @RequestMapping("/deleteUser") + @RequestMapping({"/deleteUser", "/deleteUser.view"}) public void deleteUser(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); org.airsonic.player.domain.User user = securityService.getCurrentUser(request); @@ -2174,17 +2174,17 @@ public void deleteUser(HttpServletRequest request, HttpServletResponse response) writeEmptyResponse(request, response); } - @RequestMapping("/getChatMessages") + @RequestMapping({"/getChatMessages", "/getChatMessages.view"}) public ResponseEntity getChatMessages(HttpServletRequest request, HttpServletResponse response) { return ResponseEntity.status(HttpStatus.SC_GONE).body(NO_LONGER_SUPPORTED); } - @RequestMapping("/addChatMessage") + @RequestMapping({"/addChatMessage", "/addChatMessage.view"}) public ResponseEntity addChatMessage(HttpServletRequest request, HttpServletResponse response) { return ResponseEntity.status(HttpStatus.SC_GONE).body(NO_LONGER_SUPPORTED); } - @RequestMapping("/getLyrics") + @RequestMapping({"/getLyrics", "/getLyrics.view"}) public void getLyrics(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); String artist = request.getParameter("artist"); @@ -2201,7 +2201,7 @@ public void getLyrics(HttpServletRequest request, HttpServletResponse response) jaxbWriter.writeResponse(request, response, res); } - @RequestMapping("/setRating") + @RequestMapping({"/setRating", "/setRating.view"}) public void setRating(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); Integer rating = getRequiredIntParameter(request, "rating"); @@ -2222,7 +2222,7 @@ public void setRating(HttpServletRequest request, HttpServletResponse response) writeEmptyResponse(request, response); } - @RequestMapping(path = "/getAlbumInfo") + @RequestMapping({"/getAlbumInfo", "/getAlbumInfo.view"}) public void getAlbumInfo(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -2241,7 +2241,7 @@ public void getAlbumInfo(HttpServletRequest request, HttpServletResponse respons this.jaxbWriter.writeResponse(request, response, res); } - @RequestMapping(path = "/getAlbumInfo2") + @RequestMapping({"/getAlbumInfo2", "/getAlbumInfo2.view"}) public void getAlbumInfo2(HttpServletRequest request, HttpServletResponse response) throws Exception { request = wrapRequest(request); @@ -2273,24 +2273,24 @@ private AlbumInfo getAlbumInfoInternal(AlbumNotes albumNotes) { return result; } - @RequestMapping("/getVideoInfo") + @RequestMapping({"/getVideoInfo", "/getVideoInfo.view"}) public ResponseEntity getVideoInfo() { return ResponseEntity.status(HttpStatus.SC_NOT_IMPLEMENTED).body(NOT_YET_IMPLEMENTED); } - @RequestMapping("/getCaptions") + @RequestMapping({"/getCaptions", "/getCaptions.view"}) public ResponseEntity getCaptions() { return ResponseEntity.status(HttpStatus.SC_NOT_IMPLEMENTED).body(NOT_YET_IMPLEMENTED); } - @RequestMapping("/startScan") + @RequestMapping({"/startScan", "/startScan.view"}) public void startScan(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); mediaScannerService.scanLibrary(); getScanStatus(request, response); } - @RequestMapping("/getScanStatus") + @RequestMapping({"/getScanStatus", "/getScanStatus.view"}) public void getScanStatus(HttpServletRequest request, HttpServletResponse response) { request = wrapRequest(request); ScanStatus scanStatus = new ScanStatus(); From 3f9e58b62a0ec1d53288f3d37df03d29d797df24 Mon Sep 17 00:00:00 2001 From: "Y.Tory" <5343692+kagemomiji@users.noreply.github.com> Date: Sat, 30 Mar 2024 12:16:21 +0000 Subject: [PATCH 2/2] kagemomiji/airsonic-advanced#407 fix playlist cache problem --- .../main/java/org/airsonic/player/service/PlaylistService.java | 2 +- .../java/org/airsonic/player/spring/CacheConfiguration.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/PlaylistService.java b/airsonic-main/src/main/java/org/airsonic/player/service/PlaylistService.java index 85e6b722d..f39a6a8fc 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/service/PlaylistService.java +++ b/airsonic-main/src/main/java/org/airsonic/player/service/PlaylistService.java @@ -153,7 +153,7 @@ public List getFilesInPlaylist(int id, boolean includeNotPresent) { LOG.warn("Playlist {} not found", id); return new ArrayList<>(); } - ).stream().filter(x -> includeNotPresent || x.isPresent()).collect(Collectors.toList()); + ).stream().filter(x -> x.isPresent() || includeNotPresent).collect(Collectors.toList()); } @Transactional diff --git a/airsonic-main/src/main/java/org/airsonic/player/spring/CacheConfiguration.java b/airsonic-main/src/main/java/org/airsonic/player/spring/CacheConfiguration.java index 060dc9d6e..96742be3a 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/spring/CacheConfiguration.java +++ b/airsonic-main/src/main/java/org/airsonic/player/spring/CacheConfiguration.java @@ -6,6 +6,7 @@ import org.airsonic.player.domain.Playlist; import org.airsonic.player.domain.User; import org.airsonic.player.domain.UserSettings; +import org.airsonic.player.service.cache.PlaylistCache.PlaylistUserList; import org.ehcache.config.builders.CacheConfigurationBuilder; import org.ehcache.config.builders.ConfigurationBuilder; import org.ehcache.config.builders.ExpiryPolicyBuilder; @@ -97,7 +98,7 @@ private org.ehcache.config.Configuration createConfig(final ClassLoader cl) { .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofDays(10))) .withService(cacheLogging)) .withCache(PLAYLIST_USERS_CACHE, - CacheConfigurationBuilder.newCacheConfigurationBuilder(Integer.class, Object.class, pools) + CacheConfigurationBuilder.newCacheConfigurationBuilder(Integer.class, PlaylistUserList.class, pools) .withClassLoader(cl) .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofDays(10))) .withService(cacheLogging))