[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить
Имя
Captcha image [Д]
Animapcha image [@] [?] [Т]
Тема   ( ответ в 1000000)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов GIF, JPG, PNG, WEBP размером до 20480 кБ.
  • Ныне 30 уникальных клиентов. Посмотреть каталог
  • Предельное количество бампов нити: 200
No. 1000000  
Технический пост, резервирующий номера постов для возможного импорта истории из архива.

Можно постить сюда замечания и предложения по оформлению и функционалу сайта.
No. 1000001  
Интересно, что дни недель в дате поста тут отображаются с маленькой буквы, а не с большой.
No. 1000002  
Вижу, что
  • Не стоит spoiler=1 where id in (4176, 4267, 5163, 6408, 6500, 6554, 6644, 6679, 6687, 6831, 6929, 7092, 7185, 8173, 9129, 9146, 9200, 9444, 9456, 9458, 9507, 10044, 10570, 10714, 10715, 10716, 10717, 10718, 10723, 10773, 10786, 11200, 11241, 11245, 11311, 11373, 11624, 11661, 11678, 11792, 11804, 11814, 11883, 11917, 11918, 11943, 11948, 11966, 11968, 11986, 12147, 12208, 12242, 12287, 12312, 12397, 12498, 12549, 12729, 12983, 12996, 13024, 13094, 13095, 13107, 13117, 13121, 13173, 13378, 13449, 14682, 14785, 14798, 14804, 14817, 15175, 15228, 15230, 15235, 15238, 15248, 15249, 15251, 15316, 15341, 15343, 15345, 15389, 15391, 15399, 15410, 15423, 15468, 15473, 15478, 15599, 15764, 15771, 15779, 15790, 15818, 15829, 15833, 15926, 15935, 15936, 15941, 15942, 15945, 15950, 15959, 15961, 16010, 16016, 16039, 16042, 16049, 16154, 16310, 16312, 16348, 16372, 16374, 16411, 16454, 16576, 16579, 16614, 16618, 16622, 16639, 16718, 16817, 16826, 16838, 16841, 16845, 16854, 17026, 17092, 17112, 17154, 17192, 17202, 17287, 17296, 17332, 17357, 17382, 17511, 17650, 17707, 17740, 17753, 17771, 17828, 17837, 17857, 17889, 17929, 18040, 18238, 18259, 18327, 18418, 18425, 18442, 18477, 18478, 18569, 18813, 18827, 18837, 18840, 18841, 18965, 19000, 19021, 19022, 19030, 19033, 19048, 19067, 19074, 19084, 19102, 19109, 19158, 19167, 19182, 19216, 19259, 19282, 19291, 19325, 19373, 19392);
  • У >>/b/7367, >>/b/7872, >>/b/9688, >>/b/17009 теперь файл на месте. Но 17009, возможно, стоит снова удалить;
  • У >>/d/195 не стоит filename='removed';
  • Не скопирована доска /test/. (Но и не надо?)

No. 1000003  
ristretto.webp - (2.95MB, 1915×1310)
1000003
По поводу лимита на размер файла в /b/. Точно нет желания сделать, как у Кота?
Картинок больше 20480 килобайт не много, но у меня в моей Пиксивной колекции по крайней мере 15 таких файлов есть. Но если конвертнуть в поддерживаемые вебом форматы, их штук 25 будет, думаю.

В /b/ же их ныне 5 штук запощено, пусть 3 из них и дожимаются без потерь с jpegoptim/cwebp до текущего лимита. Другие 5 файлов в /b/, которые выше лимита, суть видео. Но >>/b/2948 было запощено теста ради, а те из них, которые кодировал я, кодировать помельче вроде проблем нет.
No. 1000004  
Also, предлагаю Umnochan на default’ный стиль, как и раньше.
У меня на мобилке сейчас почему-то грузится Futaba.
No. 1000005  
>>1000002
Проверяйте спойлеры в /b/, остальное вечером.
>>1000004
Дефолтным стилем действительно стояла Futaba, вроде поправлено.
No. 1000006  
У некоторых файлов размер отображается 0 B.
No. 1000007  
164589437916.jpg - (142.46KB, 827×1169)
1000007
>>1000006
У больше, чем одного? Странно. Вроде у исходника «Файл удалён» было только у 4-х постов в /b/ и у одного поста в /d/. Из них только у одного поста в /d/ (>>/d/195) есть filesize span-е с нулём и, соответственно, filename без 'removed'.
No. 1000008  
>>1000007
Последние ~24 часа импорта в /b/. Поправлю ручками.
No. 1000009  
sizes.webp - (128.90KB, 525×455)
1000009
>>1000008
Распаршенные размеры тут, если нужно.
No. 1000010  
>>1000009
Спасибо. Их оказалось чуть больше, так что всё равно скриптить пришлось. Да и на будущее полезно будет. Кстати о будущем: потёртые позже чем 48часов посты и картинки я из своих дампов пока восстановить не смогу, так что если придётся снова сгружать с 014, то я буду надеяться на помощь.

>>1000003
Поднял до 25.
No. 1000011  
А, да
>>1000002
Картинки потёрты. /test/ наверное смысла мало? Могу позже в любой момент.

>>1000001
Мне пришлось переписывать это отображение из-за обновления ПХП. В доках с заглавной кстати. Хм.
No. 1000012  
>>1000002
>>>/b/7367, >>/b/7872, >>/b/9688,
Почему там вообще in the first place картинки удалили?
No. 1000013  
>>1000011
> /test/ наверное смысла мало?
Почти никакого и в музейных целях. Если совсем скучно будет.

Пока, например, стоит вопрос реверс-инжининга капчи. Там скорее всего комбинация слогов из девочка, булочка, невский, литейный, дитский, и так далее. Плюс, капча подтянута до длинны поля Сообщение.
No. 1000015  
>>1000012
>>/b/9688
Не знаю, но там не картинка, а открывок из Гатарей был, где Шинобу колготки/чулки снимала/надевала.
>>/b/7872
Там была художница рисующая лювдоту. Лювдота была не только запикселирована, но и заметить её в силу маленьного размера трудно.
Тем не менее, авторам тогда показалось, что это слишком лювдно для обстановки. Или коту.
>>/b/7367
Похожая, пусть и не связаная с лювдотой, причина.
No. 1000016  
>>1000015
>открывок из Гатарей был, где Шинобу колготки/чулки снимала/надевала
ХОТЕТЬ!
No. 1000017  
>>1000016
Архив к вашим услугам.
No. 1000018  
>>1000013
Ну вот сейчас мне выдал 014 "тагланы". Интересный список слогов выходит.

Капщу генерирует https://codeberg.org/FBE410/fbe-410/src/branch/public/inc/classes/randword.class.php, я скорректировал списки гласных/согласных, но это явно не то. Видимо и правда на набор слогов менять стоит.
No. 1000019  
Вот тут про растягивание капчи >>354
А тут что-то с превьюшкой >>248

А есть ли желающие Мицгольную/девочковую/автобусную капчу видеть?
No. 1000020  
>>1000019
А это не у нас с превьюшкой, это в оригинале с превьюшкой. И дальше по треду обсуждение отсутствие превьюшки, так что историческая справедливость требует оставить отсутствие.
>растягивание капчи
Украл на момент написания прошлого поста, но может потребоваться хард-рефреш ради подтягивания цсс.

Там ещё был скрипт менять булочку на хиганбану в ночное время, стоит ли?
No. 1000021  
>>1000020
Интересно же, так что тут голосую за.
No. 1000023  
flower-power.png - (3.77KB, 48×48)
1000023
>>1000021
Если не набирается больше двух голосов против, то я за.
автор скрипта
No. 1000024  
sample.webp - (262.36KB, 463×525)
1000024
>>1000019
С одной стороны, конкретно кирару или конкретно мицголовскую нет, но автобусную капчу в целом я не против попробовать, если ойчаньке будет легко добавить своих персонажей. Нужно много картинок насобирать. С другой стороны, мне кажется, что с разговором о смене капчи стоит чуть-чуть повременить, и пока реализовать, как на 014.
No. 1000025  
>>1000024
Простая капча лучше сложной. Пока не спамят и не вайпают уж оставьте как есть.
No. 1000029  
>>1000013
Отреверсилось что-то. Вроде похоже..? Непонятно.
No. 1000030  
110665257_p0.jpg - (697.13KB, 2173×2313)
1000030
>>1000029
По-моему, получилось замечательно. Даже если вдруг это и не совсем то.
No. 1000031  
Screenshot_2024-01-17_05-50-25.png - (272.70KB, 1280×702)
1000031
Казалось, что капча текстовая оставлена была потому, что надо было время договариваться, какие картинки персонажиц, и сами эти картинки собирать.
Потом она стало будто бы феноменом со своими забавными словами.
Капча эта изрядно мне доставляет боли необходимостью переключать раскладку, ср. с автобусной.
No. 1000032  
>>1000031
Вообще, я слышал, что куклоскрипт мог переключать ввод на английский автоматом когда использовался на Ычане. Но судя по гуглингу, там надо через индексы кнопок клавиатуры городить, что не вдохновляет.
No. 1000033  
>>1000032
Хорошая находка! Действительно там есть такое, совсем забыто.
А чего "городить"? Скопировать да и всё? Букв в алфавите немного...
No. 1000034  
>>1000033
У меня есть подозрение, что у индивидуумов с раскладкой Дворака будут получаться левые буквы. Но можно хотя бы попробовать, да.
No. 1000036  
>>1000035
Может вам всё-таки дать /test/?
Алсо, я вам вроде на почту письмо отправлял. Оно дошло или умерло по дороге?
No. 1000037  
1490531633805.jpg - (117.84KB, 742×632)
1000037
>>1000034
Есть вариант проверять капчу не только на соответствие $_SESSION['security_code'], но и на соответствие transliterated($_SESSION['security_code']). Тогда можно будет капчу вводить транслитом.
No. 1000038  
>>1000037
Для этого надо будет стандартизированный вариант транслитерации к главной крепить, лол. Но можно.
No. 1000039  
>>1000036
Если я правильно понимаю, что ты обращаешься ко мне, то мне ничего не приходило. Судя по всему, проблема в том, что ты отправляешь письмо с сервера, который находится в РФ, где мой почтовый сервис заблокирован. По крайней мере, по этой причине РФ-сервер входящую почту оттуда не принимает. Попробуй с gmail или ещё откуда-ниудь, я не знаю.
No. 1000040  
170560053466.webp - (312.51KB, 667×501)
1000040
Вроде работает, но я не настоящий ПХПец.
# е, ю, я, ё

$yotifiable = [0xB5, 0x8E, 0x8F, 0x91];

# а,е,и,о,у,ъ,ы,ь,э,ю,я,ё
$yotifiers = [0xB0, 0xB5, 0xB8, 0xBe, 0x83, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x91];

# а = 0x0D0B0, р = 0xD180, ё = 0xD191
# а, ..., э, ю, я, ѐ, ё.
$codes = ["a", "b", "v", "g", "d", "e", "zh", "z", "i", "y", "k",
    "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "ts",
    "ch", "sh", "sch", "'", "y", "'", "e", "u", "a", "e", "o"];

$is_yotified = true;
$shift = 0;
$result = "";
foreach(str_split("ятолькокириллица") as $char){
    $char = ord($char);
    if($shift != 0){
        if($is_yotified && in_array($char, $yotifiable))
        $result .= "y";
        $result .= $codes[$char - $shift]; # bounds checked?
        $is_yotified = in_array($char, $yotifiers);
        $shift = 0;
    }
    else if($char == 0xD0) # а-п
        $shift = 0xB0;
    else if($char == 0xD1) # р-ё
        $shift = 0x80 - 16;
}
echo $result;

No. 1000041  
101327358_p46.jpg - (1.08MB, 1995×1315)
1000041
BTW, будет классно наконец-то убрать из FBE гигантский межстрочный интервал для кода: код с ним выглядит мягко говоря, не очень. Всего-то 30 строк всю высоту экрана, считай, занимают.
No. 1000042  
>>1000040
По счастью, у нас нет йодирования в капче:
$codes = ["а" => "a", "б" => "b", "в" => "v", "г" => "g", "д" => "d", "е" => "e", "ж" => "zh", "з" => "z", "и" => "i", "й" => "j", "к" => "k",
            "л" => "l", "м" => "m", "н" => "n", "о" => "o", "п" => "p", "р" => "r", "с" => "s", "т" => "t", "у" => "u",
            "ч" => "ch", "ш" => "sh", "ы" => "y"];
/* Check if they entered the correct code.  If not... */
if (
        empty($_SESSION['security_code']) ||
        $_SESSION['security_code'] != strtolower($_POST['captcha']) &&
        strtr($_SESSION['security_code'], $codes) != strtolower($_POST['captcha'])
) {
        /* Kill the script, stopping the posting process */
        exitWithErrorPage(_gettext('Incorrect captcha entered.'));
}

No. 1000044  
>>1000043
Гм, есть. Но обычно транслитерируют побуквенно в любом случае... ИМХО pyat' понятнее чем p'at'. Да и если делать то же самое на стороне клиента, то замаешься.
Стандартов до чёрта впрочем https://en.wikipedia.org/wiki/Romanization_of_Russian#Transliteration_table, надо выбрать один и не беспокоиться.

Но спасибо за предложение, правда.
No. 1000045  
Enma_Ai_full_3763336.jpg - (871.79KB, 1165×1748)
1000045
Может, было бы лучше ставить цветочек по времени доски для всех, нежели так, кто-то видит его, а кто-то не видит.
No. 1000047  
>>1000045
У меня была идея, чтобы хиганбана постеру по ночи показывалась. А ночь везде наступает по-разному. Якуй вот живёт в Британии, если я всё верно помню, а одна Ойчи, судя по всему, где-то в восточной Азии. Получится не как задумано, если лилию ту кто-то увидит средь бела дня. Такие у меня тогда были мысли.
No. 1000048  
>>1000047
Да, это достаточно очевидно. Ну, пусть будет как есть. В конце концов о самом феномене все и так узнают.
No. 1000049  
>>1000045
Если ставить вариант что человек без ЖС и печенек тоже бы видел, то только так и можно. Но наверное приятнее когда оно само и в ночь.
Можно часы поменять, чтобы виднее было. Или попытаться к форме быстрого ответа прицепить.
No. 1000050  
97451849_p14.webp - (13.85KB, 400×400)
1000050
Это не случится завтра, но по следующему импорту у хотя бы одного поста будет совпадать MD5 с уже запощенным. Это будет надо как-то учесть.
No. 1000051  
>>1000050
У ДБ нет ограничения на повторяющийся хеш, так что импорту будет фиолетово. Может ошибка "ваш файл уже запощен" попортится, но, гм. ИМО проще всё-таки разрешить повторный постинг (разве лимит по времени выставить).

Двигло обновлено до последнего public. Вроде всё работает, но если что жалуйтесь.
No. 1000053  
перенос.webp - (36.03KB, 503×254)
1000053
Интересное новое поведение. По слогам переносит и отображает дефис, копирует без дефиса. Это у меня новая Мозила что-то накрутила, или это так через CSS новую разбивку строк новую сделали?
Наверное, раньше было лучше.
Может разбивать дефисом команды и выражения? Видимо, может. Но для них есть починенное `-форматирование.
А если стишок запостить, то будет разбивать дефисами строки, и никакие неразрывные пробелы не помогут? Скорее всего, будет. Тоже только через кодоформатирование их теперь постить.
No. 1000054  
formatting.webp - (36.88KB, 552×260)
1000054
`-форматирование использовать не всегда удобно. Вот такое может получиться.
No. 1000057  
Так что, есть ли возможность поменять CSS, чтобы переносило только по словам?
В конце концов, строчки без пробелов, которые в экран не помещаются, никто не постит.
Ещё можно подумать про вариант в движке/клиенте смотреть на максимальную длину слова в посте и по превышению лимита, по которому старая Кусаба разбивала строку, ставить стиль с дефис-разбивкой.
No. 1000058  
>>1000057
>В конце концов, строчки без пробелов, которые в экран не помещаются, никто не постит.
Сейчас. Но могут.
>Скорее всего,
Проверьте сами, http://0141chan.org/b/res/15784.html#15788 пробоема только в картинке, по-хорошему всё через цсс должно решаться.
>Ещё можно подумать про вариант в движке/клиенте смотреть на максимальную длину слова в посте и по превышению лимита, по которому старая Кусаба разбивала строку, ставить стиль с дефис-разбивкой.
Вариант, конечно, но звучит переусложнённо.
No. 1000059  
>>1000058
Как-то другие борды с самыми разнообразными движками без разбивки обычных слов надвое живут же. Я из чего-то такого длинного и без пробелов видел разве что ASCII art и новерепостера, который в base64 архивы выкладывает, а их можно в картинках постить. Ну, ещё и посты, состаящие целиком из буквы А. АААААААААААААААААААААААААА! — крик такой. Или что-то ещё, одним канджи составленное. Органически такое бывает очень редко. Как вариант, постеру, который делает такое без причины, можно заметить, что лучше так не делать.

> Вариант, конечно, но звучит переусложнённо.
Это как бы не совсем про то, но автоматическое оформление в целом вещь веьсма не простая. Слышал, целые статьи в научных журналах по этому поводу публиковались, когда ЛаТеХ делали.
No. 1000060  
>>1000053
У меня все как всегда. Стоит наверное проверить в другом браузере и в чистом профиле прежде чем хвататься оформление перекраивать.
No. 1000061  
text.jpg - (1.32MB, 1080×2128)
1000061
>>1000060
На свежем профиле и на старом лисамобилкабраузере то же самое поведение. На мобилке, кстати, оно не так уж и плохо.
No. 1000062  
>>1000059
https://codeberg.org/FBE410/fbe-410/pulls/17 был запилен ради ссылок.
>Как-то другие борды с самыми разнообразными движками без разбивки обычных слов надвое живут же.
На форчонге так:
#delform {
overflow-wrap: break-word;
word-break: break-word;
}
Может hyphens лишний, может ещё что подкрутить надо.
No. 1000064  
>>1000060
Стили, скорее всего, кешируются, так что попробуйте c Ctrl+F5 обновить.
No. 1000065  
>>1000064
Они у него очевидно есть, иначе бы переноса через дефис не было бы вообще.
Интересней, есть ли у кого кукла, да разрешение экрана.
No. 1000066  
115849324_p0.jpg - (1.31MB, 2865×2025)
1000066
>>1000062
Если hyphens убрать, то >>/b/1000138 как раньше отображается, и другие тоже, кажется.
Так что только это подкрутить по-видимому достаточно.
No. 1000067  
>>1000066
Viola!
No. 1000068  
112655853_p0.webp - (4.79MB, 3035×4299)
1000068
>>1000065
Куклы нет, разрешение >=1080p.
No. 1000069  
112634168_p0.jpg - (2.10MB, 1906×2762)
1000069
>>1000067
Спасибо!
No. 1000070  
>>1000069
No. 1000071  
>>1000070
Что? Можете скачать и сравнить, это два разных исходных файла.
No. 1000072  
>>1000071
Просто забавное совпадение.
No. 1000073  
>>1000072
А. Да в целом, отключить бы проверялку за пределами треда...
No. 1000074  
1213.jpg - (225.24KB, 1920×1080)
1000074
>>1000071
> ffmpeg -i 170753057078.jpg -i 170426343464.jpg -filter_complex psnr -f null /dev/null
> [Parsed_psnr_0 @ 0x5605d2655800] PSNR y:inf u:inf v:inf average:inf min:inf max:inf

