from xray_manager.core.outbound import ( OutboundFactory, OutboundSpec, ShadowsocksOutbound, ) from xray_manager.core.xray_config import XrayConfig from xray_manager.core.xray_manager_config import XrayManagerConfig inbound = { "tag": "shadowsocks", "xrm": True, "listen": "0.0.0.0", "port": 8443, "protocol": "shadowsocks", "settings": { "method": "2022-blake3-aes-256-gcm", "password": "Z8WtMeWzZVh1F6/5URGrs8vWdB3CLN5y7A9D1U0Q65E=", "clients": [ { "email": "test-fr1", "password": "zV3qwuj5TUng+mBMfqdInp0ih7i9ykSIzUig3v5d1Bg=", }, { "email": "test2-us1", "password": "ZNtMDJ5WuaGa2ko2jMbbZguddcMY2TTirsb9cNYHffw=", }, ], "network": "tcp,udp", }, } if __name__ == "__main__": DEV_CONFIG_PATH = "tests/mock_data/etc/xray-manager/config.json" xray_manager_config = XrayManagerConfig(DEV_CONFIG_PATH) target = "us1" target_pretty_name = xray_manager_config.targets.get(target, {}).get( "pretty_name", target ) outbound = ShadowsocksOutbound.from_scratch( target, target_pretty_name, "127.0.0.1", inbound ) link = outbound.to_link() o = ShadowsocksOutbound.from_link(xray_manager_config.targets, link) print(o)