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()
email = logging.handlers.SMTPHandler( (factory.conf_email.get("email", "host"),factory.conf_email.get("email", "port")), factory.conf_email.get("email", "from"), [factory.conf_email.get("email", "to")], factory.conf_email.get("email", "subject"), ) email.setLevel(logging.ERROR) logging.root.addHandler(email) 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 logger.info("Saving server meta...") factory.saveMeta() logger.info("Flushing worlds to disk...") for world in factory.worlds.values(): logger.info("Saving: %s" % world.basename); world.stop() world.save_meta() logger.info("Done flushing...") logger.info("Thanks for using blockBox!") logger.info("Press enter to exit.") factory.console.stop = True
(factory.conf_email.get( "email", "host"), factory.conf_email.get("email", "port")), factory.conf_email.get("email", "from"), [factory.conf_email.get("email", "to")], factory.conf_email.get("email", "subject"), ) email.setLevel(logging.ERROR) logging.root.addHandler(email) 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 logger.info("Saving server meta...") factory.saveMeta() logger.info("Flushing worlds to disk...") for world in factory.worlds.values(): logger.info("Saving: %s" % world.basename) world.stop() world.save_meta() logger.info("Done flushing...") logger.info("Thanks for using blockBox!") logger.info("Press enter to exit.") factory.console.stop = True