Iris
11 subscribers
7 photos
1 link
Неофициальный GTK/Adwaita-клиент для Yummy Anime
Download Telegram
Channel created
Channel photo updated
Норм имечко
Немного новых стилей и страничек
Пока без поиска, но это позже
🖥 Вышла версия 0.2.1

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

👀 Изменения за эту версию

Внешний вид и функционал:
• Реализована регистрация
• Последние просмотренные тайтлы на главной открывают страницу тайтла
• Жанры на страницах тайтлов теперь открывают страницу по жанру
• Ники в комментариях теперь отображаются в виде кнопок
• Изменён вид списков в профиле

Незаментные изменения:
• IrisLib разделено на несколько файлов
• Файл gresource генерируется автоматически — спасибо Владимиру Романову
• Добавлены брендинговые цвета — спасибо Виктории Зубачёвой

✏️ Немного историй разработки

В данной версии было два довольно сложных момента:
• Регистрация, а точнее текст Правил и Политики конфиденциальности
• Виджеты-кнопки по никам в комментариях

Сама по себе регистрация реализуется довольно просто, однако сложным было создать механизм получения текста Правил и Политики конфиденциальности. Проблема заключалась в том, что через API, как другую информацию с сайта, эти данные не получить. Оставалось скачивать страницы и парсить их, однако здесь блоком стало то, что они рендерятся на JS. В решении данного вопроса помог Максим Слипенко, посоветовав использовать инструмент puppeteer для рендеринга страницы через запуск браузера.

Более тяжкой задачей оказалась реализация виджета текста с встроенными в него виджетами-кнопками. За вдохновление спасибо проекту Fractal (GTK4/Libadwaita Matrix-клиент) и их виджету LabelWithWidgets. В итоге логика виджета получилось не такой сложной, как казалось: ники заменяются на специальный символ, который потом прячется за виджетом-кнопкой; в то же время в тексте на месте этого спец. символа выделяется достаточное количество места, чтобы кнопка не перекрывала текст вокруг. Казалось бы, не сложно, но на корректную аллокацию места ушло довольно много времени — за помощь спасибо Владимиру Романову

📌 З.Ы.: Недавно проект переехал под организацию ALT Gnome на ALT Linux Space

💬 Если у вас есть идеи для проекта или вы нашли баг — пишите под постами, в чате проекта или в Задачах на ALT Linux Space

Канал | Чат | Сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
👀 Немного спойлеров к следующей версии

Практически во всех текстовых полях сайта, где пользователь может что-то писать есть форматирование текста, поэтому как раз самое время его сделать.

И не важно, что в приложении ещё нельзя оставлять комментарии или переписываться с друзьями
😁1
Iris
👀 Немного спойлеров к следующей версии Практически во всех текстовых полях сайта, где пользователь может что-то писать есть форматирование текста, поэтому как раз самое время его сделать. И не важно, что в приложении ещё нельзя оставлять комментарии или…
This media is not supported in your browser
VIEW IN TELEGRAM
🙂 Спойлер к спойлеру — спойлер теперь тоже есть

Если вкратце, то пришлось немного перераотать логику LabelWithWidgets, чтобы он правильно расчитывал длину текста с изменёнными тегами, так как длину строки и индексы для вставки виджет без учёта тегов. Каждое стилевое выделение это какой-то тег, к примеру выделение жирным — это тег <b>, и индексы начала и конца текста для строчки <b>asd</b> расчитываются не по ней, а по отрендеренному варианту — то есть просто asd

Казалось бы, звучит просто, но на понимание факта, что он считает текст не по данному ему тексту с тегами, а по отображаемому ушёл весь день.
Please open Telegram to view this post
VIEW IN TELEGRAM