Browse Source

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

master
Главред | Glavred 2 years ago
parent
commit
c28cf1270a
9 changed files with 203 additions and 226 deletions
  1. +3
    -3
      0000
  2. +130
    -0
      🏁.js
  3. +11
    -0
      🏁.череда
  4. +27
    -0
      📦
  5. +0
    -115
      🔄.js
  6. +0
    -12
      🔄.череда
  7. +10
    -96
      🗄️.js
  8. +14
    -0
      🙈.css
  9. +8
    -0
      🙈.html

+ 3
- 3
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
- 0
🏁.js 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
- 0
🏁.череда View File

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

+ 27
- 0
📦 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


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

+ 0
- 12
🔄.череда View File

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

+ 10
- 96
🗄️.js View File

@@ -1,4 +1,5 @@
var модуль = gitjs.мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
document.title = "🀄 Архивировать МАОН";


// MARK: /📦
@@ -6,117 +7,29 @@ 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
// 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


ОкончитьЗагрузкуПриложения = мир =>
{
мир.уведомить("надо окончить загрузку приложения");
eval(м.содержимое["/🏁.js"]);
мир.разобрать(м.содержимое["/🏁.череда"]);
};


@@ -184,6 +97,7 @@ gitjs.мир.разобрать(`
обновления приложения отсутствуют
загрузить библиотеки приложения
загрузили библиотеки приложения
загрузить окончание
окончить загрузку приложения

`);


+ 14
- 0
🙈.css View File

@@ -0,0 +1,14 @@


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


+ 8
- 0
🙈.html View File

@@ -0,0 +1,8 @@


<center>
<p>Маджонг ⚬ 麻将 ⚬ Mahjong</p>
<h1>🀄 МАОН</h1>
<p>0.1.0</p>
</center>


Loading…
Cancel
Save