Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Rivixal authored Jun 27, 2023
1 parent e26ac87 commit b2ae50e
Show file tree
Hide file tree
Showing 11 changed files with 683 additions and 0 deletions.
Binary file added console/asstes/release/4389trh7f8dscvre0.zip
Binary file not shown.
Empty file added console/asstes/root.js
Empty file.
Empty file added console/asstes/shutdown.css
Empty file.
57 changes: 57 additions & 0 deletions console/asstes/startup.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
var userDeviceArray = [
{ device: 'Android', platform: /Android/ },
{ device: 'iPhone', platform: /iPhone/ },
{ device: 'iPad', platform: /iPad/ },
{ device: 'Symbian', platform: /Symbian/ },
{ device: 'Windows Phone', platform: /Windows Phone/ },
{ device: 'Tablet OS', platform: /Tablet OS/ },
{ device: 'Linux', platform: /Linux/ },
{ device: 'Windows XP (or Server 2003) and older', platform: /Windows NT 5.1/ },
{ device: 'Windows Vista (or Server 2008)', platform: /Windows NT 6.0/ },
{ device: 'Windows 7 (or Server 2008 R2)', platform: /Windows NT 6.1/ },
{ device: 'Windows 8 (or Server 2012)', platform: /Windows NT 6.2/ },
{ device: 'Windows 8.1 (or Server 2012 R2)', platform: /Windows NT 6.3/ },
{ device: 'Windows 10/11 (or Server 2016/2019)', platform: /Windows NT 10.0/ },
{ device: 'Macintosh', platform: /Macintosh/ }
];

var platform = navigator.userAgent;

// Функция получения платформы ОС
function getPlatform() {
for (var i = 0; i < userDeviceArray.length; i++) {
if (userDeviceArray[i].platform.test(platform)) {
return userDeviceArray[i].device;
}
}
return 'Unknown';
}

// Функция имитации запуска ПК
function simulatePCStartup() {
var output = document.getElementById('output');

// Функция для добавления строки с задержкой
function addOutputLine(line, delay) {
setTimeout(function () {
output.innerHTML += line + '\n';
}, delay * 1000);
}

// Добавление строк с задержкой
addOutputLine('[ 0.00000000] Search shell command prompt', 0);
addOutputLine('[ 1.00000000] Your OS: ' + getPlatform(), 1);
addOutputLine('[ 2.00000000] Initialization shell prompt', 2);
addOutputLine('[ 3.00000000] Startup May Console', 3);

// Перенаправление на страницу shell/index.html с задержкой
setTimeout(function () {
window.location.href = 'shell/index.html';
}, 5000);
}

// Вызов функции имитации запуска ПК при загрузке страницы
window.onload = function () {
simulatePCStartup();
};

71 changes: 71 additions & 0 deletions console/asstes/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
* {
margin: 0;
padding: 0;
}

html {
background-color: #000;
}

body {
-webkit-user-select: none; /* Запрет выделения текста для Chrome, Safari, Opera */
-moz-user-select: none; /* Запрет выделения текста для Firefox */
-ms-user-select: none; /* Запрет выделения текста для Internet Explorer и Microsoft Edge */
user-select: none; /* Запрет выделения текста для большинства браузеров */
}

.console {
border-color: darkgray 10px;
background-color: rgb(0, 0, 0);
padding: 10px;
font-family: monospace;
font-size: 20px;
}



#output {
min-height: 10px;
overflow-y: auto;
white-space: pre-wrap;
word-wrap: break-word;
color: #fff;
}

input {
color: #fff;
width: 100%;
border: none;
background-color: transparent;
outline: none;
font-family: monospace;
font-size: 20px;
}

::-webkit-scrollbar {
transition: 0.2s;
background: #000000c9;
backdrop-filter: blur(5px);
margin-right: 5px;
width: 8px;
overflow-y: auto;
scrollbar-color: transparent;
}

::-webkit-scrollbar-button:hover {
box-shadow: inset 0 0 3px #fafafa; background: snow;
}

::-webkit-scrollbar-thumb {
background: rgb(255, 255, 255);

}

::-webkit-scrollbar-thumb:hover {
background: rgb(255, 255, 255);
animation-duration: 0.5s;
}

