Ычан: [d | b / bro / hr / l / m / mi / mu / o / ph / r / s / sci / tran / tu / tv / vg / x | au / tr | a / aa / c / fi / jp / rm / tan / to / vn / vo]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Последние 50 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 20450)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, WEBP, XCF, ZIP размером до 5000 кБ.
  • Ныне 3753 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
410.png - (34.48KB, 500×500)
20450
No. 20450    
После публикации исходников мы можем обсуждать доработку не только ранее общедоступных частей интерфейса, но и движка в целом.

Репозиторий: https://bitbucket.org/Therapont/fbe-410
1. Для ваших предложений предназначена ветка public.
2. Только администрация 410чана решает, что в этом движке надо, а что не надо. Соответственно, не стоит излишне пропихивать всякие там революционные идеи. Одобренные потенциальные изменения перечислены на багтрекере (записи, созданные владельцами репозитория).
3. Тестирование предложенных изменений и развёртывание принятых ведётся при наличии у администрации свободного времени на это. Обычно это делается по выходным.
4. Код выложен как есть. Никаких неопубликованных скрытых функций и частей не существует.

Предыдущая нить: >>17371
398 сообщений пропущено. Показаны 50 последних сообщений Развернуть все изображения
No. 25303    
>>25301
>>25302
В Кусабе есть кнопка для регенрации досок вообще-то.
No. 25304    
>>25303
Но регенерируется-то оно всё равно сразу для всех.
No. 25305    
>>25301
кек
No. 25341    
AV1chan drawn by eivarain.png - (2.66MB, 1811×2597)
25341
Нѣсколько запоздалый постскриптум к сообщению >>20564 вот каков: так как в движке FBE проверкою содержимого графического файла на соѿвѣтствіе его расширению занимается (в методе «HandleUpload» у класса «Upload» в файле inc/classes/upload.class.php) вызов функции «getimagesize» языка PHP (то есть функции, по адресу https://www.php.net/manual/en/function.getimagesize.php описанной, если чё), то у этого есть два любопытных послѣдствія.

① Так как в эту функцию (в «getimagesize») поддержку формата WebP добавили только начиная от PHP версии 7.1.0, то поддержка WebP требует и свѣжаго PHP (а не одного только свѣжаго ImageMagick, как кто-то мог бы наивно думать по умолчанию). К счастью, съ нѣкоторыхъ поръ (вѣроятно, >>20671) версия PHP на 410чане достаточно свѣжая для этого.

② По адресу https://twitter.com/markusstaab/status/1369192219618533377 можно прочесть, что поддержка AVIF появилась в libgd только в начале марта нынешнего (2021) года, и примѣрно тогда же начали впиливать эту версию libgd в PHP (в середине марта, как это можно по адресу https://bugs.php.net/bug.php?id=80828 видѣть). Стало быть, чтобы в FBE появилась поддержка провѣрки содержимого AVIF, нам придётся, по меньшей мѣрѣ, либо дожидаться окончания того впиливания (и затѣмъ ещё накатить новый PHP на 410чан), а оно непонятно когда достигнет желаемого, либо переписать метод «HandleUpload» у вышеупомянутого класса «Upload» таким образом, чтобы для новых форматов графических файлов провѣрка контента совершалася при посредстве не GD, а ImageMagick.

Совѣтую непремѣнно имѣть всё это въ виду.
No. 25354    
ChangedStyles.png - (102.71KB, 1920×1030)
25354
Сделал пулл-реквест по таску 25.

Стили меняются везде синхронно и добавлены недостающии стили для фотона (с instant-0chan).

А точно нужно заменять site_<что-то> стили на те которые без префикса? Там всё по другому будет выглядеть, если просто сделать как предложено в комменте к таску и отредактировать printStylesheetsSite в html.php. А если делать правки, чтобы всё выглядело как сейчас, то не уверен, что код будет красивее, если все стили из site_<что-то>.css и <что-то>.css поместить в один файл. Там ещё есть sitemenu_<что-то>.css, и в них тоже цвета повторяются. Их содержимое тоже должно быть объединенос с <что-то>.css?
No. 25355    
12345693.png - (472.68KB, 1146×709)
25355
>>25354
>А точно нужно заменять site_<что-то> стили на те которые без префикса?
Разумеется, никому нахѣръ не нужно по десять файлов там, где достаточно одного. sitemenu тоже упразднить. Смысл в глобальной переключалке и глобальных стилях.
Вам не требуется редактировать эти CSS, добавлять недостающие фотоны и подобную лабуду, с этим я сам буду разбираться: очевидно, что для наилучшего результата надо классы в вёрстке ковырять.
No. 25356    
>>25355
Просто навесить классы на body в меню и на служебных страницах достаточно? Чтобы потом их использовать во всех стилях из site_ и sitemenu_.

Создал другой пулл реквест.
No. 25357    
>>25290
Это тоже пофиксил. Просто нужно вызывать функцию setStylesheetFromLocalStorage, проставляющую атрибут disabled стилями, ещё во время загрузки head'а, до загрузки контента. То есть нужно не оборачиват вызов в $(), потому что так она вызовется после загузки всего DOM'а, а прямо сразу вызывать. Тогда контент загрузится сразу с правильными стилями.
No. 25358    
>>25357
Вроде всё хорошо, но использование img_global.css во фреймах так и не прописано, хотя это прямо указано в задаче.
No. 25360    
>>25358
>хотя это прямо указано в задаче
Точно...

Переделал, создал пул реквест. Общие стили перенесены в img_global.css.
No. 25367    
Создал пул реквест для задания 5.

Первый коммит фиксит ссылки в перемещаемом треде.

Второй коммит добавляет в таблицы с постами поле initial_board, чтобы отслеживать перемещение тредов. Если константа KU_INDICATEMOVEDTHREADS установлена в true, в загаловке треда появляется сообщение Moved from /board/. Чтобы добавить поле initial_board в существующие таблицы, в админке создана страница Update в разделе Site Administration c кнопкой Update. Перемещение тредов будет фейлиться без обновления таблиц, весь остальной фукнционал продолжит работать.

Ссылки фиксятся только в самом перемещаемом треде.
No. 25422    
Стили меню поломались из-за кеша. Сделал пул реквест чтобы пофиксить. После shift+f5 всё и так работает нормально.
No. 25439    
>>25367
Там перенос видосов сломан в переноске тредов.
No. 25440    
>>25439
Да, видел, исправлю.
No. 25454    
>>25440
C последними изменениями появилась бесконечная перезагрузка всех статичных страниц, и тех что через news.php, и тех что через exitWithErrorPage(), и даже меню фрейма.

Исправьте, пожалуйста.
No. 25455    
>>25454
Не знаю, не слишком ли много я прошу, но нельзя ли мне, если можно, конфиги кусабы, с которой это происходит, пожалуйста? И содержание таблицы boards ещё.

У меня на той машине всё нормально работало. Вот только что поднял на другой машине из ветки public и тоже всё работает. Может быть из-за других настроек папок что-то ломается... У меня все доски лежат прямо в перемешку с папками кусабы, css, icons, inc и т.д.

Печаль, печаль, беда... Вот уж чего я не ожидал, так это бесконечных перезагрузок...
No. 25456    
>>25455
Я и так буду разбираться в чём дело, но с конфигами было бы проще.
No. 25457    
>>25455
>>25456
Я так понимаю, что это у него тут такое. У меня такое не воспроизводится ни на одном браузере.
No. 25459    
infinite_reload.png - (62.64KB, 820×782)
25459
>>25455
>>25457

Короткое изучение показывает, что баг воспроизводится железно, в любом браузере, но только если у вас открыта панелька избранных нитей (открывается по нажатию на звезду в нашем верхнем меню)

Как воспроизвести:
1. Заходим на https://410chan.org
2. Нажимаем в меню слева Авто/b/ус и переходим в /b/
3. Нажимаем в верхнем меню кнопку Избранные нити (иконка звезды справа от выбора стиля)
4. Убеждаемся, что панель Избранные нити открылась и её видно, не трогаем
5. Нажимаем в меню слева Главная страница и переходим на главную страницу
6. Как только откроется главная, пойдут перезагрузки.

Перезагрузки после этого будут на всех статических страницах.

Инициатором перезагрузки страницы, как видно на пикрелейтед, является kusaba.js, строка 565. Эта строчка как раз отвечает за location.reload() в этой функции:

function generateWatchedThreadsElement(){
   var $watched = $('#watchedthreads');
   if( $watched.length ) return false; // already exists

   var $topmenu = $('.topmenu');
   if( $topmenu.length < 1 ){ // incomplete or unexpected DOM
      location.reload(true);
      return false;
   }


Как уже понятно из рецепта воспроизведения, функция эта вызывается только если у вас пытается автооткрыться панель избранных нитей:

   if(
      localStorage.getItem('showwatchedthreads')
   ) generateWatchedThreadsElement()

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

Если сделать localStorage.removeItem('showwatchedthreads') или пробраться на доску без фрейма, и скрыть меню избранных нитей, поведение прекратится.
Если не получится воспроизвести, сообщите, я видео запишу.
No. 25460    
>>25459
Да, видимо коммит fef9a855 от 11.06.2021 это сломал. До него kusaba.js фейлилась гораздо раньше, а теперь стала отрабатывать до конца. Если нет элемента $('.topmenu') достаточно просто ничего не делать, не нужно перезагружать страницу.
No. 25461    
>>25460
Охлол! Получается та самая ситуация, когда совокупность одних багов берегла нас от других. Спасибо за оперативный фикс.
No. 25534    
Господа, мне кажется, или дополнительно отломалось сохранение состояния формы быстрого ответа?
No. 25560    
>>25534
Не кажется.
No. 25561    
>>25460
Сможете разобраться, что вызвало проблему >>25534 и исправить, или надо открывать тикет на починку?
No. 25562    
>>25534
>>25561
tl;dr Так вышло, что в public это уже исправлено.

Причины бага аналогичны >>25460 На странице ошибки тоже грузится kusaba.js, и в этом случае выполняется код, который пробует синициализировать форму быстрого ответа. Этот код фейлится, ошибка обрабатывается, но в обработчике выполняется deinit, а в нём _dropFormData.
В коммите 9949a077 из пул реквеста 54 кроме того, что добавлено условие для создания элемента с избранными нитями, ещё и условие для инициализации формы быстрого ответа исправлено на аналогичное. До этого там проверялось, что в адресе нет menu.php или news.php, а теперь проверяется, что у body есть классы read или board (тред или доска). Оказывается, эта проверка исправляет баг с сохранением формы (форма на странице ошибки не начинает инициализироваться, исключение не возникает, deinit не выполняется).
No. 25563    
>>25562
>tl;dr Так вышло, что в public это уже исправлено.
Это радует. Спасибо!

Получается public еще не развернули просто?
No. 25564    
>>25563
>Получается public еще не развернули просто?
да
No. 25565    
>>25564
Ок, спасибо что уточнили.
No. 25566    
>>25565
В том сымсле, что пул реквест вмёрджен в ветку publc, но что с ним будет дальше, не знаю, это не ко мне. Я всего лишь случайный автор последних правок и я здесь один, лол.
No. 25575    
Просьба администрации отписать, когда будет развернут текущий паблик, чтобы можно было проверить фиксы.
No. 25666    
>>25575
Накатили.
No. 25667    
>>25666
Спасибо за нотификацию!
На первый взгляд всё теперь хорошо, но я еще потыкаю на всякий случай.
No. 25671    
Тесто.
No. 25672    

No. 25673    
Серьёзно, 何?

Новый ImageMagick? (Какой версии?) Может быть, и новый PHP также?
No. 25674    
>>25673
Если это вопрос про "что накатили", то пачку фиксов присутствующих в бранче, но не добравшихся до сервера.
No. 25675    
>>25674
Нет, это у него был вопрос про Дебиан 11 на сервере.
No. 25676    
Стало быть, bullseye пришёл.

Хорошо.

Новинки https://www.php.net/manual/en/migration74.php также теперь доступны, функции-стрелки и всё прочее?
No. 25679    
Напоминаю о том, что директиве «upload_max_filesize» языка PHP неплохо бы придать значение, превосходящее пять мегабайтов.

(Сейчас там, по-видимому, только два.)
No. 25682    
>>25679
Чиочую. А то файлы больше двух мегабайтов не отправляются.
No. 25684    
0n0jr97m92h71.jpg - (412.81KB, 1080×1391)
25684
Таки да, у нас теперь bullseye (лол, коднеймы дебиана теперь на b?), с ffmpeg, imagick, php и вот это всё оттуда.
Лимиты на загрузку поправил.
No. 25685    
Есть ли техническая возможность перейти на нѣчто вроде https://github.com/SoftCreatR/imei/ и получить ImageMagick 7.1.0 раньше Дебиана? — спрашиваю оттого, что никакой другой возможности для поддержки формата AVIF (и затѣмъ JPEG XL) не вижу, даже если условие >>25134 когда-нибудь будет выполнено (то есть даже если Apple в нынешнем же году сподобится засунуть в macOS Monterey поддержку AVIF, напримѣръ).
No. 25686    
>>25685
Нѣтъ.
No. 25687    
Это прискорбно.

Придётся в случае чего подходить къ дѣлу извращённым способом, а именно распарсивать многострочный текстовый вывод команды «avifdec --info имяФайла» — при том непремѣнномъ условии, что https://packages.debian.org/search?keywords=libavif устанавливает avifdec; но я думаю, что устанавливает.
No. 25730    
Новая задача по мотивам старых обсуждений:
https://bitbucket.org/Therapont/fbe-410/issues/41/
No. 25731    
>>25730
А задачи №32 и №40 можно считать выполненными?
No. 25732    
>>25731
Да, закрыты.
No. 25733    
>>25732
Получается, почти весь высокий приоритет закрыли. Yay!
No. 25735    
Впрочем, >>25687 — не единственный вариант.

По наводке https://www.smashingmagazine.com/2021/09/modern-image-formats-avif-webp/ по адресу https://php.watch/versions/8.1/gd-avif вижу упоминание о том, что в API GD в PHP 8.1 (эта версия PHP, как по адресу https://php.watch/versions/8.1 сказано, выйдет в ноябре, то есть менѣе чѣмъ через два мѣсяца) будет добавлена поддержка AVIF.

Интрига в том, что эта поддержка не выглядит полною: по адресу https://github.com/php/php-src/pull/5127#issuecomment-926150566 в настоящее время сообщается, что getimagesize всё ещё не понимает AVIF, но в Google ведётся работа по допиливанию.

Ну предположим, что допилят — дык что ж с того?

Я так кумекаю, что в итоге создастся постыдно идиотская ситуация:

с одной стороны, в коде FBE (и в реальной дѣйствительности 410чана) мы отошли к началу сентября 2018 года от употребления API GD в PHP почти полностью (за исключением getimagesize, о чём в сообщении >>25341 есть подробности) в сторону ImageMagick, потому что иначе хѣровато создавались миниатюры анимаций (к сообщению >>20581 приложена первая на всём 410чане нормальная миниатюра анимации) и вообще GIFов;

с другой стороны, для поддержки AVIF мы принуждены будем частично возвратиться на API GD, если только столкнёмся съ тѣмъ, что в очередной версии Дебиана ужé будет и PHP 8.1 (или той болѣе новой версии, в которой возможности getimagesize достигнут желаемого), и пакет libavif-dev нужной версии (а он ужé в Debian 11 имѣетъ версию 0.8.4, что больше необходимой 0.8.2), а вот ImageMagick всё ещё будет оставаться на шестой своей версии и оттого поддержки AVIF не имѣть.

Ѽ, етить.

(Хорошо ещё, что это не мы идиоты: это они идиоты при выборе версии ImageMagick для Debian.)
No. 25778    
На всякий случай, если кому-то нехватает - правило ublock.

||410chan.ru/css/Akarin2.png$image,first-party

Удалить сообщение []
Пароль  
[Mod]