parser.add_argument('--load-config', '-c', type=str, required=False, default=None, help='uses the command-line from the config file with the given name') args = parser.parse_args() cfgPath = 'config/' if args.load_config: # try to load config cfgFilename = cfgPath + args.load_config if os.path.isfile(cfgFilename): with open(cfgFilename, 'r') as cfgFile: cfg = cfgFile.read().splitlines() args = parser.parse_args(cfg + sys.argv[1:]) # append current command-line arguments to loaded config else: handle_error('configuration not found: ' + args.load_config, True) # create a JSON config and dump it to stdout configJson = config.defaultConfig merge_dict(configJson, { "server": { "sources": [ { "path": args.server, "worldName": args.world, } ], "customName": args.server_name, }, "client": { "playersPerPage": args.players_per_page,
statByName[mcstat.name] = mcstat # Parse command-line arguments parser = argparse.ArgumentParser(description='Update MinecraftStats') parser.add_argument('config', type=str, help='the configuration to use') args = parser.parse_args() # load config if os.path.isfile(args.config): with open(args.config, 'r', encoding="utf8") as configFile: try: loadedConfigJson = json.load(configFile) except Exception as e: print('ERROR: failed to load config JSON') handle_error(e, True) merge_dict(configJson, loadedConfigJson) else: # save default print('writing default config to ' + args.config) with open(args.config, 'w') as configFile: json.dump(configJson, configFile, indent=4) config = RecursiveNamespace(**configJson) # get sources sources = [] if hasattr(config.server, 'path') and config.server.path: handle_error('server.path is deprecated, please use server.sources instead to configure your paths')
# load config if os.path.isfile(args.config): with open(args.config, 'r') as configFile: merge_dict(configJson, json.load(configFile)) else: # save default print('writing default config to ' + args.config) with open(args.config, 'w') as configFile: json.dump(configJson, configFile, indent=4) config = RecursiveNamespace(**configJson) # ensure config if not config.server.path: handle_error('server.path not configured, please edit ' + args.config, True) mcstats.CrownScore.gold = config.crown.gold mcstats.CrownScore.silver = config.crown.silver mcstats.CrownScore.bronze = config.crown.bronze inactive_time = 86400 * config.players.inactiveDays def is_active(last): global inactive_time return ((mcstats.now - last) <= inactive_time) min_playtime = config.players.minPlaytime profile_update_interval = 86400 * config.players.profileUpdateInterval