[WT] [Архив]  [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 17371)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP размером до 5000 кБ.
  • Ныне 3108 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
  • ">
150682259759.jpg-(84.21KB, 960×720, 1258163340905.jpg)
17371
No. 17371 watch    
Давайте попробуем, что ли.

JS у нас по-прежнему ковырять некому, но хотелось бы доработать местную функцию разворота картинок. Сейчас она просто разворачивает изображение целиком без учёта размера окна браузера. Соответственно, требуется доработать её так, чтобы ширина окна учитывалась.
Скрипт лежит в http://410chan.org/lib/javascript/kusaba.js

Да, я в курсе, что все привыкли к тому, что для разворота надо нажимать на картинку, а не ссылку над ней (как у нас сейчас). Если скрипт научится учитывать ширину окна, это можно будет переделать.
Развернуть все изображения
No. 17373    
Если что, то искомая функция называется function expandimg(I, H, F, C, G, E, A)

>>17371
Одним из самых простых вариантов будет просто добавить аттрибут maxWidth, используя один из существующих элементов для референса. Например, в своём предложении для ычана, я брал текущую ширину первого поста, и работал от неё:


function iithumbresolvemaxwidth() {
  //Это будет первый пост, и на бордах он обычно по полной доступной ширине
  var referenceelement = document.getElementsByTagName('blockquote')[0];
  //Если мы первый пост нашли, то забираем его ширину
  //Ноль возвращается, чтобы можно было определить, удачно мы разрезолвили ширину, или нет.
  var resolvedmaxwidth = referenceelement ? referenceelement.clientWidth : 0;
  return resolvedmaxwidth;
}

Если подобное решение подходит, могу встроить его в наши текущие скрипты.

Хотя, конечно, у нас сейчас движок все параметры большой картинки забивает железно на этапе генерации страницы (именно поэтому у функции такая сигнатура) и поверх этого maxWidth еще делать это кайнда война скриптов.
No. 17374    
>>17371
Впрочем, если мы хотим открывать картинку по нажатию на тумбнейл, то мы вообще можем просто применить к себе скрипт-победитель для ычана, т.к. там они почти полностю автономные, а на нажатие на картинку у нас сейчас ничего не висит.
No. 17375    
15068881657.zip-(666.57KB, 410chan_expand_images.zip)
17375
>>17371
Адаптировал вам скрипт с ычана хоть мне и не очень нравится как он сделан, и добавил пример на базе текущего /dev/. Разворот делается по нажатию на картинку, события онклик со ссылок убрал. Скрипт соответствует всем тем же требованиям, что и для ычана, внутри полная и минифицированная версии см. папку extras

Оригинал скрипта для ычана был тут: https://github.com/WagonOfDoubt/iichan-extensions/blob/master/dist/iichan-expand-images.js
No. 17376    
150688942849.jpg-(276.46KB, 500×752, 7200283.jpg)
17376
>>17375
А вы учли, что есть ещё кнопка «Развернуть все изображения», которая появляется в нитях, где много картинок?
No. 17377    
>>17376
Честно говоря, я как-то не замечал её. Сейчас посмотрю как там всё устроено.
No. 17379    
150696121437.zip-(1.36MB, 410chan_expand_images_expand_all_min.zip)
17379
>>17371
>>17376

Вот версия с поддержкой кнопки «Развернуть все изображения», которая разворачивает / сворачивает их. Чтобы кнопка работала, ей нужно дать аттрибут id, соответствующий указанному в константе в скрипте. И убрать у неё её стандартный аттрибут onclick

В примере нить Caturday в /b/
В архиве обычная и минифицированная версии
Предыдушие проблемы с минификацией были связаны с тем, что я дурак и не заметил, что изначальный скрипт - часть проекта в котором уже все таски уже настроены, включая минификацию и эскейпинг
No. 17381    
Что-то по-моему местная разворачивалка идеальная.
А вот в ычанской разворачивалке баг, иногда картинка налезает на текст.
No. 17382    
>>17381
>Сейчас она просто разворачивает изображение целиком без учёта размера окна браузера. Соответственно, требуется доработать её так, чтобы ширина окна учитывалась.

Там основная проблема в том что ширина и высота будущей картинки проставляются с сервера.

Впрочем, можно действительно просто сделать то что просит Соус - добавить в старую функцию выставление максимальных размеров картинке. Наверное, добавлю сюда еще и такой вариант.

Алсо, если можешь воспроизвести баг разворачивалки с ычана, то напиши как это делать, т.е. на какой картинке в какой ситуации оно налезет на текст
No. 17383    
15070629558.png-(1.08MB, 1726×782, Screenshot_2017-10-03_23-31-47.png)
17383
>>17382
Похоже, только в хроме лисоюзеры, молчать.

1. Открываем хром(оперу|иум).
2. Задаем размер окна 868 x 531 (W x H)
3. Заходим в /a/ и нажимаем превьюху.
4. Налезает.

Заметил на мобильнике первый раз.
Может быть там float: left надо?
No. 17384    
>>17383
Возможно, что это еще и только в линуксе. Вижу, что тема уходит под изображение, а не наплывает сверху на него

Если просто раскрыть картинку и уменьшать окно, проблема себя проявит?
No. 17389    
150715120333.zip-(2.04MB, 410chan_expand_images_old.zip)
17389
>>17371
>>17382
Как и обещал, сделал дополнительно версию на базе текущей функции, с использованием трюка из >>17373 Это Ctrl+C Ctrl+V решение. Мне не хотелось устраивать войну скриптов, когда один скрипт проставляет ширину-высоту, а второй удаляет, поэтому я дополнительно раcчитываю макс высоту с учетом аспекта, и вроде все живы

В архиве пример на базе темы Persona 5 в /b/
No. 17393    
Может, такой вопрос лучше в /д, но здесь могут мимодевы объяснить или подтвердить проблему. У меня стабильно какая-то лабуда с посещением автобуса на ведре. Хожу по сайту, захожу в треды, всё ок. Через пару переходов загрузка страниц останавливается, и автобус намертво перестаёт грузиться без сообщений об ошибке. Надо ждать какое-то время. Примерно не скажу сколько, но долго, не несколько минут. Это опера на ведре. Такая проблема только с автобусом замечена. По той же сети на пеке всё хорошо.
No. 17398    
>>17393
Сжатие трафика (прокся) включена? С зарубежных ип замечал тоже такое, отваливается.
No. 17399    
>>17398
Интересная версия, но экономия трафика выключена. Посмотрю ещё из другого браузера и с другой сети.
No. 17405    
>>17398
На лисе на ведре попробовал, когда снова возникли проблемы на опере. То же самое. С временем мог преувеличить, за несколько минут все же проходит.
Проверяю на другой сети, вроде нет проблем.
No. 17407    
Сделал не копипасту с Ычана, но принцип тот же. Технологически и визуально отличий нет.
https://gist.github.com/WagonOfDoubt/84b3bb2182525e083359359170dfb0b6/revisions
См. дифф второй ревизии. В img_global.css добавлен класс .image-fullsize, в kusaba.js переписана только expandimg.
Никаких let, const, и прочей esNext-лабуды нет, оно конечно хорошо, но уж если перепиливать, так вообще все, сейчас хоть смотрится аутентично. Эх, запилить бы свою котобу с маджонгом и булочками.
Должно нормально работать начиная с Chrome 26, Firefox 16, Internet Explorer 10, Opera ?, Safari 7.
Фича не раскрывать на маленьких экранах убрана, так как работает по прежнему через onclick, и return false там перманентный. Какой бы ни было дикостью вешать onclick, этот способ требует наименьших изменений.
Для владельцев черно-белых нокий и прочих утюгов, можно обернуть тело функции expandimg в try...catch, впрочем все равно непонятно как у них остальные функции тогда не падают.
Вариант >>17373 меня не устраивает подходом. Масштабировать картинку по размеру страницы это прямая задача браузера, и проблема эта должна решаться и нормально сейчас решается средствами css, в то время как javascript отвечает за пользовательское взаимодействие, а не рассчитывает по формулам положение каждого элемента на странице. Раньше иного выхода не было, и приходилось делать именно так, но даже поддержка более старых браузеров для меня не перевешивает. К тому же, при таком варианте уже развернутые картинки не масштабируются при изменении размеров окна, в отличие от варианта как на Ычане.
No. 17408    
Кстати,
> <meta name="twitter:card" content="summary">
I see what you did there.
Мета должна быть в <head>, Твиттер все равно это парсит?
И да, разворот картинок нужно обязательно перенести на картинку, на ссылку пальцем попасть невозможно.
Еще есть один фичереквест, требующий мааленького изменения шаблона.
Если в ссылку на картинку
<a href="{$file_path}/src/{$post.file}.{$post.file_type}" onclick="javascript:expandimg('{$post.id}', '{$file_path}/src/{$post.file}.{$post.file_type}', '{$file_path}/thumb/{$post.file}s.{$post.file_type}', '{$post.image_w}', '{$post.image_h}', '{$post.thumb_w}', '{$post.thumb_h}');return false;">

Добавить
{if $post.file_original neq '' && $post.file_original neq $post.file}download="{$post.file_original}.{$post.file_type}"{/if}

Чтобы получилось
<a href="{$file_path}/src/{$post.file}.{$post.file_type}" onclick="javascript:expandimg('{$post.id}', '{$file_path}/src/{$post.file}.{$post.file_type}', '{$file_path}/thumb/{$post.file}s.{$post.file_type}', '{$post.image_w}', '{$post.image_h}', '{$post.thumb_w}', '{$post.thumb_h}');return false;" {if $post.file_original neq '' && $post.file_original neq $post.file}download="{$post.file_original}.{$post.file_type}"{/if}>

То картинки будут скачиваться на компьютер под тем же именем, под которым они заливались, и можно иметь buločka.jpg вместо 123456789.jpg
Более того, я бы отказался от отображения нумерованных имен файлов за ненадобностью, и заменил бы чуть дальше строку
{$post.file}.{$post.file_type}</a>

на
{if $post.file_original neq '' && $post.file_original neq $post.file}{$post.file_original}.{$post.file_type}{else}{$post.file}.{$post.file_type}{/if}</a>

Только эти ссылки скопипасщенны в нескольких местах, как винимум в img_thread.tpl и в img_board_page.tpl
No. 17409    
И в css не помешало бы добавить
.inline-pp, .prettyprint {

    white-space: pre-wrap;
}

No. 17410    
Понапридумывають хѣрню и головы ломають.
.thumb{max-width:100%;height:auto;box-sizing:border-box;margin:0;padding:2px 20px}

No. 17411    
Еще реквест: на странице треда есть группа ссылок
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
, их не помешало бы обернуть в div, иначе стилями с ними ничего не сделаешь.
No. 17412    
150746210020.png-(599.22KB, 1158×645, 12345681.png)
17412
>>17408
>Мета должна быть в <head>, Твиттер все равно это парсит?
Я просто сунул туда, куда можно сунуть штатными средствами. «Твиттеру» всё равно. В принципе, надо будет это вообще убрать, оно в таком виде бесполезно.
>То картинки будут скачиваться на компьютер под тем же именем, под которым они заливались
Не нужно.
>как винимум в img_thread.tpl и в img_board_page.tpl
Которых у нас вообще в движке нет.

>>17409
Да, добавлю, когда буду ковырять CSS в следующий раз.
No. 17413    
150747249385.png-(189.01KB, 1349×631, nazad.png)
17413
>>17412
> Не нужно.
А жаль. Это хоть >>17411 можно сделать, а то некрасиво в body текст держать.
No. 17414    
150748862150.png-(8.22KB, 362×180, Untitled.png)
17414
Заодно поделайте что-нибудь со ссылкой «Назад» на форме треда, чтобы та на границу не наезжала.

Можно, например, в шаблоне вместо span с float сделать div с правым text-align.
No. 17415    
А ещё сделайте так, чтобы при наведении курсора на ссылку на пост был какой-то таймаут закрытия разворачивающегося по ссылке поста вместо моментального закрытия при выходе курсора за область ссылки на пост. Чтобы можно было просмотреть цепочку постов.
No. 17416    
Вот, кстати, более насущный фичреквест по поводу шаблонов страницы, болезнь всех ванильных бордодвижков: перенеси прикреплённые кортинки в ОП-постах под лейбл с именем, темой и прочей лабудой, как в обычных постах. Тогда и раскрытие оных будет более правильно выглядеть.
No. 17426    
150784341346.png-(586.80KB, 898×641, 12345697.png)
17426
По скриптам сроков у меня, разумеется, нет.

>>17409 добавил.
>>17414 ждёт своего часа в репозитории.
>>17411 про это я давно знаю, да. Когда-нибудь.
No. 17428    
>>17426
Видели эти версии скриптов?

Ычан-стайл >>17379
410-стайл >>17389
No. 17429    
>>17428
Вот это >>17410 решение самое простое. Никаких скриптов и работает отлично, нечего тут голову ломать.
No. 17434    
150792261956.jpg-(87.55KB, 422×600, c4d7c0338fa92352c6f9eef098fc8867e69df5fc.jpg)
17434
>>17428
Никто пока ничего не смотрел.

>>17429
И в чём его суть, если оно только вёрстку портит и больше ничего не даёт? По крайней мере, при вписывании в CSS всё именно так, возможно, я что-то не так делаю вдруг.
No. 17436    
>>17434
Не знаю, что оно портит, но у меня работает как и требовалось: картинки больше не вылезают за края постов. Результат тот же, что и в >>17407, но не требует правки скриптов. Остается только в шаблонах
onclick
перевесить со ссылки на картинку.
No. 17437    
>>17434
Отвечу ак автор: добавь в конце глобальной цссины или замени маргин на паддинг и добавь остальное. И ещё оно работает только там, где есть цсс3 (кроме Осла, вроде как, потому что они слоупоки и не принимают до конца стандарт). Суть в том, что бокс-сайзинг приказыает параметру ширины учитывать паддинг как часть самого элемента при подсчёте максимальной ширины, из-за чего 100% считается как максимальная ширина кортинки с отступом до полного ухода края поста к краю экрана, опять же с учётом отступов, а параметр высоты уже подстраивает высоту под оригинальные пропорции, чтоб искажений не было. “Сломать” оно могло только на браузерах без поддержки бокс-сайзинга “вываливанием” кортинки за границу поста на сорок пиксолей, которые берутся от отступов (по двадцать с каждой стороны), т.е. если в нормальных браузерах, допустим, 1000 пикселей — ширина кортинки+отступов, то в Осле и древних браузерах — только кортинки.
No. 17477    
Мнѣніе >>17437 вѣрно передаётъ смыслъ правила
box-sizing: border-box
и необходимость его.
No. 17518    
150860023842.jpg-(262.98KB, 563×800, 509b751a4e790f2d07bfc204876f3806e5a980f9.jpg)
17518
>>17414 сделано.

>>17437
Ок, гляну ещё раз, когда будем глядеть.
No. 17524    
По виду реплики >>17477 с неудовольствием вижу, что текст в обратных апострофах не только обёртывается в тег pre, но и попадает на отдельную строку.

Не надо так.
No. 17701    
>>17437

> И ещё оно работает только там, где есть цсс3 (кроме Осла, вроде как, потому что они слоупоки и не принимают до конца стандарт).

По-моему, нѣтъ.

Статья https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing в настоящее время гласит, что Осёл (ведь имелся в виду Internet Explorer, не правда ли?) понимает «box-sizing: border-box», начиная от версии IE8.

В таком случае в Internet Explorer, как сказано там дальше в MDN, фигово работает вычисление высоты функцией «window.getComputedStyle()»; но так как 410chan её вроде как и не использует вообще нигде, то и не пофигу ли?
No. 17702    
Имею пожелание о доработке интерфейса 410чана, и выскажу.

Сейчас в реплике >>17698 звукопроигрыватель выводится вот каким кодом:

<span style="float: left;">

<embed type="application/x-shockwave-flash" src="/player.swf?playerID=17698&amp;soundFile=/dev/src/151085654446.mp3" width="80" height="15" /></embed></span>


Во-первых, этот код внутренне противоречив, потому что при наличии закрывающего тега «embed» в конце открывающего тега «embed» не нужна косая черта. Кромѣ того, онъ противорѣчитъ и стандарту, въ которомъ¹ сказано, что у тега «embed» нѣтъ закрывающаго тега.

Во-вторых, всѣ современные браузеры достаточно давно (начиная от версий Chrome 3, Firefox 3.5, IE9, Opera 10.5, Safari 3.1, а также во всѣхъ версіяхъ Edge)² понимают тег HTML5 «audio» и отображают на его месте звукопроигрыватель, который внешне более красив, а в употреблении более удобен и функционально развит, чем флэшёвый звукопроигрыватель на 410чанѣ.

В то же время поддержка Flash на всѣхъ сколько-нибудь новых мобильных устройствах отсутствует на протяжении шести лет, будучи отозвана производителем Flash (компанией Adobe) по адресу http://blogs.adobe.com/conversations/2011/11/flash-focus.html 9 ноября 2011 года. Что же касается немобильных устройств, то у их пользователей Flash блокируется и некоторыми блокировщиками рекламы, и даже некоторыми браузерами, да притом ещё и глючит да тормозит.

Принимая вышеизложенное во внимание, прошу администрацию 410чана найти в исходном коде сайта 410чана генератор вышеизложенного кода и переменить его таким образом, чтобы вместо него создавался код звукопроигрывателя HTML5:

<audio style="float: left; margin: 0 1em 1em 0;" src="/dev/src/151085654446.mp3" controls preload="metadata"></audio>


(Единственная переменная часть этого кода — значение атрибута «src»: туда вписывается относительный URL конкретного звукового файла.)

Этакий-то звукопроигрыватель будет куда лучше нынешнего, в том я совершенно уверен и администрацию 410чана спешу заверить — по крайней мере, в случае файлов MP3.

Звукопроигрыватели HTML5 в настоящее время более всего способны воспроизводить MP3. Некоторые другие форматы звуковых файлов имеют³ с этим изрядные проблемы: Ogg Vorbis не слышно в IE и Edge и в Safari (и вообще на iOS), FLAC опережает Ogg Vorbis только в Edge, AAC не слышно в Firefox (если не внутри контейнера MP4, а это изврат), Opus не слышно в IE и во встроенном браузере системы Android.

Будущее принадлежит Opus по мере погибели IE и обновления встроенного браузера в системе Android.

__________

¹ См. https://www.w3.org/TR/html5/embedded-content-0.html#the-embed-element

² Свѣдѣнія о браузерной поддержкѣ audio взяты со страницы https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio#Browser_compatibility въ MDN.

³ Списокъ проблемъ взятъ на страницѣ https://caniuse.com/#search=audio
No. 17704    
>>17702
Тут история с
alert(req.statusText);
длилась годами: просили закомментировать одну единственную строчку, так она до сих пор там.
No. 17713    
15108878131.png-(804.52KB, 1280×720, 1419959214456.png)
17713
>>17702
Это одна из тех вещей, которая есть, пока не отвалится окончательно.
Никаких планов развивать эту функцию нет. Сама загрузка этих форматов разрешена только в /dev/ в силу специфики раздела, а не для удобного прослушивания музла.

>>17704
Я не лезу в те части движка, принцип работы которых не понимаю. А кроме меня сейчас некому.

>>17410 сунуто в репозиторий.
No. 17727    
151093155630.png-(10.85KB, 120×120, face-palm_1f926.png)
17727
>>17713
No. 17728    
151093267738.jpg-(244.46KB, 700×808, 1359818223014.jpg)
17728
>>17727
Я вот, например, реализацию с тегом вместо флэшь-плеера сунул в репозиторий шесть часов назад, а вы мне жёлтые рожи постите.
Постыдились бы.
No. 17729    
151093362778.png-(10.45KB, 120×120, clapping-hands-sign_emoji-modifier-fitzpatrick-typ.png)
17729
>>17728
No. 17730    
>>17728
Ну вот и молодец. А теперь по случаю сования >>17410 в репозиторий, можно и разворачивание картинки перенести со ссылки с названием на превью. Говорю об этом, если что:
onclick="javascript:expandimg('17662', '/dev/src/151072352512.jpg', '/dev/thumb/151072352512s.jpg', '2369', '2000', '200', '168');return false;"

Не так уж и сложно. Достаточно пройтись поиском "expandimg" по файлам шаблонов и переместить это дело из одного <a> в другой.
No. 17732    
Прямо сейчас в коде этой страницы есть строка «onclick="javacript: request_faptcha('dev');"».

Оттуда надо бы слово «javacript» с последующим двоеточием и пробелом убрать, потому что в атрибутах onчто-то_там URLы не пишут, а сразу код JavaScript нафигачивают.

Строка «onclick="javascript:» (с лишним «javascript:» без опечатки) повторяется сейчас на странице 111 раз.

Оттуда надо бы слово «javascript» с последующим двоеточием убрать.
No. 17733    
>>17732
А еще лучше этот onclick вообще убрать, да куда там...
No. 17744    
151102172495.jpg-(53.75KB, 400×533, f465557e3d0d0d1c58f7b6aa136c0227041fc3b1.jpg)
17744
Отправил >>17410 на тест.
Использование свойства box-sizing приводит к тому, что стандартные превью (200 пикселей) показываются раза в полтора меньше реального размера (но разворачиваются с учётом ширины, да), а картинки меньшего размера (32×32, например) не показываются вообще (и не разворачиваются при нажатии на).
Либо объясняете почему, либо идёте к чертям с этой реализацией, к сожалению.
No. 17745    
>>17744
Абисняю.
Дело в том, что ширина, задоваемая Кусабой, с
box-sizing
будет считаться с отступами от
paddng
. То есть у твоей превьюхи 150 пиксолей, допустим, потому ширина уменьшится на 40 оных из-за отступов по двум бокам в 20 пиксолей, после чего высота автоматически подгоняется под полученную ширину. Собсна, от этого не видно превьюх меньше сорока пиксолей.
Моя вина, звиняйти-с.
По-хорошему, нужно развёрнутой кортинке отдельный класс вешать, но можно и сейчас проблему решить, всего лишь добавив условие, что в ссылка на кортинку, у которой класс
.thumb
, идёт в директорию /src/, то есть на оригинал; превьюхи же будут использовать ванильные маргины без бокс-сайзингов.
.thumb[src*="/src/"]{max-width:100%;height:auto;box-sizing:border-box;margin:0;padding:2px 20px}

No. 17746    
А ещё можно добавить
.inline-pp{display:inline-block;margin:0}
. А то вроде инлайн указан, а он вовсе не инлайн. И вообще в Кусабе вроде как есть отдельно инлайновый код и блочный. Странно, что тут всё инлайновым пишется.

Короче, ещё погляжу, что можно подправить.
No. 17747    
>>17744
Я просто добавил данное решение через stylish, и более месяца пользуясь, ничего подобного не наблюдал. Проблема в приоритетах: данный код устанавливает margin в 0 и добавляет padding, далее css кусабы возвращает свой margin обратно, таким образом оба отступа сохраняются. Нужно либо убрать существующий margin из css, либо добавить этот код в самый конец файла, а не в начало, либо повысить приоритет селектора, написав не 《.thumb》, а《img.thumb》, либо 《body .thumb》, 《a .thumb》и тому подобное. Очевидные вещи, вроде бы.
No. 17748    
151102975081.png-(267B, 16×16, 410.png)
17748
>>17747
Ащета должен был наблюдать. Попробуй потыкать туда-сюда переключатель этого стиля и посмотри на тумбинашки.

Алсо тест.
No. 17749    
151103004130.png-(1.49KB, 32×32, flower-power.png)
17749
>>17745
>.thumb[src*="/src/"]
Это решает проблему превью, но не решает проблему разворота. При развороте они по-прежнему исчезают или уменьшаются.

>>17747
Какой маргин откель оно берёт, если единственный маргин там 0? Туда был внесён класс .thumb ровно такой, какой указан >>17410. Старый .thumb убран. Я понять не могу, что вы пишете вообще.

Вот на этой картинке я тестирую это всё сейчас.
No. 17750    
>>17749
Всё, нашёл правильное решение:
.thumb[src*="/src/"]{max-width:100%;height:auto;width:auto;box-sizing:border-box;margin:0!important;padding:2px 20px}

No. 17751    
>>17750
Ой, точнее, даже так:
.thumb{max-width:100%;height:auto;width:auto;box-sizing:border-box;margin:0!important;padding:2px 20px}

No. 17752    
>>17751
> margin: 0 !important;
Таки значит откуда-то margin таки берется.
Лучше все же не использовать important, а как говорилось, переделать селектор.
No. 17755    
>>17752
Импортант тама для убирания другого маргина.
Правильнее всего было бы, конечно, в img_global.css c 30-й строки поменять
.thumb {border: none;float: left;margin: 2px 20px;}

на
.thumb {border: none;float: left;box-sizing: border-box;max-width: 100%;height: auto;width: auto;padding: 2px 20px;}

No. 17756    
151103189646.jpg-(3.81MB, 2893×4089, 8757161.jpg)
17756
>>17751
Похоже, что это оно.
Когда-нибудь оно дойдёт досюда.
No. 17761    
151103887133.jpg-(62.63KB, 578×767, высадка инопланетного деса.jpg)
17761
>>17728

> Я вот, например, реализацию с тегом вместо флэшь-плеера сунул в репозиторий шесть часов назад, а вы мне жёлтые рожи постите.

> Постыдились бы.

Не постыжусь вовек, потому что вовсе не знал об этом и оттого отреагировал на предшествующее; а предшествующее объективно выглядело как бесперспективняк.

>>17733

> А ещё лучше этот onclick вообще убрать, да куда там...

Исходный код Flower Bus Engine закрыт, но исходный код джаваскрипта его всё же невозбранно виден во браузере, так что теоретически ничто не мешает отпилить http://410chan.org/lib/javascript/kusaba.js и напилить вместо этого такой новый JavaScript с улучшенным управлением событиями, который сам будет обработчики событий навешивать на элементы, так что атрибуты onclick в HTML-коде не понадобятся, и оттого выглядеть он станет, право же, куда чище.

Проект такого переустройства должен будет, разумеется, сопровождаться, окромя джаваскриптовой части, также и инструктивною частью, содержащей указания наподобие «устранить создание атрибута onlick, вызывающего функцию expandimg(), в том месте Flower Bus Engine, которое аналогично строке https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/classes/board-post.class.php#L1086 в Кусабе,¹ и заменить на создание четырёх data-атрибутов таким-то кодом PHP» или «отпилить http://410chan.org/lib/javascript/protoaculous-compressed.js с заменой на такую-то версию jQuery».

На том пути прозреваю два преткновения:

1) Кроме исходного кода джаваскрипта, невозбранно видного во браузере, есть ведь (или теоретически может быть) не видный, который обеспечивает администрирование. Надо так действовать, чтобы и его не порюхать; но нѣтъ увѣренности въ томъ, что возможно дѣйствовать такъ.

2) Точно ли Flower Bus Engine основан на той именно Кусабе, исходники которой по адресу https://github.com/tslocum/kusaba/ лежат? — если он основан на какой-нибудь другой версии Кусабе (быть может, отчасти допиленной, как вот http://kusabax.cultnet.net/ например), то ценность инструктивной части может стремительно падать, так как в коде Flower Bus Engine не отыщется прямого аналога того куска Кусабы, который будет указан со словами «править надо вот тут и вот так».

____________

¹ Отдельно отмечу, что оплошность >>17732 (употребление «javascript:» внутри атрибута onclick) встречается непосредственно в исходном коде у Кусабы, чего я никак не ждал, по умолчанию относя её появление на счёт создателей Flower Bus Engine.
No. 17775    
А зачем в превью постов мусор из заголовка страницы?
No. 17776    
>>17775
Щта.
No. 17783    
>>17776
https://pastebin.com/NUGpK4Fi
No. 17785    
151111003392.jpg-(312.36KB, 532×720, 9901633.jpg)
17785
>>17783
Если оно и так, то я не знаю, почему.
No. 17786    
>>17775
Видимо причина кроется в следующем:
У кусабы/автобуса есть подобие api, позволяющее получить пост по доске, треду, и его номеру. При наведении на >>ссылку запрашивается url вида http://410chan.org/read.php?b=dev&t=17371&p=17776&single
Вот только во время ковыряния шаблонов случилась так, что шаблон, применяемый в read.php, который вообще не должен содержать <head>, <body> и прочее, а выдавать текстом простой div, стал наследоваться от дефолтного шаблона для всех страниц, с метрикой и прочим.
Надо бы пофиксить.
No. 17788    
>>17786
Агась.
От этого, кстати, перестанут ломаться границы между тредами и прочее при появления попапа с превью, так как недобраузеры всё же загружают стили (в частности img_global.css) не из head и получается так, что значения из этого самого глобал.цсс перебивают каштомные от стиля, выбранного в менющке сверху.
No. 17789    
151111143956.jpg-(111.44KB, 600×338, 00000029.jpg)
17789
>>17786
Оно и в самой что ни на есть исходной «Кусабе» 1.0.4 это всё дёргает.
Попробуйте для неё исправление сделать, возможно оно нам подойдёт.
No. 17807    
151112014541.gif-(38.35KB, 553×579, anti-anime.gif)
17807
В дополнение к реплике >>17789 сообщаю, что в репозитории https://github.com/tslocum/kusaba лежит, по-видимому, именно Кусаба версии 1.0.4, что в строчке https://github.com/tslocum/kusaba/blob/master/trunk/config.php#L203 прописано.
No. 17839    
Кстате, как вы смотрите на унификацию стилей, чтоб только цвета перекрашивало?
No. 17841    
151120529174.jpg-(495.82KB, 595×841, 9157815.jpg)
17841
>>17839
На самом деле, я уже начал это готовить потихоньку.
Всякие отступы со временем точно в глобальный стиль переползут.
No. 17865    
151132392835.jpg-(1.08MB, 3508×2480, Вселённые люди.jpg)
17865
Также ещё на 410чане надо отпилить атрибут «type="text/javascript"» ото всех HTML-тегов «script», потому что и без него по умолчанию так, так что он зря только мѣсто занимает в исходном коде.
No. 17869    
151135053190.jpg-(399.05KB, 1024×1024, __uiharu_kazari_to_aru_kagaku_no_railgun_and_to_ar.jpg)
17869
>>17865
Дайте мне ссылку на стандарт, где так сказано.
No. 17871    
>>17869
https://www.w3.org/TR/html5/scripting-1.html#attr-script-type
> The type attribute gives the language of the script or format of the data. If the attribute is present, its value must be a valid MIME type. The charset parameter must not be specified. The default, which is used if the attribute is absent, is "text/javascript".
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
https://www.w3schools.com/Tags/tag_script.asp
No. 17872    
151135179118.jpg-(470.43KB, 1024×1024, __uiharu_kazari_to_aru_kagaku_no_railgun_and_to_ar.jpg)
17872
>>17870
Ага, если HTML5.
А у нас тут 4.01 пока.
No. 17873    
>>17872
Даже на Netscape 2 это поддерживается.
No. 17874    
>>17872
Тут кстати и HTML 4.01 не валидный.
http://validator.w3.org/check?uri=http://410chan.org/dev/&charset=(detect automatically)&doctype=Inline&group=0
No. 17875    
151135362220.jpg-(572.72KB, 800×800, 54217868_p3.jpg)
17875
>>17874
Спасибо, Капитан.
Хотя вот почему он не видит <head>, я не понять не могу.
No. 17876    
151135394695.jpg-(45.21KB, 400×400, автобусу пиздец.jpg)
17876
>>17872

Этот кусок стандарта HTML5 просто документирует то поведение по умолчанию, которое и до HTML5 было во всѣхъ браузерах во всѣ времена.
No. 17877    
>>17875
Из-за Яндекс.Метрики. Подразумевалось, что этот код надо копипастить в самый конец <body>, а не в начало <head>, о чем свидетельствует даже кусок кода
<noscript><div><img src="https://mc.yandex.ru/watch/38099020" style="position:absolute; left:-9999px;" alt="" /></div></noscript>

Ну а валидатор в первой ошибке сообщает, что это "/>" в конце img по его соображениям закрывает <head>.
No. 17879    
151136738210.png-(2.57MB, 1920×1080, Suzumiya Haruhi no Yuuutsu - a celestial.png)
17879
>>17877

На самомъ дѣлѣ нѣтъ.

Просто тэги «div» и «img» в стандарте прописаны как недолжные для внутренностей «head», поэтому при их появлении валидатор (да и почти каждый браузер, наверное) начинает мысленно подразумевать закрывающий «/head» и открывающий «body» перед ними.
No. 17880    
151136794827.jpg-(128.42KB, 1280×720, anime frame.jpg)
17880
>>17877

Ну а валидатор в первой ошибке сообщает только то, что желающим выпендриваться с XML-подобными «самозакрывающимися» тэгами (с косой чертою на заднице) следует наперёд переключить весь документ в режим XHTML или хотя бы HTML5.

If you expect <FOO /> to be interpreted as an XML-compatible "self-closing" tag, then you need to use XHTML or HTML5.

No. 17903    
Хотел победить горизонтальные скроллбары от кода, но хѣр там.
Нужно отдельный блочный код с максимальной шириной 480px и инлайновый в спане, чтоб не ставило неразрывные пробелы. Или обернуть посты в контейнер-блок, но тогда не будет обтекания постов вокруг кортинки в ОП-посте.
No. 17904    
Взглянул детальнее на глобал_имг.цсс и… о госпадя.
Корочи, если унифицировать, то ориентироваться на Умночан?
Как руки дойдут — скину сразу все стили.
No. 17905    
Подход >>17903 выглядит сложноватым, дорогуша.

Рекомендую для начала попробовать придание свойству https://developer.mozilla.org/en-US/docs/Web/CSS/white-space значения «pre-wrap». Может быть, хватит одного этого.
No. 17910    
>>17905
Ничего сложного. Можно ще <br> добавить между постами и пользовать display:inline-block без опаски, що друг на друга посты полезуть.
Не достаточно. Оно там ужо стоит. А ты почетай про таблицы и как они расширяются в зависимости от ширины содержимого шире ширины экрана. И про перенос неразрывных пробелов, которые используются в <pre> тута.
No. 17918    
151172247015.png-(248.24KB, 500×500, 1356681797821.png)
17918
Новая расширялка картинок поставлена. Онклик пока не перемещался.
И ещё некоторые мелочи.

