游戏角标-百顺-替换域名-youmi

This commit is contained in:
2025-09-15 14:23:43 +08:00
parent db41be407d
commit 7d0a978c40
2 changed files with 25 additions and 3 deletions

View File

@@ -13,7 +13,7 @@ public enum AppEnum {
other("other", "other", "api.pekolive.com", "image.pekolive.com", "api.pekolive.com", "pekolive", Map.of()),
youmi("youmi", "molistar ios马甲包", "api.hfighting.com", "image.molistar.xyz", "api.hfighting.com", "molistar",
Map.of(Pattern.compile("baishun.minigame.*"), "baishun.minigame.molistar.xyz")),
Map.of(Pattern.compile("baishun.minigame.*"), "baishun.minigame.moliparty.com")),
molistar("molistar", "molistar google马甲包", "api.molistar.xyz", "image.molistar.xyz", "api.molistar.xyz", "molistar",
Map.of(Pattern.compile("baishun.minigame.*"), "baishun.minigame.molistar.xyz")),
;

View File

@@ -33,10 +33,15 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -128,14 +133,31 @@ public class ResourceController {
URL url = new URL(v.getSkipContent());
String host = url.getHost();
AppEnum appEnum = AppEnum.getCurApp();
AppEnum appEnum = null;
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (null == attributes){
appEnum = AppEnum.getCurApp();
} else {
HttpServletRequest request = attributes.getRequest();
String apiDomain = request.getServerName();
Optional<AppEnum> appEnumOptional = Arrays.stream(AppEnum.values())
.filter(app->app.getApiDomain().equals(apiDomain))
.findFirst();
if (appEnumOptional.isEmpty()){
appEnum = AppEnum.getCurApp();
} else {
appEnum = appEnumOptional.get();
}
}
for (Map.Entry<Pattern, String> entry : appEnum.getPatternMap().entrySet()){
Matcher matcher = entry.getKey().matcher(host);
if (matcher.matches()){
if (host.equals(entry.getValue())){
break;
}
String newUrl = v.getSkipContent().replaceFirst(url.getHost(), entry.getValue());
String newUrl = v.getSkipContent().replaceFirst(host, entry.getValue());
v.setSkipContent(newUrl);
break;
}