def import_table_path(path, table_name, clear=True): """ Import a table's data from a path. """ # clear old data model = model_mapper.get_model(table_name) if not model: return if clear: model.objects.all().delete() if not os.path.isdir(path): return for file_name in os.listdir(path): file_name = os.path.join(path, file_name) if os.path.isdir(file_name): # if it is a folder continue print("Importing %s" % file_name) try: import_file(file_name, table_name=table_name, clear=False) except Exception, e: print("Import error: %s" % e)
def import_data_file(fp, table_name=None, file_type=None, clear=True): """ Import a single data file. """ fp.flush() import_file(fp.name, table_name=table_name, file_type=file_type, clear=clear)
def unzip_data_all(fp): """ Import all data files from a zip file. """ temp_path = tempfile.mkdtemp() try: archive = zipfile.ZipFile(fp, 'r') archive.extractall(temp_path) source_path = temp_path # if the zip file contains a root dir file_list = os.listdir(temp_path) if len(file_list) == 1: path = os.path.join(temp_path, file_list[0]) if os.path.isdir(path): source_path = path # Upgrade game data. UPGRADE_HANDLER.upgrade_data(source_path, None, configs.MUDDERY_LIB) # import data from path import_data_path(source_path) # load system localized strings # system data file's path system_data_path = os.path.join(settings.MUDDERY_DIR, settings.WORLD_DATA_FOLDER) # localized string file's path system_localized_string_path = os.path.join( system_data_path, settings.LOCALIZED_STRINGS_FOLDER, settings.LANGUAGE_CODE) # load data import_table_path(system_localized_string_path, settings.LOCALIZED_STRINGS_MODEL) # load custom localized strings # custom data file's path custom_localized_string_path = os.path.join( source_path, settings.LOCALIZED_STRINGS_MODEL) file_names = glob.glob(custom_localized_string_path + ".*") if file_names: print("Importing %s" % file_names[0]) try: import_file(file_names[0], table_name=settings.LOCALIZED_STRINGS_MODEL, clear=False) except Exception, e: print("Import error: %s" % e) finally: shutil.rmtree(temp_path)
def unzip_data_all(fp): """ Import all data files from a zip file. """ temp_path = tempfile.mkdtemp() try: archive = zipfile.ZipFile(fp, 'r') archive.extractall(temp_path) source_path = temp_path # if the zip file contains a root dir file_list = os.listdir(temp_path) if len(file_list) == 1: path = os.path.join(temp_path, file_list[0]) if os.path.isdir(path): source_path = path # Upgrade game data. UPGRADE_HANDLER.upgrade_data(source_path, None, configs.MUDDERY_LIB) # import data from path import_data_path(source_path) # load system localized strings # system data file's path system_data_path = os.path.join(settings.MUDDERY_DIR, settings.WORLD_DATA_FOLDER) # localized string file's path system_localized_string_path = os.path.join(system_data_path, settings.LOCALIZED_STRINGS_FOLDER, settings.LANGUAGE_CODE) # load data import_table_path(system_localized_string_path, settings.LOCALIZED_STRINGS_MODEL) # load custom localized strings # custom data file's path custom_localized_string_path = os.path.join(source_path, settings.LOCALIZED_STRINGS_MODEL) file_names = glob.glob(custom_localized_string_path + ".*") if file_names: print("Importing %s" % file_names[0]) try: import_file(file_names[0], table_name=settings.LOCALIZED_STRINGS_MODEL, clear=False) except Exception, e: print("Import error: %s" % e) finally: shutil.rmtree(temp_path)
def import_local_data(): """ Import all local data files to models. """ from django.conf import settings from muddery.worlddata.services import importer from muddery.worlddata.dao.data_importer import import_file # load custom data # custom data file's path custom_data_path = os.path.join(settings.GAME_DIR, settings.WORLD_DATA_FOLDER) # load all custom data importer.import_data_path(custom_data_path) # load system localized strings # system data file's path system_data_path = os.path.join(settings.MUDDERY_DIR, settings.WORLD_DATA_FOLDER) # localized string file's path system_localized_string_path = os.path.join( system_data_path, settings.LOCALIZED_STRINGS_FOLDER, settings.LANGUAGE_CODE) # load data importer.import_table_path(system_localized_string_path, settings.LOCALIZED_STRINGS_MODEL) # custom data file's path custom_localized_string_path = os.path.join( custom_data_path, settings.LOCALIZED_STRINGS_MODEL) file_names = glob.glob(custom_localized_string_path + ".*") if file_names: print("Importing %s" % file_names[0]) try: import_file(file_names[0], table_name=settings.LOCALIZED_STRINGS_MODEL, clear=False) except Exception, e: print("Import error: %s" % e)
def import_data_path(path, clear=True): """ Import data from path. Args: path: (string) data path. """ # import tables one by one models = model_mapper.get_all_models() for model in models: table_name = model.__name__ file_names = glob.glob(os.path.join(path, table_name) + ".*") if file_names: print("Importing %s" % file_names[0]) try: import_file(file_names[0], table_name=table_name, clear=clear) except Exception, e: print("Import error: %s" % e)