Изменения от Главреда ГитЖС | Changes of GitJS Glavred
This commit is contained in:
6
0000
6
0000
@@ -1,7 +1,7 @@
|
|||||||
Архивировать МАОН
|
Архивировать МАОН
|
||||||
0.1.0
|
0.2.0
|
||||||
https://git.opengamestudio.org/kornerr/APXuBuPOBATb-MAOH
|
https://git.opengamestudio.org/kornerr/APXuBuPOBATb-MAOH
|
||||||
|
|
||||||
x /🔄.js
|
/🏁.js
|
||||||
/🔄.череда
|
/🏁.череда
|
||||||
x /🗄️.js
|
x /🗄️.js
|
||||||
130
🏁.js
Normal file
130
🏁.js
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВыдатьАрхивНаСкачивание = мир =>
|
||||||
|
{
|
||||||
|
// How to create a file in memory for user to download, but not through server?
|
||||||
|
// https://stackoverflow.com/a/18197341
|
||||||
|
var ссыль = document.createElement("a");
|
||||||
|
ссыль.setAttribute("href", "data:text/html;charset=utf-8;base64," + мир.содержимоеАрхива);
|
||||||
|
var имя = "MAOH.zip";
|
||||||
|
ссыль.setAttribute("download", имя);
|
||||||
|
ссыль.style.display = "none";
|
||||||
|
document.body.appendChild(ссыль);
|
||||||
|
ссыль.click();
|
||||||
|
document.body.removeChild(ссыль);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
СгенерироватьАрхив = мир =>
|
||||||
|
{
|
||||||
|
мир.архив.generateAsync({type: "base64"}).then(function(content) {
|
||||||
|
мир.содержимоеАрхива = content;
|
||||||
|
console.debug("мир.содержимоеАрхива", мир.содержимоеАрхива);
|
||||||
|
мир.уведомить("сгенерировали архив");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
СоздатьАрхивИзЗагруженныхМодулей = мир =>
|
||||||
|
{
|
||||||
|
var архив = new JSZip();
|
||||||
|
for (var н in мир.указателиМодулей)
|
||||||
|
{
|
||||||
|
var ук = мир.указателиМодулей[н];
|
||||||
|
//var ук64 = мир.база64ИзДвоичногоМассива(new Uint8Array(содержимое));
|
||||||
|
|
||||||
|
var директория = архив.folder(ук);
|
||||||
|
директория.file("hello", "yohello");
|
||||||
|
}
|
||||||
|
|
||||||
|
мир.архив = архив;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗагрузитьМодули = мир =>
|
||||||
|
{
|
||||||
|
мир.модули.использовали.подписатьРаз(function() {
|
||||||
|
мир.уведомить("загрузили модули");
|
||||||
|
});
|
||||||
|
мир.модули.использовать(мир.указателиМодулей);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВывестиУказателиМодулей = мир =>
|
||||||
|
{
|
||||||
|
console.debug("указатели модулей:", мир.указателиМодулей);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
РазобратьСписокМодулей = мир =>
|
||||||
|
{
|
||||||
|
var указатели = [];
|
||||||
|
var строки = мир.списокМодулей.split(/\n/);
|
||||||
|
for (var номер in строки)
|
||||||
|
{
|
||||||
|
var строка = строки[номер].trim();
|
||||||
|
if (!строка.startsWith("#") && строка.length)
|
||||||
|
{
|
||||||
|
указатели.push(строка);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
мир.указателиМодулей = указатели;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗадатьСписокМодулей = мир =>
|
||||||
|
{
|
||||||
|
мир.списокМодулей = `
|
||||||
|
https://bitbucket.org/gitjs/jquery/raw/3.5.1/0000
|
||||||
|
https://bitbucket.org/gitjs/uikit/raw/3.2.0/0000
|
||||||
|
https://git.opengamestudio.org/mahjong/mahjong-raskladka-layout/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/mahjong/povtorniy-repeating-ui/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/PuCOBATEJlb/PuCOBATEJlb/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000
|
||||||
|
|
||||||
|
https://git.opengamestudio.org/MAOH/MEXMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/CEHMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/MOPMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/PEEMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/OTMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/CYMA/raw/branch/master/0000
|
||||||
|
|
||||||
|
https://git.opengamestudio.org/MAOH/TEMA_M1K/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/PACK_M1/raw/branch/master/0000
|
||||||
|
|
||||||
|
# Убрать после отладки
|
||||||
|
https://git.opengamestudio.org/MAOH/TEMA_OT/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/PACK_OT/raw/branch/master/0000
|
||||||
|
`;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
СкрытьКрутилку = мир =>
|
||||||
|
{
|
||||||
|
document.getElementById("крутилка").style.display = "none";
|
||||||
|
};
|
||||||
11
🏁.череда
Normal file
11
🏁.череда
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
надо окончить загрузку приложения
|
||||||
|
скрыть крутилку
|
||||||
|
задать список модулей
|
||||||
|
разобрать список модулей
|
||||||
|
вывести указатели модулей
|
||||||
|
загрузить модули
|
||||||
|
загрузили модули
|
||||||
|
создать архив из загруженных модулей
|
||||||
|
сгенерировать архив
|
||||||
|
сгенерировали архив
|
||||||
|
выдать архив на скачивание
|
||||||
27
📦
Normal file
27
📦
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Список указателей на модули для загрузки во время пуска
|
||||||
|
# 启动时要加载的模块指针列表
|
||||||
|
# List of module pointers to load at startup
|
||||||
|
|
||||||
|
https://bitbucket.org/gitjs/jquery/raw/3.5.1/0000
|
||||||
|
https://bitbucket.org/gitjs/uikit/raw/3.2.0/0000
|
||||||
|
https://git.opengamestudio.org/mahjong/mahjong-raskladka-layout/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/mahjong/povtorniy-repeating-ui/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/PuCOBATEJlb/PuCOBATEJlb/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000
|
||||||
|
|
||||||
|
https://git.opengamestudio.org/MAOH/MEXMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/CEHMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/MOPMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/PEEMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/OTMA/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/CYMA/raw/branch/master/0000
|
||||||
|
|
||||||
|
https://git.opengamestudio.org/MAOH/TEMA_M1K/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/PACK_M1/raw/branch/master/0000
|
||||||
|
|
||||||
|
# Убрать после отладки
|
||||||
|
https://git.opengamestudio.org/MAOH/TEMA_OT/raw/branch/master/0000
|
||||||
|
https://git.opengamestudio.org/MAOH/PACK_OT/raw/branch/master/0000
|
||||||
|
|
||||||
115
🔄.js
115
🔄.js
@@ -1,115 +0,0 @@
|
|||||||
ПерезагрузитьПриложениеПослеОбновления = мир =>
|
|
||||||
{
|
|
||||||
window.location.reload(false);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
УдалитьМодулиПриложенияПередОбновлением = мир =>
|
|
||||||
{
|
|
||||||
var список = мир.списокМодулейПриложенияДляОбновления;
|
|
||||||
for (var номер in список)
|
|
||||||
{
|
|
||||||
var указатель = список[номер];
|
|
||||||
localStorage.removeItem(указатель);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
ПроверитьНаличиеМодулейПриложенияДляОбновления = мир =>
|
|
||||||
{
|
|
||||||
if (мир.списокМодулейПриложенияДляОбновления.length)
|
|
||||||
{
|
|
||||||
мир.уведомить("присутствуют модули приложения для обновления");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
мир.уведомить("отсутствуют модули приложения для обновления");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
СоставитьСписокМодулейПриложенияДляОбновления = мир =>
|
|
||||||
{
|
|
||||||
var список = [];
|
|
||||||
var описания = мир.описанияМодулейПриложения;
|
|
||||||
for (var указатель in описания)
|
|
||||||
{
|
|
||||||
var описание = описания[указатель];
|
|
||||||
var модуль = мир.модули.модульПоУказателю(указатель);
|
|
||||||
if (
|
|
||||||
модуль &&
|
|
||||||
модуль.версия != описание.версия
|
|
||||||
) {
|
|
||||||
список.push(указатель);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
мир.списокМодулейПриложенияДляОбновления = список;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
УведомитьОбОтсутствииОбновленийПриложения = мир =>
|
|
||||||
{
|
|
||||||
мир.уведомить("обновления приложения отсутствуют");
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
ЗагрузитьОписаниеВсехМодулейПриложения = мир =>
|
|
||||||
{
|
|
||||||
var указатели = [УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ];
|
|
||||||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
|
||||||
var содержимое = м.содержимое["/📦"];
|
|
||||||
var строки = содержимое.split(/\n/);
|
|
||||||
for (var номер in строки)
|
|
||||||
{
|
|
||||||
var строка = строки[номер];
|
|
||||||
if (!строка.startsWith("#") && строка.length)
|
|
||||||
{
|
|
||||||
указатели.push(строка);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
мир.описанияМодулейПриложения = [];
|
|
||||||
|
|
||||||
function загрузитьОписание(мир, список, номер, успех, провал)
|
|
||||||
{
|
|
||||||
const указатель = список[номер];
|
|
||||||
мир.взять(
|
|
||||||
указатель,
|
|
||||||
function(содержимое) {
|
|
||||||
var описание = мир.разобрать0000(содержимое);
|
|
||||||
мир.описанияМодулейПриложения[указатель] = описание;
|
|
||||||
успех();
|
|
||||||
},
|
|
||||||
function(ошибка) {
|
|
||||||
провал();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
сделатьПараллельно(
|
|
||||||
мир,
|
|
||||||
указатели,
|
|
||||||
загрузитьОписание,
|
|
||||||
function() {
|
|
||||||
мир.уведомить("загрузили описание всех модулей приложения");
|
|
||||||
},
|
|
||||||
function() {
|
|
||||||
мир.уведомить("не загрузили описание всех модулей приложения");
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
12
🔄.череда
12
🔄.череда
@@ -1,12 +0,0 @@
|
|||||||
надо обновить приложение при наличии обновлений
|
|
||||||
загрузить описание всех модулей приложения
|
|
||||||
не загрузили описание всех модулей приложения
|
|
||||||
уведомить об отсутствии обновлений приложения
|
|
||||||
загрузили описание всех модулей приложения
|
|
||||||
составить список модулей приложения для обновления
|
|
||||||
проверить наличие модулей приложения для обновления
|
|
||||||
отсутствуют модули приложения для обновления
|
|
||||||
уведомить об отсутствии обновлений приложения
|
|
||||||
присутствуют модули приложения для обновления
|
|
||||||
удалить модули приложения перед обновлением
|
|
||||||
перезагрузить приложение после обновления
|
|
||||||
116
🗄️.js
116
🗄️.js
@@ -1,4 +1,5 @@
|
|||||||
var модуль = gitjs.мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
var модуль = gitjs.мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
||||||
|
document.title = "🀄 Архивировать МАОН";
|
||||||
|
|
||||||
|
|
||||||
// MARK: /📦
|
// MARK: /📦
|
||||||
@@ -6,111 +7,12 @@ var модуль = gitjs.мир.модули.модульПоУказателю(
|
|||||||
|
|
||||||
модуль.содержимое["/📦"] = `
|
модуль.содержимое["/📦"] = `
|
||||||
|
|
||||||
# Список указателей на модули для загрузки во время пуска
|
https://git.opengamestudio.org/BCE/jszip/raw/branch/master/0000
|
||||||
# 启动时要加载的模块指针列表
|
# Из Рисователя берём Base64JS, да, косо-криво, лучше поменять.
|
||||||
# List of module pointers to load at startup
|
|
||||||
|
|
||||||
https://bitbucket.org/gitjs/jquery/raw/3.5.1/0000
|
|
||||||
https://bitbucket.org/gitjs/uikit/raw/3.2.0/0000
|
|
||||||
https://git.opengamestudio.org/mahjong/mahjong-raskladka-layout/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/mahjong/povtorniy-repeating-ui/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/PuCOBATEJlb/PuCOBATEJlb/raw/branch/master/0000
|
https://git.opengamestudio.org/PuCOBATEJlb/PuCOBATEJlb/raw/branch/master/0000
|
||||||
https://git.opengamestudio.org/PuCOBATEJlb/PECYPCbl/raw/branch/master/0000
|
|
||||||
|
|
||||||
https://git.opengamestudio.org/MAOH/MEXMA/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/MAOH/CEHMA/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/MAOH/MOPMA/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/MAOH/PEEMA/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/MAOH/OTMA/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/MAOH/CYMA/raw/branch/master/0000
|
|
||||||
|
|
||||||
https://git.opengamestudio.org/MAOH/TEMA_M1K/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/MAOH/PACK_M1/raw/branch/master/0000
|
|
||||||
|
|
||||||
# Убрать после отладки
|
|
||||||
https://git.opengamestudio.org/MAOH/TEMA_OT/raw/branch/master/0000
|
|
||||||
https://git.opengamestudio.org/MAOH/PACK_OT/raw/branch/master/0000
|
|
||||||
|
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
|
||||||
// MARK: /🙈.html
|
|
||||||
|
|
||||||
|
|
||||||
модуль.содержимое["/🙈.html"] = `
|
|
||||||
|
|
||||||
<center>
|
|
||||||
<p>Маджонг ⚬ 麻将 ⚬ Mahjong</p>
|
|
||||||
<h1>🀄 МАОН</h1>
|
|
||||||
<p>${версия}</p>
|
|
||||||
</center>
|
|
||||||
|
|
||||||
`;
|
|
||||||
|
|
||||||
|
|
||||||
// MARK: /🙈.css
|
|
||||||
|
|
||||||
|
|
||||||
модуль.содержимое["/🙈.css"] = `
|
|
||||||
|
|
||||||
.фон-экрана
|
|
||||||
{
|
|
||||||
background-color: white;
|
|
||||||
position: fixed;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
`;
|
|
||||||
|
|
||||||
|
|
||||||
// MARK: /🎬.js
|
|
||||||
|
|
||||||
|
|
||||||
ЗадатьЗаголовок = мир =>
|
|
||||||
{
|
|
||||||
document.title = "🀄 МАОН";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
|
||||||
|
|
||||||
|
|
||||||
ОтобразитьСтраницуЗагрузки = мир =>
|
|
||||||
{
|
|
||||||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
|
||||||
|
|
||||||
var вид = document.createElement("style");
|
|
||||||
document.head.appendChild(вид);
|
|
||||||
вид.innerHTML = м.содержимое["/🙈.css"];
|
|
||||||
|
|
||||||
var структура = м.содержимое["/🙈.html"]
|
|
||||||
.replace(/\${версия}/g, м.версия);
|
|
||||||
// Вставляем содержимое в рамку, чтобы применяемые стили UIkit не
|
|
||||||
// дёргали надписи.
|
|
||||||
// https://stackoverflow.com/a/8322025
|
|
||||||
var рамка = "<iframe id='экран-загрузки' class='фон-экрана' frameBorder='0'></iframe>";
|
|
||||||
document.body.insertAdjacentHTML("afterbegin", рамка);
|
|
||||||
document.getElementById("экран-загрузки").src = "data:text/html;charset=utf-8," + структура;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// MARK: /🎬.череда
|
|
||||||
|
|
||||||
|
|
||||||
gitjs.мир.разобрать(`
|
|
||||||
|
|
||||||
пуск
|
|
||||||
задать заголовок
|
|
||||||
отобразить страницу загрузки
|
|
||||||
|
|
||||||
`);
|
|
||||||
|
|
||||||
|
|
||||||
// MARK: /📦.js
|
// MARK: /📦.js
|
||||||
|
|
||||||
|
|
||||||
@@ -123,6 +25,17 @@ gitjs.мир.разобрать(`
|
|||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗагрузитьОкончание = мир =>
|
||||||
|
{
|
||||||
|
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
||||||
|
eval(м.содержимое["/🏁.js"]);
|
||||||
|
мир.разобрать(м.содержимое["/🏁.череда"]);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
ЗагрузитьБиблиотекиПриложения = мир =>
|
ЗагрузитьБиблиотекиПриложения = мир =>
|
||||||
{
|
{
|
||||||
var указатели = [];
|
var указатели = [];
|
||||||
@@ -184,6 +97,7 @@ gitjs.мир.разобрать(`
|
|||||||
обновления приложения отсутствуют
|
обновления приложения отсутствуют
|
||||||
загрузить библиотеки приложения
|
загрузить библиотеки приложения
|
||||||
загрузили библиотеки приложения
|
загрузили библиотеки приложения
|
||||||
|
загрузить окончание
|
||||||
окончить загрузку приложения
|
окончить загрузку приложения
|
||||||
|
|
||||||
`);
|
`);
|
||||||
|
|||||||
14
🙈.css
Normal file
14
🙈.css
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
|
||||||
|
.фон-экрана
|
||||||
|
{
|
||||||
|
background-color: white;
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user