Замечания и предложения по нему, а также их обсуждение. Предыдущий тред >>1000000.
>>1000563Кого? >>1000555
>>1000564Там после ссылки вопрос.>>1000562Починено. Из-за того как порядок там добавляется...
>>1000564-100 и +50.
>>1000557> ведь так не должно быть?Дубли для тех постов идут, которые были запощены и на Булочке, и на 014(1). Потому что запощено было и там, и там. Всё верно импортировалось.> catboxТот случай, когда снимок экрана однозначно стоило приложить к сообщению. Тоже не открывается и не понятно.
>>1000568Понятно, если так. Хоть формально according to keikaku, а некрасивенько.
>>1000569> некрасивенькоМожно попробовать отобрать по совпадающим MD5 посты и вручную там, где имеет смысл, поудалять. Но не знаю, согласится ли Якуй с этим заморачиваться или нет. Хотя, теоретически, я могу как-нибудь выкачать тутошние посты и отобрать те с совпадающими MD5, которые удалить имеет смысл, списком запостив, что удалить. Имеет смысл не удалять, если и на Булочке, и тут на картинку были ответы, например.Also, в >>1000534 к немного другого рода украшательствам было замечание про то, что мы тогда уже не просто импорт делаем, и тогда уже определённо не просто faithful --rebase зеркало. Вот по thumbnails, с одной стороны, исправить их там, где на полуобрубленные s-ки не было замечаний, с точки зрения смысла не критично, с другой, читающий "архивы" не получит чёткое представление, как обстояли дела и история всё-таки теряется таким образом. Принесём ли в жертву прошлое будущему? Там, где почти совсем не важно, конечно.
>>1000570Имхо, мне приятно знать что кто-то постит и туда и сюда, но в целом для читателя это не так важно.Но было бы неплохо спросить автора.
...надо добавить имя во всплывающую форму там где поддерживается.
>>1000569Вообще, как с местом на диске проблема решится, возьмёшь, может, себе эту> Хотя, теоретически, я могу как-нибудь выкачать тутошние посты и отобрать те с совпадающими MD5, которые удалить имеет смыслЗадачу тогда?
>>1000571Кот-то постил картинки, а потом сник.>>1000570Вот Синч поудалял часть архивов, весь Дч в дев ноль, а в чудом архивированных аватаркотредах не осталось картинок - аватарок. Посмотрите на комнату, полную людей, кого это волнует...>>1000573Выкачать оба Бе с тумбами, найти дубли по совпадающим filename/filesize/thumb pixelhash, проверить на наличие ответов на пост (+цитату filename?) по всей доске, сделать спискоту что не имеет смысл оставлять здесь по две штуки? Ох schszhi (Russian soup). Ну... ладно... возьму ответственность! >__< Дедлайн к декабрю 2028-го!
Да и того же 410 просто нет. Просто нет.
>>1000573...но зачем, когда это уже есть на сервере? Я могу просто сейчас такой листинг сделать.>>1000575https://410.yakuji.moe/
>>1000576 Вообще да. Если есть силы-желание и проще.>https://410.yakuji.moe/Ну нельзя ж так баковать. Что там /b/ в последние годы сохранять, где-то с 2023 it's dead. Речь, очевидно, про всю движуху, бывшую в прошлые. Как ещё поразительно живой Ычан ещё в 2015-м, так и наплывы постеров на Автобусе.
>>1000577Я лично того мнения что главная проблема движухи - это лично ты, покуда тебе не вставляют палки в колёса. Но я честно без понятия что там происходит ибо неинтересно и заграница давно забанена.
>>1000577SELECT parentid, id, filemd5FROM posts_b oWHERE EXISTS ( SELECT id FROM posts_b i WHERE i.filemd5 = o.filemd5 AND i.id!=o.id AND IS_DELETED=0 AND abs(i.postedat - o.postedat) < 60*60*24*5 ) AND o.filemd5 != '' AND IS_DELETED=0ORDER BY filemd5, postedathttps://pastebin.com/qhRZExQT провисит неделю.
SELECT parentid, id, filemd5FROM posts_b oWHERE EXISTS ( SELECT id FROM posts_b i WHERE i.filemd5 = o.filemd5 AND i.id!=o.id AND IS_DELETED=0 AND abs(i.postedat - o.postedat) < 60*60*24*5 ) AND o.filemd5 != '' AND IS_DELETED=0ORDER BY filemd5, postedat
>>1000579Из них, 132 записи (или 66 пар) имеют разный текст.
>>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) и перегенерировать страницы.