mirror of
https://github.com/MewoLab/AquaDX.git
synced 2026-02-11 21:57:26 +08:00
[M] Move game URLs
This commit is contained in:
@@ -155,13 +155,13 @@ class AllNet(
|
|||||||
val port = props.port?.toString() ?: localPort
|
val port = props.port?.toString() ?: localPort
|
||||||
|
|
||||||
return when (gameId) {
|
return when (gameId) {
|
||||||
"SDBT" -> "http://$addr:$port/ChuniServlet/$ver/$serial/"
|
"SDBT" -> "http://$addr:$port/g/chu2/$ver/$serial/"
|
||||||
"SBZV" -> "http://$addr:$port/diva/"
|
"SDHD" -> "http://$addr:$port/g/chu3/$ver/"
|
||||||
"SDDT" -> "http://$addr:$port/OngekiServlet/"
|
"SBZV" -> "http://$addr:$port/g/diva/"
|
||||||
"SDEY" -> "http://$addr:$port/MaimaiServlet/"
|
"SDDT" -> "http://$addr:$port/g/ongeki/"
|
||||||
"SDEZ" -> "http://$addr:$port/Maimai2Servlet/"
|
"SDEY" -> "http://$addr:$port/g/mai/"
|
||||||
"SDHD" -> "http://$addr:$port/ChusanServlet/$ver/"
|
"SDEZ" -> "http://$addr:$port/g/mai2/"
|
||||||
"SDED" -> "http://$addr:$port/CardMakerServlet/"
|
"SDED" -> "http://$addr:$port/g/card/"
|
||||||
else -> "http://$addr:$port/"
|
else -> "http://$addr:$port/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class Keychip(
|
|||||||
val id: Long = 0,
|
val id: Long = 0,
|
||||||
|
|
||||||
@Column(unique = true, nullable = false)
|
@Column(unique = true, nullable = false)
|
||||||
val keychipId: String = ""
|
val keychipId: String = "",
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
companion object {
|
companion object {
|
||||||
const val serialVersionUID = 1L
|
const val serialVersionUID = 1L
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import java.util.Map;
|
|||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("CardMakerServlet")
|
@RequestMapping("/g/card")
|
||||||
public class CardMakerController {
|
public class CardMakerController {
|
||||||
private final GetGameSettingHandler getGameSettingHandler;
|
private final GetGameSettingHandler getGameSettingHandler;
|
||||||
private final GetClientBookkeepingHandler getClientBookkeepingHandler;
|
private final GetClientBookkeepingHandler getClientBookkeepingHandler;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import java.util.Map;
|
|||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping({"/ChuniServlet/{ROM_VERSION}/{CLIENT_ID}/ChuniServlet", "/ChuniServlet"})
|
@RequestMapping("/g/chu2/{ROM_VERSION}/{CLIENT_ID}/ChuniServlet")
|
||||||
public class ChuniServletController {
|
public class ChuniServletController {
|
||||||
|
|
||||||
private final GameLoginHandler gameLoginHandler;
|
private final GameLoginHandler gameLoginHandler;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import java.util.Map;
|
|||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping({"/ChusanServlet/{version}/ChuniServlet", "/ChusanServlet/{version}"})
|
@RequestMapping({"/g/chu3/{version}/ChuniServlet", "/g/chu3/{version}"})
|
||||||
public class ChusanServletController {
|
public class ChusanServletController {
|
||||||
|
|
||||||
private final GameLoginHandler gameLoginHandler;
|
private final GameLoginHandler gameLoginHandler;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ import java.util.stream.Collectors;
|
|||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/diva")
|
@RequestMapping("/g/diva")
|
||||||
public class DivaController {
|
public class DivaController {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(DivaController.class);
|
private static final Logger logger = LoggerFactory.getLogger(DivaController.class);
|
||||||
|
|||||||
@@ -55,6 +55,6 @@ public class DivaCompressionFilter extends OncePerRequestFilter {
|
|||||||
@Override
|
@Override
|
||||||
protected boolean shouldNotFilter(HttpServletRequest request) {
|
protected boolean shouldNotFilter(HttpServletRequest request) {
|
||||||
String path = request.getServletPath();
|
String path = request.getServletPath();
|
||||||
return !path.startsWith("/diva");
|
return !path.startsWith("/g/diva");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,87 +0,0 @@
|
|||||||
package icu.samnyan.aqua.sega.general.filter;
|
|
||||||
|
|
||||||
import icu.samnyan.aqua.sega.util.Compression;
|
|
||||||
import org.eclipse.jetty.io.EofException;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.web.filter.OncePerRequestFilter;
|
|
||||||
|
|
||||||
import jakarta.servlet.FilterChain;
|
|
||||||
import jakarta.servlet.ServletException;
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author samnyan (privateamusement@protonmail.com)
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class CompressionFilter extends OncePerRequestFilter {
|
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(CompressionFilter.class);
|
|
||||||
private final List<String> filterList;
|
|
||||||
|
|
||||||
public CompressionFilter() {
|
|
||||||
filterList = new ArrayList<>();
|
|
||||||
filterList.add("/ChuniServlet");
|
|
||||||
filterList.add("/OngekiServlet");
|
|
||||||
filterList.add("/MaimaiServlet");
|
|
||||||
filterList.add("/Maimai2Servlet");
|
|
||||||
filterList.add("/ChusanServlet");
|
|
||||||
filterList.add("/CardMakerServlet");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
|
||||||
|
|
||||||
logger.debug("Do compress filter");
|
|
||||||
String encoding = request.getHeader("content-encoding");
|
|
||||||
byte[] reqSrc = request.getInputStream().readAllBytes();
|
|
||||||
|
|
||||||
byte[] reqResult;
|
|
||||||
if (encoding != null && encoding.equals("deflate")) {
|
|
||||||
logger.debug("Request length (compressed): {}", reqSrc.length);
|
|
||||||
reqResult = Compression.decompress(reqSrc);
|
|
||||||
logger.debug("Request length (decompressed): {}", reqResult.length);
|
|
||||||
} else {
|
|
||||||
reqResult = reqSrc;
|
|
||||||
}
|
|
||||||
|
|
||||||
CompressRequestWrapper requestWrapper = new CompressRequestWrapper(request, reqResult);
|
|
||||||
CompressResponseWrapper responseWrapper = new CompressResponseWrapper(response);
|
|
||||||
|
|
||||||
filterChain.doFilter(requestWrapper, responseWrapper);
|
|
||||||
|
|
||||||
byte[] respSrc = responseWrapper.toByteArray();
|
|
||||||
logger.debug("Response length (uncompressed): {}", respSrc.length);
|
|
||||||
byte[] respResult = Compression.compress(respSrc);
|
|
||||||
logger.debug("Response length (compressed): {}", respResult.length);
|
|
||||||
|
|
||||||
|
|
||||||
response.setContentLength(respResult.length);
|
|
||||||
response.setContentType("application/json; charset=utf-8");
|
|
||||||
response.addHeader("Content-Encoding", "deflate");
|
|
||||||
|
|
||||||
try {
|
|
||||||
response.getOutputStream().write(respResult);
|
|
||||||
} catch (EofException e) {
|
|
||||||
logger.warn("Client closed connection");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean shouldNotFilter(HttpServletRequest request) {
|
|
||||||
String path = request.getServletPath();
|
|
||||||
boolean notFilter = true;
|
|
||||||
for (String prefix : filterList) {
|
|
||||||
if (path.startsWith(prefix)) {
|
|
||||||
notFilter = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return notFilter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package icu.samnyan.aqua.sega.general.filter
|
||||||
|
|
||||||
|
import icu.samnyan.aqua.sega.util.Compression
|
||||||
|
import jakarta.servlet.FilterChain
|
||||||
|
import jakarta.servlet.http.HttpServletRequest
|
||||||
|
import jakarta.servlet.http.HttpServletResponse
|
||||||
|
import org.eclipse.jetty.io.EofException
|
||||||
|
import org.slf4j.Logger
|
||||||
|
import org.slf4j.LoggerFactory
|
||||||
|
import org.springframework.stereotype.Component
|
||||||
|
import org.springframework.web.filter.OncePerRequestFilter
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
class CompressionFilter : OncePerRequestFilter() {
|
||||||
|
companion object {
|
||||||
|
val logger: Logger = LoggerFactory.getLogger(CompressionFilter::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun doFilterInternal(req: HttpServletRequest, resp: HttpServletResponse, chain: FilterChain) {
|
||||||
|
logger.debug("Do compress filter")
|
||||||
|
val encoding = req.getHeader("content-encoding")
|
||||||
|
val reqSrc = req.inputStream.readAllBytes()
|
||||||
|
|
||||||
|
val reqResult: ByteArray
|
||||||
|
if (encoding != null && encoding == "deflate") {
|
||||||
|
logger.debug("Request length (compressed): ${reqSrc.size}")
|
||||||
|
reqResult = Compression.decompress(reqSrc)
|
||||||
|
logger.debug("Request length (decompressed): ${reqResult.size}")
|
||||||
|
} else {
|
||||||
|
reqResult = reqSrc
|
||||||
|
}
|
||||||
|
|
||||||
|
val requestWrapper = CompressRequestWrapper(req, reqResult)
|
||||||
|
val responseWrapper = CompressResponseWrapper(resp)
|
||||||
|
|
||||||
|
chain.doFilter(requestWrapper, responseWrapper)
|
||||||
|
|
||||||
|
val respSrc = responseWrapper.toByteArray()
|
||||||
|
logger.debug("Response length (uncompressed): ${respSrc.size}")
|
||||||
|
val respResult = Compression.compress(respSrc)
|
||||||
|
logger.debug("Response length (compressed): ${respResult.size}")
|
||||||
|
|
||||||
|
resp.setContentLength(respResult.size)
|
||||||
|
resp.contentType = "application/json; charset=utf-8"
|
||||||
|
resp.addHeader("Content-Encoding", "deflate")
|
||||||
|
|
||||||
|
try {
|
||||||
|
resp.outputStream.write(respResult)
|
||||||
|
} catch (e: EofException) {
|
||||||
|
logger.warn("Client closed connection")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter games that are not diva
|
||||||
|
*/
|
||||||
|
override fun shouldNotFilter(req: HttpServletRequest) =
|
||||||
|
!(req.servletPath.startsWith("/g") && !req.servletPath.startsWith("/g/diva"))
|
||||||
|
}
|
||||||
@@ -14,7 +14,7 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("MaimaiServlet")
|
@RequestMapping("/g/mai")
|
||||||
public class MaimaiServletController {
|
public class MaimaiServletController {
|
||||||
|
|
||||||
private final GetGameEventHandler getGameEventHandler;
|
private final GetGameEventHandler getGameEventHandler;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping({ "/Maimai2Servlet/Maimai2Servlet", "/Maimai2Servlet" })
|
@RequestMapping({ "/g/mai2/Maimai2Servlet", "/g/mai2" })
|
||||||
public class Maimai2ServletController {
|
public class Maimai2ServletController {
|
||||||
|
|
||||||
private final GetGameSettingHandler getGameSettingHandler;
|
private final GetGameSettingHandler getGameSettingHandler;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import java.util.Map;
|
|||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("OngekiServlet")
|
@RequestMapping("/g/ongeki")
|
||||||
public class OngekiController {
|
public class OngekiController {
|
||||||
|
|
||||||
private final GetGameEventHandler getGameEventHandler;
|
private final GetGameEventHandler getGameEventHandler;
|
||||||
|
|||||||
Reference in New Issue
Block a user