[+] Add option to disable the legacy aquaviewer api

pull/50/head
Clansty 2024-08-01 09:38:36 +08:00
parent a71c2bd8ec
commit fde952fcd9
No known key found for this signature in database
GPG Key ID: 3A6BE8BAF2EDE134
14 changed files with 35 additions and 4 deletions

View File

@ -33,7 +33,12 @@ server.port=80
## Static file server
## This is used to server static files in /web/ directory, which is Aquaviewer
aquaviewer.server.enable=true
aquaviewer.server.enable=false
## APIs for the legacy AquaViewer
## This enables the legacy Aquaviewer API (/api/game/xxx, /api/sega/xxx). This is disabled by default.
## It is recommended to use the new AquaNet API (/api/v2/xxx) instead.
aquaviewer.api.enable=false
## Chunithm
## This enables team function if you set team name here. Leave this blank to disable it.

View File

@ -3,6 +3,7 @@ package icu.samnyan.aqua.api.controller.general;
import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerScreenShotRepository;
import icu.samnyan.aqua.sega.diva.model.userdata.PlayerScreenShot;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.http.MediaType;
@ -20,6 +21,7 @@ import java.util.Optional;
*/
@RestController
@RequestMapping("api/static")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class StaticController {
private final PlayerScreenShotRepository playerScreenShotRepository;

View File

@ -3,6 +3,7 @@ package icu.samnyan.aqua.api.controller.sega;
import icu.samnyan.aqua.sega.general.model.Card;
import icu.samnyan.aqua.sega.general.service.CardService;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -17,6 +18,7 @@ import java.util.Optional;
*/
@RestController
@RequestMapping("api/sega/aime")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiAimeController {

View File

@ -7,6 +7,7 @@ import icu.samnyan.aqua.sega.chunithm.model.gamedata.CharacterSkill;
import icu.samnyan.aqua.sega.chunithm.model.gamedata.Music;
import icu.samnyan.aqua.sega.chunithm.service.GameMusicService;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -18,6 +19,7 @@ import java.util.List;
*/
@RestController
@RequestMapping("api/game/chuni/v1/data")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiChuniV1GameDataController {

View File

@ -23,6 +23,7 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
@ -40,6 +41,7 @@ import java.util.stream.Collectors;
*/
@RestController
@RequestMapping("api/game/chuni/v1")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiChuniV1PlayerDataController {

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.chusan.model.*;
import icu.samnyan.aqua.sega.chusan.model.gamedata.Character;
import icu.samnyan.aqua.sega.chusan.model.gamedata.*;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -15,6 +16,7 @@ import java.util.List;
*/
@RestController
@RequestMapping("api/game/chuni/v2/data")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiChuniV2GameDataController {

View File

@ -22,6 +22,7 @@ import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
@ -39,6 +40,7 @@ import java.util.stream.Collectors;
*/
@RestController
@RequestMapping("api/game/chuni/v2")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiChuniV2PlayerDataController {
@ -163,7 +165,7 @@ public class ApiChuniV2PlayerDataController {
profile.setAvatarBack((Integer) request.get("accId"));
break;
}
return userDataService.saveUserData(profile);
}
@ -304,12 +306,12 @@ public class ApiChuniV2PlayerDataController {
UserGeneralData userGeneralData = userGeneralDataService.getByUserAndKey(profile, "favorite_music")
.orElseGet(() -> new UserGeneralData(profile, "favorite_music"));
List<String> favoriteSongs = new LinkedList<String>(Arrays.asList(userGeneralData.getPropertyValue().split(",")));
if(!favoriteSongs.remove(id))
{
favoriteSongs.add(id);
}
StringBuilder sb = new StringBuilder();
favoriteSongs.forEach(favSong -> {
if(!favSong.isEmpty()) sb.append(favSong).append(",");

View File

@ -7,6 +7,7 @@ import icu.samnyan.aqua.sega.diva.model.gamedata.DivaCustomize;
import icu.samnyan.aqua.sega.diva.model.gamedata.DivaModule;
import icu.samnyan.aqua.sega.diva.model.gamedata.Pv;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -18,6 +19,7 @@ import java.util.List;
*/
@RestController
@RequestMapping("api/game/diva/data")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiDivaGameDataController {

View File

@ -9,6 +9,7 @@ import icu.samnyan.aqua.sega.diva.model.common.Edition;
import icu.samnyan.aqua.sega.diva.model.userdata.*;
import icu.samnyan.aqua.sega.diva.service.PlayerProfileService;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.HttpStatus;
@ -22,6 +23,7 @@ import java.util.*;
*/
@RestController
@RequestMapping("api/game/diva")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiDivaPlayerDataController {

View File

@ -16,6 +16,7 @@ import icu.samnyan.aqua.sega.maimai2.model.*;
import icu.samnyan.aqua.sega.maimai2.model.userdata.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
@ -36,6 +37,7 @@ import java.util.stream.Stream;
*/
@RestController
@RequestMapping("api/game/maimai2")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiMaimai2PlayerDataController {

View File

@ -3,6 +3,7 @@ package icu.samnyan.aqua.api.controller.sega.game.ongeki;
import icu.samnyan.aqua.sega.ongeki.dao.gamedata.*;
import icu.samnyan.aqua.sega.ongeki.model.gamedata.*;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -12,6 +13,7 @@ import java.util.List;
*/
@RestController
@RequestMapping("api/game/ongeki/data")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiOngekiGameDataController {

View File

@ -18,6 +18,7 @@ import icu.samnyan.aqua.sega.ongeki.model.response.data.UserRivalData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
@ -36,6 +37,7 @@ import java.util.stream.Collectors;
*/
@RestController
@RequestMapping("api/game/ongeki")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiOngekiPlayerDataController {

View File

@ -10,6 +10,7 @@ import icu.samnyan.aqua.sega.chunithm.service.UserMusicDetailService;
import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@ -25,6 +26,7 @@ import java.util.Optional;
*/
@RestController
@RequestMapping("api/manage/chuni/v1")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiChuniV1ManageController {

View File

@ -11,6 +11,7 @@ import icu.samnyan.aqua.sega.diva.model.gamedata.*;
import icu.samnyan.aqua.sega.general.dao.PropertyEntryRepository;
import icu.samnyan.aqua.sega.general.model.PropertyEntry;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
@ -22,6 +23,7 @@ import java.util.Optional;
*/
@RestController
@RequestMapping("api/manage/diva/")
@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true")
@AllArgsConstructor
public class ApiDivaManageController {