forked from Hay1tsme/artemis
Merge pull request 'chu&mai2: add option to use https' (#217) from zaphkito/artemis:chumai_https into develop
Reviewed-on: Hay1tsme/artemis#217
This commit is contained in:
@ -2,6 +2,7 @@ server:
|
|||||||
enable: True
|
enable: True
|
||||||
loglevel: "info"
|
loglevel: "info"
|
||||||
news_msg: ""
|
news_msg: ""
|
||||||
|
use_https: False # for CRYSTAL PLUS and later or SUPERSTAR and later
|
||||||
|
|
||||||
team:
|
team:
|
||||||
name: ARTEMiS # If this is set, all players that are not on a team will use this one by default.
|
name: ARTEMiS # If this is set, all players that are not on a team will use this one by default.
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
server:
|
server:
|
||||||
enable: True
|
enable: True
|
||||||
loglevel: "info"
|
loglevel: "info"
|
||||||
|
use_https: False # for DX and later
|
||||||
|
|
||||||
deliver:
|
deliver:
|
||||||
enable: False
|
enable: False
|
||||||
|
@ -25,6 +25,12 @@ class ChuniServerConfig:
|
|||||||
return CoreConfig.get_config_field(
|
return CoreConfig.get_config_field(
|
||||||
self.__config, "chuni", "server", "news_msg", default=""
|
self.__config, "chuni", "server", "news_msg", default=""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def use_https(self) -> bool:
|
||||||
|
return CoreConfig.get_config_field(
|
||||||
|
self.__config, "chuni", "server", "use_https", default=False
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ChuniTeamConfig:
|
class ChuniTeamConfig:
|
||||||
|
@ -190,10 +190,26 @@ class ChuniServlet(BaseServlet):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
||||||
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
title_port_int = Utils.get_title_port(self.core_cfg)
|
||||||
return (f"http://{self.core_cfg.server.hostname}:{Utils.get_title_port(self.core_cfg)}/{game_code}/{game_ver}/", self.core_cfg.server.hostname)
|
title_port_ssl_int = Utils.get_title_port_ssl(self.core_cfg)
|
||||||
|
|
||||||
return (f"http://{self.core_cfg.server.hostname}/{game_code}/{game_ver}/", self.core_cfg.server.hostname)
|
if self.game_cfg.server.use_https and (
|
||||||
|
(game_code == "SDBT" and game_ver >= 145) or # JP use TLS from CRYSTAL PLUS
|
||||||
|
game_code != "SDBT" # SDGS and SDHJ all version can use TLS
|
||||||
|
):
|
||||||
|
proto = "https"
|
||||||
|
else:
|
||||||
|
proto = "http"
|
||||||
|
|
||||||
|
if proto == "https":
|
||||||
|
t_port = f":{title_port_ssl_int}" if title_port_ssl_int != 443 else ""
|
||||||
|
else:
|
||||||
|
t_port = f":{title_port_int}" if title_port_int != 80 else ""
|
||||||
|
|
||||||
|
return (
|
||||||
|
f"{proto}://{self.core_cfg.server.hostname}{t_port}/{game_code}/{game_ver}/",
|
||||||
|
f"{self.core_cfg.server.hostname}",
|
||||||
|
)
|
||||||
|
|
||||||
def get_routes(self) -> List[Route]:
|
def get_routes(self) -> List[Route]:
|
||||||
return [
|
return [
|
||||||
|
@ -20,6 +20,12 @@ class Mai2ServerConfig:
|
|||||||
self.__config, "mai2", "server", "loglevel", default="info"
|
self.__config, "mai2", "server", "loglevel", default="info"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def use_https(self) -> bool:
|
||||||
|
return CoreConfig.get_config_field(
|
||||||
|
self.__config, "mai2", "server", "use_https", default=False
|
||||||
|
)
|
||||||
|
|
||||||
class Mai2DeliverConfig:
|
class Mai2DeliverConfig:
|
||||||
def __init__(self, parent: "Mai2Config") -> None:
|
def __init__(self, parent: "Mai2Config") -> None:
|
||||||
|
@ -177,14 +177,29 @@ class Mai2Servlet(BaseServlet):
|
|||||||
]
|
]
|
||||||
|
|
||||||
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
||||||
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
title_port_int = Utils.get_title_port(self.core_cfg)
|
||||||
return (
|
title_port_ssl_int = Utils.get_title_port_ssl(self.core_cfg)
|
||||||
f"http://{self.core_cfg.server.hostname}:{Utils.get_title_port(self.core_cfg)}/{game_code}/{game_ver}/",
|
|
||||||
f"{self.core_cfg.server.hostname}",
|
if self.game_cfg.server.use_https:
|
||||||
)
|
if (game_code == "SDEZ" and game_ver >= 114) or (game_code == "SDGA" and game_ver >= 110): # SDEZ and SDGA use tls from Splash version
|
||||||
|
proto = "" # game will auto add https:// in uri with original code
|
||||||
|
elif game_code == "SDGB" and game_ver >= 130: # SDGB use tls from 1.30
|
||||||
|
# game will check if uri start with "http:", if yes, set IsHttpConnection = true
|
||||||
|
# so we can return https://example.com or http://example.com, all will work
|
||||||
|
proto = "https://"
|
||||||
|
else:
|
||||||
|
# "maimai", SDEZ 1.00 ~ 1.13, SDGA 1.00 ~ 1.06 and SDGB 1.01, 1.20 use http://
|
||||||
|
proto = "http://"
|
||||||
|
else:
|
||||||
|
proto = "http://"
|
||||||
|
|
||||||
|
if proto == "" or proto == "https://":
|
||||||
|
t_port = f":{title_port_ssl_int}" if title_port_ssl_int != 443 else ""
|
||||||
|
else:
|
||||||
|
t_port = f":{title_port_int}" if title_port_int != 80 else ""
|
||||||
|
|
||||||
return (
|
return (
|
||||||
f"http://{self.core_cfg.server.hostname}/{game_code}/{game_ver}/",
|
f"{proto}{self.core_cfg.server.hostname}{t_port}/{game_code}/{game_ver}/",
|
||||||
f"{self.core_cfg.server.hostname}",
|
f"{self.core_cfg.server.hostname}",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user