>>17904
Не бегите впереди паровоза автобуса, это делается и так.
No. 17919    
>>17918
Можно ли .threadlinksbottom вынести за пределы div'а треда?
И обернуть в div верхнюю кнопку "[Назад]"
No. 17920    
>>17919
То же касается кнопки "[Mod]". Она не обернута.
No. 17925    
>>17918
Поздна.
Ещё тебе свг-иконки зделою наконец.
No. 17926    
151174991272.jpg-(2.59KB, 108×50, 2017-11-27 05_29_25.jpg)
17926
>>17925
Пока только ворованные.
Или ну его? Или заморочеца и перерисовать Умночяновские, шоб можно было перекрашивать в любой цвет?
No. 17931    
151179805590.gif-(537.81KB, 500×598, 1456460504951.gif)
17931
>>17925
Вы-то можете делать что угодно, просто это потом окажется никому не нужным.
Исходники у (некоторых) значков и так в SVG, так что опять же рисовать их заново не нужно.
No. 17932    
>>17931
Ууу~ глупая банка!
Не кажи гоп. От зделою — тогда посмотрим.
Так понимаю, речь про те, которые в админбаре и умночановский пнг? Чому тогда других цветов не нарендерил?
No. 17933    
151189152344.png-(116.28KB, 1024×1024, tex_chara_l_567.png)
17933
>>17919
>Можно ли .threadlinksbottom вынести за пределы div'а треда?
Вряд ли.
>И обернуть в div верхнюю кнопку "[Назад]"
Найдите её в оригинальной «Кусабе» 1.0.4 и покажите мне, что там оборачивать. Так быстрее будет.
No. 17935    
>>17933
Предположительно, где-то в конце:
https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/func/pages.php
No. 17936    
151198010329.png-(158.60KB, 1024×1024, tex_chara_l_568.png)
17936
>>17935
>Предположительно
Наверное, не стоит умничать, если вы разбираетесь в этом даже меньше меня (хотя куда уж меньше меня-то, лол?).
В этом файле содержится само формирование ссылок, которое нам не нужно. Перед нами не стоит цель изменить их содержание или концепцию.
Формирование внешнего вида доски содержится в файле /inc/classes/board-post.class.php. Именно там надо смотреть, куда впихнуть условный <div class="threadlinkstop">. Мне это надо знать точно, потому что с нижними ссылками было проще, ибо они уже были обёрнуты в <span>, который и был мной переделан на <div>.
Верхние не обёрнуты ни во что, и именно эту проблему мы хотим устранить.
No. 17937    
>>17936
Ага, нашёл.
https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/classes/board-post.class.php
640 строка
'<div class="threadlinkstop">' .

threadLinks('return', $thread_op_id, $this->board_dir, $this->board_type, $modifier_last50, $modifier_first100) .

'</div>' .

No. 17938    
>>17937
Меня, как мимокрокодила, волнует строка 1170 того же файла.
No. 17939    
151198459736.png-(554.95KB, 1016×683, 12345703.png)
17939
В общем, непонятно.
С одной стороны, кажется, что именно pages.php отвечает за эту часть страницы. С другой, тогда непонятно, как это потом повлияет на нижние ссылки в board-post.class.php.
Поэтому я туда и не полезу.
No. 17941    
>>17938
Это для тредов на странице доски, рядом с кнопками скрытия и прочего.
Можно так:
$info_post .= ' &nbsp; ' . <span class="threadlinkspage">' .  threadLinks('page', $post['op_id'], $this->board_dir, $this->board_type, $modifier_last50, $modifier_first100) . '</span>';


>>17939
Да понел уже. Хотя можно было бы добавлять спан-контейнер ко всем тредлинкам в pages.php, а в board-post.class.php добавлять уже ойди или класс с положением.
Вообще, думал чому-то, что всё построение страниц именно в темплейтах хранится у Кусабы. Теперь понел, чому все с неё плюются и говорят, что проще новый движок написать, чем сношаться с этим трупом.
No. 17942    
>>17941
>Это для тредов на странице доски, рядом с кнопками скрытия и прочего.
Но это https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/read.php#L78 !
No. 17943    
>>17942
>&nbsp; [<a href="/dev/res/17662.html">Ответ</a>] [<a href="/dev/res/17662-100.html">Первые 100 сообщений</a>] [<a href="/dev/res/17662+50.html">Последние 50 сообщений</a>]
>$info_post .= ' &nbsp; ' . threadLinks('page', $post['op_id'], $this->board_dir, $this->board_type, $modifier_last50, $modifier_first100);
Ну чё ты, чё ты?
No. 17948    
>>17943
Тогда для чего код по ссылке?
No. 17949    
>>17948
Насколько помню, чтение.пехопе вытягивает посты в попапы и всякое такое.
No. 17951    
151200785287.png-(3.46MB, 1920×1080, Kobayashi-san Chi no Maid Dragon - deathma.png)
17951
audio { padding-right: 20px; padding-bottom: 2px; }
No. 17962    
Файл
удалён
キタ━━━(゚∀゚)━━━!!
No. 17963    
>>17962
Совас, пошто .нотумб выпелил, ирод?
No. 17965    
Основная часть зделона.
Осталася мобильная вёрстка и цветовые схемы.
No. 17993    
На заметку: под новым Лисом стало довольно удобно ковырять вёрстку.
No. 17994    
Мобильный дизигн зделон. Даже каталог человечий вид обрёл. Фæрфокс всё ще говно, не умеющее в перенос по целым словам.
Остались цвета.
No. 18003    
151243906144.jpg-(37.44KB, 320×480, 1.jpg)
18003
Аж самому понраилась простота и элегантность.
No. 18004    
151246705250.jpg-(204.61KB, 500×720, 6559493.jpg)
18004
В общем, если вы хотите, чтобы я передвинул раскрывалку картинок со ссылки на сам файл, то объясните, как это сделать на примере исходного файла https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/classes/board-post.class.php#L1085
Там ифы всякие, так что я не уверен, как это двигать.

Покажите мне диффы.
No. 18006    
151247459323.jpg-(127.91KB, 1280×720, 1453296149702.jpg)
18006
>>18005
Вы это тестировали хоть? И вы учитываете, что там проверка, действительно ли там картинка (которую надо разворачивать) или файл другого формата, которому это не надо?
Я просто для уверенности спрашиваю, один хѣръ потом откатить можно будет, если оно не заработает.
No. 18007    
>>18004
https://www.diffchecker.com/TIscY7lj
Сделано с небольшим заделом на будущее, чтобы потом убрать onclick и переписать частично kusaba.js по-человечески.
>>18003
Ссылки вверху очень мелкие, пальцем невозможно попасть.
No. 18008    
>>18006
>>18007
Пофикшено.
По коду, другие типы файлов затронуть не должно, там тупо перенос onclick из ссылки на картинку, при всех других равных условиях.
Может потом накачу эту кусабу на локалхост, чтобы поправить другие баги.
No. 18010    
>>18007
>>18008
Тоже думаю кусабу развернуть для правок. Токмо потом придётся ак-то синхронизироваться.
По поводу верхних ссылок: хочу в .навбар добавить скрытый список досок в виде селекта и обернуть обычный список в спан, шоб для десктопов показывать обычный, а для мабилачек селектовый. Ну и размер шрифта ещё будет подгоняться точнее. По задумке должен быть примерно ак в мобильных клиентах с мелким шрифтом.

>>18004
Совас, скажи лучше. От у тебя в Умночане есть .постернейм и .комментпостернейм. Первый, емнип, для оп-постов, второй — для обычных постов, и они у тебя разных цветов. Но есть одно “но” — у тебя в постах обычный .комментпостернейм. Вопрос: кокой цвет считать за Ъ — зелёный из .комментпостернейм (ящитат больше идёт) али красноватый из .постернейм, который сейчас?
No. 18011    
151247724854.jpg-(89.09KB, 563×800, b638140e73efe29cbed043f1b6f6102e13c478f3.jpg)
18011
>>18010
>>18008
Вы только учитывайте, что «Кусаба» неактуальна, и до открытия репозитория FBE толку от ковыряния её как таковой мало.

>>18010
Во-первых, я повторяю, что никакие правки CSS приниматься не будут, так что вы занимаетесь ерундой. Версия CSS на сервере новее той, что была две недели назад, но уже протухла относительно актуальной, например. Я тут хожу ещё и сразу вёрстку правлю, а не только стили.
Во-вторых, самоочевидно: то, что действительно используется, то и работает, а что не используется, то какие-то ошмётки из древних времён, которые не были вычищены. Эта зелёная штука и имя класса, например, из ычановской futaba.css, так её надо убрать к чертям.
No. 18012    
>>18011
Может FBE и не стоит публиковать. С нуля написать движок с тем же функционалом действительно проще.
No. 18013    
>>18011
Открытие вообще планируется? Да и яж не очевидно модифицированные вещи ковырять буду, а базовые, яке тут явно используются.

Говоришь так, словно за две недели ты тут на Ноду какую всё переписал и от изначальной вёрстки ничего не осталось. Выложу потом то, що имеется, хотя бы взглянешь, как аще можно облегчить стили.
Акей, понел.

>>18012
Чиочую, кусаба редкостная дырявая дрянь с индусской архитектурой. Можно даже не изобретать велосипед, а посмотреть, что сегодня среди движков имеется и выбрать самый простой и легкорасширяемый.
No. 18016    
Кстати, Совас, почему ты не убрал букмарки? Они же на куках и сервере, насколько помню, самая очевидная дыра, ими ещё одну бывшую печально известную крупноборду дудосили.
No. 18017    
151249062070.png-(356.59KB, 377×598, 1505713114833.png)
18017
>>18016
Ну так перепишите их и скрытие нитей мне под localstorage, хулѣ.
No. 18018    
15124935836.png-(84.39KB, 455×445, akinator_1_defi.png)
18018
>>18017
Будет сделано.
No. 18019    
>>18016
> и сервере
А что, так можно было?? Риальне, закрыл браузер, всё почистилось, открыл браузер, список остался! А если айпи динамический, то существует вероятность, что я попаду на список избранного другого пассажира?
No. 18020    
>>18019
Куки там используются.
No. 18021    
>>18020
> закрыл браузер, всё почистилось
No. 18022    
>>18021
> куки
No. 18024    
151250098956.png-(16.00KB, 726×232)
18024
>>18022
No. 18028    
151251524922.png-(221.54KB, 300×449, DO WANT.png)
18028
>>18013

> за две недели ты тут на Ноду какую всё переписал
No. 18030    
151252939488.png-(3.33MB, 1920×1080, Kore wa Zombie Desu ka of the Dead - crepe.png)
18030
Если бы кто-нибудь отпилил http://410chan.org/lib/javascript/protoaculous-compressed.js и напилил бы вместо того jQuery (соответственно переменив и вызовы библиотечных функций), то также было бы чему порадоваться.
No. 18031    
151257402066.jpg-(1.09MB, 1367×1988, Kobayashi&#039;s map.jpg)
18031
В имени файла апостроф отображается не как апостроф (по-видимому, подвергается двойному HTML-кодированию в Кусабе?).

Пример прилагаю.
No. 18056    
151282742256.jpg-(141.95KB, 600×338, 00000159.jpg)
18056
При попытке приделать >>18007 выявлены следующие проблемы:
— Добавление ненужной хѣрни. Как было сказано в >>17412 использование атрибута download нам нахѣръ не нужно. При этом оно дополнительно портило интерфейс тем, что вместо открытия изображения в новой вкладке выдавало диалог загрузки файла. Двойная порча пользовательского опыта.
— Что касается непосредственной (и единственной) цели всех этих манипуляций, то картинки не разворачивались при нажатии. Судя по поведению, почему-то при срабатывании выводилось то же превью, а не полная версия.
Цель не выполнена, правка не принята. Я не знаю, как это допиливать.
Тестируйте ваши правки хотя бы на живой «Кусабе».

>>17963
Добавлено.
No. 18057    
>>18056
Атлична.
Т.е. сейчас на Автобусе самая актуальная версия цсс?
Алсо добавь тогда ще .анхайд для сокрытого.
No. 18060    
>>18056
А эти версии таки никому не нужны?
http://410chan.org/dev/res/17371.html#17428
No. 18061    
151290986049.png-(122.87KB, 416×591, 6823359.png)
18061
>>18060
Сейчас реализация через CSS без замены старых скриптов, очевидно же.

>>18057
Самая актуальная, как обычно, на тесте или в репозитории.
No. 18065    
>>18061
В любом случае, как и думал, ничого особо не поменял. А то, что поменял, я уже тоже.
Короче, держи глобальный цсс и Умночанъ для примера, хотя бы глянешь, чокак.
https://pastebin.com/5AQtg4CG
https://pastebin.com/mH8FigbQ
No. 18069    
>>18056
Посыпаю голову пеплом. Мало того, что допустил пару синтаксических ошибок, так еще и код вставил вообще не туда.
Установил Кусабу 1.04 на локалхост (оказалось тот еще квест), протестировал свои изменения. В этот раз все работает.
https://pastebin.com/N4zjWwtA
Атрибут "download" убран. В диффе есть так же изменения в kusaba.js - работать будет и со старым kusaba.js, но не применять этот патч причин нет. Без него, как сейчас, картинка исчезает, пока не загрузится полностью, теперь она будет просто разворачиваться в полный размер.
No. 18071    
>>17789
Исправление для read.php оказалось довольно простым. https://pastebin.com/98TFUwkG
Изменения кода затрагивают только превью, все то, для чего оно еще нужно, затронуть не должно. Протестировано.
No. 18072    
>>18069
Еще незначительная правка https://pastebin.com/q2U3KeHX
В принципе этот KU_NEWWINDOW все равно отключен, так что на результат это бы не повлияло.
No. 18075    
Фикс для этого >>17919
https://pastebin.com/ub1B330J
Что делает:
— .threalinksbottom теперь находится за пределами .thrdcntnr - это изменения в board-post.class.php
— Та же группа кнопок сверху теперь тоже в div с классом .threadlinks, а значит для них так же можно применять css, как для нижних, например выровнять по правому краю.
— Кнопки [Mod], что находится в тердах снизу, в кусабе с гитхаба нет. Нужно в репозитории Чиочана пройтись поиском по всем файлам по запросу "toggleMod", найти эту кнопку и добавить до и после "<div>" и "</div>". Ничего сложного.
No. 18076    
По поводу "добавления ненужной хѣрни".
Есть другое решение - сделать реальное имя файла в скобках ссылкой для скачивания файла с тем же именем. По-моему, это логично. Видим "151265665175.jpg-(38.88KB, 592×562, Narutakruta.jpg)", жмем "151265665175.jpg" - открываем картинку на новой вкладке, жмем "Narutakruta.jpg" - появляется диалог сохранения файла "Narutakruta.jpg".
Решается добавлением 3 строчек: https://pastebin.com/7yv0PbsW
Впрочем, никто не заставляет.
No. 18077    
>>18076
Аще, эти «цыфоры.расширение» не несут никакой функциональности. Можно сократить до «расширение».
No. 18090    
Есть мысль добавить количество новых постов на досках в меню. Для этого нужно будет добавить небольшой php-скрипт и дополнить kusaba.js. Код, разумеется, с меня. Профит в виде оживления тематики.
Ну как, писать?
No. 18091    
151303756588.png-(406.92KB, 463×617, 1512057457836.png)
18091
>>18090
Это для фрейма, который вообще не нужен как технология?
Не буду это приделывать.
В перспективе надо делать нормальную главную без фреймов по умолчанию (но сам фрейм оставить для тех, кто им пользуется).

>>18077
Я планирую сделать как на «4чане», но без дурацкой надписи «Файл», которую я у нас отпилил не так давно.
No. 18092    
>>18091
Это не для фрейма, а для админбара сверху.
No. 18094    
151306160162.png-(2.38KB, 404×53, 151304664355.png)
18094
>>18092
Вот так это выглядит.
В корень сайта (где kusaba.php, board.php и все остальное) добавляется скрипт с названием "stats.php": https://pastebin.com/68FAyDda
В kusaba.js в конец window.onload добавляется следующий код: https://pastebin.com/z0Tex7bS
Работает как положено: смотрит самый большой id поста на всех бордах и сравнивает с сохраненными в localStoreage цифрами. При заходе в тред или на доску значение для текущей доски обновляется, и счетчик обнуляется. Отрицательных и нулевых значений не видно. При первом заходе после чистки хранилища браузера ничего не отображается. Цифры в спанах с соответствующим классом и их можно стилизовать в css, а при желании легко убрать через display: none.
No. 18099    
151309264844.png-(1.06MB, 1280×720, OP2-Uiharu.png)
18099
>>18094
Очень сомнительное дизайнерское решение.
И нужно ли вообще показывать точное количество написанных сообщений?

Алсо, у нас уже есть RSS.
No. 18104    
>>18099
RSS умер как стандарт и никому не нужен как те же фреймы это раз. Точное количество можно и не указывать это два. Достаточно поменять одну строчку в скрипте или через CSS скрыть текст и заменить значком. Хотя кому это может помешать непонятно. Почему-то над иконкой почты пишется количество новых сообщений, а не флажок "новые письма", и это считается нормой. Даже адблок пишет сколько скриптов заблокировано, хотя казалось бы, это совсем бесполезная информация. Или же это так важно скрыть наличие удаленных постов.
Психологически этот плюсик создает незавершенное действие, у пользователя не возникнет ощущение, что "вот, я проскроллил весь Автобус", пока все плюсы не будут убраны. Следовательно, на тематические доски будут заходить по мере появления на них новых сообщений, а не когда пользователь вспомнит об их существовании и без особой надежды начнет прокликивать все подряд. У постящего в тематике так же будет уверенность, что его пост прочитают тогда, когда кто-то зайдет на 410чан неважно в какой раздел, а не тогда, когда кто-то промахнется мышкой мимо /b/. Как следствие, на тематических досках будут охотнее создавать треды.
No. 18105    
151310943190.png-(323.49KB, 1120×698, 8675849.png)
18105
Кстати, напомните мне, что там надо было убрать, чтобы куклоподелие не ругалось?

>>18104
Потому-то это и плохое десигнерское решение, что циферки хорошо работают в сочетании со значками, а не ссылками.
No. 18106    
151312326915.jpg-(3.60KB, 295×33, 2017-12-13 02_56_50.jpg)
18106
>>18105
Чому? Всякие социалки вполне с текстом сочетают. Прямоугольные скобки как выделение элемента больше колхозом отдають, например.
другой дизигнер
No. 18107    
151312542460.jpg-(36.78KB, 947×720, 1266689205881.jpg)
18107
>>18106
>Чому?
Потому что вы ничего не понимаете в десигне.
Если бы вы хоть что-то понимали в десигне, вы бы осознавали, что соцсети сознательно проектируют свои меню под такие штуки. Вы же предлагаете вырвиглазное нечто, которое в типичной ситуации произвольно меняет ширину меню (это уже плохо), а при больших количествах досок и непрочитанных сообщений превращается в полный трэшак.
Про квадратные скобки я даже комментировать не хочу. Займитесь лучше лепкой супов.
No. 18108    
151312904447.jpg-(106.56KB, 1366×694, 2017-12-13 04_29_48.jpg)
18108
>>18107
А мог бы вже псевдофрейм нормальный зделоть. Может лучше всякого велосипеда был бы, добрее стал бы. И можно ж ограничить максимальное количество отображаемое в счётчике (9000, например, после чего показывать >9000).
А аще, сверху нужен не тупые ссылки на доски, а нящный списочек.
Про скобачки всё же скажи. Вот где они сейчас используются окромя какашек времён палеолита и отдельных интерфейсов для текстовых бровзеров? Я конечно люблю поскроллить инторнеты через Links какой, но всё же.
No. 18109    
151313133510.png-(335.71KB, 1152×632, 12345691.png)
18109
>>18108
Десигн не про то, чтобы наклепать всякой хѣрни. Десигн про то, чтобы получить результат, исходя из доступных ресурсов и ограничений.
Хотите верстать соцсети, идите и верстайте соцсети. При чём тут я? Я тут ни при чём.
У нас есть очень консервативная публика и очень консервативные интерфейсы. В том числе с этими ненужными квадратными скобочками на всех чанах. Уже больше десяти лет. У людей даже от мелочей зловещая долина каждый раз.
Я вынужден исходить из этой ситуации. Нетрудно заметить, что меня интересует в первую очередь доработка существующих функций, а не добавление новых. Я ценю инициативу >>18094-куна, но пока я это прикручивать не готов.
No. 18110    
>>18109
Я-то ни в чём и не упрекаю, лол. Почему так сурьёзно относисшься к тыканьям палочкой? Бу-бу-бу~
Ежели сурьёзно говорить про функционал уведомления о новых репликах, то достаточно скрыть цыфоры и заменить на махонькой плюсик в кружочке справа над ссылкою в доску, главное не делать ёго сильно выделяющимся цветом, щоб не цеплялся нарошно за взгляд пользователя при елощеньи глазами по экрану и не напрягал пассажира, вынуждая зайти на доску, дабы лишь бы избавиться от этого надоедливого плюсика, али же просто сделать функционал визуально отключаемым. Цыфоры же могут пригодиться ля мобильных приложеньев, а то и мобильной вёрстки. Можно, конечно, облегчить на корню функционал, проверяя только факт изменения крайнего номера сообщенья на доске, однако сё же ящитаю лучше дать возможность воспользоваться функционалом тем пользователям, которым он может действительно понадобиться.
No. 18111    
>>18105
Нужно закомментировать строчку alert(req.statusText);, что находится внутри функции handle() в скрипте в <head>.
Еще неплохо бы перенести строку <!-- Yandex.Metrika counter --> из <head> в самый конец <body>, после {$page} в шаблоне.
No. 18112    
151314454020.png-(10.47KB, 1349×33, Screenshot-2017-12-13 Разработка.png)
18112
>>18106
Вот еще пример десигна. Та же верстка, другой css.
No. 18113    
>>18112
Об этом и говорил. Хотя метку лучше сделать, например, #F9E0A8, шоб не аттрактила на себя внимание постоянно и не довила на мосх.
No. 18115    
.thrdcntnr label input {

    display: none;
}

.thrdcntnr label input:checked + span::before {
    content: '✕';
    color: red;
    font-size: 12px;
    padding: 0 2px;
}

No. 18120    
>>18115
У меня более нящьные фловербоксы:
input[type="checkbox"] {width: 0;margin: 3px 17px 0 3px}

label > input[type="checkbox"][name="delete[]"] {margin: 3px 13px 0 3px}

input[type="checkbox"]:after {content: "❀";display: inline-block;font-size: 16px;line-height: 16px}

input[type="checkbox"]:checked:after {content: "✿"}

No. 18121    
>>18120
Не работает в Firefox. Компромиссный вариант:
.thrdcntnr label input {

  display: none;
}

.thrdcntnr label input + span::before {
  content: "❀";
  display: inline-block;
  font-size: 16px;
  line-height: 16px;
  padding: 0 2px;
  color:#800080;
  font-weight: normal;
}

.thrdcntnr label input:checked + span::before {
  content: "✿"
}

No. 18126    
151322746567.jpg-(143.77KB, 1280×753, Re Zero NTR.jpg)
18126
Когда в теме http://410chan.org/d/res/1433.html я навожусь в первой реплике на красную гиперссылку, ведущую к обсуждению в /b/, то она в Файерфоксе начинает то отпрыгивать от курсора мыши, то напрыгивать обратно под него.

По-видимому, всё дело тут в том только, что в этот момент функция «addreflinkpreview» (записанная в файле http://410chan.org/lib/javascript/kusaba.js со строки 507) начинает вставлять (строкою 523) перед гиперссылкою блочный элемент «previewdiv», созданный ею ранее (в строке 510) с классом «reflinkpreview», и тем самым создаёт перевод строки перед гиперссылкою — та отпрыгивает на следующую строку, но затем функция «delreflinkpreview» (записанная со строки 537) убирает блочный элемент и начинает всё с начала.

Выглядит это неприятно и оттого не может быть терпимо.

Предлагаю напилить в файле http://410chan.org/css/txt_global.css такой аналогичный имеющемуся в файле http://410chan.org/css/img_global.css стиль для класса «reflinkpreview», который бы позиционировал этот блок абсолютным позиционированием (чтобы блок не создавал переноса строки в существующем течении прозы):
.reflinkpreview { position: absolute; padding: 5px; background-color: #F0E0D6; border: 1px dotted #000000; }

No. 18136    
151325727940.png-(148.07KB, 1294×558, щщщ.png)
18136
А зачем эта полупрозрачная обводка содержимого поста, который разворачивается по ссылке? Не знаю, всегда ли так было, только сейчас обратил внимание.
No. 18137    
15132573465.png-(108.94KB, 1144×654, 2221.png)
18137
Полистал другие дефолтные стили, такая обводка только в умночане. Зато в блюмуне ещё лучше, там края поста солидной толщины становятся цвета умночна при тех же действия.
No. 18138    
>>18136
Енто от .пост остатки. В >>18065 исправлено. Токмо в адблок внеси 410chan.org/css/img_global.css и 410chan.org/css/umnochan.css.
No. 18146    
Занимаясь полным перепиливанием kusaba.js, возник вопрос: а нужны ли горячие клавиши? Кто-нибудь знал, что такая функция вообще есть? Может просто удалить этот код.
No. 18148    
151330668250.jpg-(46.54KB, 750×655, 1259535322602.jpg)
18148
>>18146
Зачем выпиливать? Это же концептуально. Был бы манул по ним, я бы их в FAQ внёс.

>>18136
>>18137
Всё время забываю исправить.
No. 18157    
>>18148
Ненужно. Там из функций переход по страницам и скролл по тредам на странице. Первое есть в самих браузерах через Ctrl+стрелки влево/вправо, а прокрутка и через PageUp/PageDown сойдет.
No. 18158    
151336215955.png-(2.53MB, 1920×1080, Sakurasou no Pet na Kanojo - Rita breakdown.png)
18158
>>18157

> Первое есть в самих браузерах через Ctrl+стрелки влево/вправо

Какъ это?

Въ Файерфоксѣ, насколько я понимаю, нѣтъ этого.
No. 18162    
>>18158
>Въ Файерфоксѣ
Так говорят же: в браузерах.
No. 18165    
>>18162
Огласите весь список, пожалуйста.
хромог
No. 18167    
>>18158
Opera до 12 умела из коробки переходить на следующую страницу по нажатию пробела в конце страницы. В Firefox то же делает дополнение https://addons.mozilla.org/ru/firefox/addon/find-next-page/
No. 18169    
https://pastebin.com/PPNRLimQ
Вот патч для исправления кнопок перехода по страницам. Сейчас там какая-то ересь через формы, будет же нормальные семантичные ссылки, говорящие браузеру, есть ли следующая/предыдущая страница для перехода или нет.
Хоткеи в текущей кусабе следующие:
alt+], alt+' - скролл тредам выше и ниже соответственно.
alt+[, alt+; - переход по страницам предыдущая/следущая
alt+p - скролл до формы ввода сообщения
Все это работает только в английской раскладке, переключение страниц имеет баг, из-за которого можно выйти на 404, так как он тупо инкрементирует номер страницы и не смотрит, есть она или нет.
Данный патч позволит избежать такой ситуации с новой kusaba.js
Так как input'ы заменены на ссылки, нужно будет в css подправить их стили и довести до прежнего вида.
kusaba.js переписана на JQuery, скрытые треды и избранные нити теперь хранятся в localStorage. Для избранных нитей будет требоваться вместо threadwatch.php закинуть другой скрипт, а threadwatch.php желательно удалить, так как дыра. Хотя все почти готово, я повременю с публикацией, пока текущие правки в этом треде не будут выкачены в продакшн.
No. 18170    
>>18169
Кстате, чтоб велосипеды лишний раз не изобретать, можешь взглянуть на Инстант, который умудрился какой-то хороший человек спасти от удаления оригинальной репы, да позаимствовать оттуда чего. Там многое с пыха на жс было перенесено.
https://github.com/devarped/instant-0chan
No. 18171    
151344230668.jpg-(94.56KB, 800×594, DO WANT.jpg)
18171
>>18169

> kusaba.js переписана на jQuery
No. 18172    
151344301374.png-(385.72KB, 1066×592, 12345684.png)
18172
>>18169
>JQuery
И сразу же отказ. Если переделывать, то все внешние библиотеки надо наоборот слать к чертям, а не разводить bloatware тут мне.

>>18075
Стало быть, отредактировал я сначала просто pages.php. Этот самый <div class="threadlinks"> в итоге образовался как у верхних, так и нижних ссылок. Нижние, соответственно, оказались сунуты в два <div>, что уже довольно сомнительное решение. Но это, видимо, ожидалось.
Но главное, что оно каким-то образом уничтожило закрывающий </div> у thrdcntnr, хотя я вообще не трогал board-post.class.php.
Надо заметить, что thrdcntnr в «Кусабе» нет, и предложенные правки board-post.class.php вообще смутно соотносятся с актуальной версией.

>>18071
Сделано.
No. 18175    
151345167543.png-(1.97MB, 1920×1080, Suzumiya Haruhi no Yuuutsu - a celestial.png)
18175
>>18172

> jQuery

> И сразу же отказ. Если переделывать, то все внешние библиотеки надо наоборот слать к чертям, а не разводить bloatware тут мне.

А если не переделывать, то продолжать использовать http://410chan.org/lib/javascript/protoaculous-compressed.js (148 270 байтов) вместо https://code.jquery.com/jquery-3.2.1.min.js (86 659 байтов)? Эта альтернатива выглядит как-то неуютно.

Как мнѣ кажется, скрипт-кун принёс нам избавленье от 42% объёма имеющегося bloatware, этому надо только порадоваться, а не отмахиваться дубиной с надписью «всё или ничего».

Более того, есть ведь ещё и следующий возможный шаг — возможность понадеяться (и небезосновательно) на наличие jQuery в кэше конечного пользователя (ввиду популярности jQuery), а от возможной опасности злонамеренного вмешательства внешнего сервера (CDN) в код jQuery надёжно оборониться через разъяснённый по адресу https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity атрибут контроля целостности:

<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>

No. 18178    
>>18172
jQuery подразумевается пихать локально на место на место protoaculous.js, а не качать с cdn.
И если jQuery bloatware, то почему Яндекс.Метрика это ок?
No. 18180    
15134582966.png-(2.56MB, 1920×1080, Kore wa Zombie Desu ka of the Dead - crepe.png)
18180
>>18178

Если качать с CDN, то вместо 84,63 килобайта достаточно скачать 34,3 килобайта, потому что на CDN code.jquery.com работает сжатие gzip (а на 410чанѣ — нѣтъ).
No. 18182    
151346326334.jpg-(92.92KB, 1280×720, 1375982666710.jpg)
18182
>>18178
>почему Яндекс.Метрика это ок?
Потому что это не часть движка, а конкретный внешний инструмент, используемый администрацией. Он может исчезнуть в любой момент без особенных проблем.
И людям её никто блокировать самостоятельно не мешает.

Движок содержит минимум функций, которые бы требовали некие скрипты. Поэтому нет никакого смысла ради полутора функций совать большие внешние библиотеки с кучей ненужной хѣрни вместо того, чтобы оставить только нужное. Это классический пример bloatware в веб-разработке. Работа должна идти именно в направлении оптимизации, когда скрипты делают ровно то, что они должны делать.
Следует уважать пользователей, а не спихивать всю неоправданную нагрузку на них. Если не мы (классические имиджборды, сохраняющие минимализм в интерфейсах), то кот, в конце концов?

Никакие CDN мы вообще не рассматриваем, это должно быть самоочевидно любому вменяемому человеку.
No. 18183    
Совас, сделай уже .thrdcntnr на скрытых тхредах.
No. 18184    
151346841990.png-(4.69MB, 1920×1080, Boku wa Tomodachi ga Sukunai NEXT - awesome smile.png)
18184
>>18182

> Никакие CDN мы вообще не рассматриваем, это должно быть самоочевидно любому вменяемому человеку.

Предположим, что я невменяемый или вообще не человек. Какими аргументами, кроме ad hominem, может быть подкреплён в этом случае категорический отказ от CDN? Какой из этих аргументов может считаться непреоборимо весомым?
No. 18185    
151346911942.png-(2.43MB, 1920×1080, Kono Subarashii Sekai ni Shukufuku wo! - Aqua spel.png)
18185
>>18182

> Работа должна идти именно в направлении оптимизации, когда скрипты делают ровно то, что они должны делать.

Работа идёт в направлении оптимизации так хорошо, что объём скриптов, делающих не ровно то, что они должны делать, успел сократиться на 42% относительно простым способом (заменою protoaculous на jQuery).
No. 18186    
>>18184
>Какой из этих аргументов может считаться непреоборимо весомым?
Такой, что администрация не будет это прикручивать.
No. 18187    
>>18182
Это пример предрассудков, навязанных расхожими анекдотами, но не подкрепленных фактами. Сразу включается клиповое мышление "ангуляр реакт плагины для скроллбаров гроб гроб кладбище", как у людей, для которых убрали слово "ядерное" из магнитно-резонансной томографии.
В вашей "классической" кусабе не постеснялись впихнуть мутный protoaculous, а использование проверенного инструмента, являющегося стандартом де-факто внезапно абсолютный харам.
> jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
Почему-то тут не видно слов "большая внешняя библиотека с кучей ненужной хѣрни и неоправданной нагрузкой на процессор". Поддержка браузеров достаточно нужная херня, как по мне.
No. 18188    
151347151344.png-(62.55KB, 571×464, xkcd - is it worth the time.png)
18188
>>18182

> Следует уважать пользователей, а не спихивать всю неоправданную нагрузку на них.

Скачивание gzip-упакованного скрипта https://code.jquery.com/jquery-3.2.1.min.js (объёмом 34,3 килобайта) занимает примерно 349 миллисекунд на среднем ростелекомовском канале в российской провинции, после чего скрипт попадает в кэш.

Внимание, вопрос (комиксом https://xkcd.com/1205/ вдохновлённый): сколько новых пользователей (ещё не имеющих jQuery в кэше) должно зайти на 410чан, чтобы совокупная неоправданная нагрузка на пользователей превзошла хотя бы пятую долю неоправданных расходов времени веборазработчика, вынужденного действовать посредством громоздких конструкций наподобие «document.getElementsByTagName("td")» (реальный пример из нынешней версии файла http://410chan.org/lib/javascript/kusaba.js на строке 145) вместо экономичных jQuerийных конструкций наподобие «$("td")» (полный аналог вышеизложенного примера)? За какое время (согласно имеющимся у администрации данным Яндекс.Метрики) такое количество новых пользователей заходит на 410чан?

В ответе рекомендую учесть следующие обстоятельства:

1) Некоторые (не многие) новые пользователи имеют jQuery в кэше со времени посещения других сайтов, пользующихся тем же CDN.

2) Некоторые (не многие) прежние пользователи не имеют jQuery в кэше, потому что почистили кэш.

3) Расходы времени программиста включают в себя, разумеется, не только необходимость набирать длинные конструкции (например, «document.getElementsByTagName» вместо «$») в коде, но и необходимость вникать в эту запись всякий раз при чтении кода. И готовых конструкций таких в коде http://410chan.org/lib/javascript/kusaba.js изрядно много: семь «getElementsByTagName», сорок два «getElementById», четырнадцать «getAttribute», двадцать четыре «innerHTML».
No. 18189    
Я ще добавлю со своей колокольни, що Кусаба де-факто жырное добро.
No. 18190    
>>18188
jQuery не столько синтаксический сахар в виде $(), сколько слой совместимости со старыми браузерами. Своими силами невозможно впилить и протестировать столько функций в стольких версиях браузеров и учесть все их баги. В kusaba.js это видно из комментариев // IE needs to die и // now Opera safe, то есть автор изрядно заколебался, и даже в таком виде эти костыли мало что покрывают.
И претензии были не столько в весе кода, а в нагрузке на процессор, впрочем так же притянутые за уши.
No. 18191    
151347331273.png-(1.78MB, 1280×720, Shichimiya koisuru otome.png)
18191
>>18189

С жирностию кода всея Кусабы станем разбираться только после открытия кода Flower Bus Engine, в настоящее время закрытого.

Пока разбираемся с жирностию джаваскриптов ея.
No. 18192    
151347365679.jpg-(106.06KB, 956×720, 1257111249605.jpg)
18192
>>18187
>Почему-то тут не видно слов "большая внешняя библиотека с кучей ненужной хѣрни и неоправданной нагрузкой на процессор".
Я тоже могу всякой лабуды понаписать о том, какой я великий и какие мои поделки крутые, но разве это аргумент?
У меня в движке десяток функций, за каким хѣром нужна библиотека на сотни нахѣръ не нужных мне тут функций? А потом ещё как-то контролировать, чтобы там левые баги и уязвимости в этой ненужной мне хѣрне не затронули нужную хѣрню. Кто поддержкой будет заниматься? Уж точно не вы и не автор флудных простыней по соседству.
>В вашей "классической" кусабе не постеснялись впихнуть мутный protoaculous
Я не разрабатывал эту «Кусабу» и ничего в неё не совал. Я не считаю её идеальным движком. Эта нить буквально о доработке движка. С кем и о чём вы ведёте полемику, мне непонятно. Прежде чем умничать за клиповое мышление, следует избавиться от него самому.
Я вполне поддерживаю выпил «protoaculous» из движка, но не в пользу концептуально аналогичной хѣрни, но просто более модной.
Вот на Ычане смогли сделать нормальные скрипты только с нужной для работы Ычана функциональностью, а мне зачем-то суют какую-то левую дрянь. Вы там совсем код разучились писать под конкретную задачу?
No. 18193    
Карочи, суньте жикюьрь внутрь Кусаба.жс и банка угомонится. В идеале оставить токмо используемые в коде из жикьюри функции.
No. 18194    
>>18192
> Я тоже могу всякой лабуды понаписать о том, какой я великий и какие мои поделки крутые, но разве это аргумент?
Аргумент это "я хорошо знаком сабжем и могу объективно оценить правдивость данного утверждения". "jQuery херня, я так сказал" настолько же аргумент, насколько "какой я великий".
> за каким хѣром нужна библиотека на сотни нахѣръ не нужных мне тут функций?
Огласите весь список, пожалуйста.
> Вот на Ычане смогли сделать нормальные скрипты только с нужной для работы Ычана функциональностью
Ни в какое сравнение не идет. Тут куча ajax-запросов и редактирование html на лету. Там ради простоты пожертвовали поддержкой всех браузеров старее 2016.
No. 18195    
151347500756.png-(2.45MB, 1920×1080, Re Creators.png)
18195
>>18190

> jQuery не столько синтаксический сахар в виде $(), сколько слой совместимости со старыми браузерами.

Моё мнение диаметрально противоположно: движок jQuery более полезен синтаксическим сахаром, нежели слоем совместимости со старыми браузерами.

Польза синтаксического сахара — экономия времени разработчика, вполне измеримая тем способом, который я предложил в реплике >>18188 (считаем количество методов, запись которых упрощается или вообще схлопывается в «$», затем прикидываем, сколько разработчик тратит на каждый, затем перемножаем).

Совместимость со старыми браузерами в современных версиях jQuery (в версии 3.0, которую блогозапись http://blog.jquery.com/2016/06/09/jquery-3-0-final-released/ называет вышедшею 9 июня 2016 г., и во всех более новых версиях), согласно приведённому по адресу https://jquery.com/upgrade-guide/3.0/#browser-support списку, исчерпывается следующими версиями:

  • Internet Explorer 9 и новее,
  • Chrome, Edge, Firefox, Safari нынешней и предшествующей версии,
  • Opera нынешней версии,
  • Safari Mobile iOS 7 и новее,
  • Браузер Android 4.0 и новее.
С одной стороны, это очень верно и правильно: Chrome и Edge и Firefox и Safari обновляются, Opera основана на Chromium, а пользователя Internet Explorer версии 8 и более ранних ждут в Интернете проблемы более мрачные, чем неработоспособность некоторых сайтов.

С другой стороны, это означает, что слой совместимости в нынешних версиях jQuery не надо оценивать слишком значительно. Сразу несколько «костылей» в коде http://410chan.org/lib/javascript/kusaba.js не годятся в качестве предмета для сравнения с jQuery и как аргумент в пользу якобы значительной толщины слоя совместимости в jQuery, потому что в действительности свидетельствуют о противоположном: они подпирают проблемы тех браузеров, на которых создатели jQuery с середины прошлого года решили положить (и правильно сделали, но сейчас я не о том).

В частности, первый же в коде http://410chan.org/lib/javascript/kusaba.js «костыль» подпирает, как нетрудно видеть, случай отсутствия метода «indexOf» в объектной модели массива; однако по адресу https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Browser_compatibility пишут, что этой бедой в основном страдал только Internet Explorer версии 8 и более ранних (Firefox от неё быстро излечился: на десктопах — к версии 1.5, а в Android — к версии 4).
No. 18196    
15134762906.png-(557.69KB, 1091×631, 12345680.png)
18196
>>18194
Я где-то говорил, что мне нужна поддержка протухших браузеров?
От протухших браузеров нужно только одно: чтобы постинг работал. Никто не пользуется протухшими браузерами всё равно.
No. 18197    
151347667420.png-(3.01MB, 1920×1080, Boku wa Tomodachi ga Sukunai NEXT - awesome smile.png)
18197
>>18192

> У меня в движке десяток функций

Ну вот уж не десяток, а без малого сороковник.

Открываем http://410chan.org/lib/javascript/kusaba.js и начинаем подсчёт:

1) Utf8.encode

2) Utf8.decode

