def setup(self): self.prepare() self._config = config.YAMLConfig() for filename in glob(self.get_app_path('yaml.d/*.yaml')): self._config.append(filename, flags=config.YAMLConfig.READONLY) for filename in glob(self.get_app_path('gfhelper/script/*.yaml')): self._config.append(filename, flags=config.YAMLConfig.READONLY) for path in self.config.get('core.ext_scripts'): for filename in glob(path + '*.yaml'): self._config.append(filename, flags=config.YAMLConfig.READONLY) self._config.append(self.get_ext_path('config.yaml'))
import commands import config import data.clients import packetFactory import plugins login_config = config.YAMLConfig( "cfg/loginmessage.config.yml", { 'message': "{{yel}}Welcome to PSO2Proxy build {proxy_ver} " "{client_name}! There are currently {client_count} clients " "connected. Use {command_prefix}help for a list of commands!", 'messageType': 0x3 }, True) @plugins.on_initial_connect_hook def login_message(sender): server_name = "Unknown" try: import PSO2PDConnector server_name = PSO2PDConnector.connector_conf['server_name'] except ImportError: pass message = login_config['message'].format( client_name=sender.myUsername, client_count=len(data.clients.connectedClients), proxy_ver=config.proxy_ver, command_prefix=config.globalConfig['commandPrefix'], server_name=server_name)
pool = HTTPConnectionPool(reactor) pool._factory.noisy = False agent = RedirectAgent(Agent(reactor, pool=pool)) except ImportError: agent = RedirectAgent(Agent(reactor)) eqalert_config = config.YAMLConfig( "cfg/EQ_Alert.config.yml", { 'enabled': True, 'timer': 80, 'debug': False, 'api': "http://pso2.acf.me.uk/api/eq.json", '0': True, '1': True, '2': True, '3': True, '4': True, '5': True, '6': True, '7': True, '8': True, '9': True, 'ircShip': 1, 'User-Agent': "PSO2Proxy" }, True) # HTTP Headers ETag_Header = "" Modified_Header = "" # HTTP Modified in time Modified_time = ""
import commands import config import json import os import packetFactory from packetFactory import SystemMessagePacket import plugins whitelist = [] WLSettings = config.YAMLConfig("cfg/pso2proxy.whitelist.config.yml", {'enabled': True}, True) whitelistmode = WLSettings['enabled'] @plugins.on_start_hook def load_whitelist(): global whitelist if not os.path.exists("cfg/pso2proxy.whitelist.json"): f = open("cfg/pso2proxy.whitelist.json", "w") f.write(json.dumps(whitelist)) f.close() print('[Whitelist] Blank whitelist created.') else: f = open("cfg/pso2proxy.whitelist.json", "r") whitelist = json.loads(f.read()) f.close() print("[Whitelist] Loaded %i whitelisted SEGA IDs." % len(whitelist))
self.deferred.callback(b''.join(self.dataBuffer)) def readBody(response): d = defer.Deferred() response.deliverBody(SimpleBodyProtocol(response.code, response.phrase, d)) return d try: from twisted.web.client import HTTPConnectionPool pool = HTTPConnectionPool(reactor) pool._factory.noisy = False agent = RedirectAgent(Agent(reactor, pool=pool)) except ImportError: agent = RedirectAgent(Agent(reactor)) eqnotice_config = config.YAMLConfig("cfg/EQ_Notice.config.yml", {'enabled': True, 'timer': 60, 'debug': False, '1': "http://pso2.acf.me.uk/pso2eq.txt"}, True) # HTTP Headers ETag_Headers = ['', '', '', '', '', '', '', '', '', ''] Modified_Headers = ['', '', '', '', '', '', '', '', '', ''] # HTTP Modified in time Modified_time = ['', '', '', '', '', '', '', '', '', ''] # HTTP Data HTTP_Data = ['', '', '', '', '', '', '', '', '', ''] # was "【1時間前】" in the data? ishour_eq = [False, False, False, False, False, False, False, False, False, False] # Hour of EQ hour_eq = ['', '', '', '', '', '', '', '', '', ''] # Mins of EQ mins_eq = ['', '', '', '', '', '', '', '', '', ''] # EQ Data
import data.players import datetime import json import os import plugins from plugins import commands as pluginCommands import traceback from twisted.internet import endpoints from twisted.internet import reactor from twisted.web import resource web_api_config = config.YAMLConfig( "cfg/webapi.config.yml", { "port": 8080, "ServerName": "Unnamed Server", 'webRconEnabled': False, 'webRconKey': '' }, True) upStart = calendar.timegm(datetime.datetime.utcnow().utctimetuple()) peakPlayers = 0 class WEBRcon(resource.Resource): isLeaf = True def render_GET(self, request): request.setHeader('content-type', "application/json") if 'key' not in request.args or request.args['key'][ 0] != web_api_config['webRconKey']:
from twisted.words.protocols import irc try: import PSO2PDConnector redisEnabled = True except ImportError: redisEnabled = False ircSettings = config.YAMLConfig( "cfg/gchat-irc.config.yml", { 'enabled': False, 'nick': "PSO2IRCBot", 'server': '', 'port': 6667, 'svname': 'NickServ', 'svpass': '', 'channel': "", 'output': True, 'autoexec': [], 'discord': False }, True ) ircBot = None ircMode = ircSettings['enabled'] ircOutput = ircSettings['output'] ircNick = ircSettings['nick'] ircServer = (ircSettings['server'], ircSettings['port']) ircChannel = ircSettings['channel'] ircServicePass = ircSettings['svpass']
plugin_f = plugins.commands[command][0] out = plugin_f(line).call_from_console() if out is not None: sendCommand({'command': "msg", 'msg': out}) else: sendCommand({'command': "msg", 'msg': "[Command] Command %s not found!" % command}) except Exception as e: e = traceback.format_exc() sendCommand({'command': "msg", 'msg': "[ShipProxy] Error Occurred: %s" % e}) if cmdObj['command'] == "register": sendCommand({'command': "newserver", 'ip': config.myIpAddress, 'name': connector_conf['server_name']}) print("[PSO2PD] Registered with redis!") sendCommand({'command': "ping", 'name': connector_conf['server_name'], 'usercount': len(data.clients.connectedClients)}) connector_conf = config.YAMLConfig("cfg/distributed.cfg.yml", {'db_host': 'localhost', 'db_port': 6379, 'db_id': 0, 'db_pass': '', 'server_name': 'changeme'}, True) if connector_conf['db_pass'] is not '': db_conn = redis.StrictRedis(host=connector_conf['db_host'], port=connector_conf['db_port'], db=connector_conf['db_id'], password=connector_conf['db_pass']) else: db_conn = redis.StrictRedis(host=connector_conf['db_host'], port=connector_conf['db_port'], db=connector_conf['db_id']) class RedisListenThread(threading.Thread): def __init__(self, r): super(RedisListenThread, self).__init__() self.r = r self.pubsub = self.r.pubsub(ignore_subscribe_messages=True) def run(self): self.pubsub.subscribe(**{"proxy-server-%s" % connector_conf['server_name']: servercom_handler})
cidr = False try: import netaddr from netaddr import IPAddress from netaddr import IPNetwork cidr = True except ImportError: print("[GeoIP] netaddr library not installed") cidrlist = [] geoiplist = [] GeoSettings = config.YAMLConfig( "cfg/pso2proxy.geoip.config.yml", { 'enabled': True, 'geoip1': "/usr/share/GeoIP/GeoIP.dat", 'geoip2': "/var/lib/GeoIP/GeoLite2-Country.mmdb" }, True) geoipenabled = GeoSettings['enabled'] geoip1db = GeoSettings['geoip1'] geoip2db = GeoSettings['geoip2'] geoip2c = None geoip1c = None notallowed = "You are not on the Geoip whitelist for this proxy, please " \ "contact the owner of this proxy.\nDetails:\nCountry Code: {}\nIPv4: {}" @plugins.on_start_hook
import config import data.clients import packetFactory from PSO2DataTools import check_pso2_with_irc from PSO2DataTools import split_cmd_msg import struct import time from twisted.internet import threads from unicodescript import script import plugins as p plugin_config = config.YAMLConfig( "cfg/translator.config.yml", { "translationService": 0, "msTranslateID": '', "msTranslateSecret": '' } ) if plugin_config['translationService'] == 1 and plugin_config['msTranslateID'] != '' and plugin_config['msTranslateSecret'] != '': import microsofttranslator provider = "Bing" translator = microsofttranslator.Translator(plugin_config['msTranslateID'], plugin_config['msTranslateSecret']) lastKeyTime = time.time() else: import goslate provider = "Google" translator = goslate.Goslate() @p.on_initial_connect_hook