游戏角标-百顺-替换域名-youmi
This commit is contained in:
@@ -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")),
|
||||
;
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user