>>1000070
У.
No. 1000075  
>rules
>2.Порнография в любых её проявлениях
Хм, а типичные картикни под спойлером не являются ли проявлением, т.к. Данбору вот считает себя именно таким сайтом? Или же речь об изображении всяческих актов/эксплицитном всяческих мест...
No. 1000076  
>>1000075
Я не помню среди картинок под спойлером 410 или 014 ничего, что входило бы в rating:explicit.
Если так уж хочется конкретных примеров, то, гм. Ничего хентайнее овашек Прилии. Первый сезон QB в принципе ещё может пролезть наверное, но с текущим хостером применение этих же критериев к типичным постимым девочкам может не прокатить.

Правила подстраивались максимально под текущее положение дел, без каких-то массовых возмущений их наверное пересматривать смысла мало.
No. 1000077  
Up after maint.
No. 1000078  
fbe_cap.png - (84.71KB, 918×502)
1000078
В продолжение
>>1000031
>>1000044
Всё очень просто. Нужно сделать лишь qwerty->йцукен.
No. 1000079  
111021561_p0.webp - (2.62MB, 1448×2048)
1000079
>>1000078
Думаю, вполне разумно добавить сверку и с третьим вариантом ответа.
No. 1000080  
60898165_p0.webp - (595.17KB, 1150×1533)
1000080
Also, предлагаю подумать, нужна ли нам
Имплементация escape-последовательностей.