3) replaceAll

4) insert

5) quote

6) checkhighlight

7) highlight

8) get_password

9) togglePassword

10) toggleMod

11) toggleOptions

12) getCookie

13) set_cookie

14) set_stylesheet

15) set_preferred_stylesheet

16) get_active_stylesheet

17) get_preferred_stylesheet

18) togglethread

19) toggleblotter

20) expandthread

21) quickreply

22) getwatchedthreads

23) addtowatchedthreads

24) removefromwatchedthreads

25) hidewatchedthreads

26) showwatchedthreads

27) checkcaptcha

28) expandimg

29) postpreview

30) set_inputs

31) set_delpass

32) addreflinkpreview

33) delreflinkpreview

34) addpreviewevents

35) keypress

36) resizeMaster

Для сравнения сразу скажу, что https://iichan.hk/wakaba3.js насчитывает десятка полтора, притом несколько более простых (ни один не пользуется AJAX, например). Это реплика к аргументу «на Ычане смогли».
No. 18198    
151347869032.jpg-(0.96MB, 1920×1080, Amagami SS - nani ga byo.jpg)
18198
>>18192

> А потом ещё как-то контролировать, чтобы там левые баги и уязвимости в этой ненужной мне хѣрне не затронули нужную хѣрню. Кто поддержкой будет заниматься? Уж точно не вы и не автор флудных простыней по соседству.

Это должно быть самоочевидно любому вменяемому человеку: вот в этой нити на 410чанѣ будет время от времени появляться веборазработчик со словами: вышла новая версия jQuery http://blog.jquery.com/2017/03/20/jquery-3-2-1-now-available/ с исправлением хѣрни https://github.com/jquery/jquery/issues/3571 (допустим, нужной) и поэтому надо обновиться.

Или: после последнего обновления перестала работать такая-то нужная хѣрня, а в прошлой версии — работала; надо откатиться.

И будет сие до тех пор, пока /dev/ не оскудеет веборазработчиками.

Уязвимостей же в jQuery никаких нет, сотни глаз https://github.com/jquery/jquery/graphs/contributors вглядываются в код ея пристально.
No. 18200    
151347947457.jpg-(4.70MB, 3800×2480, Kono Subarashii Sekai ni Shukufuku wo! - Yunyun.jpg)
18200
Прибавлю, что следование стандарту https://semver.org/ вообще-то гарантирует обратную совместимость в том смысле, что код, сочинённый поверх нынешней третьей версии jQuery, должен работать во всех третьих, то есть до появления четвёртой версии (это в норме, то есть если случайно что-нибудь не сломают — а если сломают, то поправить непременно соберутся).
No. 18201    
151348937276.png-(3.96MB, 1920×1080, Boku wa Tomodachi ga Sukunai NEXT - сочувст.png)
18201
>>18190

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

У меня такое впечатление, что я пропустил ту реплику, в которой была впервые высказана претензия к нагрузке на процессор.

Каков её номер?
No. 18202    
151348980935.png-(401.02KB, 640×480, School Rumble.png)
18202
При пристальном вглядывании я заметил, что в реплике >>18200 высказался не вполне однозначно.

Чтобы не было разночтений, поясняю: следование стандарту Semantic Versioning — это обещание, которое было дано в одной из блогозаписей у разработчиков jQuery, и дано оно было по отношению к тому, как будут нумероваться следующие версии jQuery. В известной мере по нему можно догадываться и о том, как будут вообще развиваться следующие версии (ну, например, новые возможности будут появляться чаще, а несовместимые изменения — реже).

Авторов же джаваскрипта 410чана это обещание никак не связывает, а просто позволяет с большей уверенностью смотреть в будущее jQuery.
No. 18231    
151388507282.png-(2.81MB, 1920×1080, Boku wa Tomodachi ga Sukunai NEXT - сочувст.png)
18231
Пристальное вглядывание в страницы https://developer.mozilla.org/en-US/docs/Web/CSS/resize#Browser_compatibility и https://caniuse.com/#feat=css-resize может и должно открыть вниманию читателя то обстоятельство, что во всех сколько-нибудь современных браузерах (окромя Edge, и Internet Explorer, и Safari на iOS) поддерживается свойство «resize» языка CSS.

