from xray_manager.core.outbound import ( OutboundFactory, OutboundSpec, ShadowsocksOutbound, ) from xray_manager.core.target import Target, TargetStorage 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_storage = TargetStorage(xray_manager_config) target = target_storage.load_by_id("default") outbound = ShadowsocksOutbound.from_scratch(target, "127.0.0.1", inbound) link = outbound.to_link() print(link) o = ShadowsocksOutbound.from_link(target_storage, link) print(o)