|
- const АДРЕС_АРХИВА = "https://git.opengamestudio.org/kornerr/APXuB/raw/branch/master/MAOH.zip";
- const КЛЮЧЕВОЙ_МОДУЛЬ = "https://git.opengamestudio.org/MAOH/CYMA/raw/branch/master/0000";
-
-
- // // // //
-
-
- СохранитьМодулиПриложенияИзАрхива = мир =>
- {
- console.debug("сохранить модули приложения из архива");
-
- var номер = 0;
- const ук = мир.списокМодулейИзАрхива[номер];
- const описание = мир.описанияМодулейИзАрхива[номер];
- var список = Object.keys(описание.структура).sort();
- console.debug("список", список);
-
- var модуль =
- new Модуль(
- описание.имя,
- описание.версия,
- описание["🏠"],
- указатель,
- указатель + "/..",
- описание.структура
- );
- модуль.содержимое = {};
-
- function собратьМодуль(мир, список, номер, успех, провал)
- {
- const файл = список[номер];
- var свойства = описание.структура[файл];
- var тип = свойства.двоичный ? "arraybuffer" : "string";
- var путь = `${номер}${файл}`;
- console.debug("путь", путь);
- мир.архив.file(путь).async(тип).then(function(содержимое) {
- модуль.содержимое[файл] = содержимое;
- успех();
- });
- }
-
- сделатьПоследовательно(
- мир,
- список,
- собратьМодуль,
- function() {
- //мир.уведомить("собрали содержимое модулей из архива");
- //console.debug("описания", мир.описанияМодулейИзАрхива);
- console.debug("собранный модуль", модуль);
- }
- );
- };
-
-
- // // // //
-
-
- СобратьОписанияМодулейИзАрхива = мир =>
- {
- мир.описанияМодулейИзАрхива = [];
-
- function собратьОписание(мир, список, номер, успех, провал)
- {
- const ук = список[номер];
- var файл = `${номер}/0000`;
- мир.архив.file(файл).async("string").then(function(содержимое) {
- var описание = мир.разобрать0000(содержимое);
- мир.описанияМодулейИзАрхива.push(описание);
- успех();
- });
- }
-
- сделатьПоследовательно(
- мир,
- мир.списокМодулейИзАрхива,
- собратьОписание,
- function() {
- мир.уведомить("собрали описания модулей из архива");
- console.debug("описания", мир.описанияМодулейИзАрхива);
- }
- );
- };
-
-
- // // // //
-
-
- СобратьСписокМодулейИзАрхива = мир =>
- {
- мир.архив.file("gitjs").async("string").then(function(содержимое) {
- var строки = содержимое.split(/\n/);
- var список = [];
- for (var н in строки)
- {
- var строка = строки[н];
- if (строка.length)
- {
- список.push(строка);
- }
- }
- мир.списокМодулейИзАрхива = список;
- мир.уведомить("собрали список модулей из архива");
- });
- };
-
-
- // // // //
-
-
- УведомитьОЯкобыНаличииПриложения = мир =>
- {
- мир.уведомить("приложение присутствует");
- };
-
-
- // // // //
-
-
- РазобратьАрхивПриложения = мир =>
- {
- var zip = new JSZip();
- zip.loadAsync(мир.архив).then(function(архив) {
- мир.архив = архив.folder("MAOH");
- мир.уведомить("разобрали архив приложения");
- });
- };
-
-
- // // // //
-
-
- СкачатьАрхивПриложения = мир =>
- {
-
- мир.взять(
- АДРЕС_АРХИВА,
- function(содержимое) {
- мир.архив = содержимое;
- мир.уведомить("скачали архив приложения");
- },
- function(ошибка) {
- мир.уведомить("не скачали архив приложения");
- },
- true
- );
- };
-
-
- // // // //
-
-
- ПроверитьНаличиеКлючевогоМодуляПриложения = мир =>
- {
- console.debug("проверить наличие ключевого модуля приложения");
- var м = мир.модули.модули[КЛЮЧЕВОЙ_МОДУЛЬ];
- if (м)
- {
- console.debug("приложение есть");
- мир.уведомить("приложение присутствует");
- }
- else
- {
- console.debug("приложения нет");
- мир.уведомить("приложение отсутствует");
- }
- };
|