Создал борду на домене https://lainchan.ru/ с использованием TinyIB пока разрабатываю свой модульный движок АИБ под названием MaidBox. TinyIB немного модифицированная и генерирует rss файлы, достаточно добавить адрес раздела/треда в rss-агрегатор, rss раздела выдаёт новые треды, а не посты, последние сообщения в виде rss доступны по адресу https://lainchan.ru/b/latest_posts.rss Борда для грустных.
TinyIB нужно устанавливать отдельно для каждого раздела, такое выглядит дико, но имеет свои преимущества, например, можно модифицировать код борды для одного раздела не трогая другие, добавить поля в таблицу. TinyIB даёт спокойно сделать подразделы с вложенностью, например, /programmer/php, /programmer/python, дело не только в названии, но и возможности устанавливать скрипты в сам /programmer. TinyIB позволяет указать для двух разных разделов одну таблицу, например, создаёшь раздел /b/ без картинок, затем скрытый раздел /vip/, который обращается к той же самой таблице из базы данных, в /vip/ скрипт спокойно пропускает картинки. Интересно то, что дублирование раздела для /vip/ может оказаться производительнее динамической генерации страницы при каждом запросе.
Хотел написть что ты ничего не сделал и что каждый может купить VPS... А потом увидил что все-таки ты делаешь свою борду, что куда намного интереснее чем такая копрофилия как изменение tinyib
Мне почему-то в кайф устанавливать каждый раз TinyIB заново при создании нового раздела. Пример того случая, когда используются две разные копии TinyIB, но при этом обращаются к одной базе данных: https://cyber2ch.com/b/https://lainchan.ru/b
Ребята, у меня инновация, https://cyber2ch.com/b/ отзеркаливает https://lainchan.ru/b и имеет другие правила для постинга, при отправки сообщения в тред капча отключена вовсе, но зато нельзя постить чаще чем 1 раз в 10 минут, у https://lainchan.ru/b капча включена внутри треда, но зато нету такого ограничения на скорость постинга.
>>198906 Я когда в прошлый раз создавал бета-тест MaidBox и рекламировал на этом форуме, тогда у меня была проверка картинок на iqdb.org, подожди немного, быть может для TinyIB реализую. На самом деле очень просто делается: скачаю какую-нибудь библиотеку для парсинга html, сделаю загрузку на iqdb.org, проверю теги (с целью исключить хентай) и наличие, тогда сможешь запостить аниме. Главное не торопи, мне нужно любой скрипт тщательно проверять, не хочу, чтобы борда отвалилась. С целью защиты от rarjpeg картинки стану пересохранять скриптом меняя качество, даже не пытайся.
Тред вайпает тоже с разных IP. Я думаю легче удалять посты через phpMyAdmin, сделать sql-запрос на удаление постов отправленных за последние 10 минут. Самым интересным решением конечно окажется делать бэкапы каждые 5-10 минут и в случае вайпа из бэкапа восстанавливаться.
Добавил возможность TinyIB делать бэкап таблицы с постами при создании нового треда, у меня /b/ имеет максимум 1 страницу, бэкап вряд ли можно посчитать большим, понятное дело, что дорабатывать надо, настройку добавить, удаление бэкапов иногда автоматическое, на хостинг пока ничего не переносил. Наверное, лучше создать скрипт для крона, который оценивает нужно ли бэкануть таблицу по название предыдущего бэкапа, а в название добавить номер последнего поста или последнего треда. Вариант ещё хороший запустить процесс в фоне при создании нового треда, который станет делать бэкап таблицы с постами.
Пока что в /b/ работает скрипт, который сохраняет таблицу с постами каждые 5 минут, 10 минут, 30 минут, 3 часа, 12 часов. Попозже может лучше решение найду. Кому не понравился код db_dump.php немного исправил, без ООП, в самой TinyIB нигде ООП не используется.
С целью защиты от вайпа /b/ теперь бесконечный, ежедневно в случайное время переходит в стандартный режим из 10 страниц и лишние треды удаляются, для остальных разделов такой режим введу позже.
>>198942 Ты должен понимать, что и такую проблему можно решить. Варианты: 1) Сервис определяющий изображения +18, например, https://smartclick.ai/api/nsfw-detection/ 2) Создать специальную страницу где можно загрузить около 100 изображений за один раз, скрипт уменьшает изображения в размере, чтобы никто не забил сервер (кстати, могу сжать изображения на стороне клиента с помощью javascript, тогда меньше придётся ждать загрузку картинок), модератор одним кликом одобряет перцептивные хэши и изображения удаляются с сервера. >Перцептивные хэши — это другая концепция по сравнению с криптографическими хэш-функциями вроде MD5 и SHA1. В криптографии каждый хэш является случайным. Данные, которые используются для генерации хэша, выполняют роль источника случайных чисел, так что одинаковые данные дадут одинаковый результат, а разные данные — разный результат. Из сравнения двух хэшей SHA1 на самом деле можно сделать только два вывода. Если хэши отличаются, значит, данные разные. Если хэши совпадают, то и данные, скорее всего, одинаковые (поскольку существует вероятность коллизий, то одинаковые хэши не гарантируют совпадения данных). В отличие от них, перцептивные хэши можно сравнивать между собой и делать вывод о степени различия двух наборов данных. >Если вам нужно сравнить две картинки, то просто строите хэш для каждой из них и подсчитываете количество разных битов (это расстояние Хэмминга). Нулевое расстояние означает, что это, скорее всего, одинаковые картинки (или вариации одного изображения). Дистанция 5 означает, что картинки в чём-то отличаются, но в целом всё равно довольно близки друг к другу. Если дистанция 10 или больше, то это, вероятно, совершенно разные изображения.
https://github.com/jenssegers/imagehash На первом примере изображён лес, два почти одинаковых изображения, но на один наложён копирайт, расстояние Хэмминга равно 3. Во втором примере схожее окружение, но в одном случае мужчина на диване, а в другом случае девушка на диване, расстояние Хэмминга равно 32.
Кстати, вайпер мог обойти CloudFlare и подменить IP, наверное, я Cloudflare чисто для того, чтобы с украинского IP зайти смогли установил, реальный IP не скрывал. Хотя, там же заголовок специальный отдаётся, его достаточно подменить и будет любой IP.
Концепция https://lainchan.ru немного изменилась, главная страница стала выдавать случайное название раздела в зависимости от некоего секретного параметра.
Делаю режим заменяющий ID на UUID. Вроде работает, пока тестирую, админку немного сломал из-за замены ID на UUID, скоро исправляю, тогда будет обновление. Со старыми тредами не знаю, что произойдёт, когда заменю ID на UUID, вряд ли в них получится ответить т.к. форма для ответа должна содержать UUID треда. В случае чего не будет проблемы вернуть ID (сделал такую настройку в TinyIB), но для старых тредов UUID не был сгенерирован.
Вайпера тяжело остановить, имеет много разных иностранных IP-адресов, давно уже запретил IPv6, у него иностранные IP версии 4. Лишнее доказательство, что другие борды явно кто-то крышует! Пока что запретил доступ с иностранных IP-адресов, можете предложить иное решение, могу сделать аутентификацию через gmail, если такое не нарушает вашу анонимность. Имеется идея дать возможность ОПу треда разрешить постинг с иностранного IP, но ОП всегда должен будет создать тред с русского IP-адреса. Удалять посты вайпера ОЧЕНЬ ЛЕГКО через phpmyadmin, тупо составляешь условие, например, DELETE FROM таблица_с_постами WHERE id > 100 AND id < 500. Одним запросом сносит 400 постов вайпера. У меня ещё страна записывается в БД, могу, например, русские IP из условия убрать, тем самым 400 постов только с иностранных IP удалится. Быть может потом дам кнопку ОПу треда удалить посты вайпера, какое-то условие разрешу... Точнее можно разрешить удалять посты с иностранного IP, но нельзя с русского IP, тогда ОП не имеет полной модерации над тредом. Хотя и мне не так уж тяжело вайп удалять пока что. Капчу пока что не хочу включать, даже школьник может купить 1000 капч.
В общем, имеется идея разрешить ОПу составлять фильтр IP-адресов, если кто-то захочет добавить свой IP в доверянные, тогда придётся сначала попросить с русского IP-адреса, что нарушает анонимность! Однако, если ОП имеет друзей, которые имеют иностранные IP-адреса, тогда ОП добавляет нужные IP-адреса в доверенные для треда... ОП должен создать тред с русского IP-адреса, но ОП только лишь разрешает некие IP-адреса или диапазоны IP-адресов, ничем не рискует. За сутки где-то управлюсь, наверное, код составлю для TinyIB. У меня TinyIB уже считай не требует отдельной установки для каждой новой доски, каталог /inc стал общим для всех досок, до этого приходилось при создании новой доски каждый раз весь код туда переносить. И, да, мне кажется код TinyIB проще чем vichan, в vichan тяжелее разобраться. Конфигурация теперь тоже общая для всех досок + индивидуальная для доски. На самом деле, в случае создания подразделов, например, /programming/php, конфигурация может находиться и внутри /programming/, разделы /php/ /python/ /javascript/ наследуют сначала конфигурацию из /, затем /programming/, после уже свою читают.
Не так уж и сложно оказалось, уже готово, нужно тестировать! IP-адреса имеющие доступ к треду - это те IP-адреса, которые игнорируют правило касающееся ограничения на постинг из других стран, если оставить поле со странами пустым, тогда будет работать стандартное для борды правило. Диапазоны IP-адресов пока не поддерживаются, нужно указывать каждый отдельный IP-адрес через запятую или пробел.
Изменил немного поведение фильтра, пустое значение для списка стран означает запрет на постинг в треде из любой страны, для того, чтобы тред был хоть кому-то доступен нужно составлять список из IP-адресов.
Готовится обновление дающее возможность ОПу настраивать тред после публикации (менять список стран, которым доступен постинг в треде, добавлять/удалять IP-адреса из списка). Быть может, когда-нибудь на странице настройки появятся новые опции.
Отменил обновление в целях безопасности, не буду объяснять в чём дело.
Вернул нормальные ID без всяких проблем, даже ничего не сломалось, ссылки вида >>5806f0c5-2644-413a-bffc-f2eb814e8c42 работают даже в режим в котором скрыт UUID.
В общем, запретил иностранные IP-адреса, дальнейшие новости о ресурсе будут только на самом ресурсе. Ах да, не нужно отчаиваться, UUID даёт возможность совмещать несколько борд с помощью пользовательского javascript, даже можно программой скачивать посты с разных борд, UUID не создаёт конфликтов имён, но это уже, если кто-то захочет таким заняться.
>>199152 Ты даже не предупредил о закрытии, не удивляйся, что это вызывает у людей негативные эмоции. Закрыл и ладно, с таким отношением может оно и к лучшему.