Кодерские работы
101 subscribers
651 photos
205 videos
31 files
129 links
Немного (а может и нет) программирую 👾

Сайт - https://wixdev.netlify.app
Download Telegram
👊 Один хороший друг, подогнал мне тут три книжечки.

📖 "Основы информационной безопасности" - Нестеров С.А.
📖 "Новая большая книга CSS" - Дэвид Макфарланд.
📖 "Программирование для детей" - Авторов много 🤪

📚 Может с этих книг и начнется моя некая библиотека книжек по программированию...

... эх кто знает, кто знает.
❤‍🔥4👾2
Решено!
Я остаюсь на библиотеке Octokit.

У данной библиотеки был минус в том, что она медленная при подсчете размера всех нужных файлов, из-за чего проверка обновлений длилась долго.
Теперь же будет другой подход, а точнее я создам свою собственную небольшую программку 💻 для внутренних нужд и будет использоваться мной и создателем модификации @Lg_corner. Она будет считать размер необходимых файлов, а точнее размер обновления.

И после этого мы просто скопируем инфу, вставим в файл на GitHub 🐙, и уже впоследствии лаунчер, скачав данный файлик, будет заранее знать размер обновления. 🚀

Из вышесказанного можно сделать вывод, что на данный момент есть первостепенные задачи, которые я буду решать:

❌ Создание утилиты. 🛠️
❌ Корректное отображение информации о загрузке. 📊
❌ Корректное скачивание, чтобы все скачивалось по нужным папкам. 📁
👾8
✅ Первый пункт готов, небольшая программа для внутреннего пользования готова.
👾8
😠 Я мучился с этим где-то час.
🐞 Нужный файл не скачивается, вот хоть убей.
🔗 Разные ссылки копировал с гитхаба, на необходимый файл, но он не качался.
👌 Хотя у меня в браузере все работало отлично.
💬 Даже для этого сделал вывод сообщения, как на скриншоте.
🤦‍♂️ Весь юмор в том, что репозиторий приватный и WebClient, который я использую для скачивания данного файла не имел к нему доступ...
👾8
👨‍💻 Вот так вот выглядит мой экран.
🐙 Консоль с гитом
📁 Файлик с инфой об обновлении
🖥️ Программка, которая сократит ваши ожидания и облегчит разработчикам жизнь.
🙌 Ну и самое главное обновления🎉🎉🎉
✅ Они работают, все качается, туда куда надо и то что надо.
🧠 Разве это не успех, я считаю что это определенно успех.

Теперь время рефакторинга так как писал код, я так чтобы он хотябы работал 😁.
А ещё надо покушат 🍝, а потом снова посвящу вас в новости проекта, так как рассказал кратко, потому что все заработало наконец-то.
🎁 Я рад и захотел немедленно поделиться с вами.
👾10
Пришло время объяснить, как происходит обновление! 🆙️

После нажатия на кнопку "Проверить наличие обновлений", первое что происходит - это пинг до сайта google.com, чтобы проверить подключение к интернету. 🌐 Если пинг проходит удачно, то скачивается файл с информацией об обновлении. 📁 Пока имеет в себе 3 поля:
- Version - версия обновления
- Weight - размер в байтах
- Sha - это хэш код нужного коммита

Затем эта информация записывается в отдельный класс ModificationsUpdateInfo. 📝

Если все прошло успешно и обновление имеется, то появляется кнопка "Скачать"! 📥

Переходим к следующему этапу - это скачивание обновленных файлов. 💾

Используя библиотеку Octokit .net, получаем необходимые файлы из репозитория, здесь используется хэш коммита. 🔑 Достав все нужные файлы, перебираем этот список в цикле, чтобы для каждого файла получить его ссылку и имя. 🔗 Когда получили ссылку на файл, проверяем сможем ли мы его себе сохранить, т.е. есть ли у нас такая же папка, в которой лежит файл на GitHub, если нет, то создаём новые папки. 📁 Далее устанавливаем максимальное значение для прогресс бара, равное Weight. 📊

Остался последний шаг - используем WebClient, скачиваем каждый файл по его ссылке в нужную папку, как помним, мы уже их создали. 💻 В процессе скачивания изменяем значение прогресс бара на то количество байт, которое скачали. 📈 Попутно происходит вывод в виде текстового сообщения, где указывается процент и размер скачанных файлов. 💬
❤‍🔥6❤2
👨‍💻 А это я моделирую ситуацию, когда человек только скачал лаунчер и у него нет игры и он качает ее полностью.
⚙️ Пока все работает.
👾7
🚀 За последние дни моя продуктивность выросла и сделал довольно много всего.
💻 Прошёл всего один день, с того момента, как сделал скачивание обновлений, а уже готово первоначальное скачивание файлов при самом первом запуске лаунчера.
🔄 Т.е. можно сказать, что реализованная полноценная логика скачивания мода и дальнейшее его обновление.

