cxb: update with api

This commit is contained in:
2023-10-20 01:33:00 -04:00
parent deccaf593a
commit 88858f34ef
6 changed files with 41 additions and 50 deletions

View File

@ -54,7 +54,7 @@ class Utils:
if cls.real_title_port_ssl is not None: return cls.real_title_port_ssl if cls.real_title_port_ssl is not None: return cls.real_title_port_ssl
if cfg.title.port_ssl == 0: if cfg.title.port_ssl == 0:
cls.real_title_port_ssl = cfg.allnet.port cls.real_title_port_ssl = 443
else: else:
cls.real_title_port_ssl = cfg.title.port_ssl cls.real_title_port_ssl = cfg.title.port_ssl

View File

@ -7,9 +7,9 @@ from hashlib import md5
from datetime import datetime from datetime import datetime
from core.config import CoreConfig from core.config import CoreConfig
from titles.cxb.config import CxbConfig from .config import CxbConfig
from titles.cxb.const import CxbConstants from .const import CxbConstants
from titles.cxb.database import CxbData from .database import CxbData
from threading import Thread from threading import Thread

View File

@ -7,18 +7,20 @@ import re
import inflection import inflection
import logging, coloredlogs import logging, coloredlogs
from logging.handlers import TimedRotatingFileHandler from logging.handlers import TimedRotatingFileHandler
from typing import Dict, Tuple from typing import Dict, Tuple, List
from os import path from os import path
from core.config import CoreConfig from core.config import CoreConfig
from titles.cxb.config import CxbConfig from core.title import BaseServlet
from titles.cxb.const import CxbConstants from core.utils import Utils
from titles.cxb.rev import CxbRev from .config import CxbConfig
from titles.cxb.rss1 import CxbRevSunriseS1 from .const import CxbConstants
from titles.cxb.rss2 import CxbRevSunriseS2 from .rev import CxbRev
from .rss1 import CxbRevSunriseS1
from .rss2 import CxbRevSunriseS2
class CxbServlet(resource.Resource): class CxbServlet(BaseServlet):
def __init__(self, core_cfg: CoreConfig, cfg_dir: str) -> None: def __init__(self, core_cfg: CoreConfig, cfg_dir: str) -> None:
self.isLeaf = True self.isLeaf = True
self.cfg_dir = cfg_dir self.cfg_dir = cfg_dir
@ -61,9 +63,7 @@ class CxbServlet(resource.Resource):
] ]
@classmethod @classmethod
def get_allnet_info( def is_game_enabled(cls, game_code: str, core_cfg: CoreConfig, cfg_dir: str) -> bool:
cls, game_code: str, core_cfg: CoreConfig, cfg_dir: str
) -> Tuple[bool, str, str]:
game_cfg = CxbConfig() game_cfg = CxbConfig()
if path.exists(f"{cfg_dir}/{CxbConstants.CONFIG_NAME}"): if path.exists(f"{cfg_dir}/{CxbConstants.CONFIG_NAME}"):
game_cfg.update( game_cfg.update(
@ -71,37 +71,28 @@ class CxbServlet(resource.Resource):
) )
if not game_cfg.server.enable: if not game_cfg.server.enable:
return (False, "", "") return False
if core_cfg.server.is_develop: return True
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_ssl(self.core_cfg) != 443:
return ( return (
True, f"https://{self.core_cfg.title.hostname}:{self.core_cfg.title.port_ssl}",
f"http://{core_cfg.title.hostname}:{core_cfg.title.port}/{game_code}/$v/",
"", "",
) )
return (True, f"http://{core_cfg.title.hostname}/{game_code}/$v/", "") return (f"https://{self.core_cfg.title.hostname}", "")
def setup(self): def get_endpoint_matchers(self) -> Tuple[List[Tuple[str, str, Dict]], List[Tuple[str, str, Dict]]]:
if self.game_cfg.server.enable: return (
endpoints.serverFromString( [],
reactor, [
f"tcp:{self.game_cfg.server.port}:interface={self.core_cfg.server.listen_address}", ("handle_data", "/data", {}),
).listen(server.Site(CxbServlet(self.core_cfg, self.cfg_dir))) ("handle_action", "/action/{endpoint}", {}),
("handle_auth", "/auth/{endpoint}", {}),
if self.core_cfg.server.is_develop and self.game_cfg.server.ssl_enable: ]
endpoints.serverFromString( )
reactor,
f"ssl:{self.game_cfg.server.port_secure}"
f":interface={self.core_cfg.server.listen_address}:privateKey={self.game_cfg.server.ssl_key}:"
f"certKey={self.game_cfg.server.ssl_cert}",
).listen(server.Site(CxbServlet(self.core_cfg, self.cfg_dir)))
self.logger.info(
f"Ready on ports {self.game_cfg.server.port} & {self.game_cfg.server.port_secure}"
)
else:
self.logger.info(f"Ready on port {self.game_cfg.server.port}")
def render_POST(self, request: Request, version: int, endpoint: str): def render_POST(self, request: Request, version: int, endpoint: str):
version = 0 version = 0

View File

@ -7,9 +7,9 @@ from datetime import datetime
from core.config import CoreConfig from core.config import CoreConfig
from core.data import Data, cached from core.data import Data, cached
from titles.cxb.config import CxbConfig from .config import CxbConfig
from titles.cxb.base import CxbBase from .base import CxbBase
from titles.cxb.const import CxbConstants from .const import CxbConstants
class CxbRev(CxbBase): class CxbRev(CxbBase):

View File

@ -7,9 +7,9 @@ from datetime import datetime
from core.config import CoreConfig from core.config import CoreConfig
from core.data import Data, cached from core.data import Data, cached
from titles.cxb.config import CxbConfig from .config import CxbConfig
from titles.cxb.base import CxbBase from .base import CxbBase
from titles.cxb.const import CxbConstants from .const import CxbConstants
class CxbRevSunriseS1(CxbBase): class CxbRevSunriseS1(CxbBase):

View File

@ -7,9 +7,9 @@ from datetime import datetime
from core.config import CoreConfig from core.config import CoreConfig
from core.data import Data, cached from core.data import Data, cached
from titles.cxb.config import CxbConfig from .config import CxbConfig
from titles.cxb.base import CxbBase from .base import CxbBase
from titles.cxb.const import CxbConstants from .const import CxbConstants
class CxbRevSunriseS2(CxbBase): class CxbRevSunriseS2(CxbBase):