Изменения от Главреда ГитЖС | Changes of GitJS Glavred

This commit is contained in:
Главред | Glavred
2021-01-19 16:13:28 +03:00
parent 478dbfac0e
commit c28cf1270a
9 changed files with 208 additions and 231 deletions

6
0000
View File

@@ -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
View 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
View File

@@ -0,0 +1,11 @@
надо окончить загрузку приложения
скрыть крутилку
задать список модулей
разобрать список модулей
вывести указатели модулей
загрузить модули
загрузили модули
создать архив из загруженных модулей
сгенерировать архив
сгенерировали архив
выдать архив на скачивание

27
📦 Normal file
View 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
View File

@@ -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() {
мир.уведомить("не загрузили описание всех модулей приложения");
}
);
};

View File

@@ -1,12 +0,0 @@
надо обновить приложение при наличии обновлений
загрузить описание всех модулей приложения
не загрузили описание всех модулей приложения
уведомить об отсутствии обновлений приложения
загрузили описание всех модулей приложения
составить список модулей приложения для обновления
проверить наличие модулей приложения для обновления
отсутствуют модули приложения для обновления
уведомить об отсутствии обновлений приложения
присутствуют модули приложения для обновления
удалить модули приложения перед обновлением
перезагрузить приложение после обновления

View File

@@ -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
View File

@@ -0,0 +1,14 @@
.фон-экрана
{
background-color: white;
position: fixed;
left: 0;
top: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
}

8
🙈.html Normal file
View File

@@ -0,0 +1,8 @@
<center>
<p>Маджонг ⚬ 麻将 ⚬ Mahjong</p>
<h1>🀄 МАОН</h1>
<p>0.1.0</p>
</center>