💿 Для того, чтобы реализовать первичную загрузку пришлось создать отдельный файл "*.conf", при запуске лаунчер производит его поиск, если его нет, то вместо кнопки "Играть" отображается кнопка "Загрузить" при нажатии на нее срабатывает FolderBrowserDialog, с помощью которого можно выбрать путь куда будет установлена игра. 📂 Далее я качаю весь репозиторий в виде архива, так как ссылка на него постоянная, что важно. 🗂
💬 Одновременно выводится информация о процессе загрузки. Скачав архив я использую класс ZipFile, чтобы разархивировать его. 🗜️ Вот и все мод у вас установлен. 🎉
👾9
Media is too big
VIEW IN TELEGRAM
🖥️ Вот демонстрация того, как работает установка мода.
👾7
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Ещё небольшое обновление, при скачивание обновлений, как бы забавно ни звучало.
™️ Теперь пока ждёте загрузку отображаются имена тех файлов, которые скачиваются.
📂 Ещё заметил, что обновления качаются немного не в ту подпапку, хорошо что фиксится это легко.
👾7
Вот так проходит мой вечер.
🧐 Подготовка к сложному экзамену по сетям. тут открыта моя программа, в которой записаны вопросы и ответы на билеты, которые возможно будут на экзамене.
😱 Экзамен завтра, готовиться начал сегодня.
💯8
📱 Вспомнил тут про свое приложение, которые выкладывал в RuStore больше года назад.
📉 И как-то статистика не очень, всего 24 установки, думал будет побольше.
🛠️ Но ладно, все таки это было мое первое приложение подобного плана и выложил ради теста.
🐞 Также хотел сегодня исправить пару багов в лаунчере, но решил, 🧠 что и так был экзамен, который я успешно сдал, поэтому сегодня у меня выходной, ждите новостей завтра.
❤‍🔥7
✅ Ошибка с загрузкой обновлений не в ту папку успешно решена.
🔤 Также создал несколько переменных для хранения часто используемых директорий.
🫣 Не обращайте внимание на некоторые названия, пока тестовый репозиторий используем.
👾6
🎉 Ура, это что 30 подписчиков❗
♥️ Спасибо вам, за такую круглую цифру, надеюсь будем расти и дальше. 🚀

#LvlUp
❤‍🔥9👍22
Я тут немного поработал над оптимизацией кода.

💻 Применил паттерн "Наблюдатель"!
Раньше в классе GitClient для методов скачивания я передавал экземпляры окон в качестве аргументов. Как мне казалось это костыльное решение. 🤔
Теперь я создал несколько Action-делегатов.
🔍 В каждой странице я могу подписаться на эти Action-делегаты и обновлять UI в нужных местах, без необходимости передавать экземпляр страницы в качестве аргумента. 👌
Вот список Action-делегатов, которые я добавил:

//Вызывается во время загрузки, чтобы обновлять информацию о прогрессе.
✅ LoadProcess;

//Вызывается в начале загрузки.
✅ LoadStart;

//Вызывается после завершения загрузки, чтобы скрыть элементы интерфейса.
✅ LoadCompleted;

//Вызывается, чтобы показать/получить информацию об обновлении.
✅ ShowingUpdate;

//Вызывается во время загрузки обновления, чтобы обновлять информацию о прогрессе.
✅ UpdateProcess;

🚀 Теперь каждая страница подписывается на нужные ей события и обновляет необходимый UI.
❤‍🔥63
😉 Небольшая затравочка к следующей новости, которая скорее всего выйдет уже завтра.
9👾2
🚀 Было решено официально переименовать модификацию в
—XTREME TERREX—

🏎️ Новость об этом уже выходила на канале моего друга:
https://t.me/Lg_corner/785

🖥️ И так как это произошло, то и лаунчер которым я сейчас занимаюсь понёс свои изменения.
✍️ Это смена названия на "Xtreme Launcher", что было уже сделано давно.
🖼️ А сейчас мы изменяем фон лаунчера.
🎥 Изначально хотели поставить видеоролик на фон.
🥴 Но потом протестировав я понял что это плохая идея и предложил вставить статичную картинку + анимированный текст.
✒️ Сейчас есть 4 вариации для анимации названия.
🤔 Но пока определяемся что же из этого выбрать.

👨‍💻 Ещё помаленьку рефакторю код.
🎨 Плюс надо новые темы доделать, с чем мне возможно частично поможет недавно вышедшая Gpt4o.
🥱 А то если честно у меня уже закончились идеи для тем, да и подбирать цвета для каждого элемента это долга)
6