cxb: update with api
This commit is contained in:
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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):
|
||||||
|
@ -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):
|
||||||
|
@ -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):
|
||||||
|
Reference in New Issue
Block a user