Изменения от Главреда ГитЖС | 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
|
||||
|
||||
x /🔄.js
|
||||
/🔄.череда
|
||||
/🏁.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.мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
||||
document.title = "🀄 Архивировать МАОН";
|
||||
|
||||
|
||||
// MARK: /📦
|
||||
@@ -6,111 +7,12 @@ var модуль = gitjs.мир.модули.модульПоУказателю(
|
||||
|
||||
модуль.содержимое["/📦"] = `
|
||||
|
||||
# Список указателей на модули для загрузки во время пуска
|
||||
# 启动时要加载的模块指针列表
|
||||
# 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/BCE/jszip/raw/branch/master/0000
|
||||
# Из Рисователя берём Base64JS, да, косо-криво, лучше поменять.
|
||||
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
|
||||
|
||||
|
||||
@@ -123,6 +25,17 @@ gitjs.мир.разобрать(`
|
||||
// // // //
|
||||
|
||||
|
||||
ЗагрузитьОкончание = мир =>
|
||||
{
|
||||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
||||
eval(м.содержимое["/🏁.js"]);
|
||||
мир.разобрать(м.содержимое["/🏁.череда"]);
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
ЗагрузитьБиблиотекиПриложения = мир =>
|
||||
{
|
||||
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