def rip(key, username, password): login_url = 'http://minecraft.net/login.jsp' play_url = 'http://minecraft.net/play.jsp?server=%s' cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) login_data = urllib.urlencode({'username': username, 'password': password}) print ("Logging in...") opener.open(login_url, login_data) print ("Fetching server info...") html = opener.open(play_url % key).read() ip = re.search(r'param name\="server" value="([0-9.]+)"', html).groups()[0] port = int(re.search(r'param name\="port" value="([0-9]+)"', html).groups()[0]) mppass = re.search(r'param name\="mppass" value="([0-9a-zA-Z]+)"', html).groups()[0] print ("Got details. Connecting...") f = RipFactory(username, mppass) reactor.connectTCP(ip, port, f) reactor.run()
def _checkIterationTimeout(self, reactor): timeout = [] reactor.iterationTimeout.addCallback(timeout.append) reactor.iterationTimeout.addCallback(lambda ignored: reactor.stop()) reactor.run() return timeout[0]
controller = ControllerFactory(factory) try: reactor.listenTCP(factory.config.getint("network", "port"), factory) except: logging.log(logging.ERROR, "Something is already running on Port %s" % (factory.config.getint("network", "port"))) sys.exit(1) try: reactor.listenTCP(factory.config.getint("network", "controller_port"), controller) except: logging.log(logging.ERROR, "Something is already running on Port %s" % (factory.config.getint("network", "controller_port"))) sys.exit(1) money_logger = logging.getLogger('TransactionLogger') fh = logging.FileHandler('logs/server.log') formatter = logging.Formatter("%(asctime)s: %(message)s") fh.setFormatter(formatter) # Add the handler money_logger.addHandler(fh) try: reactor.run() finally: # Make sure worlds are flushed logging.log(logging.INFO, "Saving server metas...") factory.saveMeta() logging.log(logging.INFO, "Flushing worlds to disk...") for world in factory.worlds.values(): logging.log(logging.INFO, "Saving: %s" % world.basename); world.stop() world.save_meta() sys.exit(1);
logging.ERROR, "Something is already running on Port %s" % (factory.config.getint("network", "port"))) sys.exit(1) try: reactor.listenTCP(factory.config.getint("network", "controller_port"), controller) except: logging.log( logging.ERROR, "Something is already running on Port %s" % (factory.config.getint("network", "controller_port"))) sys.exit(1) money_logger = logging.getLogger('TransactionLogger') fh = logging.FileHandler('logs/server.log') formatter = logging.Formatter("%(asctime)s: %(message)s") fh.setFormatter(formatter) # Add the handler money_logger.addHandler(fh) try: reactor.run() finally: # Make sure worlds are flushed logging.log(logging.INFO, "Saving server metas...") factory.saveMeta() logging.log(logging.INFO, "Flushing worlds to disk...") for world in factory.worlds.values(): logging.log(logging.INFO, "Saving: %s" % world.basename) world.stop() world.save_meta() sys.exit(1)