Замечания и предложения по нему, а также их обсуждение. Предыдущий тред >>1000000.
>>1000578Так я конкретно сейчас и не говорю, сделайте мне движуху, Соусу не надо, ну ок теперь уж. Я говорю, что бывшая не сохранилась.А сильно выделяющихся и забивающих эфир почти гарантировано выпиливают, или административно, или коллективным шиком.Да, может и я чем-то отчасти "виноват", может, слишком аутичные вещи больше волнуют, про дно русского сетевого самиздата/MMORPG/Warhammer/аниме нулевых/что там ещё сказать нечего, а жизни настолько нет, что и написать нечего, а совсем нытьё не хочется, и ещё по ощущениям оставшиеся совсем другого поколения, и зашикают если не самоцензурироваться по самое.> Но я честно без понятия что там происходит ибо неинтересноГде? На 410? А форк почему интересен?? Настолько, что активное участие... СырноНепоняла> заграница давно забаненаНа 410? СырноНепоняла
>>1000581Внеэрэфье (ну, или куча нероссийских IP) действительно было побанено на 410: не подгружалась капча. Если я верно помню, после того, как (не) Лина вайпала Ычан, и Новерь и Чио тоже под вайпом оказались, ввели такие ограничения. Тогда, видимо, сделали исключения для некоторых IP, но потом то ли переезд случился, то ли ещё что-то, и эти исключения слетели, из-за чего мне было пришлось просить Соуса внести меня в белый список.Но, кажется, ныне эти ограничения убраны. Ну, или с японского IP у меня запостилось.
>>1000581Меня интересует форк как явление, и ящитаю что люди заслуживают большего чем заходящий раз в две недели косплей М-т. Нынче я и на первый форк захожу больше проверить, не просачивается ли какая гадость через автомодерацию потому что кота опять нет и не пишут ли что тут сломан постинг.>> заграница давно забанена>На 410?На 410, ещё с давишних вайпов. Когда мне надо там постить, я пользуюсь японской проксей.
Неплохо бы сделать авто-редиректhttps://014chan.org/b/src/161336529851.png ->https://014.yakuji.moe/b/src/161336529851.pngА то Кот никогда не поправит.
https://bulochka.org/d/res/841.html#1037
>>1000584Но вроде у нас все картинки старых тредов живы? Кроме тех, которые в удалённых тредах. Странно, что 404.
>>1000586Найти и докопировать тоже сойдёт.
>>1000584Так картинки доменом переехали на https://014.cdn.ganbaranai.moe/b/src/161336529851.png
>>1000588Да, точно. Но всё равно, как и в >>1000557-случае, что-то замечено. Тогда тот урл[-паттерн] пусть и отправляет на ганбаранаи, зачем он такой 404-й?
Или это "защита от РКН"?
>>1000590Эх, если бы от Р.
>>1000590Это "если прибьют картинки, то хотя бы только картинки".Да и в целом, держать медиа на медаиасервере а всё остальное на побыстрее правильно дешевле.
>>1000533>>1000555Убрал KU_TRADITIONALREAD, ссылки на посты на текстовых досках теперь в class="ref|$board|$thread|$post|" формате. Хотя для read.php $thread там теперь не нужно. JS не трогал.Корректно обрабатываются ссылки с обычных борд на посты текстовых, хотя релятивность текстобордового ID вносит в код некоторые сложности, ну и без заглядывания в HTML за абсолютным ID поста ссылку не сделать.В stringformatting код для перемещания (в архив) тредов для текстоборд пока не будет работать верно. Нужно менять регулярки и callback.Для запросов в read.php и в parse.class.php поставил проверки, что действительно ctype_digit для постового ID и действительно lowercase latin ASCII для бордоимени. После всех проверок интерполируются в GetAll() без escape'а. Допустимо?Did you know? Хотя описание на странице создания доски говорит для имени директории Только буквы и цифры, вроде можно сделать имя с чем угодно, кроме ' ', '/', и '|'. В частности, '_'. Но регулярки для межбордовых ссылок, что на Чио, что у нас, понимают только буквы.Не проверял, работает ли read.php с флагами. BTW, мы точно хотим инкапсулировать любое имя столбца, таблицы или alias'а в backtick'и?Не работает удаление постов. BTW, https://codeberg.org/FBE410/fbe-410/issues/60 баг с bulk deletion касается нас тоже. На Чио я решил, сделав проверку, был ли уже удалён удаляемый пост, но по-хорошему, наверное, стоит ещё оптимизировать, чтобы сначала удалялись треды, затем удалённые посты исключались из bulk'а, и уже затем удалялись одиночные посты.Кажется, были какие-то проблемы с созданием (тексто)доски, поправил.Не применял автоформатирование.Возможно, дальше займусь чинить предпросмотр.Возвращаясь к текстодоскам, они нам как концепт точно нужны? Предпросмотр там есть, но теперь и для картинкодосок, тоже. ASCII art можно через [code]. Если нужна доска, где нельзя прикладывать картинки, то не проще сделать Запретить прикладывать картинки галочку?
class="ref|$board|$thread|$post|"
[code]
> ну и без заглядывания в HTML за абсолютным ID поста ссылку не сделатьТо бишь, чтобы на пост текстоборды сослаться с другой борды/треда, нужно, чтобы на него где-то уже была ссылка. Так что если оставлять текстоборды и относительные ID, стоит отображать информацию о реальных наружу.
>>1000600>BTW, мы точно хотим инкапсулировать любое имя столбца, таблицы или alias'а в backtick'и?Мускуль это позволяет, но вообще нет, это не 100%-портируемо.>действительно lowercase latin ASCII для бордоимениЯ бы там цифры и -_ тоже разрешил>На Чио я решил, сделав проверку, был ли уже удалён удаляемый пост, но по-хорошему, наверное, стоит ещё оптимизировать, чтобы сначала удалялись треды, затем удалённые посты исключались из bulk'а, и уже затем удалялись одиночные посты.Как пропатчено правильнее всего конечно, если бы получить всю цепочку удаляемых постов от одного поста было бы нетривиально (ну как в комментах с мультиответами в ветке). Но если уж делать оптимизацию, то разделить Post.Delete на функцию взаимодействия с файлами и функцию взаимодействия с постами, в модерке дропнуть все посты и их детей одним вызовом, затем эти же строки обернуть в Post и позвать только удаление файлов. UNIQUE не забыть только.>Если нужна доска, где нельзя прикладывать картинки, то не проще сделать Запретить прикладывать картинки галочку?Лол_и_правда_ведь.жпгТогда можно и выпилить. Но аплоад-доски лучше оставить имо, там уж совсем отображение другое. Хотя наверное можно и только через классы и css?
> https://bulochka.org/d/res/841.html#1042Часов 6. Но это не точно.
Починил предпросмотр. Убрал setLocale, вроде parse.class.php локалеинвариантный.Починил удаление, кроме bulk deletion. Там было два основных момента.В отличие от 410, стояло if(!isset($_POST['message'])) $_POST['message'] = ''; перед if(CheckValidPost()). Для чего оно было добавлено? CheckValidPost возвращал бы false, будь message unset'нутым, и тогда уже проверялось бы наличие постов на репорт/удаление. Так что я убрал if(!isset внутрь блока if(CheckValidPost()){}.Поскольку типы у нас теперь строгие, попытка escape'ить $this->post_id вызывала ошибку. Убрал из класса Post mysqli_esc() для ->post_id, ->post_parentid и для ответов БД на запросы.Расширил допустимые символы в бордоимени до [\w]. Hyphen пока включать не стал; проверить, везде ли posts_ оборачивается в backtick'и и решить, что делать если нужна портируемость. ANSI_SQL?Переписал addboard. Заменил sleep(5) на spinlock с usleep(100000) шагом. Там точно надо ждать и нету ли каких-нибудь менее затратных примитивов синхронизации для create table?Не применял линтер.Применить, проверить, протестировать, смёржить в котокафе, и я бы >>1000497 и >>1000500 уже занялся тогда.Возвращаясь, к возникшей ситуации с if(CheckValidPost()){}, думаю, было бы неплохо разделить board.php на несколько разных endpoint'ов.А по posts_, если когда-нибудь убирать текстодоски как отдельный тип, то в догонку такой вопрос. Насколько имеет смысл отказаться от архитектуры, где под каждую доску своя таблица, и вместо этого сделать единный posts с composite key по (boardname, post_id)? Кажется, много чего упростило бы ценой, может, нескольких «лишних» полей в таблице под разные типы досок.
if(!isset($_POST['message'])) $_POST['message'] = '';
if(CheckValidPost())
CheckValidPost
if(!isset
if(CheckValidPost()){}
posts_
>>1000604>проверить, везде ли posts_ оборачивается в backtick'иВ идеале обязан.>Там точно надо ждатьДа вроде нет? CREATE TABLE блокирует и так.>Применить, проверить, протестировать, смёржить в котокафеСкорее всего я не смогу это сделать раньше 12го.>Насколько имеет смысл отказаться от архитектуры, где под каждую доску своя таблица, и вместо этого сделать единный posts с composite key по (boardname, post_id)?Основная проблема это правильно дёргать генератор нумерации для каждой доски, но в рамках одной транзакции если всё делать должно работать.Вторая проблема это что индивидуальные базы меньше по размеру и проще их обходить, но тут не те размеры.Так как тут один процесс контролирует всё и делать разный доступ к таблицам не получится, проще слить.>нескольких «лишних» полей в таблице под разные типы досокПросто вынести их в отдельную таблицу и через JOIN. Особенно файлы хорошо выносятся.
Предлагаю все рефлинки на посты, которые ведут в другой тред, не тот, в котором запощен пост с рефлинкой, помечать маленькой стрелочкой справа: https://www.freepik.com/search?format=search&iconType=standard&query=arrow+link&type=icon
>>1000606Думаю, реализовать можно. Но SVG-значком или юникодом? Если SVG, то интересно узнать, откуда были взяты значки, которые сейчас используются. Стоит взять из той же серии, если есть.BTW, помнится, звучала как-то также просьба сделать, чтобы на +50 и -100 страницах рефлинки, пока возможно, вели на них же, а не на целый тред. Надо? И если ссылка ведёт извне страницы-отрывка на полную страницу треда, тоже добавлять arrow link?Also, есть ли идеи, как запилить preview поста, на который ведёт ссылка, для мобилок? Сейчас, если long tap'нуть, то срабатывает, но может выйти за пределы экрана и перекрывается браузерным меню.
>>/b/1005489'%' — это вам не '%'!Озадачиться ли мне добавлением японских символов в разметку или можно положить дело в долгий ящик?
>>1000607> Но SVG-значком или юникодом?Проще(?) Юникодом. Только вот этого устоявшегося символа external link там, кажется, нет. Или не находится по arrow / link substring-ам в имени.И надо ещё стрелочку выбрать! И проверить её на отображаемость в основных ОСях. Или не надо.Вон Supplemental Arrows-C даже на дизайнерском Маке у кого-то не рендерится. (у меня так же на Шин)> Если SVG, то интересно узнать, откуда были взяты значки, которые сейчас используются. Стоит взять из той же серии, если есть.Вспоминается что-то, что их же конвертировали из растра? А брали их откуда-то ведь как бы не до 2010-го года ещё! Но это те которые вверху.Да и какая в данном случае "серия"? Что его, в красненький красить или жирно рисовать? Хоть это и устоявшийся в некотором роде символ (в уже старом вебе... который умирает/убивают. Сейчас "устаивается" что-то из Android вроде бургера... www.linux.org.ru/forum/talks/17692956), но как-то почему-то подозреваю вообще вряд ли он там будет, даже там, откуда недавно "облачко ответа" взято.a.extref::after { content: "⬏"; padding-left: 2px; font-size: small; text-decoration: none; display: -webkit-inline-box;}⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯> Надо?Мелочёвка, но если не лень.> пока возможноВсмысле, если попадает в страницу-отрывок?> И если ссылка ведёт извне страницы-отрывка на полную страницу треда, тоже добавлять arrow link?Хорошая идея!Ссылка на посты с других досок - очевидное исключение для всей фичи.Также там не рефлинки, а ссылки No и с номером поста — та которая с номером поста выглядит как [...]/d/res/1000357last50.html#i1000552. Зачем? Выглядит как баг ("last").> AlsoПока phoneпостингом не занимаюсь, ничего не могу сказать. Пофиг. По-моему (и вообще) там в этом важно быстро запомнить как референсируемый пост визуально выглядит, чтобы потом прыгнув на него, сопоставить с этим flash image и успокоиться. А как иначе? Потому как без hover оно быстро исчезает и всё равно ничего не прочитаешь на не одно-двустрочном посте.>>1000608Голосую ненужно. Сейчас это простой способ обойти разметку. Смотрю на эту help-страничку как баран на ворота / табличку с линейным письмом A/B =_= С этими "особенностями работы". С lookahead/behind я ещё в регулярках не разобрался, а тут в разметку подвезли! Книжку надо издавать по этому парсеру! /hj
a.extref::after { content: "⬏"; padding-left: 2px; font-size: small; text-decoration: none; display: -webkit-inline-box;}
[...]/d/res/1000357last50.html#i1000552
https://en.wikipedia.org/wiki/Supplemental_Arrows-C
Опубликуйте же, сколько чего и за какие посты проголосовали пока была ДБК-кармомётка включена!
Shared worker сошёл с ума. Долбит при user present на вкладке. Если уйти с неё - перестаёт.Перезагрузка страницы; убийство в chrome://inspect/#workers; перезапуск по новому посещению не помогают пока (попробовал 2-3 раза).В localStorage оффсеты постов новые - последние.До этого в таком же состоянии был найден на 410. Но там хотя бы раз в 10 секунд (что всё равно много) (тоже продолжает).Хотя бы успокаивается при неактивной, и то хорошо.Но у меня опять outdated browser ╮( ̄▽ ̄"")╭. 2023 build.Screencast 2026-01-06-0141.mp4 14.7 MB https://files.catbox.moe/w2g6l1.mp4Screencast 2026-01-06-410.mp4 10.6 MB https://files.catbox.moe/68yiu8.mp4Посмотрим что будет после отправки поста.
chrome://inspect/#workers
То же безобразие продолжается.
>>1000606А может просто (Cross-thread) добавлять как на 4чане?В любом случае, это не-жсом делать долго.
>>1000612Дополнение: машинка иногда отправляется и возвращается из sleep. После этого прыгает время. Может, это таймеры сбивает... Но как просто догадка.>>1000614> А может просто (Cross-thread) добавлять как на 4чане?Можно и так, понятнее. Тогда в 50-версиях надо предусмотреть другой текст, (full thread)?> В любом случае, это не-жсом делать долго.Навесить класс? Ну не знаю, не смотрел. Но тот PHP и так сильно перерабатывается сейчас.Можно и жсом. Такого не много, так что неким миганием после загрузки можно будет пренебречь.
Так что надо будет мне ещё проверить после перезапуска браузера.
В ближайшую неделю или две попробую посмотреть, что там не так.Пока, наверное, вернуть на if(false), чтобы polling шёл во вкладке.
if(false)
>>1000616Не исправило.
>>1000612Уточнение, убийство-то помогает, да толку то этого нет если оно при каждом визите восстанавливается.
>>1000619Т.е. не помогает как способ "хоть что-то сделать" или "сбросить состояние" какое-то.
> var max_navbar_check_delay = trueНашёл. Указать в конфиге количество миллисекунд больше 1000 (16384 by default) и перегенерировать страницы.
>>1000621Это было поправлено вроде в тот же день.>>1000605ВНЕЗАПНО хостер приказывает долго жить, так что перенесём ещё на неделю.
>>1000611Она была включена всего ничего по времени, и, помнится, там только один или два поста получили Д или Б, или К.>>1000609> Сейчас это простой способ обойти разметку.Eeeeh?> спойлерВозможно, стоит сделать описание по-русски, а не одними примерами?Основная суть в чём.Есть escape-символ, 【~】. Заставляет воспринимать следующий за ним символ, как обычный текст. Может escape'ить сам себя. Обычно всё почти также просто, как когда пишешь string literal в С и используешь там 【\】 для escape'а кавычки или переноса строки.Но! Распознаётся тильда, как escape-символ, не перед любым символом, а только непосредственно перед допустимым в текущем контексте тэгом разметки.Поэтому 【~%%】 => 【%%】 (тильда стоит перед открытием/закрытием спойлера), но 【~%~%】 => 【~%~%】: тильды стоят перед одиночным 【%】, который ничему не соответствует. Вместе с тем, 【~*~*】 => 【**】: тильды стоят перед 【*】, которое соответствует открытию/закрытию курсивного текста.Есть блок, где разметка отключается. Объявляется через 【``】 или 【[nofmt]】.【`` 2*x**2 + 3*x - 4 ``】 => 【 2*x**2 + 3*x - 4 】. Чтобы для случаев, когда escape'ить пришлось бы много, был более удобный способ. Разметка также отключается и в code блоках. В этих блоках из символов разметки работает только 【~】.> особенностями работыПо большей части про поведение в крайних случаях.> С lookahead/behind я ещё в регулярках не разобрался, а тут в разметку подвезли!Видимо, не очень удачное описание у меня.> Особенности работы/Код и nofmt> `*lookahead* до закрытия``Про то, что backtick после 【я】 распознаётся, как закрытие ранее объявленного блока кода, а не как первый символ 【``】 тэга. Чем отличается от того, как, скажем, обрабатывается звёздочка. 【* text **】 — это не 【 text *】, а 【* text **】, ибо понимается, как wakaba_italics; text; wakaba_bold.> [nofmt][code] 1234567890 ~[/nofmt][/code]Также про то, что будет в этой ситуации: 【[nofmt] 1234567890 ~[/nofmt]】. По 【[nofmt]】, parser ищет неза-escape'ленный 【[/nofmt]】, не находит, сбрасывает состояние до момента, когда встретил 【[nofmt]】 и продолжает parse'ить со следующего за этим 【[nofmt]】 символа. Встречает 【[code]】, игнорирует всё, что не 【[/code]】 и не тильды непосредственно перед 【[/code]】, находит этот 【[/code]】 и дальше business as usual. Поэтому тильда перед 【[/nofmt]】 хотя и приводит к тому, что объявление nofmt блока оказывается незакрытым, не исчезает — из-за code блока.> Распознаётся тильда, как escape-символ, не перед любым символом, а только непосредственно перед допустимым в текущем контексте тэгом разметки.Возвращаясь к. Недопустимо закрытие неоткрытого блока. Недопустимо открытие уже открытого блока. Недопустимый в текущем контексте тэг разметки понимается, как просто текст: 【This text isn't code ~[/code]】 => 【This text isn't code ~[/code]】 — здесь тильда не исчезает потому, что понимается не как escape-символ, а как текст, поскольку стоит перед текстом, не перед активным тэгом.Also, в контексте URL'ов тильда не является escape-символом и используется для указания конца ссылки.Можете давать советы по улучшению end user документации. Можете попробовать, основываясь на parse.class.php, markdown.html и изложенном, написать её сами.
1234567890 ~[/nofmt]
Оно опять? бампается после бамплимита.
Пора поправить подпостформенный на реальное значение!
>>10006273次/kawaii тред-то? Но там bump limit не достигнут: постов больше 200, но часть из них с сажей. Так что это ⇩-индикатор не прав.
>>1000629Оно так не работает.>>1000627Off-by-one. Fixed.
Another relocation completed. >>1000622
>>1000631Может наверное слететь проезд врочем.
>>1000631Gut. Будем надеяться, что этот хост будет стабильнее, чем предыдущий.
Ryo не принимается без u, хотя она необязательна.
На HYR ввели, почему мы всё ещё не имеем? Arghrghghghhhh!Предлагаю генерировать включение скрипта хотя бы для картинкотредов, вручную добавляя thread id-ы на сервере.
>>1000630И оно снова бампнулось 201-м ответом.
>>1000655I don't see anything.
>>1000656>>1000653 >>1000654 ну вот такие чудеса. Опять что-нибудь про считается ли ОП-пост за пост входящий в лимит?
>>1000657Нет, Оп-пост не является бампом.
Возможно, имеет смысл поставить между "Message" и "Preview" один <br> — чтобы столбец с заголовками по получению предпросмотра не растягивался.