(Я-то думаю что нужна.)

Можно так \*, \\.
Но если сделать так,
То пути на Винде писать не удобно.

Можно попробовать взять какой-то
Редко используемый символ юникода.
Например  ̸.  ̸*  ̸ ̸.

Ведь, в конце концов, escape-ить *, %%
И символ форматирования кода нужно не часто.

Что думаете?

No. 1000081  
>>1000080
Может проще сразу на бб-коды перейти? Там и болчно форматировать можно, и проблемы со вложенностью решаются.
No. 1000084  
bb.webp - (19.09KB, 1240×795)
1000084
>>1000081
Проще. BB там, оказывается, уже есть. Но совместимость с другими FBE терять не хотелось бы, да и у FBE-марка есть достоинства: ✶курсив✶ набирается проще, чем {i}курсив{/i}, особенно с русской раскладкой.

Можно сделать галочку bb-only у säge и nöko.

Можно совместить две разметки иначе: `` никак не обрабатывается. По сему терминатоору переключаемся на BB-only, по нему же переключаемся обратно на FBE-марк. Делаем ['] для escape-а в BB-only контексте, попутно делаем [[], чтобы escape-ить BB-коды. Теперь можно запостить всё.
No. 1000085  
kona.png - (1.85KB, 32×26)
1000085
Предлагаю факивон.
No. 1000086  
Предвосхищая вопросы зачем, почему... Никакого заговора или идеи за этим не стоит. Просто попался файл. Вот и всё.
No. 1000087  
10189685_p0.jpg - (254.00KB, 714×1013)
1000087
>>1000085
Кажется где-то на каком-то чане оно уже было такое. Можно повесить, пока ничего лучше не придумывается, думаю.

Хотя, иногда нет ничего перманентнее временного. Есть вероятность, что это будет именно такой случай.
No. 1000088  
>>1000084
>escape-ить BB-коды
По идее же можно {code}{tag}{/code}text{code}{/tag}{/code}. Или у нас рендеринг кода сломан..?
>пути на Винде писать не удобно
У Винды крайне редко * или _ в начале имени файла. Может сработать с правильной регуляркой наверное.
Можно наверное блочный элемент в котором просто отключается стилистическое форматирование, чтобы не мудрить с эскейпами.
No. 1000089  
>>1000079
...какой из них третий? Просто неправильная раскладка?
No. 1000090  
>>1000089
Неправильная раскладка и есть qwerty->йцукен. Тоже непонятно, что там имелось в виду.
No. 1000091  
А вот, мозги заработали. 1) верный 2) транслит 3) неверная раскладка. Ну 2 и не нужен совсем. Тем более что систему транслитерации выбрать ещё надо: https://habr.com/ru/articles/499574/ https://habr.com/ru/articles/265455/ .
No. 1000093  
>>1000091
>Тем более что систему транслитерации выбрать ещё надо
Но она уже стоит как в посте написано выше... Сделал 3.
>>1000085
кк
No. 1000094  
51a3a83815caa4e1edcef0cbc91891d7.jpg - (146.11KB, 1000×1124)
1000094
>>1000088
У нас вроде [code]не реализовано[/code].

> Можно наверное блочный элемент в котором просто отключается стилистическое форматирование, чтобы не мудрить с эскейпами.
Мне это видится как-то так.
formatters = [full_fbe_fmt, bb_only_fmt]
fmt_id = 0
str_result = ""
blocks = valid_unicode_message.split("''")
for block in unicode_message.split("''"):
    str_result += formatters[fmt_id](block)
    fmt_id ^= 1

bb_fmt(text):
   return current_bb_formatting(text).replace("[']", "'").replace("[[]", "[")

Вместо ' символ форматирования кода.

>>1000091
Добавить вариант 3 стоит в любом случае, думаю. Удалять вариант 2 из кода — не знаю, стоит ли.
No. 1000095  
>>1000093
>>1000094
> Добавить вариант 3 стоит в любом случае, думаю.
Только я пост отправил, а оно уже (было) добавлено, лол. Славно.
No. 1000096  
Запилено: проверка хеша файла только в рамках одного треда при постинге.
Сейчас попробую реимпортировать новые псто, оригинал хоть и жив, с доменом там чёрти что, я ждал достаточно долго.

>>1000094
Попробую в воскресенье-понедельник.
No. 1000097  
>>1000096
Done

>>838
Done