Предлагаю поэтому именно его (это свойство) накатить на тот элемент «textarea», в котором я сейчас набираю вот эти слова, а изощрённый костыль (содержащийся под именем «resizeMaster» в файле http://410chan.org/lib/javascript/kusaba.js в последней сотне строк) отпилить: и выбросить из джаваскрипта, и в основном коде страницы (на строках, сейчас предшествующих двухсотой) не городить вызов его, потому что два слова «resize: both» необыкновенно проще.

(Следующий же шаг к удобству может состоять в том, чтобы вообще не возлагать на автора реплик имиджборды обязанность по изменению размера поля ввода, а обеспечить это изменение автоматически, то есть http://jacklmoore.com/autosize напилить вместо «resize: both».)
No. 18232    
15138878992.png-(1.33MB, 798×1199, Братья Карамазовы.png)
18232
Если открыть «Русскій Вѣстникъ» за январь 1879 года (≈139 лет назад) на странице 173, то откроется роман «Братья Карамазовы» Достоевского, а в нём — именно то мѣсто изъ разсужденій Ивана Карамазова, в котором говорится о том, как трудно по нѣкоторому вопросу вѣроисповѣданія противопоставить себя церкви и сказать себе: «Всѣ ошибаются, всѣ уклонились, всѣ ложная церковь — я одинъ справедливая христіанская церковь», и что «это вѣдь очень трудно себѣ сказать, требуетъ условій огромных, обстоятельствъ не часто бывающихъ».

Это аргумент к вопросу об использовании jQuery: такое использование авторы подсчёта https://trends.builtwith.com/javascript/jQuery обнаруживают на 70% (699998 из 1000000) наиболее посещаемых сайтов в Интернете — конечно, 70% ещё не «всѣ», но всё же это явное большинство и даже «парламентское» (2/3) большинство таковых сайтов; вдругорядь предлагаю брать пример с них, тем более что пользу такого шага в реплике >>18188 я предложил уж счесть (и даже арифметическим подсчётом счесть) превосходящею создаваемую нагрузку.
No. 18233    
>>18232
Более того, его легко можно собрать, используя только нужные модули, и аргумент "на кой мне тысячи лишних функций" отпадет сам собой. Лишних было и так с десяток, теперь ни одной. Далее только поступать как Степан в Кукле и писать самописные заменители, делающие то же самое.
No. 18241    
151399976779.jpg-(6.08MB, 5472×3648, Madoka and Homura dolls.jpg)
18241
Замечание >>18233 совершенно справедливо, но и по отношению к этому предложению я должен повторить изложенный по адресу >>18188 аргумент на новый лад, и повторю.

Да, можно прочесть в README про jQuery подраздел https://github.com/jquery/jquery/blob/master/README.md#modules с перечислением двадцати модулей и над каждым подумать, нужен он или не нужен, а затем прочесть и соседствующие подразделы README и разобраться в том, как поставить grunt и запустить сборку собственной версии jQuery.

Но сколько времени это отнимет и для чего это?

Для того, чтобы не было лишних функций и оттого лишнего объёма у файла с джаваскриптом?

А велик ли выигрыш по объёму? — и какой же суммарный выигрыш по времени у посетителей 410чана это повлечёт?

Надо считать (и надо располагать для того статистикою посещений 410чана, которой я не располагаю) — но, может быть, даже за год или за два посетители 410чана не выиграют по времени столько, чтобы оправдать затраты времени на разбирательство в вопросе о сборке собственной версии jQuery. Не сложатся их миллисекунды в десятки минут. Тем более что миллисекунды-то тратятся при первом посещении только лишь, а дальше библиотека берётся во мгновение ока из кэша.

То-то и получается, что делается такая сборка как бы в режиме неискупимого жертвования собою (даже и с надрывом) перед идеалом (или, если угодно, перед идолом) отсутствия лишних функций в исходном коде, и сборщик руководим не рациональными (рассудочными), а психологическими (душевными) причинами и побуждениями, всё равно как некоторые (и даже изрядно многие) персонажи у Достоевского, ищущие и находящие для себя тяготу и алтарь для жертвы.

А не надо так.
No. 18246    
151422068962.jpg-(207.39KB, 700×700, 957c0cfee1543472d3c10bcaf5f1886e0402f4cb.jpg)
18246
Ну, вы, конечно, можете клепать свою реализацию с «jQuery», просто я не гарантирую, что мы её приделаем.
Но никаких ЦДН. И чем меньше у вас лишнего хлама будет, тем лучше.
No. 18248    
151426916149.png-(2.14MB, 1920×1080, Denpa Teki na Kanojo.png)
18248
>>18246

Если даже оставить в стороне прелюбопытный вопрос о jQuery, то не могу ли я получить какой-нибудь отклик по поводу совершенно перпендикулярных этому вопросу реплик >>18231 и >>18126 и >>18031 и >>17951?
No. 18253    
15143054029.gif-(19.32KB, 300×100, 125671748917.gif)
18253
>>18248
По поводу реплики >>18231
Это обсудили в том же ключе еще в 2009 году, и цветочек этот является не столько функциональным элементом, сколько изюминкой сайта.
Ему посвящен не один баннер.
https://410chan.org/misc/src/125707374218.png
https://410chan.org/misc/src/12571842635.png
No. 18384    
151491526060.png-(1.78MB, 1920×1200, Человек и закон.png)
18384
>>18253

Ну дыкъ въ декоративныхъ цѣляхъ цвѣточекъ оставить, а джаваскриптъ всё же отпилить притомъ можно.
No. 18386    
>>18253
>https://410chan.org/misc/src/125707374218.png
Хром говорит что у сертификата не доверенный корневой центр сертификации.
No. 18388    
151492212621.png-(1.20MB, 1280×720, Inou Battle wa Nichijou-kei no Naka de.png)
18388
По адресу http://410chan.org/d/res/886.html я упоминал, что проблему >>18386 можно устранить при помощи ZeroSSL в течение пары-тройки-другой минут, не более.
No. 18391    
151494676371.png-(132.80KB, 458×428, 12345694.png)
18391
>>18136 — сделано.
>>18183 — добавлен <div> с классом unhidethread.
>>18075 — [Mod] сунут в <div>.
Аудио сунуто в <span> сто лет назад.

Для цветочка можно разве что предложить какую-нибудь другую функциональность, иначе никто на это время тратить не будет.
No. 18544    
151565672237.png-(146.28KB, 2530×872, 1.png)
18544
Я уже не первый раз совершенно случайно в мод-панель. Воспроизвести последовательность действий не могу, что-то случайно нажимаю не то на клавиатуре при написании сообщения.
No. 18546    
151566124775.png-(17.60KB, 604×348, ss (2018-01-11 at 12_00_38).png)
18546
>>18544
Alt+Shift+X. Думаю, так и задумано.
No. 18547    
Кстати, зачем отправка сообщения по Alt+Shift+Z? Постоянно задеваю, и сообщение раньше отправляется.
No. 18548    
>>18544
>>18546
А ещё по скрытой ссылке в подписи блока файла можно открыть.

>>18547
Не сталкивался, но лучше по Alt+Ctrl+Enter.
No. 18549    
>>18547
В скриптах ничего такого нет.
t. читал kusaba.js
No. 18551    
>>18549
А ты попробуй, у тебя не работает?
No. 18648    
Тут кто-то знает на вскидку, вносили в наш интерфейс уже фикс, который препятствует "просвечиванию" ссылки через спойлер, или нет?
No. 18652    
151595024159.jpg-(792.43KB, 1290×1224, 3537237.jpg)
18652
Разворачивалка картинок перемещена.

>>18094
Мы можем вернуться к этой идее, если вы сделаете эту штуку настраиваемой (можно включать и выключать).

>>18648
Это не требует исправления, потому что люди должны видеть, что под спойлером ссылка, чтобы случайно на неё не нажать. Особенно критично для устройств с пальцевым управлением.
No. 18654    
>>18652
Вот стиль для разворачивания картинок, учитывающий обсужденные выше грабли. Страница не прыгает при загрузке, картинки разворачиваются мгновенно. Заменить все селекторы .thumb в _img_global.css, как тот, что выше, так и для мобильной верстки.
https://pastebin.com/srBGf4iu
No. 18655    
>>18654
У нас разве наблюдаются эти проблемы?
No. 18656    
>>18655
Да, так как на превьюшках и width и height установлены в auto.
No. 18657    
>>18654
Да, и смартфоны >>/b/124522 тут тоже исправлены.
No. 18658    
>>18654
Meh. А с >>18517 щито не так?
No. 18659    
>>18658
Я другую не смотрел, но ваша с мобильной версией не очень дружит, кажется.
No. 18660    
>>18658
Действительно. Только селектор с тильдой автобусу не нужен, да и на ычане класс .imglink добавили.
https://pastebin.com/0sxzf4kQ
То же самое. Нужно убрать все .thumb и вставить это.
No. 18661    
>>18660
Убрал все лишнее https://pastebin.com/ixVmjuk0 работает так же.
No. 18662    
151598095191.jpg-(284.38KB, 1024×683, що.jpg)
18662
>>18652

> Разворачивалка картинок перемещена.

И это очень хорошо, потому что https://ru.wikipedia.org/wiki/Закон_Фиттса
No. 18671    
151604394775.jpg-(63.47KB, 500×812, 19880680.jpg)
18671
>>18660
>>18661
Я тоже приделаю класс .imglink к ссылке. Предлагайте ваши правки с учётом этого.
No. 18673    
>>18671
Здесь эта ссылка никаким селектором не используется. Разве что «span[id^="thumb"]» заменить на «.imglink span», но это шило на мыло.
No. 18674    
>>18671 >>18673
Можно же так:
.imglink {float: left; margin: 2px 20px;} .thumb[src*="/src/"] {max-width: 100%; max-height: unset;height: auto;} @media only screen and (max-width: 480px) {.imglink {margin: 2px 4px;}}

No. 18705    
Кстати, давайте обсудим проблему подобного поведения картинок: http://410chan.org/b/src/151630726169.png
То есть, когда изображение игнорирует нижнюю границу дива .thrdcntnr и выползает за неё. Это проявляется и с уменьшенными картинками (для чего там и костыль min-height:210px;).
На Ычане этому препятствуют <hr>, которых у нас нет.
No. 18706    
>>18705
.thrdcntnr::after {
content: ' ';
clear: both;
display: block;
}
No. 18707    
>>18706 >>18705
Ну или границу перенести снизу вверх у тредов (раскрытых и скрытых), по :last-of-type повесить нижнюю границу на последний, у формы убрать нижнюю границу, подкрутить отступы у превьюшок и тредов и повесить убирание обтекаемости на сами треды.
No. 18796    
151699032114.png-(28.54KB, 462×318, xkcd-moron.png)
18796
В интересах иллюстрирования реплик /a/ предлагаю обсудить (здесь, согласно высказанному в реплике >>18704 пожеланию), трудновато ли будет снабдить 410чанъ поддержкою WebM и MP4.

На мой взгляд, вовсе и не трудновато, то есть напиливать там остаётся всего ничего: в функцию «createThumbnail» в файле /inc/func/posts.php воткнуть наперёд ещё одно условное выражение, которое для видеофайлов будет создавать миниатюру способом, функционально аналогичным приведённой в архиве http://yakuji.moe/wakaba/diffs.zip в файле wakaba.diff строчке 189 — вот только не на Перле, разумеется, а на PHP.

Есть ли противоположные мысли?
No. 18797    
151701648013.jpg-(21.71KB, 350×351, 1149375613051.jpg)
18797
>>18796
Можно-то можно, но вот вдруг местное управление также не желает звук? Тогда всё становится нетривиальнее. "Без нормального ТЗ..."
No. 18805    
151707776028.jpg-(135.64KB, 1280×720, Uiharu_Kazari_full_502998.jpg)
18805
Разворачивалка картинок не работает в ИЕ/«Эдже».

>>18094 и >>18169 живы там ещё?

>>18797
Ну щта там, для картинок используется gd.
Нужно придумать, как решить настройки для звука и, возможно, длительности видосов, ибо админика позволяет просто виды разрешённых файлов добавлять, а настройки доски позволяют выбрать размер. Это нетривиальная десигнерская задача, не говоря о технической.
Сделаете, рассмотрим, хотя оно, конечно, нахѣръ никому не упало.
No. 18810    
>>18805
> Это нетривиальная десигнерская задача, не говоря о технической.
Это высасывание проблемы из пальца. Ограничение длительности видео достигается за счет ограничения размера файла, а без звука оно действительно нахѣръ никому не упало.
No. 18813    
15171375035.jpg-(713.43KB, 1680×1050, 8b36967c7f437900635ee6adbdcf388b.jpg)
18813
>>18810
Мне в движке нужно предусмотреть все типичные сценарии использования видео на имиджбордах. Флудите вашим особо ценным мнением по звуку где-нибудь в другом месте.
No. 18814    
>>18813
> Мне в движке нужно предусмотреть все типичные сценарии использования видео на имиджбордах.
Зачем, если не секрет?
No. 18815    
151714620779.gif-(2.23KB, 72×112, 1153229454411.gif)
18815
>>18805
И сразу два вопроса вам и один залу. Вам:
1. Я как-то не так читаю, или разрешённые файлы не в настройках доски, а в настройках всего сайта? Тогда почему в /dev/ список не тот, что в /b/?
2. gd это замечательно, но мне скорее всего (т.е. чтобы без костылей) потребуется ffmpeg. ПХП-либы не обязательно. Я не буду просить exiftool... наверное, и попробую обойтись вместо этого ffmpeg -i. Вы согласны рассматривать реализации с ffmpeg?

И вопрос залу: я ведь правильно помню, что в длительность файла можно записать всякий мусор, не совпадающий с фактической длиной? Если просто поделить размер файла на битрейт, то фактическую длину же получить можно?
No. 18819    
151714813392.jpg-(267.50KB, 1200×675, 1516515602976.jpg)
18819
>>18815
Можно ffmpeg.

В меню настроек есть страница для глобального добавления типов файлов, которые в принципе могут быть разрешены. Первые три там по умолчанию сразу есть (GIF, JPG, PNG), далее можно добавлять свои и задать им картинку-заглушку.
Потом вы идёте на страницу настроек конкретной доски и ставите галочки для нужных вам на доске форматов, которые вы задали на той странице типов файлов.
Я бы сказал, что зависимые от доски настройки для видосов нужно как-то совать именно на страницу настроек доски. В принципе, там всё равно показаны все подряд настройки, даже те, которые заведомо не применимы для конкретного типа доски; так что можно и пункты для видосов сделать, которые просто можно не заполнять, если видосы не разрешены.

Вы бы просто поставили «Кусабу» вместо лишних вопросов.

С заглушкой вместо картинки я хоть сейчас могу видосы разрешить, лол.
No. 18820    
>>18815
Погрешность. У тебя мусора больше может быть в метадате, которая при простом делении даст погрешность. Причём мусор может быть не только в предназначенных для него тегах, но и в самом видео. Шанс того, что кто-то нагадит в конкретные теги меньше, чем то, что кто-то будет использовать кривой софт и криво соберёт видео. Не стоит сильно упарываться тем, что кто-то как-то заабузит метаинформацию. Ффмпег позволяет чистить её даже из самого видео, но это очень затратно по ресурсам.
No. 18821    
>>18819
Ставить-то я буду, но скорее всего не сегодня. А удивление у меня сегодня, плюс про ффмпег вам всё равно отвечать. Уж не обессудьте.

>>18820
Если заказ такой, что надо чётко ограничить длину, то в моих обязанностях сделать всё, чтобы чётко ограничить длину.
>You may need to completely decode the input if you find the container or stream duration to be missing or inaccurate (possibly due to a damaged or truncated file).
С другой стороны, это уже не выглядит хорошей идеей. Но всё равно лучше написать, чем не написать, а потом спрятать в условие флага настроек или при обнаружении явно битых метаданных.
No. 18822    
>>18821
Могу пару битых мп4 для теста скинуть, которые уже кидал на Иичане.
No. 18823    
15171545851.png-(19.09KB, 448×448, 1168641467500.png)
18823
>>18822
Давай что ли, заодно может у себя что починю, если додумаюсь, как.
No. 18824    
>>18823
На свой страх и риск. Одно из них может повесить машину, если плеер не дропнет сразу.
https://files.catbox.moe/7o4xyh.mp4
https://files.catbox.moe/a96733.mp4
https://files.catbox.moe/j8n6qg.mp4
No. 18825    
>>18823>>18824
А, да: самые спецэффекты начинаются когда до конца таймлайна доходит само, так что таймлайн в плеере может ничего не значить, дождись конца или промотай к концу минуты и посмотри на поведение плеера.
No. 18831    
151717684317.png-(17.29KB, 451×493, 1152198388466.png)
18831
>>18825
У меня так:
1. На первый файл ругается ffprobe, ffmpeg отказывается открывать, в плеере, соответственно, не открывалось. Тем более, что на мою имплементацию Вакабы файл просто не постится, ссылаясь на неподдерживаемый формат файла.
2. В конце второго файла идёт открутка назад. ffprobe не выдаёт ничего, ffmpeg считает 6 минут видео. В плеере до достижения конца начинается отмотка в начало файла, затем снова вперёд.
3. В конце третьего файла ничего не идёт несколько секунд. ffprobe ничего не находит, ffmpeg выводит варнинги.
Второе видео обрабатывается ffmpeg несколько секунд. Я не уверен, что это допустимо для сервера. Но в таком случае, если не прогонять через ffmpeg, я без понятия, как отсеять 2 и 3, и надо ли.
No. 18832    
>>18831
>в плеере, соответственно, не открывалось
Мною, не плеером.
>В плеере до достижения конца начинается отмотка в начало файла, затем снова вперёд.
После нескольких итераций файл всё-таки закончился.
No. 18841    
151736211949.jpg-(25.60KB, 590×442, отключён JavaScript.jpg)
18841
Так как команда «ffmpeg -i», в реплике >>18815 рассматривавшаяся, выводит мне длительность «00:00:59.94» для каждого из этих трёх битых файлов, то этот способ для выяснения настоящей длительности не годится.

Более сложные методы выяснения, насколько я реплику >>18831 понял, выглядят как затратные по времени (хотя, по-видимому, и не так затратны, как попытка перегнать принятый файл в другой формат и затем считать длительность полученного таким способом нового видеофайла — эта попытка заняла бы не несколько секунд, а дольше).

Может быть, это повод склониться ко мнению >>18810 о том, что достаточно ограничения на объём файла в байтах, а длительность его в секундах пренебрежима?
No. 18842    
>битые файлы
Чем решение "никогда не прогонять файлы через программы на стороне сервера" (ну, можно взять первый кадр для превьюхи, ок) - не решение? Пусть у юзера голова болит.
>взломщикихакиры
Господа, пожалуйста. Супермаркет вроде как не предоставлял гарантий безопасности в своей политике. Сервер, просто хранящий и отдающий файлы - наиболее безопасное решение для сервера, к тому же.
No. 18846    
15174290687.jpg-(410.18KB, 750×592, LorieLipton.jpg)
18846
>>18805

> Разворачивалка картинок не работает в ИЕ/«Эдже».

Нынешняя разворачивалка или предложенная авторами переделки?
No. 18847    
>>18846
Нынешняя.
No. 18855    
151754912243.jpg-(353.08KB, 656×800, Innsmouth breed.jpg)
18855
>>18842

> Пусть у юзера голова болит.

Ответственность в данном случае не на него перекладывается (да он и не мог бы понести её), а на разработчиков браузеров.

Может ли браузер нормально показать битый файл в теге <video> или в отдельной вкладке? — вот каков должен быть главный вопрос.
No. 18856    
>>18855
Возможно, он (браузер) и может, но он точно не должен. Битый файл - все, кроме его аплоадера, должны умыть руки. Вот мое мнение.
No. 18857    
151757651028.png-(333.00KB, 600×450, Firefox manga-style.png)
18857
>>18856

Смотря что такое «умыть руки». Если видеозапись «может повесить машину», как автор реплики >>18824 пишет, то появление таких видеозаписей на некоторой имиджборде может сказаться вредненько на её атмосфере.

К счастью, лично у меня во браузере Mozilla Firefox на Windows 7 шестидесятичетырёхбитной ничего в этом роде не произошло даже отдалённо: файл https://files.catbox.moe/7o4xyh.mp4 он отказался воспроизводить как некорректный, а файлы https://files.catbox.moe/a96733.mp4 и https://files.catbox.moe/j8n6qg.mp4 не вызвали у браузера никаких трудностей при воспроизведении (разве что https://files.catbox.moe/j8n6qg.mp4 во браузере под конец не перематывался с огромной скоростью туда-сюда так, как в видеопроигрывателе).
No. 18862    
>>18857
>Если видеозапись «может повесить машину»
Если дело такое, то подобный браузер таки мусор и никто не должен его использовать для означенных целей (просмотр веб-видео). Максимум должна вкладка повисать.
Но в целом, если твой браузер повис при включенном JS, хоть это и редкий вариант, это не должно никого смущать - через JS можно запускать довольно мерзкие DDoS-атаки на клиента. Вернее, это уже не "DDoS", а "DDoC", или что-то в этом роде.
>Смотря что такое «умыть руки».
Это значит, максимум, что они могут сделать, например, это снести проблемное видео, поскольку оно все равно бесполезно. Это достаточно просто.
>атмосфере
Это Интернет, детка. Честно говоря, я не знаю, насколько безопасно открывать картинки даже. Когда-то через них можно было ломать винду, лол.
No. 18868    
151769668275.jpg-(428.14KB, 550×767, Brezhnev-is-dead.jpg)
18868
>>18847

function expandThisImg(linkEl){

   if( !linkEl ) return false;

   var imgEl = linkEl.querySelector('img');
   if( !imgEl ) return false;

   var fullSrc;
   var thumbSrc;
   var fullWidth;
   var fullHeight;
   var thumbWidth = linkEl.getAttribute('data-thumb-width');
   var thumbHeight = linkEl.getAttribute('data-thumb-height');
   var currWidth = imgEl.getAttribute('width');
   var currHeight = imgEl.getAttribute('height');

   if( currWidth == thumbWidth && currHeight == thumbHeight ){
      // thumb → full:
      fullSrc = linkEl.getAttribute('data-full-src');
      fullWidth = linkEl.getAttribute('data-full-width');
      fullHeight = linkEl.getAttribute('data-full-height');
      imgEl.setAttribute('width', fullWidth);
      imgEl.getAttribute('height', fullHeight);
      imgEl.src = fullSrc;
   } else {
      // full → thumb:
      thumbSrc = linkEl.getAttribute('data-thumb-src');
      imgEl.setAttribute('width', thumbWidth);
      imgEl.getAttribute('height', thumbHeight);
      imgEl.src = thumbSrc;
   }

   return false;
}


И вызывать вместо «onclick="expandimg('17371', '/dev/src/150682259759.jpg', '/dev/thumb/150682259759s.jpg', '960', '720', '200', '150');return false;"» просто «onclick="return expandThisImg(this);"».

И функция с именем «expandimg()» пусть остаётся для «Развернуть все изображения».
No. 18869    
151769706611.png-(246.08KB, 922×282, romaji.png)
18869
В свою очередь, на основе >>18868 можно переписать и «expandimg» следующим образом:

function expandimg(thumbID){

   var spanEl = document.getElementById("thumb" + thumbID);
   if( !spanEl ) return;
   expandThisImg(spanEl.parentNode);
}

No. 18870    
151769746079.jpg-(1.35MB, 1920×1200, shana.jpg)
18870
Переписывание >>18869 позволит вызывать и эту функцию с одним параметром вместо семи.
No. 18871    
151769953333.jpg-(6.66KB, 147×153, staredad.jpg)
18871
К моему неудовольствию, в код >>18868 вкралась двойная опечатка («.getAttribute('height'» вместо «.setAttribute('height'» в двух местах), поэтому я переписываю его в следующей форме, вообще «setAttribute» не использующей (чтобы отсутствие такой опечатки было очевидно):

function expandThis(linkEl){

   if( !linkEl ) return false;

   var imgEl = linkEl.querySelector('img');
   if( !imgEl ) return false;

   var fullSrc;
   var thumbSrc;
   var fullWidth;
   var fullHeight;
   var thumbWidth = linkEl.getAttribute('data-thumb-width');
   var thumbHeight = linkEl.getAttribute('data-thumb-height');
   var currWidth = imgEl.getAttribute('width');
   var currHeight = imgEl.getAttribute('height');

   if( currWidth == thumbWidth && currHeight == thumbHeight ){
      // thumb → full:
      fullSrc = linkEl.getAttribute('data-full-src');
      fullWidth = linkEl.getAttribute('data-full-width');
      fullHeight = linkEl.getAttribute('data-full-height');
      imgEl.width = fullWidth;
      imgEl.height = fullHeight;
      imgEl.src = fullSrc;
   } else {
      // full → thumb:
      thumbSrc = linkEl.getAttribute('data-thumb-src');
      imgEl.width = thumbWidth;
      imgEl.height = thumbHeight;
      imgEl.src = thumbSrc;
   }

   return false;
}


Соответственно, вызывать вместо «onclick="expandimg('17371', '/dev/src/150682259759.jpg', '/dev/thumb/150682259759s.jpg', '960', '720', '200', '150');return false;"» (или другого аналогичного кода) надо просто «onclick="return expandThis(this);"».
No. 18872    
151770060865.jpg-(92.65KB, 1024×576, motoko.jpg)
18872
Пристальное вглядывание в >>18871 приводит меня к мысли о том, что проверка на миниатюру может быть и ещё проще, что позволит не совершать ненужных обращений к методу «getAttribute» вообще никогда.

Вот новый код:

if( !String.prototype.includes ){

   String.prototype.includes = function(search, start){
      'use strict';
      if( typeof start !== 'number' ) start = 0;

      if( start + search.length > this.length ) return false;
      return this.indexOf(search, start) !== -1;
   };
}

function expandThis(linkEl){
   if( !linkEl ) return false;

   var imgEl = linkEl.querySelector('img');
   if( !imgEl ) return false;

   var fullSrc;
   var thumbSrc;
   var fullWidth;
   var fullHeight;
   var thumbWidth;
   var thumbHeight;

   if( imgEl.src.includes('/thumb/') ){
      // thumb → full:
      fullSrc = linkEl.getAttribute('data-full-src');
      fullWidth = linkEl.getAttribute('data-full-width');
      fullHeight = linkEl.getAttribute('data-full-height');
      imgEl.width = fullWidth;
      imgEl.height = fullHeight;
      imgEl.src = fullSrc;
   } else {
      // full → thumb:
      thumbSrc = linkEl.getAttribute('data-thumb-src');
      thumbWidth = linkEl.getAttribute('data-thumb-width');
      thumbHeight = linkEl.getAttribute('data-thumb-height');
      imgEl.width = thumbWidth;
      imgEl.height = thumbHeight;
      imgEl.src = thumbSrc;
   }

   return false;
}


Первые девять строк этого кода содержат полифилл https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill для метода «includes», потому что этот метод у строк появился только в 2015 году, а всѣ предшествующие браузеры этот костыль подопрёт.

Вызывать, как и в предшествующем случае, вместо «onclick="expandimg('17371', '/dev/src/150682259759.jpg', '/dev/thumb/150682259759s.jpg', '960', '720', '200', '150');return false;"» (или другого аналогичного кода) предлагается просто «onclick="return expandThis(this);"».
No. 18874    
>>18872
Чем вызвано использование «linkEl.getAttribute('data-full-src')» вместо «linkEl.dataset.fullSrc»?
No. 18876    
151773886187.jpg-(69.76KB, 621×413, Я хочу фырфырфыр.jpg)
18876
>>18874

Пристальное вглядывание в страницы https://caniuse.com/#search=dataset и затем https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset#Browser_compatibility убедило меня в том, что свойство «dataset» поддерживается во браузере Internet Explorer не ранее одиннадцатой версии.

Использование же «getAttribute» позволяет поддерживать более ранние версии его.
No. 18877    
151773961743.gif-(5.65KB, 320×200, bad-street-brawler-chestbump.gif)
18877
(В общем-то убеждение >>18876 аналогично убеждению >>17759 прошлого года, только там ещё и свойства хранились в «левых» атрибутах, стандарту «data-что-то» не соответствующих, потому что не было планов употребления jQuery; а тут есть.)
No. 18892    
151779658135.jpg-(92.62KB, 1024×576, hFU8rRkh.jpg)
18892
Я ещё раз спрашиваю: человек, который хотел переписать скрипты под «jQuery», ещё жив?
Мы готовы рассмотреть его реализацию в том случае, если она будет сразу сделана целиком.
Мне не улыбается по сто раз одни и те же скрипты ковырять, чтобы потом их выкинуть во имя ковыряния новых.
No. 18904    
151784806252.jpg-(99.67KB, 502×626, Venus de Milo.jpg)
18904
В реплике >>18892 слово «целиком» означает только «весь файл, по адресу http://410chan.org/lib/javascript/kusaba.js располагающийся», или там что-то более обширное?
No. 18917    
>>18904
Это означает, что он сделает и покажет свою реализацию целиком, а не частично.
No. 18966    
151798660472.svg-(365.72KB, suika.svg)
18966
Помимо уже выявленного бага с неработоспособностью скрипта разворачивания картинок в ИЕ/«Эдже» обнаружен более общий баг.
После перемещения ссылки с онкликом для разворчивания из верхней ссылки на превью, оно теперь делает эту ссылку не только для превью, но и для заглушек (чего быть не должно).
Для примера прикладываю СВГ. Но оно точно так же работает для архивов и прочей лабуды, пытаясь развернуть их как картинку. Должно же открывать в новом окне.

Это серьёзный повод откатить всё в исходное состояние.
No. 18971    
>>18966
В исходном состоянии нажатие на верхнюю ссылку приводило ровно к тому же результату.
No. 18973    
151799007966.jpg-(746.28KB, 1192×1500, 62407699_p0.jpg)
18973
>>18971
Это было не так критично с точки зрения пользовательского опыта. На эти ссылки вообще никто не нажимал, кажется.
В любом случае, опять надо как-то чинить эту дрянь.
No. 19002    
>>18892
Жив. И реализация есть для всего, кроме избранных тредов.
Но теперь ждите, раньше нужно было соглашаться, а сейчас времени нет.
No. 19023    
15182306448.7z-(1.24KB, expand_images_410.7z)
19023
>>18966

> Это серьёзный повод откатить всё в исходное состояние.

Нѣтъ.

Подход «всё или ничего» должен остаться в прошлом: если явствует легко устранимый недостаток, то надо устранить его, а не рубить сплеча всю систему.

>>18973

> В любом случае, опять надо как-то чинить эту дрянь.

Ввиду реплики >>19002 (и в предположении, что её сочинил именно первоначальный собеседник наш насчёт jQuery) предлагаю временное решение на основе >>18872 и >>18869, но с прибавлением аналогичной https://github.com/WagonOfDoubt/iichan-extensions/blob/3d8fd78dc0747a9fea744622f00283d01ffbbf46/src/expand-images/expand-images.main.js#L30 проверки.

Джаваскрипт прилагаю в архиве, а не то он слишком значителен по размеру для того, чтобы вставлять его. (Без малого три килобайта, около сотни строк кода.) Он содержит замену определения функции «expandimg» на новое, которое учитывает возможность появления не-картинок и притом должно работать в IE и в Edge невозбранно.

Первые девять строк содержат аналогичный коду https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill полифилл для метода «includes» у строк, потому что этот метод у строк появился только в 2015 году, а всѣ предшествующие браузеры этот костыль подопрёт.

Затем ещё полсотни строк содержат аналогичный коду https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes#Polyfill полифилл для метода «includes», но на сей раз для массивов, у которых этот метод появился только в 2016 году, а всѣ предшествующие браузеры опять же надобно подпереть костылём.

Вызывать на миниатюрах вместо «onclick="expandimg('17371', '/dev/src/150682259759.jpg', '/dev/thumb/150682259759s.jpg', '960', '720', '200', '150');return false;"» (или другого аналогичного кода) предлагается просто «onclick="return expandThis(this);"» (остальные параметры берутся из data-атрибутов). Функция «expandThis» спроектирована таким образом, что возвращает «false» для иллюстраций (которые раскрывает) и «true» в противоположном случае (чтобы не подавлять переход по гиперссылке).

Функция «expandimg» сохраняется для обслуживания гиперссылки «Развернуть все изображения», в коде у которой вызовов ея дохѣрищща.
No. 19024    
15182310429.jpg-(74.91KB, 419×480, Осторожно с вилами.jpg)
19024
Прежнее же определение функции «expandimg» должно быть из /lib/javascript/kusaba.js стёрто и заменено на приложенный к реплике >>19023 джаваскрипт.
No. 19025    
151823218231.7z-(1.27KB, expand_images_410.7z)
19025
Подумал немного и код >>19023 переменил.

Новая версия реализует полифилл https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes#Polyfill ещё ближе к версии Фонда Мозиллы.

В отличие от предшествующей версии, не будет работать в IE8.

Ну да и хѣръ съ нимъ.

Зато не нарушает работу цикла for...in появлением перечислимого свойства «includes» в прототипе у каждого массива.
No. 19026    
151823395052.jpg-(248.18KB, 750×562, sheeple.jpg)
19026
Для большей же ясности уточняю ещё, что упомянутое в реплике >>19023 изменение атрибута onclick на значение «return expandThis(this);» надлежит совершить в том месте, которое аналогично строчке номер 1086 в исходном коде https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/classes/board-post.class.php#L1086 у голой Кусабы.
No. 19039    
151831239882.png-(7.08KB, 448×448, 1179606131633.png)
19039
Потратив на это три вечера выходных, я с чистой совестью заявляю, что потрачу ещё столько же минимум только на установку, если мне где-нибудь не дадут kusaba_freshinstall.sql последней версии. Выдранный с гитхаба несовместим сам с собой и с остальной частью кусабы, в частности, отсутствием дефолтных значений некоторых полей. Или же присутствием этих полей. Я от этого до сих пор доску добавить не могу.

Ах да, других незадачливых исследователей глубин плохого кода предупреждаю, что нужен PHP5, ибо даже обновив бибилиотеки и сменив драйвер БД на mysqli, на PHP7 не работало вообще ничего.
No. 19057    
151838275787.png-(18.92KB, 429×217, Screenshot-2018-2-11 Разработка.png)
19057
>>19002
Ну, я ещё 25 декабря это писал.
Алсо, по избранным нитям есть мысль несколько переработать поведение этой фитюльки, привязав всё к кнопке (см. иллюстрацию).
Список появляется и сворачивается по нажатию на неё (а не болтается произвольно на странице, как сейчас).
На кнопке также появляются обновления в виде точки, если меню свёрнуто.
Осилите такое?

>>19026
Как я уже сказал, мы сначала ждём полной ревизии скриптов от упомянутого автора.

>>19039
Кто-то выше, вроде, ставил успешно. У нас-то вообще установочных скриптов как таковых нет, так что оттудова я оный файл позаимствовать не могу.
No. 19069    
1. Там в файле иконок осталась оригинальная картинка в формате png:
<image xmlns="http://www.w3.org/2000/svg"; y="835.57642" x="-239.10715" id="image4146" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACACAY...
Она скрыта, а вес файла увеличивает. Удали.
2. Установи везде в стилях fill: currentcolor, чтобы кнопки можно было красить внешним css (свойством color, они будут того же цвета, что и текст)
3. Остальные стили имеют старые кнопки.
No. 19075    
151839441096.jpg-(60.49KB, 422×600, 6598550.jpg)
19075
>>19069
>Иконки
В церкви. У нас значки.
>Установи везде в стилях fill: currentcolor, чтобы кнопки можно было красить внешним css (свойством color, они будут того же цвета, что и текст)
Я так понял, что вся эта покраска применима только для встраиваемого напрямую SVG, так что для нас она бессмысленна.
Значки других цветов будут потом.
No. 19076    
>>19057>>19039
Что же, тогда отбой. Забил всё дефолтами, доски создаются, посты постятся, даже сделал отображать юникод. До встречи на следующих выходных.
No. 19084    
>>19076

> даже сделал отображать юникод

На символах типа https://emojipedia.org/japanese-symbol-for-beginner/ проверял?

410чан не отображает его, например (знаком вопроса подменяет).
No. 19096    
>>19084
Проверил. Работает. А у Автобуса, может, БД надо пересобрать просто, как на Ычане делали.
No. 19168    
151888575816.png-(208.12KB, 1459×657, сотона.png)
19168
Это проверка исправленности Unicode в /dev/ 410чана, по адресу http://410chan.org/read.php?b=d&t=701&p=55 объявленной.

Если символ «🈺» нормально виден в кавычках, то работает.
No. 19197    
151900762729.png-(77.17KB, 249×323, Gokukoku-no-Brynhildr.png)
19197
>>19076

> До встречи на следующих выходных.

Какъ дѣлá?
No. 19198    
151900945373.png-(56.66KB, 448×448, 1188017503013.png)
19198
Ну, я думаю, готово будет на этой неделе, авось даже до выходных. Сейчас постится, но надобно сделать аккуратный обход того, что расширение файла != расширение превью во всех возможных местах.

Значится, что же до настроек в модерке. Наверное, логичней всего было бы добавить в Edit filetypes галочку "этот тип файла является видеотипом", впихнуть настройки длительности/звука в настройки доски, и в общий config.php значения по умолчанию. Но тогда надо делать ALTER TABLE filetypes ADD COLUMN video int(1) NOT NULL DEFAULT '0';. То есть, так-то можно и не лезть ручками в БД и делать всё в конфиге, но это явно не то, что просят, и например добавлять новые типы видеофайлов придётся через конфиг.

А, и да, я может и попытаюсь натянуть ычановский жс на то что получится, но скорее всего раскрытия на странице в том, что будет по первости выложено, можно не ждать.
No. 19204    
151906066434.7z-(1.74KB, expand_media_410.7z)
19204
>>19198

> А, и да, я может и попытаюсь натянуть ычановский жс на то что получится, но скорее всего раскрытия на странице в том, что будет по первости выложено, можно не ждать.

Предлагаю в получившийся серверный код добавить, помимо основы (сырой Кусабы), также предложенные в реплике >>18069 изменения https://pastebin.com/N4zjWwtA (то есть появление data-атрибутов у гиперссылок миниатюр), которые были приняты на 410чане (то есть всѣ эти data-атрибуты у миниатюр на 410чане сейчас есть). Или, если и не всѣ добавить, то хотя бы четыре атрибута размера («data-full-width», «data-full-height», «data-thumb-width», «data-thumb-height») и два атрибута адреса («data-full-src», «data-thumb-src»).

Так как по адресу https://github.com/WagonOfDoubt/iichan-extensions/blame/master/src/video-player/video-player.main.js сейчас видно, что автором основной части ычановского джаваскрипта видеопроигрывателей был я, то я могу невозбранно напилить ту же видеологику внутрь предлагавшегося в реплике >>19025 кода, исправляющего замеченные по адресу >>18847 и >>18966 проблемы и опирающегося на вышеозначенные data-атрибуты.

Готовый джаваскрипт прилагаю в архиве.

Во имя единообразия этот джаваскрипт обеспечивает одинаковое развёртывание (из миниатюры в проигрыватель) не только видеофайлов, но также и аудиофайлов, нынешнее же серверное генерирование звукопроигрывателей предлагаю отпилить. Если это почему-либо не удобно, то можно серверное генерирование звукопроигрывателей оставить, а в моём коде заменить «['mp3', 'flac', 'ogg']» на «[]» или закомментировать:

[ /* 'mp3', 'flac', 'ogg' */ ]


Первые девять строк моего джаваскрипта содержат аналогичный коду https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill полифилл для метода «includes» у строк, потому что этот метод у строк появился только в 2015 году, а всѣ предшествующие браузеры этот костыль подопрёт.

Затем ещё полсотни строк содержат аналогичный коду https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes#Polyfill полифилл опять же для метода «includes», но на сей раз для массивов, у которых этот метод появился только в 2016 году, а всѣ предшествующие браузеры опять же надобно подпереть костылём.

Вызывать на миниатюрах вместо «onclick="expandimg('17371', '/dev/src/150682259759.jpg', '/dev/thumb/150682259759s.jpg', '960', '720', '200', '150');return false;"» (или другого аналогичного кода) надо просто «onclick="return expandThis(this);"» (остальные параметры берутся из data-атрибутов). Функция «expandThis» спроектирована таким образом, что возвращает «false» для иллюстраций и видео и звуков (которые раскрывает) и «true» в противоположном случае (чтобы не подавлять переход по гиперссылке).

Упомянутое в предшествующем абзаце изменение значения атрибута onclick на значение «return expandThis(this);» надлежит совершить в том месте, которое аналогично строчке номер 1086 в исходном коде https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/classes/board-post.class.php#L1086 у сырой Кусабы.

Функция «expandimg» сохраняется для обслуживания гиперссылки «Развернуть все изображения», в коде у которой вызовов ея дохѣрищща. Прежнее же определение функции «expandimg» должно быть из файла /lib/javascript/kusaba.js стёрто и заменено на приложенный к моей реплике джаваскрипт.

Однако, так как теперь развёртываются не только изображения, гиперссылку «Развернуть все изображения» полезно переименовать в «Развернуть всё». Если это почему-либо не удобно, то можно название оставить, зато изменить генератор этой гиперссылки таким образом, чтобы он сочинял вызовы функции «expandimg» только для изображений (но подробности такого изменения я оставляю на усмотрение читателя).

Помимо приложенного джаваскрипта сделается безусловно необходимою и определённая CSS-обёртка для видеопроигрывателей (класс «videoplayer410»), звукопроигрывателей (класс «audioplayer410») и гиперссылок свёртывания (классы «hidevideo» и «hideaudio»). Для этой цели достаточен код https://github.com/WagonOfDoubt/iichan-extensions/blob/master/src/video-player/video-player.css с минимальными изменениями, сводящимися к подстановке перечисления 410чановских пар имён классов (каждая пара — через запятую) и ещё, может быть, других величин отступов («padding») и полей («margin») по вкусу.
No. 19212    
151908151687.jpg-(59.10KB, 480×334, Остерегайся удара зюзьгой.jpg)
19212
Чтобы реплика >>19204 не выглядела попыткою невежливо проигнорировать намерение >>19057 вообще не трогать скрипт /lib/javascript/kusaba.js до тех пор, пока не явится результат его переписывания на jQuery, я скажу несколько слов и о нём: когда и если такой результат явится, то и на него, вероятнее всего, не так уж и трудно будет развёртывание видеопроигрывателей навесить — но до тех пор поневоле приходится работать с тем, что имеем. Надо же с чего-то начинать. http://traditio.wiki/Ибу_ибуди_—_хуйдао_муди
No. 19290    
151934146024.jpg-(552.58KB, 1228×1724, 0IkonaChudoGeorgiyaOZmie.jpg)
19290
Строка №205 в коде https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/func/stringformatting.php#L205 у Кусабы создаёт (в том числе на 410чане) фразу «Сообщение слишком длинное» с такою гиперссылкою «Полный текст», которая ведёт к нити обсуждения, но не к конкретной реплике в ней, отчего у длинной нити показывается только начало, а до конкретной реплики приходится пролистывать самому читателю.

Есть ли какой-нибудь относительно простой способ на стороне сервера достигнуть более точного адреса автоматически (чтобы страница сама промоталася докуда надо), или этого уместнее достигнуть джаваскриптом на стороне читателя?
No. 19295    
151937920467.jpg-(586.85KB, 1248×1753, 1ccbfb7409f249fdfad97ad42485eca2.jpg)
19295
>высоту постов ограничить средствами css.
Эта конкретная идея, конечно же, полный идиотизм. Как и намеренная порча разметки.
Но починить данную функцию действительно надо. Чем желающие вполне могут заняться. Заодно можно добавить туда #якорь на сообщение как в «Вакабе», что решит проблему >>19290.
No. 19296    
>>19295
> Эта конкретная идея, конечно же, полный идиотизм
А, ну ок https://pastebin.com/xV6QCny5
> Чем желающие вполне могут заняться
Желаю удачи, лол.
No. 19297    
>>19296
Логичнее сделать JS-костыль для закрытия незакрытых тегов, пока кто-то не починит существующую функцию обрезания незакрытых тегов в stringformatting.php.
No. 19304    
151942832181.jpg-(87.07KB, 600×423, Occultic;Nine.jpg)
19304
>>19297

Очень сложно починить то, что не сломано.

Почти такъ же непросто починить существующую функцію обрѣзанія незакрытыхъ теговъ въ stringformatting.php до тѣхъ поръ, пока кто-нибудь не подскажетъ, что же обрѣзаетъ она не такъ, какъ слѣдуетъ.
No. 19305    
151943495227.jpg-(279.36KB, 690×850, Nourin.jpg)
19305
Зачем на трёхсотой строке в «img_global.css» правило «font-size: 10px»? Нифига ж не разглядеть при таком размере шрифта.
No. 19307    
151945498680.jpg-(324.22KB, 1337×880, 10.jpg)
19307
Соус, тебе надо запилить вот такую очень важную функцию, позволяющую один за другим открывать посты в цепочке дискуссий. Пикрелейтед.

Разумеется, для этого надо сначала запилить вставку ответов на пост в конец поста.

Ну и одна картинка на пост в 2к18 - это ниочень.

Остальное не нужно.
No. 19310    
151946464432.jpg-(201.85KB, 1134×755, 0BruniF_MednyyZmiyGRM.jpg)
19310
>>19307

> Остальное не нужно.

Это заблуждение.

Например, макаба создаёт всѣ эти всплывающие штуки посредством jQuery, так что для начала придётся последовать изложенному в реплике >>19002 предложению дожидаться.
No. 19316    
>>19310

Да, конечно, это проще сделать с помощью JS, чем хранить в БД все ответы на каждый пост и вставлять ссылки на этапе формирования страницы.
No. 19318    
15195041053.png-(1.56MB, 1280×720, Фонтан.png)
19318
>>19316

Так как «ссылки на этапе формирования страницы» ≠ «всѣ эти всплывающие штуки», то против хранения в БД всѣхъ отвѣтовъ и создания ссылок на ответы на стороне сервера я не высказывался.
No. 19322    
Файл
удалён
>>19307

Ещё несколько слов вот об этом:

> Остальное не нужно.

Этот тезис не бесспорен.

Во-первых, нельзя сравнивать.

Во-вторых, если всё же сравнивать, то тогда получится, что цепочки ответов — это очень хорошо и полезно, но всё же это не единственное нужное и даже не важнейшее: сейчас 410чан сильнее и необходнее нуждается в другом — в появлении поддержки WebM.

Насколько сильнее и необходнее?

Без цепочек ответов найти ответ труднее в несколько раз (надо сканировать всю тему в поисках упоминания номера родительской реплики), но это всё же возможно.

Без WebM обсуждение аниме может сопровождаться видеоцитатами в формате GIF, но даже десятимегабайтовый GIF вмещает всего лишь 5½ секунд в хорошем качестве в 720p (пример прилагаю), тогда как WebM даже четырёхмегабайтовый (как сейчас в подразделе /a/ на Ычане) вмещает на порядок больше (минуту и более), причём без WebM видеоцитата такой длины никак не возможна в GIF (оказалась бы примерно стомегабайтовою).
No. 19323    
Файл
удалён
Появление в реплике >>19309 знака вопроса перед расширением файла я считаю неприятным признаком того, что обрѣзаніе имени файла в движке сочинено таким способом, который не учитывает существование многобайтовых кодировок Unicode, а просто отсекает всѣ байты после указанного номера.
No. 19325    
Имею в распоряжении наши старые CSSки и JSки, ну и утилитарные картинки образца февраля и октября 2017го года, из сохраненных нитей. Они как-то могут помочь вам вернуть работоспособность архивных страниц? в принципе, можно даже научить вебсервер смотреть на реферер, и если запрос идёт из arch, то отдавать старые файлы, можно даже на основе номера нити
No. 19326    
>>19325
>Имею в распоряжении наши старые CSSки и JSки
Да они и в истории правок репозитория и так должны быть.
И наиболее сломанные страницы сломаны из-за HTTPS (в коде прописан HTTP), а не CSS/JS. От нового CSS только картинки съехали.
No. 19327    
>>19326
>И наиболее сломанные страницы сломаны из-за HTTPS (в коде прописан HTTP)
Это тоже поправимо c помощью mod_rewrite, можно сделать редирект для нужных урлей с http на https.
No. 19328    
>>19198
Загрузка работает, уменьшенные копии работают, удаление вроде работает, архивация должна работать. Настроек пока нет, так что и выкладывать нечего.
No. 19329    
Файл
удалён
Если файл превосходит установленный в /dev/ предел размера, то появляется сообщение «Убедитесь, что ваш файл весит меньше, чем 10240000B».

Призываю переменить это сообщение таким образом, чтобы вместо буквы «B» (о которой русскому человеку надо ещё наперёд некоторое время догадываться, латинская «бэ» это или «вэ» кириллицы, а не только какую единицу измерения означает она, не вольты ли) там стояло более однозначное русское слово «байтов» в косвенном падеже.

Ещё призываю отменить предел 10×1024×1000 как нелогичный в пользу 10×1024×1024 (и те же изменения по необходимости проделать в других подразделах 410чана), тем более что встроенный в движок измерения объёмов файлов (который пишет килобайты и мегабайты над миниатюрами) всегда оперирует двоичными (на 1024 основанными, а не на 1000) величинами.
No. 19330    
151965726527.jpg-(91.73KB, 1024×576, 5I0CpZlh.jpg)
19330
>>19329
В очередной раз злоупотребляющие хостингом любители изучать системные сообщения о лимитах файлов в дальнейшем обнаружат себя изучающими сообщения о бане.

>>19327
У нас пока нет официальной поддержки HTTPS. В любом случае, мы не будем ковырять архив пока не порешаем более актуальные проблемы.
Если ковыряться с костылями, то почему бы не накостылить скрипт на чём-либо, который локально сконвертирует старые HTML под более актуальную вёрстку, например?

>>19307
Отказ.
No. 19335    
Что значитъ ремесло!
У всѣхъ какъ постингъ постингъ —
А у меня во зло
Употреблённый хостингъ.
No. 19336    
Недавние эксперименты с публикацией GIF-анимаций приводят меня к убеждению в том, что Кусаба генерирует миниатюры GIF во много менее чем достаточно хорошем качестве.

Концептуально эта проблема покоится на нескольких основаниях, о которых я сейчас расскажу на примере гитхабовского кода Кусабы, для которого в настоящее время (и последние 2½ года) коммит 79479456141fe2ce937e94b5f5939d838071387b является последним, так что именно его я буду использовать при записи URLов.

Во-первых, по умолчанию в файле «config.php» в строке 139 настройка «$cf['KU_THUMBMETHOD']» имеет, как это по адресу https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/config.php#L139 можно видеть, значение «'gd'», то есть при генерации миниатюр движок полагается на библиотеку GD (встроенную в PHP), а не пытается вызвать https://www.imagemagick.org/ как внешнюю программу (которая, возможно, отъела бы больше оперативной памяти во время работы, но лучше справилася бы). Кроме того, вариантами «'gd'» и «'imagemagick'» эта настройка исчерпывается, то есть подключение других утилит (ну вот http://www.graphicsmagick.org/ хотя бы, которая обещает быть меньше по размерам и меньше жрать ресурсы сервера, чем ImageMagick) в движке Кусабы вообще не предусмотрено. (А какова настройка «$cf['KU_THUMBMETHOD']» на 410чане?)

Во-вторых, как именно библиотека GD используется? — об этом нетрудно осведомиться в файле https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/func/posts.php и видеть там в функции «fastImageCopyResampled» (на строке 133 и далее), что точность миниатюризации приносится в жертву скорости: сперва очень быстрым и самым грубым алгоритмом «ближайший сосед» иллюстрация переносится на холст, превосходящий миниатюру в считанное количество раз (по умолчанию — в три раза, «$quality = 3»), и только затем Кусаба делает на его основе миниатюру алгоритмом, функциею «imagecopyresampled» применяемым (а этот алгоритм, как в комментарии http://php.net/manual/en/function.imagecopyresampled.php#54448 отмечается, даже не назван по имени в документации, но результаты мутнее даже бикубического преобразования, так что это может быть и не оно, а что-то другое худшее). Нечего и надеяться на https://ru.wikipedia.org/wiki/Фильтр_Ланцоша или нечто другое в этом же духе. (А какова настройка «$quality» на 410чане?)

В-третьих, пристальное вглядывание в код https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/classes/upload.class.php в районе строки 135 и строки 150 позволяет нам убедиться в намерении Кусабы сохранять миниатюру GIF-файла также в виде GIF, а намерение это открывает прямо-таки ящик Пандоры со всевозможными несчастьями.

Для начала, ограниченность палитры (проявляющаяся как чрезмерная резкость цветовых переходов между отдельными оттенками и чрезмерная грубость контуров) гораздо явственнее у миниатюрных изображений ввиду того, что в них пикселов меньше, так что, может быть, следовало бы для GIF создавать полноцветные миниатюры в JPEG или в truecolor PNG.

Но даже если не делать этого, то и тогда остаётся вопрос о том, каким способом результат уменьшения первоначального изображения (уменьшения, производящегося в полном цветовом пространстве) затем переводится в ограниченную палитру. Производится ли https://en.wikipedia.org/wiki/Ordered_dithering или https://en.wikipedia.org/wiki/Error_diffusion (или хоть в какой-то форме https://en.wikipedia.org/wiki/Dithering вообще) для сглаживания недостатков цветности, или каждый пиксел тупо переводится в тот цвет палитры, который наиболее близок его цвету? Как подбирается палитра, https://en.wikipedia.org/wiki/Palette_(computing)#Adaptive_palette ли это или что-то другое?

В том случае, когда настройка «$cf['KU_THUMBMETHOD']» имеет значение «'gd'», исходный код https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/func/posts.php даёт на эти вопросы мрачный ответ: в его строке 112 применяется тупо «imagegif», а документация http://php.net/manual/en/function.imagegif.php ничего хорошего насчёт dithering не обещает.
No. 19337    
В том же коде в районе строки 53 (и дальше) можно увидать, что когда настройка «$cf['KU_THUMBMETHOD']» имеет значение «'imagemagick'», вызов внешнего конвертера имеет простенький вид «convert исходник.gif -resize ШИРИНАxВЫСОТА -quality 90 миниатюра.gif», и единственная поблажка для GIFов — повышение качества (quality) от значения 70 к значению 90 на строке 62.

Я готов откровенно сознаться, что смысл её от меня ускользает, так как по адресу https://www.imagemagick.org/script/command-line-options.php#quality формат GIF вообще-то не упоминается среди тех, на сохранение которых влияет эта настройка.

Хорошо ещё хоть, что http://www.imagemagick.org/script/command-line-options.php#dither обещает dithering (причём по умолчанию: сказано «automagically when saving to specific formats», и можно надеяться на наличие GIF среди таковых форматов, хотя я предпочёл бы вместо надежд опираться на конкретный исчерпывающий список форматов), но вовсе не упомянут тот алгоритм, который применяется по умолчанию (Riemersma ли это или всё же Floyd-Steinberg?).

Во как, етить-колотить.
No. 19338    
151978400599.7z-(1.08KB, MithgolGIF.7z)
19338
Естественно, обзор http://www.imagemagick.org/Usage/bugs/ordered-dither/ как бы говорит нам, что ситуацию есть куда улучшить.

Предлагаемый патч прилагаю.
No. 19339    
Сразу скажу ещё, что предложение >>19338 имеет смысл только в том случае, если на сервере у 410чана ImageMagick установлен, причём не старше, чем обзор http://www.imagemagick.org/Usage/bugs/ordered-dither/ (то есть не старше конца сентября 2006 г.).
No. 19340    
>>19336
>А какова настройка «$cf['KU_THUMBMETHOD']» на 410чане?
Читайте тред, блджад.
>Ну щта там, для картинок используется gd.
No. 19341    
15198561187.gif-(2.62MB, 1920×1080, Carnival Phantasm - within my calculations.gif)
19341
>>19340

Это более чем месячной давности упоминание ускользнуло из моей памяти, но вообще-то примерно это по качеству миниатюр GIF (явно демонстрирующих отсутствующий dithering) я и ожидал.
No. 19342    
151985787055.gif-(14.69KB, 199×112, thumbFloydSteinberg.gif)
19342
Теперь с примером миниатюры >>19341 сравните результат выполнения команды «magick convert "Carnival Phantasm - within my calculations.gif"[0] -resize 200x112 -quality 100 -dither Floyd-Steinberg thumbFloydSteinberg.gif».
No. 19343    
151985975650.7z-(909B, Floyd-Steinberg.7z)
19343
Результат >>19342 убеждает меня в том, что на небольших изображениях ImageMagick, действуя с параметром «-dither Floyd-Steinberg», получает гораздо более качественные результаты в GIF, нежели PHP-функция «imagegif» — и даже более качественные, чем тот же ImageMagick, но действующий с параметром «-ordered-dither o8x8» (по-видимому, способность ImageMagick подбирать нормальную человеческую палитру и одновременно предпринимать https://en.wikipedia.org/wiki/Ordered_dithering по алгоритму Байера настолько хуже, чем способности FFmpeg, что результат получается всё ещё много вырвиглазнее, нежели https://en.wikipedia.org/wiki/Error_diffusion по Флойду-Штейнбергу; но так вроде бы не должно быть, поэтому либо я нашёл баг, либо сильно недопонял что-то очень важное).

Кроме того, предпринятый мною эксперимент показал, что предложенный на строке 56 в исходном коде https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/func/posts.php#L56 у Кусабы способ вызова ImageMagick с параметром «-coalesce» вовсе не отключает анимацию у получающейся миниатюры (как на это, по всей видимости, надеялся автор этого кода Кусабы), а вместо того уместнее прибегнуть к рецепту https://stackoverflow.com/a/23468694 и указать «[0]» после имени исходного файла GIF для получения первого кадра его. Либо ImageMagick новейшей версии (7.0.7-24 Q16 x64 2018-02-25) как-то иначе реагирует на параметр «-coalesce» по сравнению с теми временами, когда сочинялася Кусаба, либо автор Кусабы с самого начала что-то понял не так.

Выводы из двух предыдущих абзацев я также прилагаю в форме патча, который предлагаю налагать после >>19338 дополнительно.
No. 19344    
151986026385.7z-(938B, combinedPatch.7z)
19344
Для простоты накладывания прилагаю также суммарный патч, >>19338 и >>19343 объединяющий собою.
No. 19430    
152124824471.gif-(27.24KB, 500×400, 1150262581200.gif)
19430
http://kusaba.yakuji.moe/kusabadiff
http://kusaba.yakuji.moe/webm/
Как-то так. Скрин админки если потребуется - по запросу. Дифф правился ручками, так что я бы опасался его пихать в автоматику даже на тестовой доске.

А теперь самое весёлое: в чистой кусабе с гитхаба, например, нет поддержки аудиофайлов. Как моя имплементация будет работать с Flower Bus... скорее всего не будет из коробки, и придётся их как-то совмещать. Также, просто накатить правки из >>19204 не вышло, поэтому никакого раскрытия видео нет. На доске пока настроено только webm из видеофайлов.
Требует ffmpeg (ffprobe в PATH). Требует изменений БД:
Эти для новых опций доски:
ALTER TABLE boards ADD 
maxvideolength
 int(5) NOT NULL DEFAULT '0';

ALTER TABLE boards ADD 
enablesoundinvideo
 tinyint(1) NOT NULL DEFAULT '0';

Это для того, чтобы разделять типы файлов в добавлении типов: картинки, видео, или другое. Добавлять по вкусу.
ALTER TABLE filetypes ADD 
mediatype
 varchar(10);


Алсо, переводов новых сообщений об ошибке и пунктов меню никот не добавлял.
No. 19431    
>>19430
Иии разметка съела всё что можно. В общем, название колонок в обратных кавычках. Я не знаю, насколько это обязательно, правда, я просто копировал freshinstall.
No. 19432    
152124947881.png-(645.15KB, 1008×707, 12345698.png)
19432
>>19430
В общем, я сейчас понятия не имею, когда мы сможем это ковырять/тестировать. Скорей всего, придётся долго ждать.
Захотите что-то там допилить, можете пока допиливать, только сообщайте об этом и сюда.
No. 19442    
Файл
удалён
>>19430

> просто накатить правки из >>19204 не вышло

В чём была основная трудность этого?
No. 19443    
>>19442
В том, что оно вообще не раскрывало даже картинки, пихало
onclick="expandimg(\'
и прочая плейнтекстом туда, где должны идти размер и имя файла, и я без понятия, куда пихать этот css.
No. 19446    
Здесь дорабатывают движок этой борды? Я щитаю, в интерфейсе недостает возможности встраивать видео в пост.
Думаете, куклоскрипта достаточно? Он может далеко не все. Например если дать ссылку на редтьюб, то не отобразит на странице. А вот на одной борде (типа возрожденный нульчан) я видел что интерфейс может парсить ссылки не только на ютуб, но на редтуб, хамстер и другие подобные сайты. Хорошо сделали, удобно - не надо идти туда где куча баннеров, сразу кликнул и смотри видео.
No. 19447    
>>19446
А если сделаете чтобы как на доброчане, можно было приложить к посту архив с файлами, вообще шикарно будет, а то пока файлы возможно передавать лишь в рарджпегах.
No. 19451    
152130348799.jpg-(34.21KB, 448×448, 1191904168555.jpg)
19451
>>19446>>19447
>Я щитаю, в интерфейсе недостает возможности встраивать видео в пост.
>можно было приложить к посту архив с файлами
Это и так есть в кусабе, так що вопросы не по адресу.
No. 19454    
152130640268.jpg-(254.13KB, 1264×1440, I hold my cookie in the milk until the bubbles sto.jpg)
19454
>>19443

Ну что же, тогда почему бы мне не попробовать самому заняться этим.

Предлагаю положить на GitHub ту репу, которая http://kusaba.yakuji.moe/webm/ обслуживает (то есть правки http://kusaba.yakuji.moe/kusabadiff содержит), после чего сообщить мне её адрес на Гитхабе.

В этом случае я постараюсь самостоятельно¹ сочинить такой pull request, который наложит на репу всѣ необходимые правки в коде PHP и CSS и JavaScript.

____________

¹ Слово «самостоятельно» в данном случае означает, что я надеюсь обойтись в этом деле своими силами, но всё же намерен опереться на ту помощь, которая в этом обсуждении ранее была оказана. Например, при сочинении PHP-кода я намерен руководствоваться предложенными в реплике >>18069 изменениями https://pastebin.com/N4zjWwtA
No. 19499    
Файл
удалён
Болѣе недѣли прошло.

Предложение >>19454 можно считать отклонённым.

Щикатаганай.
No. 19504    
152198574267.png-(2.83KB, 90×50, faptcha_rust.png)
19504
Предлагаю обновить фаптчу в /dev/
rust|раст
No. 19505    
152198601170.png-(4.14KB, 90×50, faptcha_rust_2.png)
19505
>>19504
No. 19506    
152198654013.png-(3.21KB, 90×50, faptcha_swift.png)
19506
swift|свифт
No. 19507    
152198655017.png-(2.21KB, 90×50, faptcha_swift_2.png)
19507
>>19506
No. 19508    
15219866111.png-(2.97KB, 90×50, faptcha_nodejs.png)
19508
node|nodejs|node.js|нодежс|ноджс|нод|нода
No. 19509    
152198675256.png-(2.10KB, 90×50, faptcha_erlang.png)
19509
erlang|эрланг|ерланг
No. 19510    
152198697782.png-(2.23KB, 90×50, faptcha_angular.png)
19510
angular|angular.js|angularjs|ангуляр|ангуляржс|ангулар|ангуларжс
No. 19511    
152198712234.png-(1.93KB, 90×50, faptcha_vue.png)
19511
vue|vuejs|vue.js|вью|вьюжс|вью.жс|вуе|вуежс
No. 19512    
>>19508>>19510
Вариант написания через “джс” добавь.
No. 19513    
>>19511
А тут ещё через “вюе”.
No. 19514    
152198734881.png-(4.24KB, 90×50, faptcha_react.png)
19514
react|react.js|reactjs|реакт|реакт.жс|реакт.джс|реактжс|реактджс
У меня пока все.
No. 19515    
152198759128.png-(2.47KB, 90×50, faptcha_mongodb.png)
19515
mongo|mongodb|монго|монгодб
No. 19516    
152198798770.png-(3.41KB, 90×50, faptcha_qt.png)
19516
qt|кут|кьют|кьюти|куте|кути
No. 19517    
152198811761.png-(7.33KB, 90×50, faptcha_newgame.png)
19517
キタ━━━(゚∀゚)━━━!!
No. 19580    
152299532128.jpg-(65.70KB, 400×477, 1149377865935.jpg)
19580
>>19432
Новая версия. При помощи инструкций из >>19204 и немного смекалки добавлено раскрытие webm в постах.

Выявлен баг текущей имплементации: при пересборке страниц из мод-панели, миниатюры не отображаются. Вообще нигде. Если это критично, то мне потребуется ещё некоторое время на фикс.

>>19454
Я не вижу причин вообще как-либо на меня полагаться в этом вопросе, или поднимать гитхаб для одной фичи. Темпы разработки таже намекают, что мне просто противно смотреть на этот код слишком часто.
No. 19581    
>>19580
Ах да, ссылка та же: http://kusaba.yakuji.moe/kusabadiff
No. 19582    
>>19580>>19581
Поправлено там же.
No. 19596    
Господа криворукие, вы сломали якорные ссылки на посты при нажатии на ссылку "Полный текст." у поста на доске.
No. 19597    
>>19596
Их здесь не было никогда.
No. 19599    
>>19580

> При помощи инструкций из >>19204 и немного смекалки добавлено раскрытие webm в постах.

Пристальное вглядывание в файл http://kusaba.yakuji.moe/kusabadiff в настоящее время открывает в нём ближе к концу вот такой фрагмент кода, которого в 7z-архиве >>19204 не было:

function expandimg(postId, fullSrc, thumbSrc, fullWidth, fullHeight, thumbWidth, thumbHeight) {

   var el = document.querySelector('#thumb' + postId + ' .thumb');
   if (el.getAttribute('src') === fullSrc) {
      el.setAttribute('src', thumbSrc);
      el.setAttribute('width', thumbWidth);
      el.setAttribute('height', thumbHeight);
   } else {
      el.setAttribute('src', fullSrc);
      el.setAttribute('width', fullWidth);
      el.setAttribute('height', fullHeight);
   }
}


Предлагаю уничтожить его физически.

Его наличие в настоящее время вообще ничему не мешает, так как код из 7z-архива >>19204 всё равно переопределяет функцию «expandimg» (на той строке, которая в настоящее время в файле http://kusaba.yakuji.moe/kusabadiff является тысяча пятьсот шестьдесят шестой) именно так, как задумано мною. Но в дальнейшем эти двенадцать строк кода могут кого-нибудь сбить с толку и побудить к сомнениям и тягостным раздумьям об их подлинном смысле, их долге и их предназначении. А это лишнее.
No. 19605    
>>19599>>19580
В самом деле. Поправлено там же.
No. 19610    
>>19605

Очень хорошо.

Руководствуясь соображениями, по адресу https://github.com/WagonOfDoubt/iichan-extensions/pull/11 изложенными, предлагаю отпилить строку «player.muted = true;».
No. 19611    
>>19610>>19580
Принято. Поправки внесены в надежде на то, что требования в ближайшее время не изменятся, и что откат изменений к предыдущей версии очевиден, если использовать >>19204.
No. 19706    
Ещё заметка: я не уверен, как будут вести себя webm на странице "Недавние изображения" в админке, если они вообще там будут. По крайней мере я только что запостил файл и его там не увидел. Как с этим будет обращаться Автобус, мне неизвестно.
Стоит ли делать патч для обычной кусабы, чтобы webm на той странице появлялись, и если да, то как устроить их отображение?
No. 19707    
>>19706
>то как устроить их отображение?
Также как и GIF, очевидно.
No. 19709    
>>19707
Показывать, превьюшкой, по ссылке вести в тред, а там пусть в треде раскрывают/проверяют?
No. 19750    
В движке 410чана есть баг в обработке URLов, содержащих русские буквы.

Этот баг приводит к тому, что в реплике >>19332 та гиперссылка, которая на Википедию, разрушена на месте последней буквы (буквы «л» в слове «файл»).
No. 19772    
>>19709

Так как за полторы недели никто не откликнулся, то предлагаю по умолчанию считать, что отвѣтъ — «да».
No. 20110    
152952139112.png-(436.77KB, 1043×641, 12345689.png)
20110
К сожалению, так до сих пор и не было возможности тестировать поддержку видео. Уж простите за тягомотину.

Кстати о тягомотине, я так понимаю, человек, грозившийся переписать местные скрипты под «jQuery», в итоге помер. Очень жаль.
No. 20111    
>>20110
Человек ждал запиливания видео, так как скрипт его раскрытия является неотъемлемой частью всего остального.
No. 20113    
>>20110
Так как заключения о смерти уже начали выдавать даже не потыкав палочкой, выкладываю версию скрипта такой, какой она была на момент написания >>18169 без каких-либо изменений, перед тем как получил ясный, категоричный отказ.
https://pastebin.com/X9HChJp5
Работает все, кроме Watched Threads. Улучшен показ >>превью по наведению, исправлены все связанные с этим баги. При выделении поста классом .highlight теперь нельзя выбрать несколько постов и класс .reply не удаляется (от этого было много проблем со скриптами и стилями). Куки используются только для хранения пароля удаления (были сомнения, что он нужен серверной стороне, но в принципе нет), остальные данные хранятся в local storage.
Счетчик новых постов на досках тут тоже есть, необходимо добавить в бекэнд php-скрипт, указанный в соответствующем посте.
В целом, этот скрипт можно даже в таком виде использовать уже сейчас. Избранные нити на данный момент в любом случае не работают, а выпиливание protoaculous уже намного упростит людям жизнь.
Для полноценной реализации избранного нужно так же допиливать серверные скрипты. Поддержки видео, разумеется, нет.
Кроме того, патч, о котором говорилось в >>18169 так и не был применен. Без него не будет работать навигация клавишами по страницам. Но так как о ней никто даже и не знал, то это ничего, что паста протухла.
С полностью рабочим решением проблемы незакрытых тегов при обрезании постов https://pastebin.com/xV6QCny5 я был так же ласково послан нахер.
Резюмируя, не вижу смысла вставать из саркофага, покуда даже уже сделанные вещи не запиливаются, и остаются висеть месяцами в ожидании, а то и оказываются полностью проигнорированными.
Кстати, фаптчу тоже можно было бы обновить.
No. 20114    
152958511490.png-(442.59KB, 1145×644, 12345688.png)
20114
>>20111
Пока все (в том числе и я) ждут видосы, я мог бы уже сто раз скрипты заменить и протестировать.

>>20113
Во-первых, я принимаю исправления только в рамках ТЗ — сделать примерно как было, но на новой базе. Поэтому всякие блестящие идеи разряда «починить баги разметки с помощью скриптов» даже не рассматривались. (Я бы ещё как-то понял простой временнй костыль, который проверяет неправильно закрытые теги.)
Во-вторых, мне нужны конкретные диффы. Какой файл заменяется на что. Какой-то непонятный код мне ничего не говорит.

То есть, если вы переписываете kusaba.js на «jQuery», то вы сначала предоставляете эти kusaba.js и «jQuery» (его же можно собрать без всего ненужного?). Мы это тестируем.
Если всё нормально, то мы это выкатываем на основной. Это будет базовой реализацией.
И только потом мы смотрим, какие новые функции можно добавить или переделать (как та же навигация).
А вы пока просто суёте кучу каких-то непонятных скриптов, которые относятся неизвестно к чему.
No. 20115    
>>20114
Очевидно, весь js идет в kusaba.js, и в >>20113 https://pastebin.com/X9HChJp5 был выложен не дифф, а kusaba.js целиком.
Очевидно, jQuery скачивается с сайта jQuery https://code.jquery.com/jquery-3.3.1.min.js уже собранная и минифицированная.
В работе https://pastebin.com/xV6QCny5 достаточно убедиться, просто скопировав код в консоль браузера, предварительно отключив в настройках кусабы обрезание постов и зайдя на страницу, где эти большие посты есть. Длинные посты будут сокращаться визуально точно так же, раскрыть их можно по клику на точно такой же ссылке, но в отличие от текущей реализации, для раскрытия такого поста не требуется заход в тред и перезагрузка страницы, ровно как и ajax-запросы, как приходится решать эту проблему кукле.
Вот kusaba.js, где этот же код влеплен куда надо: https://pastebin.com/zQVm4iCr
> Я бы ещё как-то понял простой временнй костыль, который проверяет неправильно закрытые теги.
А вот это и называется полный идиотизм. Суть решения должна быть не в спешном навешивании костылей, а во взвешенном ответе на вопросы "а нужен ли гениальный код, который обрезает голый HTML по количеству символов, дабы сэкономить пользователю несколько байт траффика, обрезав две последних буквы от предложения, и заставив тем самым пользователя полностью загружать тред, чтобы эти две буквы увидеть" и "а можно ли сделать так, чтоб и незакрытых тегов не было, и в тред не нужно было заходить, и длинные посты при этом сворачивались, не растягивая прокрутку".
> Во-первых, я принимаю исправления только в рамках ТЗ
В ТЗ есть указания по воспроизведению всех существующих багов?
> Пока все (в том числе и я) ждут видосы, я мог бы уже сто раз скрипты заменить и протестировать.
Непонятно, почему чтобы протестировать одну лабуду нужно ждать 6 месяцев, а другую можно сделать хоть сейчас. Если что, полноценная реализация избранного так же требует изменения бекенда, как и видосы.
No. 20116    
152960886428.jpg-(117.62KB, 289×350, 8741992.jpg)
20116
>>20115
>Непонятно, почему чтобы протестировать одну лабуду нужно ждать 6 месяцев, а другую можно сделать хоть сейчас
Потому что два тривиальных файла отредактировать могу я, а для правки кучи файлов с параллельной проверкой предложенного кода на совместимость между 1.0.4 и 1.2.518 мне нужно ждать другого человека.
Я глянул https://pastebin.com/X9HChJp5. Щта я там вижу? Недопиленные функции. Вы не допилили «Избранные нити»? И хулѣ? О чём тогда разговаривать? Зато есть новые функции, которые противоречат ТЗ. Я не собираюсь тестировать новые функции, пока не протестированы базовые.
Далее, там какие-то надписи на русском, причём с какими-то дурацкими мемчиками. Вы либо дёргаете локализованные надписи из интерфейса, там где это возможно, либо оставляете на английском (базовый язык движка).
> Суть решения должна быть не в спешном навешивании костылей
Суть решения должна быть в починке парсера, с которым хронические проблемы в целом и без этого. Но хѣръ же мне кто-то напишет нечто нужное, вместо каких-то свистоперделок. Временный костыль более чем подходит в условиях, когда мне надо ждать по полгода нашего техника. А хулѣ, других-то у нас нет. Где вы были в 2009 году?
No. 20117    
152960992345.jpg-(134.58KB, 807×861, 12834456970393.jpg)
20117
>>20116
Если вам нахер ничего не нужно, что ж тогда сетовать, что никто не помогает. Ищите помощников в своем 2009.
No. 20118    
15296112834.jpg-(94.52KB, 1440×810, 1269108754666.jpg)
20118
>>20117
Я прошу то, что мне нужно, и не прошу то, что мне не нужно. Это самоочевидно.
Вас просили воспроизвести старую функциональность на новых технологиях. Вы этого не выполнили, но зато насовали в скрипт левые функции. Теперь вот обидки кидаете.

Почему в итоге «Избранные нити» не допилены-то? Что мешает?
Нахѣра там работа с stats.php, которого в движке просто нет?
Я не знаю ӁС и не смогу это за вами исправлять, поэтому и прошу изначально помощи в этом треде, лол.
No. 20119    
152961936233.7z-(1.08KB, expand_media_410_jQuery.7z)
20119
Чтобы идея ожидания >>20111 больше никого не посещала, прилагаю вариант моего скрипта >>19204, переписанного для употребления jQuery.

Примечания, изложенные в реплике >>19204, продолжают быть действительными всѣ до единого, кроме одного: новый код не содержит полсотни строк полифилла, реализующего метод «includes» для массивов, так как вместо того использует метод http://api.jquery.com/jQuery.inArray/ из jQuery.
No. 20120    
152961989715.png-(2.71MB, 1920×1080, Angel Beats!.png)
20120
На всякий случай отдѣльно сообщаю, что в скрипте >>20119 идея >>19610 также реализована.
No. 20121    
152962751540.png-(24.82KB, 448×448, 1218423628914.png)
20121
>>19772
...до меня только сейчас дошло, что это ответ на мой вопрос, а не на >>19750. Поправлено в том же kusabadiff, в частности затронут файл manage.class.php

>>20110
Ну, если нет человека, то ничего не попишешь. В случае, если человек резко захочет меня придушить, а у него всего один свободный день, то мои контакты ещё должны у вас остаться.

Алсо, я немного пропустил: а в чём конкретно проблема парсера постов? Помимо >>19750.
Потому что я смотрю в код своей кусабы и вижу... интересное, конечно, решение закрывания тегов, но вижу, по крайней мере. Так-то можно просто портировать вакабовский аналог... наверное.
No. 20122    
152964027823.jpg-(81.79KB, 1024×576, rYnHcevh.jpg)
20122
>>20120
Глушение было предусмотрено специально на случай поддержки видео со звуком, поэтому оная идея идёт нахѣръ.

>>20121
Оно плохо обрезает теги, поместившиеся (по общему количеству символов до линии отреза) не полностью. Особенно «длинные» теги навроде <a>.
Нужно, наверное, просто приделать проверку, чтобы оно их распознавало и выкидывало.
No. 20123    
152965169186.png-(2.16MB, 1920×1080, Angel Beats!.png)
20123
>>20122

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

>>20114

> его же можно собрать без всего ненужного?

Никоим образом нельзя.

Путём определённых усилий можно собрать без некоторого ненужного, но по адресу >>18241 я вроде как объяснял ужé, почему это будет пагубно. К тогдашнему объяснению прибавлю ещё, что в ситуации >>18198 нельзя будет просто скачать новый готовый файл, а придётся собирать возиться.

>>20116

> Далее, там какие-то надписи на русском, причём с какими-то дурацкими мемчиками.

Присоединяюсь к этой оценке текста «Не объясняй (как в ведро)» в строке 473 в файле https://pastebin.com/X9HChJp5
No. 20124    
152967044683.7z-(2.12KB, expand_media_410_jQuery.7z)
20124
Мнѣ не влом выложить такой вариант скрипта >>20119, в котором идея >>19610 не получила реализации, и вот он.

Однако посмотрел я на Ычане на то, как выглядят такие видеопроигрыватели, в которых звук разрешён, но в которых он не включается с самого начала — и увиденное не понравилось мнѣ.

Хѣрня жъ!

Во-первых, дважды тыкать — это просто-напросто вдвое труднее, чем ткнуть один раз. Казалось бы, всего ничего — «лишний раз ткнуть»; но ужé на слѣдующемъ шагѣ приходишь к варианту «четыре раза ткнуть вместо двух», а со временем и к «двести раз ткнуть вместо сотни» — получается, что сотню раз лишний раз ткнул, и нахѣръ же? Какому идолищу такие жертвы?

Во-вторых, реакция у людей — человѣческая: как ни торопись, а всякий раз включить звук успѣваешь не так быстро, как видео начинает воспроизводиться, и первые секунды идут без звука, и огорчительно это, и огорчаешься, а затѣмъ иногда и трудишься, отматывая видео к началу (чтобы от начала смотрѣть со звуком), и нахѣръ же? Какому идолищу такие жертвы?

Нѣтъ, правда, что это за идолъ?

Если это боязнь скримеров, то мѣра против них никак не достаточна: никто ж не помѣшаетъ не сразу заорать, а посередь видеозаписи, когда успокоился зритель на этот счёт, то есть когда им был включён уж звук. Этакие пакости должны пресекаться модераторами (не всѣ жъ они слабослышащие), а не движком.

Если это боязнь NSFW-звуков, то нехорошо на имиджборде за счёт всѣхъ посетителей рѣшать проблему тѣхъ нѣкоторыхъ, которые на работѣ не работу работают, а имиджбордовское видео смотрят. (Или не на работѣ, а в общественном мѣстѣ; всё равно таких не подавляющее большинство и вообще не большинство.) Пусть сами они решают свои проблемы одним из многочисленных способов: можно надѣть наушники, можно отключить звук на уровне операционной системы (такие выключатели часто имеются на клавиатурѣ, а в мобильных устройствах — на корпусѣ), etc. А если даже и задаться цѣлью решить проблему этих нѣкоторыхъ, то тогда не за всѣобщій же счётъ! — вмѣсто того нужно будет снабдить сайт индивидуальною настройкою беззвучности (как сейчас устроен выбор темы оформления: Umnochan, Burichan, Futaba, Photon, Kusaba, Bluemoon), но не болѣе.
No. 20125    
152969241578.png-(3.01KB, 384×384, 1149377751916.png)
20125
Небольшие изыскания о сокращалке постов.
Кусаба, похоже, режет пост дважды. Первый раз - ещё до обработки. Если есть слово, которое превышает в длине KU_LINELENGTH, то <br /> вставляется в строку автоматически. И это сломает слишком длинную ссылку. Но любителям таких ссылок так и надо, ИМХО.
Второй раз - при генерации страниц в индексе. Это inc/func/stringformatting.php, функция formatLongMessage (и заодно closeOpenTags). Там обрезается пост если он длиннее 15*KU_LINELENGTH (де-факто, эта переменная умножается на 15 ещё в конфиге, а потом делится на 15 при первом обрезании), а потом (по идее), закрываются теги.
Проблема в том, что теги ищутся в уже обрезанном (и форматированном!) сообщении, а значит может быть обрезан тег открывающий или закрывающий, и привет.

Предлагаемое решение: искать в отрезанной части первое вхождение '<' и '>'. Если второе раньше первого, или первое не найдено вообще, при найденном втором, то мы делаем вывод, что мы в теге, дописываем всё по '>' включительно к сокращённому посту, а дальше закрывалка сама отработаает.

Новый код, потому что лень писать дифф:

function formatLongMessage($message, $board, $threadid, $page) {
        $output = '';
        if ((strlen($message) > KU_LINELENGTH || count(explode('<br>', $message)) > 15) && $page) {
                $message_exploded = explode('<br>', $message);
                $message_shortened = '';
                for ($i = 0; $i <= 14; $i++) {
                        if (isset($message_exploded[$i])) {
                                $message_shortened .= $message_exploded[$i] . '<br>';
                        }
                }
                if (strlen($message_shortened) > KU_LINELENGTH) {
                        $message_rest = substr($message_shortened, KU_LINELENGTH);
                        $message_shortened = substr($message_shortened, 0, KU_LINELENGTH);
                        $open_pos = strpos($message_rest, '<');
                        $close_pos = strpos($message_rest, '>');
                        if($open_pos === FALSE and $close_pos or $close_pos < $open_pos){
                                $message_shortened .= substr($message_rest, 0, $close_pos + 1);
                        }
                }
                $message_shortened = closeOpenTags($message_shortened);

                $output = $message_shortened . '<div class="abbrev">' . "\n" .
                '       ' . sprintf(_gettext('Message too long. Click %shere%s to view the full text.'), '<a href="' . KU_BOARDSFOLDER . $board . '/res/' . $threadid . '.html">', '</a>') . "\n" .
                '</div>' . "\n";
        } else {
                $output .= $message . "\n";
        }

        return $output;
}

Проверено на моём сервере.

Доводы, критика, предложения?
No. 20131    
152977999981.jpg-(103.98KB, 450×614, 12021686f9f00c4c0bc0ac7b4245522ec74d5238.jpg)
20131
>>20125
Спасибо, вроде работает.

>>20124
Приличные люди звук без предупреждения на сайтах не врубают. Покуда нет способа заранее проинформировать людей о звуке в файле, звук должен быть заглушен.
No. 20132    
152978703572.gif-(8.24KB, 300×300, 1157983316612.gif)
20132
>>20131
Прошу прощения, в моей имплементации (и в оригинале у Кусабы) не учитывается, что у PHP для работы с юникодом отдельный набор функций. Поэтому сейчас в индексе можно встретить посты с вопросами вместо текста самым последним символом.

Два варианта исправлений:
1. Поправить так, чтобы работал utf-8. Но этот патч не будет работать на тех серверах/PHP, где нет функций для работы с многобитными кодировками. Это не случай автобуса (потому что иначе ничего бы я не сломал), но предупредить я обязан. https://pastebin.com/VaFs1VPr . Здесь мы заменяем strlen на mb_strlen, substr на mb_substr, strpos на mb_strpos.
2. Максимально параноидально переписать функцию. Должно работать у всех и везде. https://pastebin.com/fmUHxPQL . В условии $usemb код из п.1, в else - код из >>20125. Дополнительное отличие: в $usemb-ветке explode заменено на mb_split (если какая кодировка переопределяет латиницу и <>).

Оба варианта проверены на моём сервере.
No. 20133    
Ах да, >>19750 я воспроизвести не могу.
No. 20135    
>>20132
Накатили.
>>19750 также исправлен.
No. 20137    
152987134511.jpg-(69.20KB, 430×364, Vafli Yulechka.jpg)
20137
Сие приведёт к тому, что предельное количество русских букв придёт к тому же, которое въ движкѣ назначено для англійскихъ, но сравнительно с прежним казаться будет удвоившимся. Очень хорошо!
No. 20138    
15298757229.jpg-(57.13KB, 500×880, CSI_meme_1.jpg)
20138
>>20131

> Покуда нет способа заранее проинформировать людей о звуке в файле, звук должен быть заглушен.

Что же мешает вместо этого дополнить техническое задание на скрипт поддержки видеофайлов словами «должен выдавать строку размера наподобие "1280×720 со звуком" вместо обычной "1280×720" в случае обнаружения звуковой дорожки в видеофайле»?
No. 20139    
>>20137
У меня есть все основания подозревать, что оно до >>20125 так и работало, например.
No. 20140    
152992718451.png-(498.62KB, 575×453, возможно анонимные наркома.png)
20140
>>20139

Какие же это основания?
No. 20141    
То, что после >>20132 появились сокращённые посты там, где их до этого не было.
No. 20152    
15303761417.jpg-(48.53KB, 500×500, 1258163403665.jpg)
20152
>>20115
Ну так щта, вы мне можете внятно ответить насчёт переписывания скриптов под «jQuery»?
  • Почему «Избранные нити» значатся как «unfinished»? Что там не допилено?
  • Можно ли в «Избранных нитях» брать локализованные надписи из интерфейса, как это делает текущая реализация?
  • Можно ли сделать «Избранные нити» в таком виде: http://410chan.org/dev/src/151838275787.png
  • Нельзя ли убрать те функции, которых в движке пока нет? (Мы это будем тестировать отдельно, если время придёт, пока лишний код не нужен).
  • И главное: я действительно вас смертельно обидел, что вы больше не будете помогать, или всё же допилите/прокомментируете вышеозначенное?
Я предпочёл бы тестировать видосы после того, как переделаны и развёрнуты новые скрипты. Но при этом я хотел бы видеть для тестирования более-менее стабильную и полноценную реализацию, а не такую, которая недопилена.
No. 20155    
153065799891.jpg-(2.66MB, 1240×1754, Our Lady of Perpetual Help (danbooru 2992019).jpg)
20155
Так как въ отвѣтъ на вопросы >>20152 пока что слышно только молчание болѣе чѣмъ три дня кряду, то предлагаю нѣкоторое время поразмыслить надъ тѣмъ, что будет, если отвѣтъ на послѣдній вопросъ придётся с течением времени признать по умолчанию утвердительным («больше никакой помощи и никаких комментариев»), какими тогда угадываются отвѣты на предшествующие вопросы.

1) Почему «Избранные нити» значатся как «unfinished»? Что там не допилено? — Вторая часть этого вопроса сама отвѣчаетъ на первую (значатся оттого, что не допилено); не допилено же, по-видимому, всё. Сдѣлать этотъ выводъ можно, во-первых, потому, что расположенный по адресу https://pastebin.com/X9HChJp5 файлъ былъ въ репликѣ >>20113 представленъ со словами «работает всё, кроме Watched Threads», а во-вторых, потому ещё, что въ самóмъ файлѣ на строке 243 пусто тѣло функціи «removefromwatchedthreads», на строке 247 пусто тѣло функціи «hidewatchedthreads», на строке 250 пусто тѣло функціи «showwatchedthreads» — слѣдовательно, онѣ бездѣйствуютъ.

2) Можно ли в «Избранных нитях» брать локализованные надписи из интерфейса, как это делает текущая реализация? — Автор реплики >>20113 находился, по всей видимости, подъ вліяніемъ убѣждённости въ томъ, что текущая реализация бездѣйствуетъ (по крайней мѣрѣ, джаваскриптовая часть ея), и оттого предлагалъ замѣстить файлъ http://410chan.org/lib/javascript/kusaba.js jQuery-версией https://pastebin.com/X9HChJp5 без какой-либо реализации «Избранных нитей» (чтобы не откладывать замѣщеніе надолго), на что ясно указывают его слова «избранные нити на данный момент в любом случае не работают, а выпиливание protoaculous уже намного упростит людям жизнь». Лично мнѣ поневоле приходится склониться къ его мнѣнію, имѣя на то двѣ причины: во-первых, въ файлѣ http://410chan.org/lib/javascript/kusaba.js не вижу ни одной такой строки, в которой текущая реализация берёт локализованные надписи для «Избранных нитей» из интерфейса (если же я пропустил эти строчки, то прошу без промедления указать мнѣ на нихъ); во-вторых, для проверки я решил жмякнуть мышóю по звѣздѣ в правом верхнем углу — и дѣйствительно вмѣсто джаваскриптовъ сработалъ переходъ по гиперссылкѣ на сёрверъ (даже и съ замѣщеніемъ страницы, такъ что я утратилъ весь текстъ нынѣшней своей реплики и сейчасъ перенабираю её заново, что крайне досадно и даже гнѣвитъ).

3) Можно ли сделать «Избранные нити» в таком виде: http://410chan.org/dev/src/151838275787.png — Можно, но не в рамках задачи «создать jQuery-версию нынешнего скрипта» (потому что, по всей видимости, в нынешнем скрипте ничего подобного нѣтъ — если же я ошибаюсь, то прошу без промедления указать мнѣ на то, какъ достичь указаннаго вида). Соотвѣтственно, во-первых, выполненіе этой новой задачи не должно задерживать запуск jQuery-версии нынешнего скрипта (ибо это было бы чревато переходом перфекционизма в прокрастинацию), а во-вторых, оно потребует нового технического задания — вѣроятно, съ новыми граничными условіями, декларирующими либо готовность администрации снабдить сайт не одним только движком jQuery, но и нѣкоторымъ плагиномъ къ нему, способнымъ показывать всплывающія хѣровины (покаместъ такой готовности не было, такъ какъ даже переход на jQuery вызвал такое серьёзное внутреннее сопротивление 410чанской администрации, которое продолжается до сихъ поръ и частью которого недвусмысленно является этотъ вопросъ, нацѣленный на серьёзное расширение первоначального ТЗ и между строк обуславливающий внедрение jQuery готовностью к такому расширению, а не то и выполнением этого дополнительного задания), либо готовность джаваскриптовщика самостоятельно сочинить движокъ, способный показывать всплывающія хѣровины (потому что администрация слишком явно показала въ нѣсколькихъ предшествующихъ репликахъ предпочтеніе самописнаго исходнаго кода открытому). Пока нѣтъ ни того, ни другого.
No. 20156    
153065804754.7z-(5.93KB, kusaba_2018_07_04.7z)
20156
4) Нельзя ли убрать те функции, которых в движке пока нет? (Мы это будем тестировать отдельно, если время придёт, пока лишний код не нужен.) — Нельзя убрать то, чего нѣтъ; если же имѣлось въ виду «нельзя ли изъ https://pastebin.com/X9HChJp5 убрать возможности, въ скриптѣ http://410chan.org/lib/javascript/kusaba.js отсутствующія», то сдѣлать это въ человѣческиъ силахъ (всего-то просмотрѣть 561 строку въ https://pastebin.com/X9HChJp5 да 782 строки въ http://410chan.org/lib/javascript/kusaba.js и сравнить их между собою, выбрасывая ꙩчевидныя дополненія), но человѣкъ этотъ не долженъ былъ быть демотивирован тѣмъ, что ранѣе спѣшно былъ заданъ вопросъ №3, между строкъ которого читается, что вотъ эта немалая 1343-строчная задача будетъ сдѣлана бѣсъ-полезно до тѣхъ поръ, пока не явится исполнитель новой (и ещё болѣе немалой) интерфейсной задачи (чего долго ещё придётся ждать, если вообще дождёмся).

Прилагаю архив нынешней версіи файла http://410chan.org/lib/javascript/kusaba.js во избѣжаніе обезсмысливанія своей реплики по мѣрѣ измѣненія этого файла.
No. 20159    
153066629540.png-(1.39MB, 1280×720, Sukunai.png)
20159
Ѿдѣльно осуждаю восьмикилобайтовое ограниченіе размѣра текста.
No. 20160    
153066822310.png-(15.09KB, 384×384, 1155194226916.png)
20160
>>20155
>въ файлѣ http://410chan.org/lib/javascript/kusaba.js не вижу ни одной такой строки, в которой текущая реализация берёт локализованные надписи для «Избранных нитей» из интерфейса
Их там в самом деле нет, и жабаскриптом добавленные строки добавляют английский язык. Русский перевод кнопок для всей формы в целом (и вообще форма) добавляется в inc/class/board-post.class.php, функция PageHeader. Но это не значит, что текущая реализация сломана настолько, что можно ничего не писать и это ок. Она просто непоследовательна (и флаг тому в руки, кто захочет как-то автоматом впихивать локализацию из пыха в жабаскрипт.Разве при генерации страницы мусорить в глобальные переменные).
>даже и съ замѣщеніемъ страницы
Потому что сейчас окошко избранного, как я уже сказал, добавляется только один раз при генерации страницы. Или не добавляется вообще. Кусаба не умеет прятать через css.
>в нынешнем скрипте ничего подобного нѣтъ
Вообще... да, отрисовка окошка сейчас происходит на сервере, но по крайней мере в оригинальной кусабе через печеньки watchedthreads[width|height|top|left] можно управлять позицией. Но в любом случае, отрисовку надо править там. И я со своей колокольни не вижу проблем сделать всплытие одного div фиксированной(?) ширины и высоты по клику, да resize:both. По крайней мере без анимации, просто появление/исчезание. Разве как менять звёздочку. Тоже на сервере, допустим, а обратно? display:none/display:block?
No. 20161    
>>20160
Ну, ладно, я смотрю, не поддерживается resize мобильными браузерами и эдж/экплорер'ом. Весело.

В любом случае, если за полторы недели подвижек не будет, то авось мне хватит знаний допилить самому.
No. 20162    
153069498040.jpg-(88.57KB, 750×600, paranoia (large).jpg)
20162
>>20160

> Разве при генерации страницы мусорить в глобальные переменные.

Также ещё можно создать пустой div, data-атрибут которого содержит HTML-экранированный JSON-кодированный массив (или объект) интерфейсных строк.

При таком подходе и глобальные переменные будут в порядке, и отпадёт проблема экранирования последовательностей символов, способных прервать тег SCRIPT. (Эта послѣдняя проблема не имѣетъ готоваго рѣшенія въ языкѣ «Пи-Эйчъ-Пи», а на самостоятельное рѣшеніе ея обыкновенно подзабиваютъ до тѣхъ поръ, пока она не вцѣпится въ задницу.)
No. 20165    
Нашёл ещё один баг движка: если въ полѣ имени вставить эмоджи при отправкѣ сообщения, то эмоджи въ дальнѣйшемъ въ это полѣ (въ формѣ для созданія новыхъ сообщеній) приходит с сёрвера искажённым, хотя в отправленном сообщении отображается в неискажённом виде.
No. 20180    
test
No. 20181    
Проблема решена?
No. 20184    
Нѣтъ.
No. 20185    
>>20184
A в чем проблема то состоит?
No. 20190    
См. выше.
No. 20191    
Там хрень какая то. Куча взрослых и предположительно разумных людей, умеющих в программирование, не может задать максимальную высоту окна. Полная бессмысица
No. 20198    
>>20191

Высота окна (а равно и ширина двери, и глубина прохода) тут вообще ни при чём, вроде бы.
No. 20204    
>>20198
Неважно что тут при чем, но когда человек, подписывающийся вебмастером, не в состоянии сделать то, что школьники делают в проекте "моя первая html-страница" это уже дикость какая-то.
No. 20208    
>>20204

«Наймём вебмастера, резюме просим разместить по адресу www.microsoft.com».

(В данном случае — «410chan.org», но всё равно сайт-то не мой.)
No. 20209    
153166603052.jpg-(45.39KB, 800×650, fotonoticia_20150312160703_800.jpg)
20209
>>17713
>Я не лезу в те части движка, принцип работы которых не понимаю
No. 20215    
153170258277.7z-(15.89KB, shinkusaba.7z)
20215
>>20161

> В любом случае, если за полторы недели подвижек не будет, то авось мне хватит знаний допилить самому.

Так как полуторанедельный (одиннадцатидневный) срок после этой реплики можно считать прошедшим, то я прекратил ожидание и сочинил собственный вариант перевода файла http://410chan.org/lib/javascript/kusaba.js к употреблению нового движка (jQuery) вместо прежнего (Protoaculous), ориентируясь и опираясь на проделанную автором скрипта https://pastebin.com/X9HChJp5 большую работу и внося в неё пространные изменения и дополнения по своему вкусу.

Архив результатов прилагаю. Он содержит и заменитель для kusaba.js (под именем shinkusaba.js), и сопроводительный текст заметок для чтения (под именем readme.md), и конфигурацию (.jshintrc) для автоматического тестирования синтаксической корректности кода посредством расположенного по адресу http://jshint.com/ движка.

Для проблемы перетаскивания и растягивания окошка «Избранные нити» (для проблемы, от решения которой автор скрипта https://pastebin.com/X9HChJp5 решил, как мы помним, воздержаться — не то за неимением времени, не то за неимением убеждённости в перспективах употребления результатов на 410чане…) в моём коде предлагается решение, основанное на расположенных по адресу https://draggabilly.desandro.com (для перетаскивания) и https://github.com/tannernetwork/resizable (для растягивания) плагинах для jQuery, выбранных прежде всего за сравнительно небольшую величину их.
No. 20216    
>>20215
Я думал начать на выходных, но пока не было времени. А в эти полторы недели меня вообще не было, на что я и намекал.
Впрочем, если это работает, то и чёрт с ним.
No. 20225    
Файл
удалён
>>20216

> Впрочем, если это работает, то и чёрт с ним.

А не работает, ах-ха-ха-ха.

Во-первых, нельзя просто взять и выбросить ту груду кода, которая в файле http://410chan.org/lib/javascript/kusaba.js сейчас занимает строчки от 685 до 781, и заменить тем более изящным решением, которое в коде https://pastebin.com/X9HChJp5 занимает строчки от 530 до 560. Потому что у нас есть ещё милейшие разработчики Flower Bus Engine, которым в kusaba.js вписывать весь джаваскрипт — это ниже их достоинства, и которые вместо того на каждую страницу фигачат из PHP тег «script», который (например, на странице http://410chan.org/dev/ между строками 185 и 200) врубает изменение размера формы цветком во всех браузерах, кроме Chrome, и который при этом полагается на существование объекта resizeMaster и даже метода setResizer у этого объекта. (А теперь концепция изменилась и цветок нужен везде для красоты. Получается, теперь этот метод надо будет досоздать пустым для того только, чтобы inline script не выдал ошибку, прерывающую дальнейшую работу скриптов на странице.)

Во-вторых, нельзя просто взять и выбросить ту груду кода, которая в файле http://410chan.org/lib/javascript/kusaba.js сейчас занимает строчки от 28 до 104, и заменить каким-нибудь менее громоздким методом экранирования значений, укладываемых в cookies (например, вызовом библиотечного метода «encodeURIComponent»). Потому что вся эта груда кода — грандиозный костыль, узенькая досточка поперёк гигантской зияющей пропасти на месте того, как значение cookies обрабатывается на серверной стороне и какой ужас там творится (на месте нормального человеческого https://secure.php.net/manual/en/book.mbstring.php или чего-нибудь в этом же роде) с обработкою UTF8. (Там весь баг >>20165 — только краешек краешка, я так понимаю.)
No. 20227    
153186263289.7z-(16.57KB, shinkusaba.7z)
20227
Второе из изложенных по адресу >>20225 опасений оказалось, впрочем, неосновательным.

Единственная серьёзная разница заключается в том, что https://secure.php.net/manual/en/function.urlencode.php использует плюс, тогда как https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent использует последовательность символов «%20» для кодирования пробела — и эта разница, разумеется, оказалась устранимою.

Что же касается бага >>20165, то он был всецело заслугою не серверной, а клиентской части кода, притом той именно, которая в файле http://410chan.org/lib/javascript/kusaba.js сейчас занимает строчки от 28 до 104 (и которую я устранил в своём варианте кода). Заметить это вовремя мне помешал целый ряд допущенных мною опечаток (ни одна из которых не была поймана http://jshint.com/ ввиду того, что они синтаксически были корректны), которые я также выловил и прибил.

Обновлённую версию архива >>20215 прилагаю.

На сей раз кроме синтаксической корректности (которую вдругорядь проверил посредством вышеупомянутого JSHint) я проверил и поведенческую работоспособность (настроив подмену скрипта http://410chan.org/lib/javascript/protoaculous-compressed.js на скрипт https://code.jquery.com/jquery-3.3.1.min.js и скрипта http://410chan.org/lib/javascript/kusaba.js на скрипт https://ipfs.io/ipfs/QmSSL3QLtx2H39cXQp8NXugtsByTC57YF9cTmC3gyrN3wo посредством движка >>20224 и затем пользуясь 410чаном в обычном режиме).

Скрытие и показ нитей обсуждения, скрытие и показ и обновление и перетаскивание окошка «Избранные нити» и изменение его размеров работает (в том числе тридцатипроцентная прозрачность во время перетаскивания).

При помощи делегирования обработки событий, свойственного jQuery, устранён баг, порождавший неработоспособность предпросмотра при наведении на гиперссылки в репликах, первоначально отсутствовавших на странице (прибавившихся по нажатию на кнопку «Expand Thread»).

Устранён баг, порождавший неработоспособность кнопки «Watch Thread» при закрытом окне «Избранные нити».

Устранён баг >>18966.
No. 20229    
153186708618.7z-(16.80KB, shinkusaba.7z)
20229
Также прилагаю вариант архива >>20227, дополнительно наделённый реализацией предложения >>18017 по отношению к скрытым нитям, в коде https://pastebin.com/X9HChJp5 содержавшейся.

Суть такова, что вместо cookies «'hiddenthreads'» используется одноимённый ключ в localStorage, так что при каждом обращении к серверу не передаётся полный список скрытых нитей обсуждения, что ускоряет дело.

Побочный эффект: так как, в отличие от cookies, значения localStorage привязаны к конкретному имени сервера, то попытка зайти на http://www.410chan.org вместо http://410chan.org (или наоборот) приводит к обнулению списка сокрытых нитей. Также и https вместо http. Это технологическое ограничение непреодолимо.

Желающим предварительно посмотреть посредством движка >>20224 предлагаю использовать копию скрипта, по адресу https://ipfs.io/ipfs/QmNixBNT1T5NZD24Q8wRkByjyq6PYc5c5cuhrSHdUXiQyu расположенную.

В отличие от предшествующего, этот архив не предлагается к немедленному внедрению на 410чане, а иллюстрирует тезис о вредоносности кусков джаваскриптового кода, в цикле вписываемых внутри тегов SCRIPT языка HTML5 вместо того, чтобы лежать в отдельном джаваскриптовом файле.

В данном конкретном случае такие куски содержат считывание «hiddenthreads = getCookie('hiddenthreads').split('!')» и затем (в отдельных фрагментах перед каждой нитью обсуждения в цикле) содержащую проверку наподобие «if (hiddenthreads.toString().indexOf('19666dev')!==-1)» и последующие действия по скрытию нити, даже когда в localStorage (в отличие от cookies) нить не помечена в качестве скрытой.

Эти действия совершаются независимо от содержащегося в файле http://410chan.org/lib/javascript/kusaba.js кода, так что их трудно подавить его подменою (или, вернее, такое подавление потребовало бы напиливания дополнительного кода, отменяющего эти действия, а в остальном бессмысленного).

Такие фрагменты (которые внутри тегов SCRIPT языка HTML5) не радуют и тем ещё, что они (в отличие от основного файла джаваскрипта) не кэшируются (так что замедляют собою скачивание каждой страницы каждый раз). Уместно в дальнейшем переписать и одновременно перетащить в джаваскриптовый файл как можно больше того исходного кода, который сейчас вставлен разрозненными кусками внутри HTML, особенно в тех случаях, когда таких кусков много (и притом они автоматически генерируются на серверной стороне в цикле), но их мог бы заменить единственный кусок кода внутри джаваскриптового файла: это уменьшит не только расходы времени на скачивание кода (за счёт кэширования), но и расходы времени на регенерацию страницы (за счёт отказа от исполнения части прежнего кода PHP на стороне сервера).
No. 20230    
153186916337.png-(6.51KB, 384×384, 1151936059734.png)
20230
Давайте я тогда приду в ночь с пятницы на субботу, уточню, правильно ли я понимаю всё это, и там за выходные как-то попробуем доразбираться с этим делом?
No. 20231    
153187438552.7z-(17.25KB, shinkusaba.7z)
20231
Вот новая улучшенная версия архива >>20227, которую можно хоть сейчас внедрять.

(Перед окончательным внедрением можно предпросматривать скрипт https://ipfs.io/ipfs/QmWymCQis13ujoUURKbKEYRwp83fwQVfnQw5FjNDTxrDsf движком >>20224.)

Дополнительно (по сравнению с версией >>20227) была устранена подмеченная в реплике >>20155 (пункт №2) необходимость перезагрузки страницы для открытия панели «Избранные нити» — необходимость, которая иногда была простою неприятностью («чего это панель появляется не сразу, а надо сёрвер дёрнуть?»), а иногда ЛЮТО БѢСИЛА («эээ, куда это моя недонабранная реплика стёрлась, вы чё ващеее?»).

Теперь панель «Избранные нити» открывается сразу после нажатия на звёздочку, а обращение к сёрверу затем происходит по AJAX (без перезагрузки страницы) для считывания списка избранных нитей.

После внедрения этого джаваскрипта серверный код может быть также сокращён (без малейшего промедления), если убрать (вместе со всем содержимым) тот тег «script», который начинается проверкою «if (getCookie('showwatchedthreads') == '1')» и предшествует логотипу «<div class="logo">». После этого в shinkusaba.js нужно раскомментировать строчку «if( getCookie('showwatchedthreads') ) generateWatchedThreadsElement();» (одну из последних в shinkusaba.js), и стереть две последующие строчки («resizeWatchedThreads()» и «dragWatchedThreads()»), и убрать обе строчки, начинающиеся комментарием «TODO: undo inline script».

Работать будет и без этого сокращения, но после этого сокращения исходный код страницы выглядеть будет изящнее и компактнее: некэшируемая часть его уменьшится, а также исчезнет баг, порождающий появление мусорного знака подчёркивания справа от косого креста, расположенного в левом нижнем углу панели «Избранные нити».
No. 20232    
153188222290.7z-(17.58KB, shinkusaba.7z)
20232
Если реплика >>20230 была откликом на реплику >>20225, то доразобрался уж, спасибо; если же в более общем смысле, то тогда никому не смею мешать разбираться, и даже приветствую разбирающихся.

Тем временем предлагаю всеобщему вниманию ещё более новую версию архива >>20231, которая на сей раз содержит два улучшения.

Во-первых, устранена обозначенная в репликах >>19596 и >>19597 тягостная проблема, то есть гиперссылки «Полный текст» перестали откручивать страницу к началу нити обсуждения (откуда к конкретной реплике ещё крутить возиться), и вообще теперь они дѣйствуютъ не через загрузку новой страницы, а через AJAX (используя тот же API, которым пользуется и предпросмотр при наведении на гиперссылку).

Во-вторых, найдена и удавлена та ошибка, которая начиная от момента >>20119 позволяла jQueryйной версии разворачивателя развёртывать иллюстрации слишком широко (потому что на них класса «thumb» недоставало). Недостающий класс поставлен.

410чановской администрации рекомендую внедрять этот скрипт на сайте посредством инструкции, прилагаемой в файле readme.md в архиве.

Всей остальной честнóй публикѣ предлагаю заранее ознакомиться с предполагаемым эффектом, посредством редиректора (по адресу http://einaregilsson.com/redirector/ предлагаемого для Firefox и для Chrome и для Opera) настроив перенаправление с адреса http://410chan.org/lib/javascript/protoaculous-compressed.js на адрес https://code.jquery.com/jquery-3.3.1.min.js и затем ещё с адреса http://410chan.org/lib/javascript/kusaba.js на адрес https://ipfs.io/ipfs/QmWrVZpHvE9xKmiMbNUSPHPPQFFCbrq5TuzF6v7VmWb54X
No. 20233    
153188281381.png-(146.93KB, 1776×731, redirector.png)
20233
В качестве пояснения к последнему абзацу реплики >>20232 прилагаю скриншот окна редиректора, на котором изображена кнопка «Edit Redirects» и открываемое ею окно для настройки перенаправлений.

Ѿдѣльно указываю, что при создании перенаправления непременно надо нажать гиперссылку «Show advanced options…» и поставить галочку напротив пункта «Scripts», так как речь идёт о перенаправлении одних джаваскриптов (protoaculous и kusaba) на другие (jQuery и shinkusaba).

Пример моих настроек виден на сём скриншоте, и вам остаётся только повторить его у себя.
No. 20235    
153191844134.7z-(17.70KB, shinkusaba.7z)
20235
Тем временем предлагаю всеобщему вниманию переработанную и дополненную версию архива >>20232, в которой исправлен стиль медиапроигрывателя и стиль гиперссылки, его закрывающей.

410чановской администрации рекомендую внедрять этот скрипт на сайте 410чана по инструкции, прилагаемой в файле readme.md в архиве.

Всей же остальной честнóй публикѣ предлагаю заранее ознакомиться с эффектом от предлагаемых изменений, для чего достаточно посредством редиректора (по адресу http://einaregilsson.com/redirector/ предлагаемого для Firefox и для Chrome и для Opera) настроить перенаправление с адреса http://410chan.org/lib/javascript/protoaculous-compressed.js на адрес https://code.jquery.com/jquery-3.3.1.min.js и затем ещё с адреса http://410chan.org/lib/javascript/kusaba.js на адрес https://ipfs.io/ipfs/QmeB4tB66FmJXq93ULFV6A9mmaZuWBBb11t3ukpz6B928d по примеру >>20233 (единственным отличием от того примера будет новый адрес https://ipfs.io/ipfs/QmeB4tB66FmJXq93ULFV6A9mmaZuWBBb11t3ukpz6B928d нового скрипта).
No. 20236    
153192197426.7z-(17.60KB, shinkusaba.7z)
20236
На сей раз предлагаю всеобщему вниманию переработанную и дополненную версию архива >>20235, посредством которой панель «Избранные нити» не только открывается сразу после нажатия на звёздочку (как это в версии >>20231 было достигнуто), но также и закрывается сразу после нажатия на косой крестик (в отличие от нынешнего отложенного поведения 410чана).

410чановской администрации рекомендую внедрять этот скрипт на сайте 410чана по инструкции, прилагаемой в файле readme.md в архиве.

Всей же остальной честнóй публикѣ предлагаю заранее ознакомиться с эффектом от предлагаемых изменений, для чего достаточно посредством редиректора (по адресу http://einaregilsson.com/redirector/ предлагаемого для Firefox и для Chrome и для Opera) настроить перенаправление с адреса http://410chan.org/lib/javascript/protoaculous-compressed.js на адрес https://code.jquery.com/jquery-3.3.1.min.js и затем ещё с адреса http://410chan.org/lib/javascript/kusaba.js на адрес https://ipfs.io/ipfs/QmPbpY65G5pEDnqfqTpXyV6GbzqsaiqE6ERytprt8qqjke по примеру >>20233 (единственным отличием от того примера будет новый адрес https://ipfs.io/ipfs/QmPbpY65G5pEDnqfqTpXyV6GbzqsaiqE6ERytprt8qqjke нового скрипта).
No. 20237    
153192477732.jpg-(39.99KB, 496×375, 1495319689399.jpg)
20237
Десяток простыней мутных рассуждений с какими-то архивами, выкладываемыми иногда с интервалами в несколько минут — лучший способ, чтобы я ничерта не понял. Особенно на фоне требований сделать сначала некую стабильную версию, а потом уже предлагать обновления.

Но я глянул один из этих архивов. И сразу замечания:
1. Не надо придумывать какие-то новые названия файлам. (Я бы ещё хоть как-то понял fbe.js.)
2. Что такое .jshintrc? И начерта этот «jshint» упоминается в самом предложенном скрипте? Когда вы просовываете код для тестирования на сервере, не надо оставлять в нём какой-то локальный/отладочный мусор. Кто его за вас чистить будет?
3. Почему некие CSS-стили засунуты в скрипт? Нехѣръ пихать стили в скрипты. Вы и так выкладываете архив, так добавьте туда и CSS-файл с кодом, который следует внести в img-global.css.
4. Новый скрипт вступает в противоречие с куками или ещё какой лабудой? Или оно будет работать и так? Я ничерта не понял.

Я ещё раз повторяю, что сейчас доработкой движка со стороны администрации занимаюсь только я, а мои возможности разбираться в технической лабуде минимальны.
No. 20238    
>>20237
>.jshintrc
>локальный/отладочный мусор
Алло, сейчас 2018 год, пора уже перестать жить в 90х.
No. 20239    
153192968869.png-(51.08KB, 205×238, 1459145399130.png)
20239
>>20238
Для не умеющих читать повторяю ещё раз: я вообще никак не специалист, но мне приходится иметь дело с этим дерьмом. Ваша ремарка никак на мой вопрос не отвечает. Самоутверждаться путешествуйте нахѣръ в другое место, тут не для флуда нить. Буду просто за троллинг банить да и всё.
No. 20240    
153194274113.png-(6.41KB, 499×430, NES_Godzilla_creepy_trance_thebeast_heheardthat.png)
20240
>>20237

Сразу отвѣты на замѣчанія:

> Десяток простыней мутных рассуждений с какими-то архивами, выкладываемыми иногда с интервалами в несколько минут

Никогда между архивами не было интервала в несколько минут. Наименьший интервал (между архивами >>20227 и >>20229) превосходил 1 час 14 минут.

> Особенно на фоне требований сделать сначала некую стабильную версию, а потом уже предлагать обновления.

Требование соблюдено буквально: сдѣлана стабильная версия >>20227, затем предлагаются обновления.

> Не надо придумывать какие-то новые названия файлам.

Надо придумывать новые названия файлам хотя бы для того, чтобы можно было просто говорить «kusaba.js» вместо «старая kusaba.js».

Если будет принято решение о заливке нового скрипта на сервер 410чана, то можете дать ему прежнее имя, я не возражаю.

> (Я бы ещё хоть как-то понял fbe.js.)

Реплика >>18391 как бы говорит мне, что всё цветочное на 410чане облечено в пелену сентиментальных чувств, так что попытка дать моему файлу это имя могло бы оказаться расценённым как посягательство чужака на святыню. На телепатическое осознание чужих чувств не перетендую, но не тянет и наугад поиграть в такую русскую рулетку, где в одном патроне заряжено «я бы ещё хоть как-то понял», а в другом патроне угадывается «никто на это время тратить не будет» в качестве первой и окончательной резолюции.

> Что такое .jshintrc? И начерта этот «jshint» упоминается в самом предложенном скрипте?

Что именно оказалось непонятным? Была ли это трижды повторявшаяся на разные лады фраза «410чановской администрации рекомендую внедрять этот скрипт на сайте 410чана по инструкции, прилагаемой в файле readme.md в архиве»? Или неясен оказался смысл подраздела «Тестирование» в файле readme.md, отвечающего на вопрос о том, что такое .jshintrc?

> Когда вы просовываете код для тестирования на сервере, не надо оставлять в нём какой-то локальный/отладочный мусор. Кто его за вас чистить будет?

Никто, потому что это вовсе и не мусор никакой. Это комментарии, описывающие перечень глобальных и экспортируемых переменных. Они, во-первых, полезны, а во-вторых, являются в равной степени машинно-читаемыми (для JSHint) и человеко-читаемыми (для тех программистов, которые будут иметь дело со скриптом в дальнейшем). Напримѣръ, въ архивѣ >>20229 (въ отличіе отъ всѣхъ остальныхъ моихъ архивовъ недавняго времени) одинъ лишь взглядъ на первую же строку джаваскрипта ѿткрываетъ внимательному ꙩку, что далѣе сдѣлана, по меньшей мѣрѣ, попытка употребить localStorage.

> Почему некие CSS-стили засунуты в скрипт? Нехѣръ пихать стили в скрипты. Вы и так выкладываете архив, так добавьте туда и CSS-файл с кодом, который следует внести в img-global.css.

Ok. Позже.

> Новый скрипт вступает в противоречие с куками

Нѣтъ.

> или ещё какой лабудой?

Да.

> Или оно будет работать и так?

Будет.

> Я ничерта не понял.

Новый скрипт вступает в определённое противоречие с той частью скриптов сайта, которая лежит не в kusaba.js, а непосредственно в тегах «script» и в атрибутах «onclick», вставляемых прямо в код HTML из PHP на сёрвере.

Такие противоречия скрипт устраняет в свою пользу (кроме скрипта из архива >>20229, содержащего демонстрацию противоречия, не устранимого моими усилиями, и кроме много более раннего скрипта из архива >>20215, содержащего самую первоначальную версию подхода к делу, ещё не совершенно проверенную и не работоспособную). Поэтому воистину «будет работать и так».

Краткий список тех направлений, в которых можно на сёрвере улучшить нынешнее положение дѣлъ, излагается в последнем подразделе («Возможные дополнительные возможности») в файле readme.md в архиве.
No. 20241    
153195037922.7z-(2.78KB, img_global.7z)
20241
Так как в двух предшествующих репликах высказано было намерение файл http://410chan.org/css/img_global.css пополнить, то для придания большей увѣренност въ грядущемъ я считаю необходимым создать и приложить страховочную копию нынешнего состояния этого файла, и вот прилагаю въ архивѣ.
No. 20242    
15319535695.7z-(18.27KB, shinkusaba.7z)
20242
>>20237

> Вы и так выкладываете архив, так добавьте туда и CSS-файл с кодом, который следует внести в img-global.css.

Вот архив, в который добавлен (под именем shinkusaba.css) файл с кодом, который следует приписать к содержимому файла http://410chan.org/css/img_global.css в конец.

(Джаваскрипт в этом архиве пока что имеет тот же вид, что и в архиве >>20236, потому что на изменения в файле http://410chan.org/css/img_global.css никак нельзя полагаться до тех пор, пока они не совершились.)
No. 20243    
Заведите уже наконец гит. Больно смотреть на этот обмен колом в архивах и непонимание что куда копировать-удалять.
No. 20244    
Файл
удалён
Пристальное вглядывание в http://410chan.org/css/img_global.css заставляет меня предполагать, что этот код CSS никогда не проходил ни одной мало-мальской автоматической провѣрки, тогда как ꙩчи автора его замылилися.

В этом убеждает меня вид того, что строки с 557 по 559 и строки с 672 по 674 совпадают если не по виду, то по смыслу.
No. 20245    
153196883716.7z-(18.48KB, shinkusaba.7z)
20245
На сей раз предлагаю всеобщему вниманию переработанную и дополненную версию архива >>20242, посредством которой устранён баг, порождающий в настоящее время на 410чане появление прямоугольника предпросмотра гиперссылок справа и снизу от гиперссылок даже в том случае, когда справа или снизу мѣста нѣтъ. Теперь для гиперссылок из правой половины окна предпросмотр открывается с левой стороны от них, а для гиперссылок из нижней половины окна предпросмотр открывается с верхней стороны от них.

410чановской администрации рекомендую внедрять этот скрипт на сайте 410чана по инструкции, прилагаемой в файле readme.md в архиве.

Всей же остальной честнóй публикѣ предлагаю заранее ознакомиться с эффектом от предлагаемых изменений, для чего достаточно посредством редиректора (по адресу http://einaregilsson.com/redirector/ предлагаемого для Firefox и для Chrome и для Opera) настроить перенаправление с адреса http://410chan.org/lib/javascript/protoaculous-compressed.js на адрес https://code.jquery.com/jquery-3.3.1.min.js и затем ещё с адреса http://410chan.org/lib/javascript/kusaba.js на адрес https://ipfs.io/ipfs/QmfQ4qLhwVCtSyBifxHBAr3pziKtJm2EHXyPVNBbDvSrSs по примеру >>20233 (единственным отличием от того примера будет новый адрес https://ipfs.io/ipfs/QmfQ4qLhwVCtSyBifxHBAr3pziKtJm2EHXyPVNBbDvSrSs нового скрипта).
No. 20248    
153197092590.jpg-(1.09MB, 1050×1478, Aku no Hana.jpg)
20248
>>18384

> Ну дыкъ въ декоративныхъ цѣляхъ цвѣточекъ оставить, а джаваскриптъ всё же отпилить притомъ можно.

>>18391

> Для цветочка можно разве что предложить какую-нибудь другую функциональность, иначе никто на это время тратить не будет.

Окей, предлагаю.

Расположение цветка (справа внизу от формы ввода текста) даёт нам уникальную возможность расположить вокруг него Twitter-подобную диаграмму-окружность, отсчитывающую количество оставшихся символов (сперва визуально по мере исчерпания окружности, а затем и в числовой форме).

По мере изменения количества оставшихся символов может также меняться цвѣтъ и форма цветка (например, при переходе через ноль он может превращаться в 惡の華 или нечто другое в этом же роде).
No. 20250    
153198971516.png-(1.85MB, 1920×1080, Steins Gate 0 - 14 - night skyline.png)
20250
>>20243

> непонимание что куда копировать-удалять

Сие непонимание не производится ли единственно воздержанием от чтения файла readme.md, в архиве прилагаемого? — а не то первые же строки того файла объяснили бы (в форме пошаговой инструкции), что куда копировать.
No. 20251    
153199183518.7z-(18.50KB, shinkusaba.7z)
20251
На сей раз предлагаю всеобщему вниманию улучшенную версию архива >>20245, посредством которой дополнительно устраняется тот баг 410чана, ввиду которого переключатель стилей всякий раз имеет положение «Umnochan» после загрузки страницы. (Этот баг наносит двойной вред: во-первых, не даёт читателю прочесть, какой стиль был им выбран, а во-вторых, не даёт читателю переключиться на стиль «Umnochan» до тѣхъ поръ, пока тот не переключится наперёд на какой-нибудь другой стиль вручную.)

410чановской администрации рекомендую внедрять этот скрипт на сайте 410чана, действуя в соответствии с пошаговою инструкциею, для того прилагаемою в файле readme.md в архиве.

Всей же остальной честнóй публикѣ предлагаю заранее ознакомиться с эффектом от предлагаемых изменений, для чего достаточно посредством редиректора (по адресу http://einaregilsson.com/redirector/ предлагаемого для Firefox и для Chrome и для Opera) настроить перенаправление с адреса http://410chan.org/lib/javascript/protoaculous-compressed.js на адрес https://code.jquery.com/jquery-3.3.1.min.js и затем ещё с адреса http://410chan.org/lib/javascript/kusaba.js на адрес https://ipfs.io/ipfs/QmYNVCZXPNPJ74BxTjcXQiuvv1Sa2yRpiGkJW45LwmUm9T по примеру >>20233 (единственным отличием от того примера будет новый адрес https://ipfs.io/ipfs/QmYNVCZXPNPJ74BxTjcXQiuvv1Sa2yRpiGkJW45LwmUm9T нового скрипта).
No. 20252    
153201306651.7z-(18.93KB, shinkusaba.7z)
20252
А вот и очередная версия архива >>20251, содержащая два «косметических» изменения.

Во-первых, добавлена основанная на jQuery реализация той функции «quote», которую автор скрипта https://pastebin.com/X9HChJp5 счёл не используемою в Кусабе и выбросил напрочь. После пристального вглядывания я уяснил, что эта функция всё же используется Кусабою, но только на текстовых досках, каковых не осталось на 410чане опосля преобразования /d в имиджборд.

Во-вторых, для наглядности в архиве приложен, под именем «shinkusaba.diff», однострочный дифф, содержащий устранение того атрибута «onclick» (содержащего вызов разворачивателя миниатюр), который утратит нужность после внедрения моей версии джаваскрипта.

Наложение этого диффа в строгом смысле не является необходимым (моя версия джаваскрипта и без того способна работать невозбранно), но позволит расчистить поступающий с сервера код HTML, сократив его объём, а также уменьшить время работы тела цикла на языке PHP, функцию «BuildPost» вызывающего. То и другое даст прирост скорости на стороне сервера.

Наложение этого диффа в автоматическом режиме не возможно, так как он составлен на основе открытого кода Кусабы, а не закрытого кода FBE (содержащего, например, класс «imglink» и некоторые предложенные в реплике >>18069 изменения), поэтому он прикладывается именно просто «для наглядности», как я и сказал.

На сей раз я не стану завершать свою реплику предложением воспользоваться редиректором для заблаговременного ознакомления с ожидаемым эффектом от предлагаемых изменений, потому что ни одно из предлагаемых изменений, если их наблюдать заблаговременно, не изменит наблюдавшийся эффект от предшествующего исходного кода >>20251 на 410чане (дифф — просто инструкция, а скрипт для текстовых досок негде проверить за отсутствием таковых). Вот почему желающие предпросматривать могут преспокойно продолжать >>20251 предпросматривать.
No. 20253    
153203903469.7z-(20.07KB, shinkusaba.7z)
20253
Я совершил дальнейшее развитие джаваскрипта, ранее заложенного в архив >>20252, и теперь предлагаю всеобщему вниманию очередной новый архив лучше прежнего.

Во-первых, новый скрипт накладывает выбранный пользователем стиль (Umnochan, или Burichan, или Futaba, или Photon, или Kusaba, или Bluemoon) как можно скорее (как и скрипт https://pastebin.com/X9HChJp5 это делал), а не несколько позже (как Кусаба). Это уменьшает время мельтешения стилей во время начальной загрузки страницы.

Во-вторых, новый скрипт одерживает победу над склонностью реплик на 410чане подлазить своим верхом под верхнюю навигационную панель в тот момент, когда к реплике совершён переход по >>номерной гиперссылке изнутри нити обсуждения или снаружи.

410чановской администрации рекомендую внедрять этот скрипт на сайте 410чана, действуя в соответствии с пошаговою инструкциею, для того прилагаемою в файле readme.md в архиве.

Всей же остальной честнóй публикѣ предлагаю заранее ознакомиться с эффектом от предлагаемых мною изменений поведения 410чана. Для такого ознакомления достаточно посредством редиректора (по адресу http://einaregilsson.com/redirector/ предлагаемого для Firefox и для Chrome и для Opera) настроить перенаправление с адреса http://410chan.org/lib/javascript/protoaculous-compressed.js на адрес https://code.jquery.com/jquery-3.3.1.min.js и затем ещё с адреса http://410chan.org/lib/javascript/kusaba.js на адрес https://ipfs.io/ipfs/QmPz2BPc75Sxo1X24GTAv3T1ttnKQVABW6YRftttwYZX3Y по примеру >>20233 (единственным отличием от того примера будет новый адрес https://ipfs.io/ipfs/QmPz2BPc75Sxo1X24GTAv3T1ttnKQVABW6YRftttwYZX3Y нового скрипта).
No. 20254    
153204336185.7z-(20.29KB, shinkusaba.7z)
20254
Немного подумав, я совершил дальнейшее развитие второй из идей, ранее заложенных в архив >>20253, и теперь предлагаю всеобщему вниманию очередной новый архив лучше прежнего.

Теперь сочинённый мною скрипт одерживает победу над склонностью реплик на 410чане подлазить своим верхом под верхнюю навигационную панель не только в тот момент, когда к реплике совершён переход по >>номерной гиперссылке (изнутри нити обсуждения или снаружи), но также и в случае «просто номерной» гиперссылки (содержащей текст «No.» в заголовке у реплики), и даже в случае «ещё более простой» гиперссылки, получающейся в том случае, когда кто-нибудь из беседующих копипастнул URL (в реплике >>18060 есть пример такого).

410чановской администрации рекомендую внедрять получившийся скрипт на сайте 410чана, действуя в соответствии с пошаговою инструкциею, для того прилагаемою в файле readme.md в архиве. Для начала достаточно будет и первых двух шагов, там указанных.

Всей же остальной честнóй публикѣ предлагаю заранее ознакомиться с эффектом от предлагаемых мною изменений поведения 410чана. Для такого ознакомления достаточно посредством редиректора (по адресу http://einaregilsson.com/redirector/ предлагаемого для Firefox и для Chrome и для Opera) настроить перенаправление с адреса http://410chan.org/lib/javascript/protoaculous-compressed.js на адрес https://code.jquery.com/jquery-3.3.1.min.js и затем ещё с адреса http://410chan.org/lib/javascript/kusaba.js на адрес https://ipfs.io/ipfs/QmX5yaH6QJzEqRCkByAcDCmuYqLFgdYvTrRaSVwQKRSvxL по примеру >>20233 (единственным отличием от того примера будет новый адрес https://ipfs.io/ipfs/QmX5yaH6QJzEqRCkByAcDCmuYqLFgdYvTrRaSVwQKRSvxL нового скрипта).
No. 20256    
Файл
удалён
>>20243

> Заведите уже наконец гит. Больно смотреть на этот обмен колом в архивах

С одной стороны, хранение кода внѣ 410чана вроде как удобнее.

С другой стороны, хранение кода въ архивѣ на 410чанѣ по крайней мѣрѣ означает, что код уйдёт в небытие только с 410чаном или по немилости администрации. Тогда как внѣшній код из реплик >>18007 и >>18069 и >>18071 и >>18072 и >>18075 и >>18076 и >>18094 и >>18169 и >>18654 и >>18660 отправился на тот небесный винчестер, на котором программы не глючат, но и не работают.

Превратности судьбы могут постигнуть код даже на таких популярнейших кодохранилищах, каков GitHub (который сперва был одним из признанных лидеров своего направления, а затем был куплен Корпорацией Майкрософт, и эта история может и должна приводить нам на ум Нокию и её печальную будущность).
No. 20257    
>>20256
Но это не повод использовать имежборд вместо системы контроля версий.
No. 20258    
153209401117.png-(1.93MB, 1920×1080, [Doki] Suzumiya Haruhi no Yuuutsu (2009) - 10 (192.png)
20258
>>20257

Лично я его и не использую так.

Попасть на 410чан удостаиваются не всѣ версии, а только готовые выпуски (releases), содержащие проверенную реализацию того или иного улучшения (или нескольких улучшений) по сравнению с предыдущим выпуском.
No. 20259    
15321253577.7z-(25.13KB, shinkusaba.7z)
20259
Немного подумав, я совершил дальнейшее развитие идей, ранее заложенных в архив >>20254, и теперь предлагаю всеобщему вниманию очередной новый архив лучше прежнего.

Во-первых, одержанная в архиве >>20254 победа над склонностью реплик на 410чане подлазить своим верхом под верхнюю навигационную панель позволила одержать аналогичную победу и над склонностью формы ввода подлазить туда же в момент прибавления >>номеров в текст.

Во-вторых, улучшен развёртыватель миниатюр (показывающий полноразмерную картинку на месте миниатюры после тыка пальцем или жмяка мышóю). Улучшен он до такой степени, что сегодня впервые в истории отечественного имиджбордизма я могу с гордостью заявить о появлении развёртывателя третьего поколения, свободного от идейных недостатков двух своих предшественников и притом совершенно объединяющего их достоинства.

Но так как размер реплики на 410чане ограничен восемью килобайтами (а мой изложенный в реплике >>20159 протест против этого не был принят во анимание), то подробное рассмотрение достоинств и недостатков разных поколений развёртывателей миниатюр будет не сейчас, а чуть позже.

410чановской администрации рекомендую внедрять получившийся скрипт на сайте 410чана, действуя в соответствии с пошаговою инструкциею, для того прилагаемою в файле readme.md в архиве. Для начала достаточно будет и первых двух шагов, там указанных.

Всей же остальной честнóй публикѣ предлагаю не ждать того, а заранее ознакомиться с эффектом от предлагаемых мною перемен в поведении 410чана. Для такого ознакомления достаточно посредством редиректора (по адресу http://einaregilsson.com/redirector/ предлагаемого для Firefox и для Chrome и для Opera) настроить перенаправление с адреса http://410chan.org/lib/javascript/protoaculous-compressed.js на адрес https://code.jquery.com/jquery-3.3.1.min.js и затем ещё с адреса http://410chan.org/lib/javascript/kusaba.js на адрес https://ipfs.io/ipfs/QmY2X95xwPNmJKsDdaubKnsjzn3WNgJbRi1gkpWGe4sbDu по примеру >>20233 (единственным отличием от того примера будет новый адрес https://ipfs.io/ipfs/QmY2X95xwPNmJKsDdaubKnsjzn3WNgJbRi1gkpWGe4sbDu нового скрипта).
No. 20260    
А теперь — обещанный в реплике >>20259 экскурс в историю развития развёртывателей миниатюр (показывающих полноразмерную картинку на месте миниатюры после тыка пальцем или жмяка мышóю).

Для начала напоминаю, что первое поколение развёртывателей занималось тем, что уничтожало элемент «img» языка HTML, соответствующий миниатюре, и затем ставило на его место новый элемент «img», соответствующий полноразмерной картинке. Ярким представителем этого поколения уместно считать скрипт https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/lib/javascript/clean/kusaba.js#L518 (появление которого, по-видимому, обязано собою коммиту https://github.com/tslocum/kusaba/commit/c12a1967efab6ddb9b7f068bd125e832d87d8b07 от 1 сентября 2007 года), то есть такой образ действий был распространён около десятилетия тому назад.

Важным его достоинством была предоставляемая читателю сайта полная возможность невозбранного слежения за процессом постепенной загрузки иллюстрации из Интернета. Иллюстрации, сохраняемые в файлах построчно, перед читателями построчно же и развёртывались сверху вниз — а постепенные проявлялись постепенно: четырёхпроходные GIF хранились и скачивались чересстрочно в порядке «осьмушка + ещё осьмушка + ещё четвертинка + оставшаяся половинка», а «прогрессивные JPEG» постепенно наводились на резкость, а семипроходные PNG следовали алгоритму https://ru.wikipedia.org/wiki/Adam7 (позволяющему начать постепенный показ изображения очень быстро — всего-навсего после получения первой шестидесятичетвёртой доли его пикселов).

Однако у этого образа действий были и недостатки. После нажатия на гиперссылку миниатюра мгновенно пропадала, так что читатель сайта принуждён был лицезреть пустоту на её месте — по меньшей мере, до начала процесса скачивания полноразмерной иллюстрации из Интернета. Дожидаться же появления нижней части иллюстрации, сохранённой построчно, приходилось ещё дольше — до сáмого конца загрузки (а во всё это время представление о нижней части, полученное из миниатюры, сохранялось только в памяти у читателя, но не перед глазами его на сайте). Что же касается иллюстраций, сохранённых не построчно, то у многих читателей к тому времени (около десятилетия тому назад) был накоплен громадный отрицательный опыт работы с тогдашними несовершенными браузерами, которые не способны были отображать такие иллюстрации постепенно и оттого принуждали читателей дожидаться окончания загрузки (то есть намерение автора файла сделать появление на экране постепенным в действительности срабатывало наоборот, делая его даже менее постепенным, чем у файлов, сохранённых построчно). Ярким примером такого досадного браузера в описываемое время был Internet Explorer, полагавшийся на кодеки из операционной системы Windows, в которых (как по адресу https://docs.microsoft.com/en-us/windows/desktop/wic/-wic-progressive-decoding можно прочесть) поддержка «прогрессивных JPEG» и других подобных методов была добавлена только с появлением Windows 7 в 2009 году (то есть несколькими годами позже появления вышеупомянутого развёртывателя в Кусабе).
No. 20261    
Ответом на недостатки >>20260 (досадное впечатление от которых усугублялося по мере распространения мобильного Интернета, которому свойственны более существенные, чем у проводного Интернета, задержки перед началом процесса скачивания полноразмерной иллюстрации) стало появление второго поколения развёртывателей, которое занимается тем, что не уничтожает элемент «img» языка HTML, соответствующий миниатюре, а просто придаёт ему URL и размеры, соответствующие полноразмерной картинке. Приводить примеры такого образа действий я не стану, так как они и без того всем нам видны в настоящее время и на Ычане, и на Доброчане, и на Архиваче, и в других (менее называемых здесь) местах; появление же соответствующего развёртывателя и на 410чане было обусловлено репликою >>18069, как я понимаю.

Явным достоинством этого образа действий является мгновенный ответ на нажатие на гиперссылку — мгновенное появление перед читателем такой иллюстрации, которая хотя бы сразу имеет желаемый полный размер; недостатком же является первоначальный мутный вид её (потому что сперва это всё ещё только растянутая миниатюра, не более!), и вид этот остаётся досадно долго, так как дожидаться замещения миниатюры полноразмерною иллюстрациею приходится никак не меньше, чем до полного скачивания этой последней. Нетрудно видеть, что этот недостаток развёртывателей второго поколения (весьма досадный, потому что он как бы отбрасывает поведение декодировщиков на девять лет назад — ко временам, предшествовавшим Windows 7) является полною противоположностью достоинства развёртывателей предшествующего (первого) поколения.

Мой же теперешний развёртыватель полностью объединяет достоинства того и другого образа действий, так как он, с одной стороны, уничтожает элемент «img» языка HTML, соответствующий миниатюре, и затем ставит на его место новый элемент, соответствующий полноразмерной картинке (что позволяет начать видеть её постепенное изображение, не дожидаясь окончания загрузки), но одновременно придаёт этому элементу и фон, в качестве которого используется миниатюра, растянутая до величины полноразмерной картинки (что обеспечивает и ощущение мгновенной реакции на нажатие на гиперссылку, и мгновенное появление перед читателем такой иллюстрации, которая для начала имеет желаемый полный размер, хотя и мутный вид растянутой миниатюры). Постепенное же появление настоящей полноразмерной картинки ведётся поверх этого фона. Тем самым в полной мере реализуется двухпроходная загрузка (миниатюра → полноразмерный файл) даже для файлов, не имеющих достоинств четырёхпроходного GIF или семипроходного PNG, а сохранённых построчно. (А таковых и сейчас очень много на имиджбордах, потому что построчное сохранение очень не редко сопровождается экономией объёма файла; притом именно оно предлагается по умолчанию.)

После завершения загрузки полноразмерного файла подложенный фон устраняется, чтобы он не помешал, например, чёткости краёв контуров прозрачного или полупрозрачного изображения PNG.

А к файлам в формате GIF, чаще всего используемым для сохранения анимаций, подкладывание фона вообще не применяется, чтобы избежать невыносимого диссонанса от накладывания второго и последующих кадров анимации на растянутую миниатюру, соответствующую первому кадру её.

Вот каковы достоинства нового развёртывателя миниатюр.
No. 20262    
Чтобы не ограничивать удобство последовательного чтения, ограничение >>20159 было преодолено объединением реплики >>20260 и реплики >>20261 в один файл под именем gen3.md в архиве >>20259.
No. 20265    
153213323963.png-(60.70KB, 448×448, 1165588123764.png)
20265
Что же, это было на пару --verbosity-флагов больше, чем я привык видеть документацию, но понятно и просвещающе. Большое спасибо за проделанную работу и за развёртыватель.

Пара вопросов:
1. Я правильно понимаю, что Resizable используется вместо CSS'ного resize из тех же соображений, что высказанны в >>20161?
2. Жабаскрипт готов, но в серверной части всё ещё надо поработать, чтобы сделать локализованные надписи в отслеживаемых тредах, и вообще поубирать <script> в как можно больших местах?
No. 20266    
153213791793.7z-(25.03KB, shinkusaba.7z)
20266
>>20265

> Я правильно понимаю, что Resizable используется вместо CSS'ного resize из тех же соображений, что высказанны в >>20161?

Совершенно верно.

(Вообще я исходил из намерения поддерживать всѣ тѣ браузеры, которые и jQuery 3.x поддерживает, то есть >>18195.)

> Жабаскрипт готов, но в серверной части всё ещё надо поработать, чтобы сделать локализованные надписи в отслеживаемых тредах, и вообще поубирать <script> в как можно больших местах?

Джаваскрипт готов до такой степени, что его можно накатить в любой момент — и он будет работать ничем не хуже, чем нынешний.

Что же касается измѣненій на сторонѣ сёрвера (как в тегах «script», вписываемых прямо в HTML, такъ и въ нѣкоторыхъ другихъ мѣстахъ), то онѣ должны, по-видимому, сопровождаться соотвѣтственными имъ измѣненіями и въ скриптѣ. Это будет либо двухэтапный процесс (типа «тик-так»), либо четырёхэтапный процесс (типа «тик-так-ток-тук»).

Въ двухэтапномъ процессѣ сперва совершаются правки на сёрверѣ, а затѣмъ подготовленныя ими измѣненія въ джаваскриптѣ.

Въ четырёхэтапномъ процессѣ желаемыя измѣненія на сёрверѣ вызвали бы немедленную ошибку выполнения скрипта, такъ что сперва на сёрверѣ подготавливаются основанія для альтернативнаго пути выполненія скрипта, затѣмъ этотъ путь реализуется въ скриптѣ, и только потóмъ код на сёрверѣ обретает желаемую форму, а затѣмъ изъ скрипта вырубается первоначальный (рудиментарный) варіантъ дѣйствій.

Однако же без примѣровъ не понятно; сейчасъ будутъ примѣры.

Тикъ №1: на сёрверѣ кодъ shinkusaba.css добавляется къ содержимому файла http://410chan.org/css/img_global.css въ конецъ.

Такъ №1: изъ кода shinkusaba.js выбрасывается опредѣленіе и вызовъ функціи «shinkusabaStyles».

Тикъ №2: data-атрибуты >>18069 внесены въ кодъ на сёрверѣ.

Такъ №2: нынѣшній кодъ развёртывателя.

Токъ №2: на сёрверѣ изъ кода гиперссылокъ, имѣющихъ классъ «imglink» (и содержащихъ миніатюры файловъ) можно цѣликомъ убрать длинные атрибуты «onclick» (подобные «onclick="expandimg('17371', '/dev/src/150682259759.jpg', '/dev/thumb/150682259759s.jpg', '960', '720', '200', '150');return false;"» по виду). Рѣчь идётъ объ устраненіи атрибута въ томъ мѣстѣ, которое соотвѣтствуетъ строкѣ кода https://github.com/tslocum/kusaba/blob/79479456141fe2ce937e94b5f5939d838071387b/trunk/inc/classes/board-post.class.php#L1086 въ сыромъ движкѣ Кусабы (для наглядности въ архивѣ приложенъ, подъ именемъ «shinkusaba.diff», однострочный диффъ устраненія атрибута из сырого движка Кусабы; поискъ же въ кодѣ у FBE аналога означенной строки, подлежащаго измѣненію, поневоле приходится оставить на усмотрѣніе очередного автора его).

Тукъ №2: наконецъ кодъ «$('a.imglink').removeAttr('onclick').prop('onclick', null)» можно убрать изъ функціи «destroyThumbnailHandlers» въ джаваскриптѣ.

Тикъ №3: тотъ же, что и тикъ №2.

Такъ №3: тотъ же, что и такъ №2.

Токъ №3: такъ какъ джаваскриптъ ведётъ развёртываніе всѣхъ миніатюръ (включая и мультимедійныя), то сёрверное генерированіе звукопроигрывателей внутри /dev можно убрать.

Тукъ №3: наконецъ кодъ «$('.sound').remove()» можно убрать изъ функціи «destroyThumbnailHandlers» въ джаваскриптѣ. (Въ сочетаніи съ «тукъ №2» можно и опредѣленіе и вызовы этой функціи грохнуть.)

Тикъ №4: убрать изъ сервернаго кода (вмѣстѣ со всемъ его содержимымъ) тотъ тегъ «script», который начинается проверкою «if (getCookie('showwatchedthreads') == '1')» и предшествует логотипу «<div class="logo">».

Такъ №4: раскомментировать строчку «if( getCookie('showwatchedthreads') ) generateWatchedThreadsElement();» (одну изъ послѣднихъ въ shinkusaba.js), стереть двѣ послѣдующія строчки («resizeWatchedThreads()» и «dragWatchedThreads()»), убрать обѣ строчки, начинающіеся комментаріемъ «TODO: undo inline script».

Впрочем, кое-что можно просто прийти и почистить на сёрвере, не трогая джаваскрипт:

  • заменить используемый доктайп новым доктайпом «<!DOCTYPE html>» от языка HTML5, который короче нынешнего доктайпа;
  • из всех тегов «script» убрать атрибут «type="text/javascript"» (который и по умолчанию таков);
  • во всех атрибутах «onclick», начинающихся строкою «javascript:», эту строку стереть как ненужную. (По всей видимости, она была позабыта там автором движка после переноса кода из атрибутов «href», в которых такая строка действительно была должна непременно предшествовать исходному коду для придания ему формы, напоминающей URL.)

No. 20267    
153214160012.gif-(87.38KB, 300×100, 410chan_dev.gif)
20267
>>20265

> сделать локализованные надписи в отслеживаемых тредах, и вообще поубирать <script> в как можно больших местах

И «script», и «onclick» также.

Вообще стремиться надо к тому, чтобы с сервера в джаваскрипт какие-то простые вещи передавались не вызовами джаваскриптовых функций, а простановкою имени класса (для двоичных значений), или приданием значения data-атрибуту (для недвоичных), а чуть более сложные вещи передавались бы через пару-тройку-другую data-атрибутов (как сейчас data-full-src, data-thumb-src, data-full-width, data-full-height, data-thumb-width, data-thumb-height) или через JSON-кодированное значение одного-единственного data-атрибута.

(Это и передачи локализированных надписей касается.)
No. 20268    
153214238910.png-(48.81KB, 624×722, Яндекс_Метрика в HTML.png)
20268
>>17877

>>17879

Пособие https://yandex.ru/support/metrika/general/creating-counter.html в настоящее время предлагает втыкать код Яндекс.Метрики, цитирую, «в пределах тегов <head> </head> или <body> </body> как можно ближе к началу страницы: так он будет раньше загружаться и сможет отправить данные о просмотре в Метрику, даже если посетитель почти сразу же закроет страницу».

И так как тэги «div» и «img» в стандарте прописаны как вопиюще неподходящие для внутренностей «head», а в том же коде есть ещё и пробелы, то лично я б его перед «<div class="logo">» воткнул, наверное.
No. 20269    
Файл
удалён
>>20265

> Я правильно понимаю, что Resizable используется вместо CSS'ного resize из тех же соображений, что высказанны в >>20161?

Ах да, чуть не забыл сказать. У resize в CSS есть ещё два неприятных недостатка, которых скрипт Таннера¹ не имеет:

1) посредством CSSного resize никак нельзя разрешить изменение размера перетаскиванием левой стороны элемента, или нижней, или правой, а всегда приходится тащить только за нижний правый угол;

2) прошлогодняя гугловская идея https://wicg.github.io/ResizeObserver/ находится ещё очень далеко от становления стандартом, так что у CSSного изменения размеров ещё нѣтъ такого удобного события, на которое можно навесить сохранение ширины и высоты в cookies.

________

¹ https://github.com/tannernetwork/resizable
No. 20270    
153214742946.7z-(25.42KB, shinkusaba.7z)
20270
Новая версия архива >>20259 (частично начатая в реплике >>20266) содержит дополненный файл readme.md, в том числе отражающий неудачный опыт >>20229.

Кроме того, методом тыка я обнаружил, что мельтешение стилей может выглядеть ещё более кратким, если выбор темы оформления (Umnochan, Burichan, Futaba, Photon, Kusaba, Bluemoon) на основании значения из cookies будет совершён вообще первым делом после загрузки (даже перед наложением необходимых моему скрипту стилей). Это контрынтуитивно, но пусть будет так.

URL нового скрипта отдельно: https://ipfs.io/ipfs/QmQQVnTJiXNghvdQKfEV3m3qBeS8dQTqxoWKbBaEpQfLri (для подобных >>20233 редиректов).
No. 20271    
15321530326.png-(5.26KB, 525×429, NES_Godzilla_creepy_entropy_Moon4.png)
20271
Реквестирую снабжение тегов, подобных «<a href="#postbox" onclick="javascript:quickreply('17371');" title="Быстрый ответ">», дополнительными атрибутами, подобными «data-thread="17371" class="quickreplylink"».
No. 20272    
153218480183.jpg-(75.62KB, 510×414, uiharu.jpg)
20272
В общем, вот вам репозиторий: https://bitbucket.org/Therapont/fbe-410
1. Для ваших предложений предназначена ветка public.
2. Только администрация 410чана решает, что в этом движке надо, а что не надо. Соответственно, не стоит пропихивать всякие там революционные идеи. На багтрекере уже много всякой лабуды, над которой можно поработать.
3. У нас не прибавилось свободного времени, так что тестирование предложенных изменений будет только тогда, когда будет возможность. Обычно, это какие-нибудь выходные.
4. Код выложен как есть: понятия не имею, как движок ставить и т.д. (И возможно ли его ставить вообще).
5. Забашляйте мне денег.

В первую очередь я от вас ожидаю, что вы приделаете туда видосы и новые скрипты.
В качестве дальнейшего плана разработки ориентируйтесь на мои запросы на багтрекере.
No. 20274    
>>20273
>никакого багтрекера вроде как не видно
Починил.
No. 20275    
153218866953.png-(219.18KB, 1468×1076, FBE repo.png)
20275
>>20274

Ok.
No. 20277    
Файл
удалён
В соответствии с высказанной по адресу >>20272 идеей напилил по адресу https://bitbucket.org/Therapont/fbe-410/pull-requests/1 запрос на замещение кода kusaba.js кодом shinkusaba.js из архива >>20270 с учётом пожелания >>20237 о слиянии CSS-стилей с CSS-файлом и пожелания >>18182 о хранении jQuery на 410чане вместо CDN.

(Для простоты и обозримости никаких дополнительных допилов >>20266 этот запрос не содержит ввиду того, что служит пробным камнем.)

Отдельно отмечаю на будущее, что благодаря появлению открытого репозитория некоторые из тех дальнейших правок, которые по адресу >>20266 замышлялись как многоэтапные, теперь могут в действительности предлагаться как более простой и притом более единый коммит (объединяющий собою изменения кода PHP и кода JS, обуславливающие друг друга). Так что появление это можно только приветствовать, и приветствую.
No. 20278    
Файл
удалён
>>20266

> Впрочем, кое-что можно просто прийти и почистить на сёрвере, не трогая джаваскрипт

В запросе на слияние кода https://bitbucket.org/Therapont/fbe-410/pull-requests/2 привёл минимальный набор предлагаемой зачистки.
No. 20279    
153222217420.gif-(4.73KB, 240×210, 1150267156146.gif)
20279
>>20272
Какого зверя запытали в подвалах инквизиции?

Я, наверное, сегодня ничего сделать не сделаю, но завтра смочь должен портануть хотя бы видео.
No. 20280    
15322366682.jpg-(173.97KB, 1920×1080, 1514491186380.jpg)
20280
>>20279
> Какого зверя запытали в подвалах инквизиции?
No. 20282    
Файл
удалён
В запросе >>20277 мною устранён возможный конфликт слияний, наложением запроса >>20278 на код 410чана вызванный.
No. 20285    
Файл
удалён
>>20277

> Отдельно отмечаю на будущее, что благодаря появлению открытого репозитория некоторые из тех дальнейших правок, которые по адресу >>20266 замышлялись как многоэтапные, теперь могут в действительности предлагаться как более простой и притом более единый коммит (объединяющий собою изменения кода PHP и кода JS, обуславливающие друг друга).

Для иллюстрации этого тезиса я напилил по адресу https://bitbucket.org/Therapont/fbe-410/pull-requests/3 запрос на слияние кода, целиком состоящий из таких единых коммитов.

(В частности, упрощениями в коде функции «formatReflink» на стороне сёрвера подготавливается точка опоры, совершенно необходимая для каждого, кто пожелает к устранению проблемы https://bitbucket.org/Therapont/fbe-410/issues/22 подступиться.)

Теперь у меня вопрос о функции «delandbanlinks». Была ли она некогда совершенно отпилена от кода FBE (или, возможно, ещё ранее того в Кусабе), или же она до сих пор существует в некоторой административной части движка, которую просто не клали в публичный репозиторий и только поэтому я её не вижу нигде?

Ещё у меня вопрос о файле «css/test.htm». Это же ok, если некоторые правки не отражаются на его содержимом, даже когда в действительности меняют серверный код PHP и оттого генерируемый код страниц сайта? В случае необходимости кто угодно может ведь просто сохранить какую угодно страницу под именем «test.htm» заново, правда ведь?
No. 20288    
Файл
удалён
И вот ещё что: а какую пользу приносит собою подкаталог «lib/javascript/clean»? — почему бы не удалить его?
No. 20291    
Файл
удалён
Скрипты из запроса >>20277 теперь действуют на 410чане.

Благодарю администрацию за быстроту реакции.
No. 20292    
>>20291
Почему для хранения избранного и стиля все еще используются куки, хотя даже в kusaba.js, выложенной выше все было сделано через localStorage?
No. 20293    
Файл
удалён
>>20292

На то есть две причины, одна из которых обуславливает хранение стиля в cookies вместо localStorage, а другая — хранение избранных нитей в cookies вместо localStorage.

Хранение стиля в cookies вместо localStorage — это правильно: это первый шаг к тому, чтобы в файле /inc/func/html.php переменить тела функций printStylesheets и printStylesheetsTXT и printStylesheetsSite таким образом, чтобы стиль по умолчанию брался из cookies (и только при их отсутствии — из параметра $prefered_stylesheet). Или, возможно, конструктор Board в файле /inc/classes/board-post.class.php переменить таким образом, чтобы из cookies бралось значение для $this->board_defaultstyle. То или другое позволило бы вообще избавить kusaba.js от функции setStylesheetUsingCookies, а читателя сайта — от промежутка между скачиванием и наложением выбранного стиля.

Хранение избранных нитей, напротив, возможно в localStorage, и для того нужно, например, в функции getwatchedthreads в kusaba.js получать из localStorage список избранных нитей (который сейчас берётся на стороне сервера в threadwatch.php), а на стороне сервера оставить только получение метаданных о количестве новых реплик в каждой из избранных нитей.

Однако это представляется мне делом будущего, а утверждение «в kusaba.js, выложенной выше, всё было сделано через localStorage» представляется несколько преувеличенным, если речь идёт о файле https://pastebin.com/X9HChJp5 (в его строке 222 тело функции getwatchedthreads вообще пусто). Если же это моё представление неверно, то прошу приводить контраргументы; если же речь идёт о какой-либо другой выложенной выше версии Кусабы, то прошу указать точный номер реплики, её содержащей.
No. 20294    
Файл
удалён
Есть ещё один список, который неплохо бы хранить в localStorage — это список скрытых нитей.

Попытка >>20229 показала, что в настоящее время такого хранение нельзя достигнуть переписыванием одного только файла kusaba.js, так как на стороне сервера внутрь HTML в обрамлении тегов SCRIPT вписываются и другие джаваскрипты, убеждённые в том, что список скрытых нитей хранится в cookies — и притом, что ещё важнее, ведущие себя соответственно.

Однако один из коммитов, в запросе https://bitbucket.org/Therapont/fbe-410/pull-requests/3 содержащихся, уничтожит такие джаваскрипты и откроет путь к хранению списка нитей на стороне клиента, тем более что администрацией такое хранение было в реплике >>18017 одобрено, а автором скрипта https://pastebin.com/X9HChJp5 было реализовано почти идеально (если не считать того, что проверка массива после считывания из localStorage не совершалась методом «Array.isArray», и того ещё, что выбранное имя «410chan_hidden» было не очень продуманным ввиду того, что содержимое хранилища localStorage в любом случае браузером всегда жёстко привязывается к домену сайта, так что префикс «410chan_» бессмысленен).
No. 20296    
15323162517.png-(5.51KB, 384×384, 1149378691928.png)
20296
>>20272
Я, конечно, слишком в утро начал, но...
>Код выложен как есть
Там нет config.php, даже с вымаранными значениями. Выяснение того, как переписать кусабовский конфиг под этот займёт время, учитывая, что там используется другой менеджер БД.
No. 20297    
153231875265.jpg-(455.83KB, 1386×1969, C64IhZ9VAAEpVuF.jpg)
20297
>>20296
> Там нет config.php
__config-sample.php -> config.php
скелет базы в 410chan.sql
No. 20298    
>>20297
>__
Пожалуйста, никогда так больше не делайте с важными частями кода. Это один из самых верных способов сказать "сюда вам не надо смотреть".
No. 20300    
Думаю, что просто README нужён.
No. 20301    
>>20293
Зачем на стороне сервера знать, какой стиль установлен у пользователя, когда это прекрасно решается на стороне клиента. Вопиющем недостатком кода кусабы является почти полное отсутствие отделения логики от представления, а мы желаем чтобы сервер еще и стили подставлял.
Говоря о
> Или, возможно, конструктор Board в файле /inc/classes/board-post.class.php переменить таким образом, чтобы из cookies бралось значение для $this->board_defaultstyle
Не находит ли автор сего странным, что в том же классе добавляются в генерируемый им html js-вставки вида
if (getCookie(\'showwatchedthreads\') == \'1\') {' . "\n" . document.write(...

Вопрос, почему же автор кусабы чтобы добавить в html определенный блок в зависимости от значения определенной куки использовал подобный костыль вместо того, чтобы написать
if ($_COOKIE["showwatchedthreads"]) { output .= ...

А ответ в том, что сервер генерирует статический HTML и сохраняет его в файловой системе, и всем пользователям отсылается один и тот же файл, сгенерированный в момент создания последнего поста, и единстывенные куки, которые доступны со стороны сервера, это куки того, кто написал последний пост. Таким образом, если вышесказанное предложение воплотить в жизнь, то когда Вася, который написал последний пост на доске, установил Футабу, то все будут видеть Футабу. Если после него ответит Петя с умночаном, у всех будет умночан. Причем для каждой доски и каждого треда стиль будет разный.
> в его строке 222 тело функции getwatchedthreads вообще пусто
Начиная со строки 325 эта функция хоть в каком-то виде, но есть. Тело той функции пусто видимо потому, что автор решил перенести его в замыкание, изолировав от остального кода.
No. 20302    
При виде контраргумента >>20301 с готовностью меняю своё мнение на противоположное.
No. 20308    
Файл
удалён
Однако финальный из изложенных в реплике >>20294 тезисов справедлив и в этом случае: следует сперва дождаться того, чтобы запрос https://bitbucket.org/Therapont/fbe-410/pull-requests/3 был принят (и код 410чана избавился от джаваскриптов с поведением, альтернативным kusaba.js), а затем реализовывать поддержку localStorage — во-первых, в kusaba.js (для стилей и скрытых нитей — целиком, для избранных нитей — по отношению к хранению сведений о показанности и о размерах и о положении окошка), а во-вторых, одновременно в kusaba.js и в threadwatch.php (для того, чтобы перетащить хранение списка нитей на сторону клиента, но добывание свѣдѣній оставить на стороне сёрвера).

P. S.   Похоже, намѣреніе >>20279 должно быть обновлено.
No. 20309    
Почему спойлеры в автобус работают через жабоскрипт, а не через цсс?
No. 20311    
>>20309
CSS-спойлеры (ычановского типа) не работают с пальцами на мобилках, например. А эти работают.
No. 20312    
153246816328.png-(166.49KB, 1349×642, 2018-07-25 00_34_38-Разработка.png)
20312
У меня одного после обновления такая лабуда при обновлении страницы?
No. 20313    
153247493222.jpg-(1.44MB, 1440×2560, iichan spoiler mobile screenshot.jpg)
20313
>>20311

Но у меня на Ычане работает спойлер в мобильном браузере.

Вот скриншот (Mozilla Firefox на ZTE Axon 7).
No. 20314    
153247527193.gif-(9.72MB, 1116×478, Star Wars - there is no life-forms.gif)
20314
>>20309

Некому было по тому джаваскрипту шарахнуть исправлениями, а не то он бы, по меньшей мере, был перенесён в kusaba.js и не утяжелял страницу собою в атрибутах onmouseover и onmouseout.

>>20312

Лично у меня не наблюдается.

А что если обновить с зажатым Shift?

Да, и если по образцу >>20233 был настроен редирект, то теперь он не нужен — можно отключить.

Если проблемы продолжаются, прошу назвать версию браузера и операционной системы.
No. 20318    
>>20314
После сброса кеша и началось. Если выбрать тему, отличающуюся от Умночана, то после обновления страницы стиль не загружается нужный, только если вручную перевыбрать стиль в списке.
Хром Канари, Вин 10. Полный юзерагент пока не могу скинуть.
No. 20319    
153252164387.jpg-(149.20KB, 613×944, Kanaria (Rozen Maiden) by vesperster.jpg)
20319
>>20318

Сообщает ли Canary в консоль о каких-либо ошибках? (Консоль открывается по F12, если я правильно помню.)

Пропадает ли ошибка, если вместо Canary использовать обыкновенный Хром?
No. 20321    
153252334542.jpg-(183.06KB, 615×800, Kanaria (Rozen Maiden) by kurai aka cry.jpg)
20321
После некоторого погугливания я понимаю, что вышеупомянутое поведение очень похоже на обнаруженный 17 мая баг https://crbug.com/843887 в Хроме всех версий (не только Canary).

По адресу https://bitbucket.org/Therapont/fbe-410/pull-requests/5 я напилил запрос на слияние, отпиливающий этот баг.
No. 20324    
153253712886.png-(122.21KB, 1366×664, 2018-07-25 19_44_26-.png)
20324
>>20319
Вот.

>>20321
Благодарю.
No. 20325    
Кстати, раз тут Мицгол и прочие допильщики, гляньте самый активно допиливающийся на данный момент форк Кусабы, может чего интересного найдёте: https://gitgud.io/devarped/instant-0chan/commits/master
No. 20326    
>>20324
А если куклоподелку отключить, например?
No. 20327    
>>20326
А она уже. Точнее, выключена. Всё забываю инклюды прописать.
No. 20330    
Файл
удалён
Посмотрел скриншот >>20324 и подумал некоторое время.

Если дух предприимчивости ещё не совершенно угас, то рекомендую попробовать вот ещё что: очистить всѣ cookies, которые для сайта 410чана поставлены, и попробовать ещё раз.
No. 20331    
153255450292.png-(115.55KB, 1366×664, 2018-07-26 00_34_04-.png)
20331
>>20330
Ниработаит. Зато теперь правильно отображается выбранный стиль в меню.
No. 20334    
Файл
удалён
>>20325

Напоминаю, что в реплике >>18109 было сказано: «У людей даже от мелочей зловещая долина каждый раз», то есть надо взвешивать не одну только ценность улучшения, но также и его возможность оттолкнуть аудиторию 410чана (и без того невеликую) непривычностию.

А так-то да, по адресу https://gitgud.io/devarped/instant-0chan/commits/master дохѣрищща небезынтересных возможностей.

AJAXовая отправка реплик.

Подсветка исходного кода посредством GeSHi.

Загрузка нескольких файлов к одной реплике.

Возможность использования FFmpeg в качестве альтернативы ImageMagick (то есть в качестве генератора миниатюр) для иллюстраций, а не только для одних только видеозаписей.

Часть кода — на Node.js, прямо >>18028.

Стилизация полос прокрутки.
No. 20336    
Файл
удалён
>>20331

Ну что ж. Это шаг вперёд, но окончательный результат, вероятно, всё же >>20321 потребует.

Ввиду >>20272 пункта 3 ждать придётся, вероятнее всего, по меньшей мере, до будущей недели.
No. 20341    
Файл
удалён
Публикую опровержение своего ранее высказанного в репликах >>20259 и >>20261 первоначального мнения.

По-видимому, мой развёртыватель третьего поколения не является первым в истории отечественного имиджбордизма, так как более пристальное вглядывание в код Архивача убеждает меня в том, что и там используется технический приём, функционально аналогичный (правда, под загружаемую картинку там подсунут не фон с URLом миниатюры, а элемент «img» с URLом миниатюры, а вместо более стабильного решения https://imagesloaded.desandro.com используется просто атрибут «onload», но это уж детали).
No. 20342    
>>20308
> Похоже, намѣреніе >>20279 должно быть обновлено.
Сейчас половина третьего ночи, я дал обещание не сидеть до утра, а я не могу даже оттестировать постинг __аудио__.
>Incorrect integer value: '' for column 'image_w' at row 1
Потому что нет ридми и в sql-конфиге, как и кусабе, просто отсутствуют какие-то дефолты.
К понедельнику следующему патч будет, за большее не ручаюсь.
No. 20344    
Так, надоело.
После того, как почистил куки, стали раскрываться скрытые треды, предположительно после перезагрузки браузера.
Сейчас проверю.
No. 20345    
>>20344
Да, после перезапуска браузера слетает скрытое.
No. 20348    
Файл
удалён
1) Какой браузер?

2) Если открыть отладочную консоль и ввести «getCookie('hiddenthreads')», каков будет отклик?
No. 20350    
153278013848.png-(11.03KB, 1366×67, 2018-07-28 15_14_47-Разработка.png)
20350
>>20348
1) Всё та же Канарейка.
2) Со скрытым закреплённым тредом: "["19666dev"]". После перезапуска браузера: ""
Скриншот консоли после перезапуска прилагается.
No. 20351    
Файл
удалён
>>20350

Я нашёл опечатку в исходном коде, предотвращающую хранение сохранённых нитей в cookies при перезапуске браузера.

Приношу извинения за неё, однако исправлять её ужé поздно, так как и без того в репозитории менее часа назад этот исходный код был убран¹ из ветви public в пользу более новой реализации (вообще не использующей cookies, а использующей localStorage), так что остаётся дождаться её внедрения на сайте 410чана и исчезновения ошибки этим способом.

________

¹ Речь идёт о правке https://bitbucket.org/Therapont/fbe-410/commits/b027855c74cc804d60b9f031b39e60b0359c7c3c

До этой правки опечатка содержалась в строке 355 в файле kusaba.js.
No. 20356    
153282839392.jpg-(44.49KB, 502×658, 1168603512686.jpg)
20356
Несколько отвлечённый вопрос: Issue #8: Картинки-спойлеры. Вам когда-нибудь захочется поменять спойлер-картинку и оставить на уже запощенных к тому моменту постах с картинкой-спойлером старую версию? Или иметь больше одного вариантаа спойлер-картинки? Если да, то я предлагаю хранить в БД путь к уменьшенной копии изображений(файлов), как к Вакабе.

Это также несколько меняет логику добавления видео по очевидным причинам.
No. 20357    
>>20356
Там некая работа по картинкам-спойлерам уже была начата, вроде. Надо на это ориентироваться.
No. 20366    
>>20356

> иметь больше одного варианта спойлер-картинки?

По умолчанию отвѣтъ «да, по возможности», так как по адресу https://bitbucket.org/Therapont/fbe-410/issues/8 сказано: «Опционально: возможность задать для разных досок разные заглушки».
No. 20367    
>>20366
Разные спойлеры на разных досках != разные спойлеры на одной доске. Спрашивалось про второе.
No. 20369    
>>20367
Не нужно. На худой конец делается скриптами, если очень захочется рандомные картинки выводить.
No. 20370    
>>20369
Совас, скоро обновишь на серваке?
No. 20372    
>>20370
Да всё обновлено, вроде.
No. 20374    
>>20372
Скрытое всё ещё сбрасывается перезапуском браузера, а стили сбрасываются по обновлению страницы. Куки и кеш чистил.
No. 20375    
>>20372

Сейчас 410чан всё ещё пользуется той версией кода ветви public, которая была 22 июля, а не той, которая сформирована 28 июля.

Впрочем, так как по адресу >>20272 сказано «тестирование предложенных изменений будет только тогда, когда будет возможность. Обычно, это какие-нибудь выходные», то надо думать, что на этих выходных не представилося возможности.
No. 20378    
153299272272.zip-(5.12MB, screen.zip)
20378
Нормально ли, если при включенной футабе сначала загружается умночановский стиль? Это просто, кхм, не слишком эстетично выглядит при обнавлении страницы. Можно ли это исправить? Чтобы лучше понимать о чём я, прилагаю запись экрана в архиве.

Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0; Funtoo; скрипты 410chan’а включены.
No. 20379    
>>20378
>обновлении страницы
fixed
No. 20380    
>>20378

К сожалению, это так и задумано в качестве оборотной стороны кэширования кода страницы (одного на всех), как нам автор реплики >>20301 разъясняет.
No. 20381    
Файл
удалён
С сегодняшнего утра 410чан работает на новом коде сайта, за что вдругорядь благодарю администрацию. А теперь — несколько слов о произошедших изменениях.

Во-первых, генерируемый код HTML сильно почищен. В нём не будет атрибутов «onclick» у миниатюр, не будет тегов «audio» у звуковых файлов, не будет скриптов скрытия у каждой нити обсуждения, не будет генератора окошка «Избранные нити», не будет вызовов функции «highlight». (Функции, ранее исполнявшиеся этими разрозненными кусками кода, теперь исполняет kusaba.js.) Ожидаемый эффект — уменьшение размера страниц, ускорение их поступления с сервера.

Во-вторых, упрощён селектор, на который подвешен обработчик гиперссылок «Полный текст». Ожидаемый эффект — основанное на https://api.jquery.com/on/#event-performance ускорение обработки события. В качестве побочного эффекта на кэшированных страницах (особенно на ненулевых страницах досок) эти гиперссылки вернутся к прежнему поведению (открытие страницы обсуждения, а не раскрытие хвоста реплики) — но только на время, то есть до тех пор, пока кэш не обновится по мере создания новых нитей обсуждения.

В-третьих, сделан первый шаг к реализации пожелания >>18017 о хранении как можно большего количества данных не в cookies, а в localStorage. Сейчас именно localStorage используется для хранения данных о выбранном стиле (Umnochan, Burichan, Futaba, Photon, Kusaba, Bluemoon), о скрытых нитях обсуждения, о видимости и положении и размерах окна «Избранные нити». Ожидаемый эффект — заметное уменьшение объёма cookies и оттого заметное ускорение передачи обращений к серверу 410чана. Эффект наступит по мере того, как ранее установленные cookies протухнут (через год для стилей, через месяц для остальных данных), но он наступит мгновенно для новых посетителей 410чана и для тех из вас, кто вручную очистит cookies. В качестве побочного эффекта сегодня для всех обнулены настройки стилей, и скрытых нитей, и видимости и положения и размеров окна «Избранные нити»: их придётся заново задать в пустом новом хранилище localStorage. В качестве другого побочного эффекта пользователи различных адресов сайта получают различные (первоначально пустые) хранилища, а во браузерах различными сайтами считаются даже http://www.410chan.org относительно http://410chan.org (без www) или https://410chan.org относительно http://410chan.org (без HTTPS). Это техническое ограничение, насколько мне известно, задано непреложно и непреодолимо, поэтому читателям придётся один раз определиться с адресом и протоколом и впредь его придерживаться.

В-четвёртых, отмеченные по адресу >>20344 и >>20312 ошибки должны были исчезнуть (первая — ввиду перехода на localStorage, вторая — ввиду попытки обхода найденного по адресу https://crbug.com/843887 бага). Если они не исчезли, прошу сообщить.
No. 20382    
153304681364.jpg-(188.69KB, 962×720, good_job.jpg)
20382
>>20381
Good Job!
No. 20383    
За изменения, конечно, спасибо, но побочек столько, что лучше бы их [изменений этих] не было.
No. 20384    
>>20381
Всё работает, спасибо!
No. 20386    
Файл
удалён
К сожалению, номерные гиперссылки (при нажатии на номер реплики справа от слова «No.» в заголовке реплики вставляющие >>номер в поле ввода), хотя и продолжают преспокойно работать на страницах досок, перестали работать на страницах отдельных обсуждений.

Это заранее не предвиденный побочный эффект от сáмого первого и далеко не завершённого ещё шага в попытке подступиться к решению проблемы, упомянутой по адресу >>/d/1432 и затем ещё https://bitbucket.org/Therapont/fbe-410/issues/22 (проблемы, состоящей в том, что номерные ссылки перебрасывают на страницу обсуждения со страниц «Первые 100 сообщений» и «Последние 50 сообщений»).

Прошу и это неудобство считать временным, так как оно замечено, причины его опознаны, так что и исходный код, ликвидирующий его (вместе с вышеозначенною проблемою) я надеюсь завершить в скором времени.
No. 20387    
>>20386

> надеюсь завершить в скором времени

И завершил: https://bitbucket.org/Therapont/fbe-410/pull-requests/8
No. 20388    
Файл
удалён
Более-менее официальное объявление https://twitter.com/jredmond/status/1024474544784850944 (согласующееся с моими изложенными по адресу https://twitter.com/FidonetRunes/status/1024591330310324225 наблюдениями) гласит, что путинисты зароскомнадзорили BitBucket.

Прошу поделиться инструкциями по настройке работы TortoiseGit через TOR под Windows, а не то никогда прежде мне не доводилось этим заниматься.
No. 20389    
>>20388
Вроде в битбакете уже поменяли еще раз на незаблокированные:
https://twitter.com/PavelVorobyov/status/1024538968774324225
https://twitter.com/zloy_i_tupoy/status/1024543583729266688
Собственно, битбакет же сейчас в процессе смены адресов, о чем они предупреждали последнюю неделю, так что будет шатать.
No. 20390    
>>20388
>>20389
Попробуй пока в хосты руками прописать незаблокированный айпи, и сообщай результаты.
No. 20391    
Спасибо, пока что всё прошло без каких-либо моих действий — не знаю, надолго ль.
No. 20396    
Файл
удалён
Снова отрубился доступ.

Поневоле пришлось совету >>20390 пока что последовать. Результаты положительные: доступ восстановился.
No. 20397    
>>20396
Я подключил себе ipv6 от Hurricane Electrics. Через него открывается
No. 20398    
Упомянутый в реплике >>17704 вызов «alert» и упомянутый в реплике >>17733 атрибут «onlick» убраны из ветви public два часа назад.¹

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

________

¹ Коммит https://bitbucket.org/Therapont/fbe-410/commits/ab5e49eb6cdda202cb896a5f33dc34733917d0ae
No. 20401    
Файл
удалён
>>19198

> надобно сделать аккуратный обход того, что расширение файла != расширение превью во всех возможных местах.

Предвижу, что это окажется необыкновенно полезным и для создания миниатюр в формате PNG из анимаций в формате GIF — для создания, о пользе которого я ранее рассуждал в реплике >>19336 и в нескольких дальнейших.

>>17376

> А вы учли, что есть ещё кнопка «Развернуть все изображения», которая появляется в нитях, где много картинок?

Надо бы не забыть перетащить и её логику с сёрвера во браузер, облегчив всѣ такие страницы.

>>17408

> <meta name="twitter:card" content="summary">

Хорошая была идея.

>>18182

> Он может исчезнуть в любой момент без особенных проблем.

Кажись и исчез, кстати.

>>18819

> Можно ffmpeg.

Установлен ли FFmpeg на сёрвере в настоящее время?

Как выглядит результат работы команды «fmpeg» без параметров? — или хотя бы каков номер версии, в первой строке выводящийся?

Спрашиваю это оттого, что мысль >>20325 выглядит плодотворною по отношению к коммиту https://gitgud.io/devarped/instant-0chan/commit/351c5f0230ec52e2738a589c1ee0fefca08639b8 в коде Зерочана, который добавляет поддержку FFmpeg в качестве генератора миниатюр (не только миниатюр видеозаписей, что понятно, но и миниатюр обычных файлов, то есть в качестве альтернативы для внутриPHPшной библиотеки GD). Что позволит https://ru.wikipedia.org/wiki/Фильтр_Ланцоша напилить и вообще КАЧЕСТВО.

(Ожидаемый эффект — резкий рост качества и скорости генерации миниатюр; ожидаемый побочный эффект — рост требований к количеству свободной оперативной памяти, потому что наряду с PHP в ней будет время от времени FFmpeg крутиться. Много ли на сёрвере свободной оперативной памяти, хорошо ли настроен swap?)
No. 20402    
Файл
удалён
Реплику >>20401 следует, поразмыслив, дополнить (и дополняю) упоминанием о том, что, хотя коммит https://gitgud.io/devarped/instant-0chan/commit/351c5f0230ec52e2738a589c1ee0fefca08639b8 был шагом в правильном направлении, он оставляет ещё желать много лучшего и подлежит, по меньшей мере, полудесятку более или менее значительных улучшений, если впиливать его в код FBE.

И улучшил, и впиливаю: https://bitbucket.org/Therapont/fbe-410/pull-requests/12
No. 20403    
153334971243.png-(324.34KB, 919×825, IPFS demo screenshot.png)
20403
По адресу http://ii.yakuji.moe/d/res/232761.html#232834 нетрудно видеть, что чуть более двух лет тому назад я счёл, что одной из важных проблем современного имиджбордизма является одновременное достижение двух следующих целей, находящихся друг ко другу в кажущемся противоречии:

1) Преодоление лимита объёма файлов.

2) Стремление не перенагружать хостинг хранением крупных файлов, а канал связи с сайтом — раздачею крупных файлов.

Наличие в коде конфигурации Кусабы настроек с названиями «$cf['KU_WEBCORAL']» и «$cf['KU_BOARDSCORAL']» ясно говорит нам, что необходимость такого достижения сознавал (чуть более, чем наполовину)¹ и создатель Кусабы — и предусмотрел возможность, позволяющую возложить задачу файлораздачи на сеть узлов https://en.wikipedia.org/wiki/Coral_Content_Distribution_Network (действовавшую с 2004 по 2015 год).

Два года назад такое возложение было бы ужé не возможным (ввиду гибели Coral CDN), однако я предположил, и небезосновательно, что P2P-распределённая файловая система IPFS могла бы взять на себя задачу хранения и раздачи крупных файлов, тогда как на имиджборде оставалось бы только поставить ссылку, в IPFS ведущую.

Последовало пространное обсуждение, и наконец после ряда экспериментов (которые сейчас по адресу http://ii.yakuji.moe/b/res/4157230.html можно видеть) автор репозитория https://github.com/Kalaver/ii2ipfs сочинил юзерскриптовую реализацию моей мысли.

Теперь же впору подумать о том, как подобная реализация могла бы выглядеть в рамках FBE.

Прежде всего, попытка загрузки крупного файла на имиджборд могла бы сопровождаться появлением заглушки «крупный файл» (функционально аналогичной заглушке «спойлер», то есть всегда одной и той же для однотипных случаев) с гиперссылкою, ведущею в IPFS, если у читателя сайта, пытавшегося загрузить файл на доску, была установлена минимальная поддержка IPFS — работающий демон с доступным API (либо по адресу «localhost:5001» непосредственно от демона, либо как объект «window.ipfs» от расширения-компаньона²). Это избавило бы от хостинга крупных файлов, в то же время позволив как бы публиковать их.

Кроме того, вероятно, отдельные настройки могли бы предусмотреть IPFSизацию всего (или почти всего) того, что в настоящий момент настройками «$cf['KU_WEBCORAL']» и «$cf['KU_BOARDSCORAL']» корализируется — и что можно в подкаталог /ipfs/ засунуть, после чего запустить «ipfs add --nocopy» и опереться на https://github.com/ipfs-shipyard/ipfs-companion/issues/16#issuecomment-336641844 (раз уж на https://github.com/ipfs/notes/issues/104 опереться нельзя за отсутствием реализации). Это избавило бы от крупного траффика в тяжёлых случаях пиковой нагрузки.

То и другое потребует, разумеется, оповестительных изменений в FAQ, ведéния пропаганды IPFS среди читателей. Возможно, администрация не готова к тому — и сообщество также не готово — по соображениям, в реплике >>18109 изложенным («У людей даже от мелочей зловещая долина каждый раз»).

____________

¹ Я пишу «чуть более, чем наполовину», так как корализация решает только задачу избавления сайта от крупного траффика, но не задачу избавления от хранения крупных файлов. Первая задача несколько больше второй, так как способна порождаться не одним только скачиванием крупных файлов, но также и изобильным скачиванием мелких — например, в результате slashdot-эффекта, или хабраэффекта, или пиковой популярности некоторой имиджбордовской публикации в какой угодно другой обширной социальной сети.

² По адресу https://github.com/ipfs-shipyard/ipfs-companion#ipfs-api-as-windowipfs есть о том подробности.
No. 20405    
153340437173.png-(3.41MB, 1920×1036, Chuunibyou demo Koi ga Shitai! Take on Me - nekota.png)
20405
>>20401

> Надо бы не забыть перетащить и её логику с сёрвера во браузер, облегчив всѣ такие страницы.

И перетащил: https://bitbucket.org/Therapont/fbe-410/pull-requests/14
No. 20408    
153341072314.jpg-(195.23KB, 1250×834, лисоняшность ×6.jpg)
20408
Продолжением мысли >>20403 является мысль о том, что имиджборды принимают один файл (некоторые — несколько файлов), тогда как IPFS может принять целый каталог с подкаталогами (и даже, при необходимости, с подкаталогами подкаталогов), содержащими сколько угодно файлов.
No. 20411    
>>20410
1. Нехѣръ перекатывать нити администрации.
2. Нехѣръ перекатывать нити до того, как они сколько-нибудь утонут.
No. 20413    
153343211891.png-(2.42MB, 1920×1036, Chuunibyou demo Koi ga Shitai! Take on Me - nekota.png)
20413
Оке.

В таком случае я стираю вышеозначенный перекат и предоставляю администрации перекатывать нить по собственному усмотрению и разумению.

В настоящий момент она утонула ниже всего одной другой нити, не считая прикреплённой.
No. 20417    
Надо вернуть возможность после использования «Развернуть все изображения» одновременно свернуть все картинки обратно, иначе это крайне неудобно.
No. 20418    
153352726655.png-(15.11KB, 512×512, 1192090314209.png)
20418
>jpeg в kusaba.js
Кусаба внутри переименовывает все jpeg в jpg.
No. 20420    
153356572740.png-(1.96MB, 1920×1080, Sword Art Online - gamemaster console.png)
20420
>>20418

Исходный код для устранения обнаруженной чрезмерности был помещён в запрос на слияние, по адресу https://bitbucket.org/Therapont/fbe-410/pull-requests/16 опубликованный.

>>20417

Исходный код для реализации предложенной отмены поведения был помещён в запрос на слияние, по адресу https://bitbucket.org/Therapont/fbe-410/pull-requests/17 опубликованный.
No. 20421    
153358019958.png-(1.67MB, 1920×1080, Sword Art Online - gamemaster console.png)
20421
Теперь надо сказать несколько слов о том, с какими новыми возможностями 410чан вступает в эту неделю, и скажу.

Обнаруженный в реплике >>20386 недочёт устранён, и с ним устранена ещё та проблема (ранее в реплике >>/d/1432 и затем ещё по адресу https://bitbucket.org/Therapont/fbe-410/issues/22 упоминавшаяся), которая состояла в том, что номерные ссылки напрасно перебрасывали на страницу обсуждения людей, находившихся на страницах «Первые 100 сообщений» или «Последние 50 сообщений». Устранена она с бóльшим размахом, так что теперь и во включённом режиме «Быстрый ответ» нажатие на номер реплики вставляет >>номер в текстовое поле, никуда не переходя.

Дополнительно одержана победа и над склонностью формы ввода подлазить под верхнюю навигационную панель в момент нажатия на гиперссылку «Быстрый ответ».

Обнаружен и обойдён в движке https://github.com/tannernetwork/resizable такой баг, который иногда сообщает о нулевой ширине и высоте блока. Он проявлялся время от времени как изменение ширины и высоты оконца «Избранные нити» к прежним значениям по умолчанию, совершавшееся в момент его открытия. Теперь не проявляется, потому что теперь нулевые значения отбрасываются, игнорируются.

Автором реплики >>/d/1837 было обнаружено, что автоматическая вставка в текстовое поле того >>номера, который в адресе страницы после «#i» указывается, нужна не во всех случаях: иногда он в том поле указан уж, особенно если страница открыта переходом по кнопке «Назад» после сообщения об ошибке (например, о протухшей фапче или о превышении предельного размера реплики или размера файла). Теперь повторная автоматическая вставка >>номеров предотвращается.

Автором реплики >>/d/1835 было обнаружено, что на страницах издавна стоит джаваскрипт, пытающийся на лету отредактировать стили страницы в Chrome или в WebKit, но терпящий в том неудачу и оттого порождающий ошибку. Этот скрипт был уничтожен физически; заодно и скрипт, совершающий проверку состояния «проезд оплачен» у фапчи, был убран со страниц сайта и переставлен в kusaba.js, чтобы не утяжелять страницы собою, а кэшироваться.

Такому же переносу в kusaba.js был подвергнут и скрипт, обрабатывающий наведение на спойлеры, но ожидаемый эффект (уменьшение объёма страниц) выглядит значительнее, так как обыкновенно на странице бывает не один спойлер, а несколько, и раньше каждый спойлер снабжался своим отдельным скриптом, а теперь одним на всех.

Полноразмерным картинкам придан блочный стиль отображения, так как в некоторых браузерах, по-видимому, этим обеспечивается более раннее начало отображения рамки, имеющей приданную картинке ширину и высоту — хотя и пустой рамки (потому что в начале файл не начал ещё поступать из Сети), но имеющей фон (потому что раскрыватель миниатюр третьего поколения). Это только первый шаг; в следующий раз блочный стиль будет придан не одним только полноразмерным картинкам, но и миниатюрам также (потому что чем раньше их рамка отобразится и займёт своё место на странице, тем меньше перевёрстывания и мельтешения увидит и ощутит читатель при первом заходе в ещё не посещавшуюся нить обсуждения, в особенности если это длинная нить со множеством иллюстраций).

Вы видите, что на сей раз большинство изменений посвящается устранению различных глюков, ошибок, оплошностей, недочётов, неудобств — и так далее.
No. 20422    
Вот в ответах «Сообщение слишком длинное. Полный текст.» разворачивает сообщение, а в ОП-постах — нет.
No. 20423    
Файл
удалён
>>20422

Исходный код для устранения обнаруженного недочёта был добавлен в запрос на слияние, по адресу https://bitbucket.org/Therapont/fbe-410/pull-requests/16 опубликованный.
No. 20431    
153366438638.jpg-(491.10KB, 700×525, лисоняшность ×10.jpg)
20431
К предложению >>20248 прилагаю адрес http://ignitersworld.com/lab/radialIndicator.html одного из тех плагинов, которые способны стать подспорьем в намерении достигнуть желаемого.
No. 20444    
Файл
удалён
>>20279

Читал https://bitbucket.org/Therapont/fbe-410/pull-requests/15

Много думал.

Возникло полдесятка вопросов, и задам их.

Вопрос №1. Как получилось, что в начальном сопроводительном тексте значение «mediatype='image'» задаётся не только для «'jpg'» и «'png'» и «'gif'», но также и для «'xcf'» и «'svg'»? Точно ли в коде FBE есть средства, способные обеспечить генерирование миниатюр для них? (Кроме того: не следует ли вообще подумать об отказе от принятия файлов SVG на хост 410chan.org ввиду того, что подобный https://stackoverflow.com/a/5381905 джаваскрипт внутри SVG может потырить cookies, если автор SVG не добронамерен?)

Вопрос №2. Как получилось, что в начальном сопроводительном тексте есть SQL-инструкции для назначения значений «mediatype='image'» и «mediatype='audio'», но не «mediatype='video'»? (Это потому, что в настоящее время в SQL-базе не предполагается наличие ранее заданных типов, которых надобно обозначить в качестве видеофайлов? Или есть другая причина?)

Вопрос №3. Точно ли в командной строке, вызывающей FFmpeg, нужен параметр «-r 1» в том случае, когда параметр «-frames:v 1» там также ужé есть? Зачем?

Вопрос №4. Правильно ли я понимаю, что изменения, внесённые в файл «inc/classes/upload.class.php» с двухсот восьмой по двести тридцать седьмую строку (вычисление процентного отношения и умножение с последующим округлением, в случае видео подменяющие простой вызов «getimagesize($this->file_thumb_location)») — это костыль, вызванный к жизни тем обстоятельством, что при вызове FFmpeg в командной строке использован параметр «'-s '.$new_w.'x'.$new_h», который не радует тем, что миниатюра всегда приобретает форму прямоугольника размером $new_w на $new_h пикселов (при настройках по умолчанию — и вовсе форму квадрата), тогда как её хочется видеть пропорциональною размерам кадра? В таком случае почему бы вообще не отказаться от употребления параметра «-s» в пользу употребления видеофильтра «scale» (по адресу https://ffmpeg.org/ffmpeg-all.html#scale-1 разъясняемого) подобно тому, как это делает коммит https://bitbucket.org/Therapont/fbe-410/commits/0225b5f335cce9b51cd891f151e94963328685f6 внутри условия, занимающего строки со 103 по 107 в файле «inc/func/posts.php»?

Вопрос №5. Как так получилось, что в командной строке при вызове FFmpeg не используется ни параметр «-q 1», ни какое-нибудь другое средство контроля за качеством генерируемой миниатюры? Точно ли можно полагаться на настройки качества, используемые FFmpeg для JPEG по умолчанию?
No. 20445    
153385449521.png-(8.69KB, 384×384, 1149377372369.png)
20445
>>20444
Вам, наверное, не понравятся мои ответы.
>1
Оно там потому что я углядел эти расширения тут в списке доступных к постингу типов. Если тут миниатюра не генерируется на xcf, то, конечно, нужен mediatype='misc'. Но svg прописан отдельным исключением в inc/classes/upload.class.php, строки 113-118 этого PR. Что делать с уже существующем прецедентом принятия таких файлов, решать не мне.
>2
Потому что я старался делать минимальные изменения, а значит не вводить новых типов в установку по-умолчанию. В любом случае, нужно б написать более полное ридми, что и зачем требуется при добавлении типов.
>3
Кажется, я просто скопировал это с моего патча для Ычана, а то было взято откуда-то ещё. Если я правильно читаю документацию -r, это может немноого помочь в случае, если кто-то поигрался с временем ключевых кадров.
>4
Потому что я не дочитал до доков по этому фильтру.
>5
Потому что дефолтное качество работает на моей машине. И, кажется, во всяких форках Вакабы.

Впрочем, я вполне могу поправить 4 и 5, скажем, завтра? Или вы можете отослать PR, который затем... и далее по списку.
No. 20446    
>>20445
>тут миниатюра не генерируется на xcf
Вроде бы, читки выложенного в репозиторий исходного кода должно быть достаточно, чтобы понять, что не генерируется.
No. 20448    
>>20446
Вовсе нет, если для тебя xfc - это просто ещё один формат картинок, который должен быть скушан комбайном без всяких проблем.

У меня одного отвалилась капча?
No. 20449    
>>20448
В общем, xcf таки не может быть скормлен комбайну. Ладно. Обновлю тогда через пару часов.

А капча отваливалась из-за таймаута.
No. 20451    
Новая нить: >>20450
Удалить сообщение []
Пароль  
[Mod]