::-webkit-scrollbar-thumb:active {
background: rgb(84, 84, 84);
}
257 changes: 257 additions & 0 deletions console/asstes/system.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
document.addEventListener('DOMContentLoaded', function() {
const input = document.getElementById('input');
const output = document.getElementById('output');
const consoleElement = document.querySelector('.console');
let canInputCommand = true;

output.innerHTML += 'May Console 1.0\n';
output.innerHTML += 'Languange: RU\n';
output.innerHTML += 'Account: User\n';
output.innerHTML += '\n';
output.innerHTML += 'Введи слово hint, чтобы ознакомиться с командами.\n';

input.addEventListener('keydown', function(event) {
if (event.key === 'Enter') {
const command = input.value;
input.value = '';

output.innerHTML += '> ' + command + '\n';

if (canInputCommand) {
executeCommand(command);
} else {
output.innerHTML += 'Подождите, идет выполнение предыдущей команды...\n';
}

// Прокрутка командной строки вниз после выполнения команды
consoleElement.scrollTop = consoleElement.scrollHeight;
}
});

function executeCommand(command) {
if (command === 'hello') {
output.innerHTML += 'Привет!\n';
} else if (command === 'time') {
const currentTime = new Date().toLocaleTimeString();
output.innerHTML += 'Текущее время: ' + currentTime + '\n';
} else if (command === 'checkversion') {
checkScriptVersion();
} else if (command.startsWith('execute')) {
executeSubcommand(command);
} else if (command === 'clear') {
clearConsole();
} else if (command === '--bio:maydilsiel') {
showbio();
} else if (command === 'graphic_-install') {
installationGraphics();
} else if (command === 'about-system') {
output.innerHTML += '\n';
output.innerHTML += 'May Console 1.0\n';
output.innerHTML += '=========================================\n';
output.innerHTML += 'Последнее обновление: 27/06/2023 \n';
output.innerHTML += 'Основан на: JavaScript\n';
output.innerHTML += 'Работали над консолью Ramzayev German & Ivan Movchan\n';
output.innerHTML += 'Исходный код проекта: Открыт.\n';
output.innerHTML += '\n';
} else if (command === 'hint') {
showHint();
} else if (command.startsWith('changecolor')) {
const colors = command.substring(12).split(' ');
const textColor = colors[1];
const backgroundColor = colors[0];
changeColor(textColor, backgroundColor);
} else {
if (canInputCommand) {
output.innerHTML += '<b style="color: red;">E:</b> Неизвестная команда: ' + command + '\n';
} else {
output.innerHTML += 'Подождите, идет выполнение предыдущей команды...\n';
}
}

// Прокрутка командной строки вниз после выполнения команды
consoleElement.scrollTop = consoleElement.scrollHeight;
}

function executeSubcommand(command) {
const subcommand = command.substring(8).trim();

if (subcommand === '--help') {
output.innerHTML += 'Доступные подкоманды:\n';
output.innerHTML += '- execute --9 page=download_-version: Отображает информацию о доступных релизах.\n';
output.innerHTML += '- execute --9 page=download_-4389trh7f8dscvre0: Отображает информацию о конкретном релизе.\n';
output.innerHTML += '\n';
} else if (subcommand === '--9 page=download_-version') {
clearConsole();
output.innerHTML += 'Выбор релиза\n';
output.innerHTML += '==================================================\n';
output.innerHTML += '\n';
output.innerHTML += 'MayConsole 1.0 [Release code 4389trh7f8dscvre0] [date: 27/06/2023]\n';
} else if (subcommand === '--9 page=download_-4389trh7f8dscvre0') {
output.innerHTML += 'MayConsole 1.0 [Release code 4389trh7f8dscvre0] [date: 27/06/2023]\n';
output.innerHTML += '===============================================================================\n';
output.innerHTML += '\n';
output.innerHTML += 'Сведение execute --i page=download_-4389trh7f8dscvre0\n';
} else if (subcommand === '--i page=download_-4389trh7f8dscvre0') {
clearConsole();
output.innerHTML += 'MayConsole 1.0 [Release code 4389trh7f8dscvre0] [date: 27/06/2023]\n';
output.innerHTML += '===============================================================================\n';
output.innerHTML += '\n';
output.innerHTML += 'Преимущества:\n';
output.innerHTML += '- Простота использования: Консоль предоставляет удобный интерфейс для взаимодействия с пользователем через командную строку.\n';
output.innerHTML += '- Гибкость: Вы можете добавлять свои собственные команды и логику обработки в функции `executeCommand` и `executeSubcommand`.\n';
output.innerHTML += '- Возможность отображать результаты выполнения команд и подкоманд в консоли.\n';
output.innerHTML += '- Интерактивность: Пользователь может вводить команды и получать ответы в режиме реального времени.\n';
output.innerHTML += '\n';
output.innerHTML += 'Недостатки:\n';
output.innerHTML += '- Отсутствие встроенных механизмов безопасности: Консоль не имеет механизмов защиты от злонамеренных команд или ввода данных, поэтому необходимо самостоятельно обеспечить безопасность и валидацию вводимых команд.\n';
output.innerHTML += '- Ограниченность функциональности: Консоль может выполнять только те команды, которые были предварительно определены в коде.\n';
output.innerHTML += '\n';
output.innerHTML += 'Инструкция по встраиванию:\n';
output.innerHTML += '1. Редактирование CSS:\n';
output.innerHTML += ' - Добавьте следующие стили для класса `.console`:\n';
output.innerHTML += ' ```css\n';
output.innerHTML += ' .console {\n';
output.innerHTML += ' height: 300px; /* Высота консоли */\n';
output.innerHTML += ' overflow-y: auto; /* Включение вертикальной прокрутки */\n';
output.innerHTML += ' font-family: monospace; /* Шрифт для текста в консоли */\n';
output.innerHTML += ' }\n';
output.innerHTML += ' ```\n';
output.innerHTML += ' - Добавьте следующие стили для класса `.console pre` (для отображения текста в консоли):\n';
output.innerHTML += ' ```css\n';
output.innerHTML += ' .console pre {\n';
output.innerHTML += ' margin: 0;\n';
output.innerHTML += ' white-space: pre-wrap; /* Обработка переносов строк */\n';
output.innerHTML += ' word-break: break-all; /* Разбиение слов по слогам */\n';
output.innerHTML += ' }\n';
output.innerHTML += ' ```\n';
output.innerHTML += '\n';
output.innerHTML += '2. Добавление HTML-кода:\n';
output.innerHTML += ' - Внутри `&lt;body&gt;` вашего HTML-файла добавьте следующий код:\n';
output.innerHTML += ' ```html\n';
output.innerHTML += ' &lt;div class="console"&gt;\n';
output.innerHTML += ' &lt;pre id="output"&gt;&lt;/pre&gt;\n';
output.innerHTML += ' &lt;/div&gt;\n';
output.innerHTML += ' &lt;br&gt;\n';
output.innerHTML += ' &lt;input type="text" id="input" placeholder="Введите команду, для полной подсказки воспользуйтесь командой hint" autofocus&gt;\n';
output.innerHTML += ' ```\n';
output.innerHTML += '\n';
output.innerHTML += '3. Добавление скрипта:\n';
output.innerHTML += ' - Добавьте скрипт в ваш HTML-файл внутри блока `&lt;script&gt;&lt;/script&gt;`:\n';
output.innerHTML += ' ```javascript\n';
output.innerHTML += ' &lt;script&gt;\n';
output.innerHTML += ' // Вставьте здесь код, который был предоставлен ранее\n';
output.innerHTML += ' &lt;/script&gt;\n';
output.innerHTML += ' ```\n';
output.innerHTML += '\n';
output.innerHTML += 'После внедрения кода, вы сможете использовать любую команду для выполнения определенной логики в функции `executeSubcommand` в коде JavaScript. Вам необходимо добавить соответствующий блок кода в эту функцию, чтобы обрабатывать и выполнять эту команду соответствующим образом.\n';
output.innerHTML += 'Для установки данного релиза нужно ввести эту команду с участием execute с ключом [-o]\n';

} else if (subcommand === '-o page=download_-4389trh7f8dscvre0') {
output.innerHTML += 'Установка релиза...........'
window.location.href = '../asstes/release/4389trh7f8dscvre0.zip';

} else {
output.innerHTML += '<b style="color: red;">E:</b> Неизвестная подкоманда: ' + subcommand + '\n';
}

// Прокрутка командной строки вниз после выполнения подкоманды
consoleElement.scrollTop = consoleElement.scrollHeight;
}

function clearConsole() {
output.innerHTML = ''; // Очистка содержимого консоли

// Прокрутка командной строки вниз после очистки
consoleElement.scrollTop = consoleElement.scrollHeight;
}

function checkScriptVersion() {
output.innerHTML += 'Проверка версии скрипта...\n';
canInputCommand = false; // Запрет ввода новых команд

// Здесь можно добавить логику проверки версии скрипта, например, с помощью AJAX-запроса или других методов
// Для примера, использован фиктивный запрос к файлу с информацией о версии

setTimeout(function() {
output.innerHTML += 'Версия скрипта: 1.0\n';
canInputCommand = true; // Разрешение ввода новых команд

// Прокрутка командной строки вниз после проверки версии
consoleElement.scrollTop = consoleElement.scrollHeight;
}, 2000);
}

function showHint() {
output.innerHTML += 'Доступные команды:\n';
output.innerHTML += '- hello: Выводит приветствие.\n';
output.innerHTML += '- time: Выводит текущее время.\n';
output.innerHTML += '- checkversion: Проверяет версию скрипта.\n';
output.innerHTML += '- execute --help: Выводит доступные подкоманды для execute.\n';
output.innerHTML += '- clear: Очищает консоль.\n';
output.innerHTML += '- about-system: Выводит информацию о системе.\n';
output.innerHTML += '- hint: Выводит список доступных команд.\n';
output.innerHTML += '- changecolor <background-color> <text-color>: Изменяет цвет фона и текста в консоли.\n';
output.innerHTML += '\n';

// Прокрутка командной строки вниз после вывода подсказки
consoleElement.scrollTop = consoleElement.scrollHeight;
}

function changeColor(textColor, backgroundColor) {
const consoleStyle = consoleElement.style;
consoleStyle.color = textColor;
consoleStyle.backgroundColor = backgroundColor;

output.innerHTML += 'Цвет фона и текста изменен.\n';

// Прокрутка командной строки вниз после изменения цвета
consoleElement.scrollTop = consoleElement.scrollHeight;
}

function installationGraphics() {
window.location.href = 'mayinstaller.html';
output.innerHTML += 'Загрузка в графическую установку.................................\n';

// Прокрутка командной строки вниз после изменения цвета
consoleElement.scrollTop = consoleElement.scrollHeight;
}

function playSoundCloudTrack(trackUrl) {
// Подставьте ваш Client ID вместо YOUR_CLIENT_ID
SC.initialize({ client_id: 'YOUR_CLIENT_ID' });

// Получение информации о треке с помощью API
SC.resolve(trackUrl)
.then(function (track) {
var audio = document.getElementById('myAudio');

// Установка пути трека в аудио элемент
audio.src = track.stream_url + '?client_id=YOUR_CLIENT_ID';

// Воспроизведение трека
audio.play();
})
.catch(function (error) {
console.error('Ошибка при загрузке трека:', error);
});
}

function showbio() {
clearConsole();
output.innerHTML += 'БИОГРАФИЯ MAYDILSIEL\n';
output.innerHTML += '=====================================================\n';
output.innerHTML += 'Имя: Герман Рамзаев\n';
output.innerHTML += 'Возраст: 17 (скоро 18)\n';
output.innerHTML += 'Место жительства: Казахстан\n';
output.innerHTML += 'Родной язык: Русский\n';
output.innerHTML += 'Часовой пояс: UTC +06:00\n';
output.innerHTML += 'Учится на программиста\n';
output.innerHTML += 'Основной язык программирования: C#\n';
output.innerHTML += 'Дополнительный язык программирования: Python + JavaScript\n';
output.innerHTML += 'Изредка использует С++\n';
output.innerHTML += 'Самостоятельное изучение языка C# важная часть развития для него\n';

}


});
Loading

0 comments on commit b2ae50e

Please sign in to comment.