Спойлеры/удалённое потыкаю завтра.
No. 1000098  
>>1000086
>Просто попался файл.
Был он фавиконом на каком-то анимушном недваче, или что-то такое. Но это слишком сильное обвинение чтобы им просто так бросаться, да и какая на самом деле разница.
No. 1000099  
>>1000098
>Был он
*мне кажется/насколько я помню, был он
No. 1000100  
>>1000093
И правда работает, спасибо, спасение.
No. 1000101  
>>1000097
181 спойлер и 1 удалённая картинка. Job's done.
No. 1000102  
В капче не работает "б", то есть ",".
No. 1000103  
>>1000102
Точнее, не работает ",", а "б"-то работает.
No. 1000106  
>>1000102
Fixed
No. 1000110  
Favicon kitaaa---!!
No. 1000134  
it_works.webp - (40.46KB, 868×691)
1000134
>>1000088
С escape-ами там, как оказалось, сравнительно просто всё. Написал вот через '~' escaping. '~' на что-то влияет только перед символами разметки (`|*|%|^|[) или в объялении пункта списка \n\r[#✶+-]. Может escape-ить сам себя, но только, когда это имеет смысл.

А вот с блоками, их вложенностями и приоритетами, кажется, несколько сложнее. Но подумаю. Может, по удвоенному `-у сделаю.
No. 1000135  
escapes.webp - (37.89KB, 1715×437)
1000135
Архив с кодом в картинке.
No. 1000136  
>>1000135
Спасибо, принял пока так.
Я пытаюсь переписать парсер на нормальную, не-регексповую обработку, но это хорошо если на неделе. Могу скинуть черновик.
No. 1000137  
j3zBw2bq.png - (3.86MB, 1856×1280)
1000137
>>1000136
Скинь.

Там даже если с регулярками, всё равно дорабатывать надо: не так просто оказалось, возможность escape-ить ~ неограниченное количество раз всё-таки нужна. Из-за этого, например, strtr-ом для ~` не обойтись, нужны будут изменения в callback-ах кода/латеха, а регулярка для парсинга кода будет выглядеть как-то (^|\G|[^~])(~~)*\K`([^~`]|~.)+?` так.
No. 1000138  
>>1000137
function BBCode($string){
$lines = explode(PHP_EOL,$string);
$in_ul = false;
$in_ol = false;
$block = [];
foreach($lines as $line) {
if (preg_match('^[\-\*] ([^\r\n])+)')){
if ($in_ol){
$in_ol = false;
$output .= '</ol>';
}
if (!$in_ul){
$in_ul = true;
if ($block){
$output .= apply_format($block);
$block = [];
}
$output .= '<ul>';
}
$output .= '<li>'.apply_format([$matches[1]]).'</li>';
}
else if (preg_match('^[+\#] ([^\r\n])+)')){
if ($in_ul){
$in_ul = false;
$output .= '</ul>';
}
if (!$in_ol){
$in_ol = true;
if ($block){
$output .= apply_format($block);
$block = [];
}
$output .= '<ol>';
}
$output .= '<li>'.apply_format([$matches[1]])."</li>";
}
else{
if ($in_ol){
$in_ol = false;
$output .= '</ol>';
}
if ($in_ul){
$in_ul = false;
$output .= '</ul>';
}
array_push($block, $line);
}
}
$output .= apply_format($block);
return $output;
}

function apply_format($lines){
$patterns = [
['\[code]', '\[/code]', '<span class="inline-code">', '</span>', 1, inline_code_callback],
['\', '\', '<b>', '</b>', 1],
['\', '\', '<i>', '</i>', 1],
['\', '\', '<span style="text-decoration: underline;">', '</span>', 1],
['\', '\', '<strike>', '</strike>', 1],
['\', '\', '<span style="font-family: Mona,\'MS PGothic\' !important;">', '</span>', 1],
['\', '\', '<span class="spoiler">', '</span>', 1],
['\\', '\\', '<b>', '</b>', 0],
['\', '\', '<i>', '</i>', 0],
['', '', '<span class="spoiler">', '</span>', 0],
['\^\^', '\^\^', '<strike>', '</strike>', 0],
['', '', '<span class="inline-code">', '</span>', 0],

];
$stack = [];
$pattern = "\n";
foreach($patterns as $pattern){
$pattern .= "|$pattern[1]";
}
foreach($patterns as $pattern){
if ($pattern[1] != $pattern[0]){
$pattern .= "|$pattern[0]";
}
}
$pattern = "((?!~)~|)~+~~?($pattern)";
foreach($lines as $line) {
preg_match($pattern, $line, $matches, PREG_OFFSET_CAPTURE);
aray_unshift($matches)
foreach($matches as $match){
;
}
}

}
Разбиваем текст на строки, в каждой строке ищем начала и концы тегов. Если тег закрывающий, пытаемся закрыть последний тег, если совпадает. Если тег закрывающий, пытаемся закрыть, если последний открытый тег совпадает. Если открывающий, запоминаем позицию, кладём предыдущую подстроку на стек, и идём по текущей (можно рекурсией). На конце строки дропаем незакрытые инлайны, на конце блока дропаем вообще всё. В коде игнорируем всё кроме закрытия кода (+ надо перебивать : для ссылок). Списки считаются как отдельные блоки исключительно инлайнов.
preg_match не может в /g, поэтому придётся ещё в цикл оборачивать.
No. 1000139  
>>1000138
Ах, да, оно так не работает.
https://gist.github.com/yakui-lover/616e8bad552395cd031453c05e2eb596
No. 1000146  
Jus use pastebin clone, Luke.
No. 1000147  
code_zip.webp - (73.71KB, 966×737)
1000147
https://pastebin.com/kf3a4kyu
Попробовал сделать без разбиения по строкам.
Вышло громоздко, хотя вроде работает.

Проходимся по всем тегам типа ~~~~~~^^ или ~~~~~~[/b], смотрим, применимо или не применимо в текущем контексте, если применимо, то копируем ещё не скопированный текст до тега, и если не за-escape'лено, то либо открываем блок, либо закрываем блоки до нужного по стеку. Код escape'ит всё, кроме терминаторов кода и escape'ов к ним. Списки более-менее наравне с остальными тегами, хотя обрабатываются несколько отдельно.
No. 1000148  
Допустимо ли? >>/b/1000899
No. 1000149  
f26fe872ae6833900d0b5234f24f1129.jpg - (876.64KB, 1217×2048)
1000149
>>1000148
Кажется, не хентайнее этого эпизода прилии
https://gelbooru.com/index.php?page=post&s=list&tags=md5%3a267af70a53630db7e1de70de943530bd
Пусть это и версия, где пар отредактирован.
No. 1000150  
>>1000148
Под спойлером должно быть нормально.
В худшем случае я задумаюсь о другом хостере картинок.

>>1000147
Ну, давайте пробовать.
test
Скорее всего надо стили править если не инлайн-спаном делать.

Я правильно читаю, что вмарк так тоже мультилайн становится? Я думал как раз его оставить действующим только внутри строки. И ws нигде не используется. Но на глас вроде всё верно.
No. 1000152  
83028242_p2.jpg - (2.63MB, 6942×4848)
1000152
>>1000150
> Я правильно читаю, что вмарк так тоже мультилайн становится?
Да, *, **, ^^, `, %% все multiline-овые. Но так-то они multiline-овыми и раньше были же. Чуть усложнив код, можно коллапсить упомянутую вакабу по \r\n, нужно поменять проверки в начале for-а и поменять содержимое if-а для \r\n завершения списка. Но пока не могу понять смысл идеи. Разве чтобы можно было одну * в начале строки поставить, и оно само закрылось. Но тогда если кто-то по привычке попробует через * * сделать несколько линий курсивом, у него не получится, и ему на [i] и [/i] придётся менять.

Думаю, можно добвать блок ``some text``, где символы форматирования будут игнорироваться:
  • В array c описанием mark-ов добавить '``' => ['``', '', ''], и '[nofmt]' => ['\[nofmt]|\[\/nofmt]', '', '', '``', '[/nofmt]'],;
  • В if, где $states['`'] && $mark != '`' || $states['[code]'] && $mark != '[/code]', добавть ещё две проверки.

> И ws нигде не используется
Wide [character] strings? Кажется, там достаточно обычных ASCIIшных функций, без mb и w префиксов.
No. 1000153  
>>1000152
А, я не ответил
>Wide [character] strings?
Нет, массив с таким именем.
>Но пока не могу понять смысл идеи.
Я думал вакаба-марк сделать только инлайном, потому что оно так работает на самой Вакабе. Но если ФБЕ оно мультилайн, то лучше совместимость, да.
No. 1000154  
Справку после этого обновите, господа. Ничего не понятно.
No. 1000162  
1527591043872.webp - (334.25KB, 680×1554)
1000162
>>1000153
> Нет, массив с таким именем.
Не используется, можно спокойно из кода убрать. Для вакабамарков завёл, наверное.

>>1000154
Всё почти также. Основное изменение в том, что тильда (~) теперь символ разметки, который escape-ит другие тэги разметки (*, %%, [u] и так далее). Перед тэгом разметки, тильда может escape-ить сама себя.
  • w~ww~~www~~~ ⟶ w~ww~~www~~~
  • 2~**4==4~**2 ⟶ 2**4==4**2
  • *uwu~~* ⟶ uwu~

Справку напишу, когда формат будет фиксирован. Пока же есть некоторые проблемы.
  1. Сейчас ~ escape-ит именно тэг, не символ, что в случае с %%, ** и ^^ кое-что делает невозможным. Например, невозможно процентами заспоилерить "146%";
  2. В отличие от обычного FBE, что-нибудь типа "****" обработается, на выводе образуя HTML-элементы с пустым содержимым. Не знаю, нужно ли фиксить.

No. 1000163  
> Для вакабамарков завёл, наверное.
И не наверное, а таки именно для них, судя по $ws[$k] = $pattern; в foreach($patterns as $k => $pattern){
No. 1000165  
function BBCode($string){
    $regex = '$(?:^|\G|[^~])\K~*(?:';
    $patterns = [
        "\r\n- " => ['\r\n\- ', '<li>', '</li>', '<ul>', '</ul>'],
        "\r\n* " => ['\r\n\* ', '<li>', '</li>', '<ul>', '</ul>'],
        "\r\n+ " => ['\r\n\+ ', '<li>', '</li>', '<ol>', '</ol>'],
        "\r\n# " => ['\r\n\# ', '<li>', '</li>', '<ol>', '</ol>'],
        '[nofmt]' => ['\[nofmt]|\[\/nofmt]', '', '', '``', '[/nofmt]'],
        '[code]' => ['\[code]|\[\/code]', '<code>', '</code>', '`', '[/code]'],
        '[b]' => ['\[b]|\[\/b]', '<b>', '</b>', '**', '[/b]'],
        '[i]' => ['\[i]|\[\/i]', '<i>', '</i>', '*', '[/i]'],
        '[u]' => ['\[u]|\[\/u]', '<span style="text-decoration: underline;">', '</span>', '', '[/u]'],
        '[s]' => ['\[s]|\[\/s]', '<strike>', '</strike>', '^^', '[/s]'],
        '[aa]' => ['\[aa]|\[\/aa]', '<span style="font-family: Mona,\'MS PGothic\' !important;">', '</span>', '', '[/aa]'],
        '[spoiler]' => ['\[spoiler]|\[\/spoiler]', '<span class="spoiler">', '</span>', '%%', '[/spoiler]'],
        '``' => ['``', '', ''],
        '`' => ['`', '<code>', '</code>'],
        '**' => ['\*\*', '<b>', '</b>'],
        '*' => ['\*', '<i>', '</i>'],
        '%%' =>['%%', '<span class="spoiler">', '</span>'],
        '^^' => ['\^\^', '<strike>', '</strike>'],
    ];
    $bbs = array(); $bb_cl_to_op = array(); $lists = array();
    $bb_to_w = array(); $w_to_bb = array();
    $states = array();
    $in_list = false;
    foreach($patterns as $k => $pattern){
        if($k[0] == '['){
            $bbs[$k] = $pattern;
            $bb_cl_to_op[$pattern[4]] = $k;
            if($pattern[3] != ''){
                $bb_to_w[$k] = $pattern[3];
                $w_to_bb[$pattern[3]] = $k;
            }
        }
        else if($k[0] == "\r")
            $lists[$k] = $pattern;
        $states[$k] = false;
        $regex .= $pattern[0] . '|';
    }
    $regex .= '\r\n)$is';
    $mark_stack = array();
    $result = '';
    // handle when it starts from a list declaration
    if(preg_match('/^~*[\*|\+|\-|\#] /', $string) == 1){
        if($string[0] == '~')
            $string = substr($string, 1);
        else
            $string = "\r\n" . $string;
    }
    $length = strlen($string);
    $parsing_offset = 0;
    $copy_offset = 0;
for($next_parsing_offset = 0; $parsing_offset < $length; $parsing_offset = $next_parsing_offset){
    if(!preg_match($regex, $string, $match, PREG_OFFSET_CAPTURE, $parsing_offset))
        break;
    $match = $match[0];
    $match_length = strlen($match[0]);
    $next_parsing_offset = $match[1] + $match_length;
    $rtilda_pos = strrpos($match[0], '~');
    $mark = $rtilda_pos === false ? $match[0] : substr($match[0], $rtilda_pos + 1);
    // continue if the mark is not applicable in the current context
    if(!$in_list && $mark == "\r\n")
        continue;
    if($states['``'] && $mark != '``' || $states['[nofmt]'] && $mark != '[/nofmt]')
        continue;
    if($states['`'] && $mark != '`' || $states['[code]'] && $mark != '[/code]')
        continue;
    if(array_key_exists($mark, $w_to_bb) && $states[$w_to_bb[$mark]])
        continue;
    if(array_key_exists($mark, $bb_to_w) && $states[$bb_to_w[$mark]])
        continue;
    if(array_key_exists($mark, $bb_cl_to_op) && !$states[$bb_cl_to_op[$mark]])
        continue;
    if(array_key_exists($mark, $bbs) && $states[$mark])
        continue;
    if($in_list && array_key_exists($mark, $lists) && !$states[$mark])
        continue;
    // the mark is applicable, copy whatever was before and half the tildas
    $tilda_len = $rtilda_pos === false ? 0 : $rtilda_pos + 1;
    $to_copy = substr($string, $copy_offset, $match[1] + (int)($tilda_len / 2) - $copy_offset);
    if($states['`'] || $states['[code]'])
        $to_copy = strtr($to_copy, array("\t" => '&nbsp;&nbsp;&nbsp;&nbsp;', ' ' => '&nbsp;'));
    $result .= $to_copy;
    // if the mark is being escaped, set the offsets accordingly and move on
    // continue parsing from the second symbol of the current tag
    if(($tilda_len % 2) === 1){
        $result .= $match[0][$tilda_len];
        $copy_offset = $match[1] + $tilda_len + 1;
        $next_parsing_offset = $match[1] + $tilda_len + 1;
        continue;
    }
    // otherwise, handling the mark as active
    $copy_offset = $match[1] + $match_length;
    // first, handle the list marks, as they may result in both opening and closure
    if(array_key_exists($mark, $lists)){
        if(!$in_list){
            $result .= $lists[$mark][3];
            $in_list = true;
        }
        if($states[$mark]){
            do{
                $c_st = array_pop($mark_stack);
                $result.= $patterns[$c_st][2];
                $states[$c_st] = false;
            } while($c_st != $mark);
        }
        $result .= $lists[$mark][1];
        array_push($mark_stack, $mark);
        $states[$mark] = true;
        continue;
    }
    if($mark == "\r\n"){
        do{
            $c_st = array_pop($mark_stack);
            $result.= $patterns[$c_st][2];
            $states[$c_st] = false;
        } while(!array_key_exists($c_st, $lists));
        $result.= $lists[$c_st][4];
        $in_list = false;
        continue;
    }
    // now, if it is a non-list opening
    if(array_key_exists($mark, $states) && $states[$mark] == false){
        $result .= $patterns[$mark][1];
        $states[$mark] = true;
        array_push($mark_stack, $mark);
        continue;
    }
    // if is's a closure
    $till = array_key_exists($mark, $bb_cl_to_op) ? $bb_cl_to_op[$mark] : $mark;
    do {
        $c_st = array_pop($mark_stack);
        $result.= $patterns[$c_st][2];
        $states[$c_st] = false;
        if(array_key_exists($c_st, $lists)){
            $result.= $patterns[$c_st][4];
            $in_list = false;
            }
    } while($mark_stack && $till != $c_st);
}
    // finalize if needed
    if($copy_offset < $length){
        $to_copy = substr($string, $copy_offset, $length - $copy_offset);
        if($states['`'] || $states['[code]'])
            $to_copy = strtr($to_copy, array("\t" => '&nbsp;&nbsp;&nbsp;&nbsp;', ' ' => '&nbsp;'));
        $result .= $to_copy;
    }
    while($mark_stack){
        $c_st = array_pop($mark_stack);
        $result.= $patterns[$c_st][2];
        $states[$c_st] = false;
        if(array_key_exists($c_st, $lists)){
            $result.= $patterns[$c_st][4];
            $in_list = false;
        }
    }
    return $result;
}

No. 1000166  
^^.webp - (8.79KB, 444×440)
1000166
>>1000165
Собственно, новая версия, где ~ escape'ит только первый символ тэга. То бишь, если перед тэгом поставить тильду, то parse'инг продолжается со второго его символа, если таковой есть. Также добавлены `` и [nofmt] — блоки, где отключается форматирование, чтобы с тильда-escape'ами в сложных случаях не возиться.
No. 1000170  
Добавить раздел "Разметка" в news.php. Форматирование через символ «_» на данный момент не поддерживается. поменять на Более полная информация о разметке находится тут.
mark.html ниже кинуть в inc/pages.

<div class="content">
<h2><div class="newssub">Wakaba-mark</div><div class="permalink">&nbsp;</div></h2>
<table border=1><tr><th>Ввод</th><th>Вывод</th></tr>
<tr><td>**полужирное начертание**</td><td><b>полужирное начертание</b></td></tr>
<tr><td>*курсивное начертание*</td><td><i>курсивное начертание</i></td></tr>
<tr><td>`` (*-*) без форматирования ^^_^^ ``</td><td>`` (*-*) без форматирования ^^_^^ ``</td></tr>
<tr><td>`int i = 2 * 4; \\ код`</td><td><code>int i = 2 * 4;\\ код</code></td></tr>
<tr><td>%%спойлер%%</td><td><span class="spoiler">спойлер</span></td></tr>
<tr><td>^^зачёркивание^^</td><td><s>зачёркивание</s></td></tr>
<tr><td>`` (*-*) без форматирования ^^_^^ ``</td><td>`` (*-*) без форматирования ^^_^^ ``</td></tr>
</table>

<h2><div class="newssub">BBCode</div><div class="permalink">&nbsp;</div></h2>
<table border=1><tr><th>Ввод</th><th>Вывод</th></tr>
<tr><td>[u]подчёркивание[/u]</td><td><span style="text-decoration: underline;">подчёркивание</span></td></tr>
<tr><td>[aa]Mona,'MS PGothic'[/aa]</td><td><span style="font-family: Mona,'MS PGothic' !important;">Mona,'MS PGothic'</span></td></tr>
<tr><td>[b]полужирное начертание[/b]</td><td><b>полужирное начертание</b></td></tr>
<tr><td>[i]курсивное начертание[/i]</td><td><i>курсивное начертание</i></td></tr>
<tr><td>[code]int i = 2 * 4; \\ код[/code]</td><td><code>int i = 2 * 4; \\ код</code></td></tr>
<tr><td>[spoiler]спойлер[/spoiler]</td><td><span class="spoiler">спойлер</span></td></tr>
<tr><td>[s]зачёркивание[/s]</td><td><s>зачёркивание</s></td></tr>
<tr><td>[nofmt]без форматирования ^^_^^ [/nofmt]</td><td>без форматирования ^^_^^ </td></tr>
</table>

<h2><div class="newssub">Cписки</div><div class="permalink">&nbsp;</div></h2>
<table border=1><tr><th>Ввод</th><th>Вывод</th></tr>
<tr><td>- Первый пункт<br>- Второй пункт</td><td><ul><li> Первый пункт</li><li> Второй пункт</li></ul></td></tr>
<tr><td>* Первый пункт<br>* Второй пункт</td><td><ul><li> Первый пункт</li><li> Второй пункт</li></ul></td></tr>
<tr><td>+ Первый элемент<br>+ Второй элемент</td><td><ol><li> Первый элемент</li><li> Второй элемент</li></ol></td></tr>
<tr><td># Первый элемент<br># Второй элемент</td><td><ol><li> Первый элемент</li><li> Второй элемент</li></ol></td></tr>
</table>

<h2><div class="newssub">Escape-символ ~</div><div class="permalink">&nbsp;</div></h2>
<table border=1><tr><th>Ввод</th><th>Вывод</th></tr>
<tr><td>2 ~* 2 = 4</td><td>2 * 2 = 4</td></tr>
<tr><td>uwa~~</td><td>uwa~~</td></tr>
<tr><td>*uwa~~*</td><td><i>uwa~</i></td></tr>
<tr><td>~^^_~^^</td><td>^^_^^</td></tr>
<tr><td>%%146~%%%</td><td><span class="spoiler">146%</span></td></tr>
<tr><td>~**курсив~**</td><td>*<i>курсив*</i></td></tr>
<tr><td>- Первый пункт~ <br>- Тоже первый пункт~<br>Тоже</td>
    <td><ul><li> Первый пункт<br>- Тоже первый пункт<br>Тоже</li></ul></td></tr>
<tr><td>~- Не пункт списка</td>
    <td>- Не пункт списка</td></tr>
</table>

Способ избежать объявления списка, указанный в последней строке, работает только в начале сообщения.

<h2><div class="newssub">Ссылки и цитирование</div><div class="permalink">&nbsp;</div></h2>
<table border=1><tr><th>Ввод</th><th>Вывод</th></tr>
<tr><td>>>180000</td><td><a href="#180000">>>180000</a></td></tr>
<tr><td>>>/b/188888</td><td><a href="#b180000">>>/b/188888</a></td></tr>
<tr><td>>цитата</td><td><blockquote>>цитата</blockquote></td></tr>
<tr><td>
http://example.org</td><td><a href="http://example.org">http://example.org</a></td></tr>
<tr><td>
https://example.org</td><td><a href="https://example.org">https://example.org</a></td></tr>
<tr><td>
ftp://example.org</td><td><a href="ftp://example.org">ftp://example.org</a></td></tr>
</table>


<h2><div class="newssub">Особенности работы</div><div class="permalink">&nbsp;</div></h2>
<table border=1><tr><th>Отправляемое сообщение</th><th>Вывод</th></tr>
<tr><td>2 * 2 = 4, курсив</td><td>2 <i> 2 = 4, курсив</i></td></tr>
<tr><td>[b]*полужирный курсив</td><td><b><i>полужирный курсив</i></b></td></tr>
<tr><td>**[i]полужирный курсив**[/i]</td><td><b><i>[i]полужирный курсив</i></b>[/i]</td></tr>
<tr><td>*[i]курсив[/i]*</td><td><i>[i]курсив[/i]</i></td></tr>
<tr><td>[i][i]курсив*[/i]</td><td><i>[i]курсив*</i></td></tr>
<tr><td>[/i]~[/i]~~[/i]</td><td>[/i]~[/i]~~[/i]</td></tr>
<tr><td>[i]~*~[i]курсив[/i]</td><td><i>~*~[i]курсив</i></td></tr>
</table>

</div><br>

No. 1000171  
>>1000170
Добавлено с изменениями: ":" заменяется на "& #58;" чтобы отключить ссылки в коде/noformat.
No. 1000174  
in.webp - (17.18KB, 886×383)
1000174
>>1000171
Yatta!

BTW, у меня опечатки в markdown.html. Простите
# Там две одинаковых строки "`` (*-*) без форматирования ^^_^^ ``", наверное, стоит оставить последнюю;
# У обеих тех строк в поле столбца "Вывод" слева и справа стоит лишний "``";
# Под заголовком "Особенности работы" в столбце "Вывод" стоит лишний "[i]" в поле [i]полужирный курсив[/i]
No. 1000175  
num_list.webp - (45.43KB, 1870×326)
1000175
>>1000174
> #
Странно. УМВР.
No. 1000178  
>>1000175
Should be fixed. Я убрал часть переменных в continue-проверках.
No. 1000180  
>>1000178
Теперь работает. Проезд тоже оплачивается.

> `` (*-*) без форматирования ^^_^^ ``
У левого и правого "``" стоит пробел. Либо эти пробелы убрать, либо в "Вывод" добавить "&nbsp;". Похожая ситуация с "[/nofmt]".
No. 1000182  
Ну чтож, дополнительные пожелания по капче ещё есть, или в /b/ тоже включать как есть?
No. 1000183  
>>1000182
Включай.
Есть там одна картинка, где дЪвочка совсем далеко изображена сбоку и лица не видать.

Где-то в 2022-ом году в /b/ 410-го был пост в залоченном треде с пожеланиями по фапче. Если грабёр такую метаинформацию сохраняет, о залоченности, можно было бы найти...
Проскроллил тут 14 140 картинок из /b/ 410-го и немного сдался.
No. 1000184  
>>1000183
Могу разве текстопоиск дать.
Закрытость треда можно увидеть только на репарсинге, а граббер его только для автомодерации делает. Можно было бы расширить, да.
No. 1000218  
902214b2b8cb531be419a9f4218def79.jpg - (669.28KB, 1433×1557)
1000218
Сложный вопрос: как называть этот чан. С родителем очень естественно вышло, просто и гениально. А вот тут-то вот вот... This one makes you scratch your head.
No. 1000220  
>>1000218
Если подходить совсем формально, то если родитель ойчан, то мы ойчи-чан.
No. 1000221  
У меня иногда Animapcha image вместо самой анимаптчи.
No. 1000222  
Длину имён файлов, слишком малую, тоже наконец пофиксить бы.

>>1000221
Хм, тоже замечено. Думалось что прокси на этойстороне виноват, но может там файлик битый.
No. 1000227  
>>1000221
То были временные файлы от редактирования текстовых. Вроде починено.

>>1000222
Не будет ли слишком некрасиво совсем без обрезания?
No. 1000229  
>>1000227
Ну, попробуем. На время миграции БД постить в разделе не получится правда.
No. 1000230  
>>1000229
Как-то так.
No. 1000232  
vichan.webp - (93.58KB, 707×380)
1000232
>>1000227
Наверное, будет полезно, если имя файла с кадром, скажем,
[SubsPlease] Maougun Saikyou no Majutsushi wa Ningen datta - 01 (1080p) [F17D1F04] 00:17:04.900.webp
Будет входить вместе с номером эпизода и временной меткой.

Можно сделать, увеличив предел, по которому ведётся обрезка. Можно сделать, вырезая часть имени файла из середины, оставив limit прежним. Можно сделать, чтобы по наведению курсора на имя файла, оно показывалось чуть ниже полностью, как на vichan-е.

Также стоит сделать обрезание через mb_strlen и, соответственно, поменять тип поля в базе, если уже не сделано.

Судя по >>1000230, всё-таки лучше делать отображаемое имя ограниченным по длине.
No. 1000235  
>>1000232
Подкрутил на стороне рендера.

Раз уж мы тут, мне очень удобным кажется функционал скачивания с оригинальным именем файла. Я мог бы это к текущей ссылке-имени прикрепить, но наверное лучше отдельной иконкой как у 4chanX?
No. 1000236  
>>1000235
Лучше отдельной иконкой, мне кажется.
No. 1000239  
>>1000184
Там, наверное, встречается case-insensitive подстрока хинат. Есть ли такие посты?
No. 1000240  
>>1000239
Только в АКБ-треде: https://410.yakuji.moe/b/res/107994.html#161346
No. 1000241  
>>1000240
Спасибо за содействие! ЭхЪ. А ОП-посты со словом капч/фапч, например?
No. 1000242  
>>1000241
https://410.yakuji.moe/b/res/201935.html
https://410.yakuji.moe/b/res/195616.html (тред какого-то перебежчика, нюкнут после второго поста)
https://410.yakuji.moe/b/res/181293.html
No. 1000243  
>>1000242
https://410.yakuji.moe/b/res/195616.html 404 отдаёт.
Ладно, спасибо за содействие. Может быть, он банально был вне периода работы архива.
No. 1000246  
faptcha_php.png - (12.08KB, 90×50)
1000246
>Sorry, your message is too long. Message length: 18258, maximum allowed length: 16384
No. 1000247  
>>1000246
А какой лимит хотели бы видеть лично Вы?
Так-то уже в два раза больше обычного, емнип.
No. 1000248  
Merry не приняла 'merry'.
No. 1000249  
>>1000247
Задуматься сделали. И правда, простынки крайне редки. Так что делать ничего и не надо тогда, наверно.
No. 1000250  
bannah_014.png - (48.36KB, 300×100)
1000250
キタ━━━(゚∀゚)━━━!!
No. 1000251  
faptcha.png - (7.38KB, 90×50)
1000251
>>1000248
Забыл _0 дописать после MerryNightmare в MerryNightmare.png.
No. 1000256  
172201887248.webp - (470.93KB, 1738×1117)
1000256
https://410chan.org/dev/res/26066.html#27697
Я для основного FBE сделал posting через javascript, чтобы по ошибке происходило оповещение о ней на той же странице, а не перенаправление на другую. Но Совус и его доверенное лицо (?), кажется, не спешат тестировать.

Может, мы себе добавим тогда?
No. 1000257  
>>1000253
>Вообще, будь у меня знание каким хостерам можно доверять
Просто посмотреть, где живут гелбора/данбора/аибора/kemono.su же, разве нет?

Так как клиент всегда отправляет парольную куку, приходит на ум идея сделать чтобы некоторые треды были видны только тем, на чьем пароле достаточное число постов. Чтобы не делать этот запрос каждый раз, делать только по обращению к php-скриптам (постинга) и кешировать, например, в php-сессии, может. Подумать надо как сделать это архитектурно, и безопасно. С текущей нагрузкой полагаю держать отдельные копии html-ек досок, может, и дедуплицированные (генериорванные только там где нужно), не слишком накладно-то будет.
No. 1000258  
>>1000257
И ещё одно соображение. Ведь надо выбирать, или 2d-эччийности, или wholesome 3d-loli thread. И я бы выбрал второе. Ибо первого полно известно где, а второго вот нет.
No. 1000259  
>>1000256
Можно. Заодно и другие новвоведения синхронизировать попробовать.
No. 1000260  
84599608_p0.webp - (728.93KB, 2400×1356)
1000260
>>1000257
> Просто посмотреть, где живут гелбора/данбора/аибора/kemono.su же, разве нет?
Стоит попробовать это исследовать. traceroute до Gelbooru вот выдаёт cloudflare'ский адрес; не очень помогает. Но это только Gelbooru. С lolibooru.moe, пока она была живая, тоже была какая-то проблема, кажется. yande.re вот host'ят некие FranTech Solutions вроде.

BTW, у нас полноценный сервер или VPSка? booru-то, скорее всего, держатся на голом металле. На тутошнем же IPшнике вроде и архивы хостятся. Можно ненароком Ычану архив положить. Так что, наверное, всё-таки дэдик.

> Подумать надо как сделать это архитектурно, и безопасно.
Архитектурно и безопасно… По-хорошему, лучше бы эту PHP-буханку с deprecated'ами с нуля переписать. Но это так, к слову.

Добавление selective-ного отображения тредов потребует немало измененить в движке. Хотя, учитывая, к чему дело идёт, может внезапно очень пригодиться.

Некоторые вопросы и сомнения:
  1. По чистке печенек, будет ли способ, не отпарвляя пост с паролем-IDшником, увидеть скрытые нити?
  2. Что делать, если пост из видимой зоны ссылается на невидимую? А с rss.xml?
  3. Что делать, если кто-то ненадолго набижит? Стоит ли добавить ограничения по time span-у?
  4. Не проще ли сделать скрытодоску, пусть там едва ли кто будет постить, кроме бывших при её открытии?
  5. Когда булочка упадёт, её постояльцам окажется недоступна часть сайта;
  6. Это форма регистрации, меньше возможностей для анонимности.

>>1000258
> Ведь надо выбирать, или 2d-эччийности, или wholesome 3d-loli thread. И я бы выбрал второе.
XOR? Не хочу одобрять отказ от обмена (ссылками на) интересную эроту и её обсуждения.
> а второго вот нет
Ну, на Авто/б/усе есть тред, где второе вперемешку с девочками постарше постится. В тред тот мне, увы, запостить почти совсем нечего, ибо я такие фотографии не ищу специально. А что вперемешку, может, так оно спокойнее даже. Помню случай, как коллекция wholesome'ных фотогафий девочек (именно девочек) trigger'нула poster'а, утверждавшего, что 2D-этти с ними ему OK.
No. 1000261  
>>1000260
>выдаёт cloudflare'ский адрес
И правда, забыл, что так делают теперь почти все.
>На тутошнем же IPшнике вроде и архивы хостятся.
И правда, почему-то думалось, что мы совсем отдельно. Вот помнится, что несколько лет назад (ii.)yakuji.moe на российский айпишник резолвился. Было ли такое в самом деле?

>По-хорошему, лучше бы эту PHP-буханку с deprecated'ами с нуля переписать.
Может быть. Но "новый движок" — это так пошло! В контексте рунета и его АИБ в особенности. Да и зарубежные попытки в этом направлении мне особо не нравятся. Всё какая-то кривота с UX-точки зрения выходит.
А так — преемственность и причастность, неиллюзорная.

>Добавление selective-ного отображения тредов потребует немало измененить в движке.
А с другой-то стороны мультифайловость потребует вообще схему базы менять. А тут вроде как и нет. Это если вот так сравнивать.

>1. По чистке печенек, будет ли способ, не отпарвляя пост с паролем-IDшником, увидеть скрытые нити?
По задумке, не будет. В этом и суть доверенной куки, что так с наскоку её не получить.
>2.Что делать, если пост из видимой зоны ссылается на невидимую? А с rss.xml?
Да, вот этого рода проблемы и подразумевались под словечком "архитектурно". Так как у нас просто отдаётся предгенерированная статика, а не на лету движок решает, кому что показывать.
По задумке (в идеале), для непривилегированных кук выглядит как обычная битая/удалённая, 404-рефлинка.

Продолжая безумные фантазии, нуждающиеся в проверке на реалистичность, представляется что-то такое:
1. На стороне движка - всё почти как обычно, но генерировать два набора статики. К задаче прозрачного разделения пользователей на "A/B"-группы припахать вебсервер, через .htaccess-магию Apache / location-директивы nginx. Работает же это для геоблоков, значит можно теоретически и по другого рода списку проверять?
2. Может быть, если на стороне сервера такая сложная логика слишком сложна, перезаписывать все запросы к html(/img)-статике на простой php-скрипт... Тут приходящий в голову сразу минус: скрипт этот будет необходимо жестко оптимизировать в таком случае. Создается точка повышенной постоянной нагрузки, а точкой (d)dos-а становится всё..
3. Другой вариант: проверять доступ, подтягивать и вставлять невидимые части на стороне клиента. Такой себе второй скрипт предпросмотра рефлинок. Или даже не второй, а в первый это и впихнуть. Минус идеи: остается незащищённой статика, практически как в варианте с самой обычной "неафишируемой" доской.

С rss сложненько. Проще, конечно, просто проигнорировать вопрос с ним. Просто как и было, отображать там лишь публичное. Иначе воображается разве что аналог passkey из мира торрентов, GET query-параметр с вписыванием туда того же пароля. И смотря что на стороне сервера будет это обрабатывать. Сделать этот адрес alias-ом на некий php-скрипт, или разруливать отдачу веб-сервером.
Тоже самое со скриптом предпросмотра постов по наведению на рефлинку.
Также очевидно потребуется изменение мод-интерфейса, отражение фичи в нём.
Насчет того, надо ли давать самому юзеру чекбокс в "параметрах" при создании, вопрос.

Тут точно есть люди, смотревшие и щупавшие код FBE, так что мне интересно ваше мнение, мысли и критика, или даже согласие. А то я-то не смотрел туда и теоретизирую опираясь на общее представление о работе АИБ.

>Sorry, your message is too long. Message length: 8717, maximum allowed length: 8192
Грррр. >>1000247 всё-таки тогда попрошу ещё в два раза увеличить до 16384.

TBC
No. 1000262  
CONT

>>1000260
>3.Что делать, если кто-то ненадолго набижит? Стоит ли добавить ограничения по time span-у?
Хорошо подмечено! Действительно, стоит также проверять, что разница между timestamp первого и последнего SELECT'нутыми постами по паролю не меньше некоего предела тоже. Но это вроде простая проверка. Воображается этакая функция sessionCanSeeHiddenContent() в движке...
>4.Не проще ли сделать скрытодоску, пусть там едва ли кто будет постить, кроме бывших при её открытии?
Во-первых, это не так интересно, лол. Во-вторых, чуть ли не сильнее страдает от второй проблемы. Стоит только раскрыть адрес недоброжелателю и это раскрывает всё. А по задумке, даже зная id-ы скрытопостов-тредов на руках, просто так их не увидеть, 404 и всё тут.
>5.Когда булочка упадёт, её постояльцам окажется недоступна часть сайта;
Которой у них и не было никогда. Честно говоря, не вижу тут проблемы. Кроме психологического шока от этой части обнаружения, лол.
>6.Это форма регистрации, меньше возможностей для анонимности.
Прозрачная и имплицитная довольно. И если так посмотреть, все мы в ней уже "зарегистрировались". Что до анонимности, для внешнего наблюдателя разницы не будет, насколько я могу судить, разве не так? А для администрации мы и так уже как на ладони. IP/subnet/UA/pass/особенности формирования tcp-пакетов, зависящие от использования vpn/OS — вы правда ротируете все эти переменные? И добавляются лексические/тематические особенности в условиях медленности и нишевости.
Представить же, что придут и потребуют выдать данные с сервера... маловероятно. Мы же тут не за этим.

>>1000250 thx for accepting btw! А Котика нашего, наверно, полгода ещё ждать.
No. 1000263  
>>1000260
>Хотя, учитывая, к чему дело идёт, может внезапно очень пригодиться.
А к чему оно идёт?

>XOR? Не хочу одобрять отказ от обмена (ссылками на) интересную эроту и её обсуждения.
Ссылки нормально. А речь идёт же о том чтобы постить прямо как есть. И с wholesome-ностью, даже в раздельных тредах будучи, это не будет сочетаться. По крайней мере, в глазах внешнего наблюдателя. Мысль в этом. По крайней мере, это логика судов. Если у тебя нашли такое, то ты уже "ничего не докажешь".
>Ну, на Авто/б/усе есть тред, где второе вперемешку с девочками постарше постится.
Знаю. А где ещё такие треды существуют, не знаю. Кроме вот что на японском 2ch есть/был такой.
>В тред тот мне, увы, запостить почти совсем нечего, ибо я такие фотографии не ищу специально.
Ну что-нибудь-то есть наверно... И я редко специально.
>last spoiler
Это в том треде и было? Чем закончилось?
No. 1000264  
>>1000261
> Всё какая-то кривота с UX-точки зрения выходит.
Если не ставить знак равенства между"новый" "SPA", то ничего не мешает переиспользовать html шаблонов и те же самые стили прицепить.
No. 1000265  
>>1000264
Верно, ничего не мешает, конечно. Только почему-то все (ну, многие) исторические примеры перерождения всегда отражаются и на внешней стороне.
No. 1000266  
>>1000256
Пишите фикс в жаваскрипте чтобы board в функции бралось хотя бы из e.target.form.elements.board.value, а то там уже тестируют: https://codeberg.org/FBE410/fbe-410/pulls/35
А так вроде работает.
No. 1000268  
Алсо возможно требуется сбросить кэш на kusaba.js, странно что само не.
No. 1000269  
122773991_p0.webp - (3.59MB, 2400×2000)
1000269
>>1000268
> enable_navbar_counters
> false
Может, включить? Чтобы те, кто /d/ не проверяет или проверяет нечасто, были осведомлены, что там что-то происходит. И чтобы проверить, нужно ли всё-таки писать в .htaccess worker-src self или нет.

>>1000266
Что-то не могу найти, где board глобально объявляется, а работает anyway. По-хорошему, наверное, такую переменную бы где-то в init'е завести, чтобы потом в различных функциях, как сейчас, это заново не читать.
No. 1000270  
faptcha.png - (8.07KB, 90×50)
1000270
Also, меня даже после истечения Spam bot detected почему-то не пускает по фапче. Где-то в коде забыто ClearFaptchaAttempts или оно варианты ответа найти не может?
No. 1000271  
>>1000269
>а работает anyway
Без моих изменений не работало.
>Может, включить?
Хм~. Я включил, но посмотрю, может отображение по-другому сделаю.
No. 1000272  
>>1000270
Должно быть второе, а что вводилось?
No. 1000273  
Marry merry Mary!.png - (9.08KB, 90×50)
1000273
>>1000272
Несколько раз ввёл Мария на Merry, но такой вариант я в TXT не добавил. По истечению бана, вводил Hanako, Ayane и Yui, но не проходило почему-то и Spam bot detected.

> Без моих изменений не работало.
Aah, I see.
No. 1000274  
О, сейчас оплатился проезд.
No. 1000275  
>>1000274
Могу разве сделать интерфейс какой для проверки конкретной капчи, а то с текущим количеством уже и роллить сложно.

И так из просмотра и добавления алиасов я узнал, что Lolitronics ушёл подзамок.
https://www.youtube.com/watch?v=LPEfDcWIPvc
https://www.youtube.com/watch?v=CLPgP1PKNNw
No. 1000276  
>>1000275
Фикс первой ссылки на подзамок: https://www.youtube.com/watch?v=2wqTnwJGvtc
No. 1000277  
>>1000275
Наверное, не нужно. JS-posting вроде сейчас позволяет попробовать ещё раз ввести ответ на ту же картинку.
No. 1000278  
У меня не работают ссылки [ d ] [ b ] в панели сверху. Ну то есть при наведении на букву курсор не превращается в указательный и при нажатии ничего не происходит. ЧЯДНТ? Воспроизводится на 410, на булочке — нет.
No. 1000279  
>>1000278
Браузер, версия, лог консоли жаваскрипта если там что-то есть? <a> там вроде никак скриптом не модифицируется...
No. 1000280  
109611799_p0.webp - (2.12MB, 2148×1259)
1000280
>>1000278
Если установлены какие-то сторонние скрипты, то, возможно, дело в их несовместимости с недавно изменившейся вёрсткой topmenu.
No. 1000282  
>>1000279
Chromium 126.0.6478.126. В консоли было пусто. После перезапуска браузера прошло.
>>1000280
Сторонних скриптов нету.
No. 1000283  
>>1000282
>После перезапуска браузера прошло.
Возможно кеш значит. Но тогда и на 410 бы работало давно.
No. 1000285  
Это давно уже, но в +50 версиях тредов генерируются ссылки для номеров постов на полный тред. Вставка их классически в ответ по клику на номер поста в результате выводит из +50 треда в полный, что неправильно.
No. 1000286  
>>1000285
Ну и в -100 тоже.
No. 1000287  
>>1000285
Это всегда уже, можно на https://410chan.org/b/arch/res/50-100.html увидеть (алсо,капчекартинки, ей!).
>Вставка их классически в ответ по клику на номер поста в результате выводит из +50 треда в полный, что неправильно.
Почему же, вы в тред отвечаете, а не в тред+50/тред-100. Если желание же чтобы нажатие на ссылку пока внутри треда вело на ту же страницу, если пост там есть, то справедливо, но довольно мутроно встраивать, потому что парсеру ссылок ВНЕЗАПНО нужен контекст того, что ещё есть на странице. А так, можно просто воспользоваться жс-предпросмотром.
Я бы и +50/-100 на чистом жс делал...
No. 1000288  
>>1000287
Если мы открываем 50 или 100 тред, значит мы не хотим открывать полный тред, иначе бы зачем нам открывать неполный когда есть полный? В неполном треде вообще есть ссылки только этих неполных постов. Уточню, что речь идёт только об этих вот якорных #ipostnum ссылках. НЕ о >>рефлинках с превью. По сути это сломанный якорь, он же должен (и может) работать на этой странице, а ведёт на другую.
No. 1000289  
>>1000288
А, эти. Да, тут исправить проще и следует.
Удалить сообщение []
Пароль  
[Mod]