Ответ
Пароль (чтобы удалить пост или файл)

130573    
16560103887800.png   (252Кб, 2798x1450)   Показана уменьшенная копия, оригинал по клику.
252
Давайте придумывать название для движка АИБ, в данный момент называется MaidIB, но кажется в переводе с английского "Горничная Форум с Картинками" звучит не очень.
>> 130586  
Анонимная дрочильня
>> 130610  

>>130573
FREE MAID SEX DROCHILNIA
>> 130615  
Педокаба
>> 130617  
Кому интересно, пока официальный тред разработчика: https://410chan.org/dev/res/24993.html
Домен указанный в ОП-посте треда давно разделегирован, рекламы нету.
>> 130703  
>>130586>>130610
АДСКАЯ АНОНИМНАЯ ДРОЧИЛЬНЯ С ГОНИЧНЫМИ
>> 130755  
16563310603080.jpg   (66Кб, 700x394)   Показана уменьшенная копия, оригинал по клику.
66
Нету никаких предложений? Имею доступ к разным программам из linux'а, к тому же ffmpeg для работы с видео, вообще можно запустить любую программу из консоли с помощью php. Нужны имиджборде дополнительные функции? Могу ограничить выполнение любой сложной операции на n количество с одного IP, тем самым не давать вызвать сильную нагрузку на сервер даже в случае использования разных сложных приложений. Могу генерировать 7zip, gzip архив с тредом.
>> 130914  
16564687413350.gif   (447Кб, 500x375)   Показана уменьшенная копия, оригинал по клику.
447
>>130755
>>130617
А как можно посмотреть движок в работе если по адресу домена нельзя зайти?
> Нужны имиджборде дополнительные функции?
А что на данный момент завезли?
>> 130935  
16565085783370.png   (646Кб, 2538x1302)   Показана уменьшенная копия, оригинал по клику.
646
>>130914
>А как можно посмотреть движок в работе если по адресу домена нельзя зайти?
Пишу движок заново поэтому сайт закрылся.
>А что на данный момент завезли?
Модульную архитектуру. Было RSS для каждого раздела и треда, API, премодерация картинок отдельно от сообщений (автоматическая проверка является ли аниме через iqdb.org и sauceNAO.com), специальная страница для модераторов, которая выдаёт неверифицированные сообщения (отобразились на борде, но ещё не были проверены). В прошлой версии архитектура была более-менее монолитная, хотя Symfony помогает легко расширить и имеет собственный механизм бандлов, а теперь делаю что-то типа phpBB с возможностью создать кастомное дополнение. Движок АИБ - это намного проще, чем обычный форум и не является сложной задачей для программиста. В прошлый раз сервер положили обычным DoS'ом, пришлось настраивать, вроде получилось, но в этот раз создал специальное приложение, которое считает количество запросов и банит более выборочно.
>> 130939  
16565096683840.png   (286Кб, 1250x1290)   Показана уменьшенная копия, оригинал по клику.
286
>>130914
Страница для примера без оформления, администратор способен отключить любое дополнение, скачать в специальный каталог дополнение (в том числе используя composer) и установить.
DDoSGuard - это специальное приложение на python, которое запускаясь на сервере банить с помощью iptables или nftables, имеет такую настройку:
[DEFAULT]
on = true # вкл/выкл
log = auto
max_counter = # максимальное количество запросов (учитывается так же доступ к обычным файлам, тем же картинкам)
dynamic_content_max_counter = # максимальное количество запросов к динамическому контенту
ban_time = # время бана
interval = # интервал времени
sleep = 1m
namespace = {i}_{interval}
ban_notice_in_console = true
ban_notice_format = {datetime} GMT\nБан\n IP-адрес: {ip}, время бана: {ban_time}
minimum_cpu_load_percent = 10 # минимальная нагрузка на процессор

# CPU 10% Пример правила, которое работает, когда нагрузка на процессор > 10%
[LOG_REQUESTS_PER_SECOND_DYNAMIC_CONTENT]
dynamic_content_max_counter = 20
ban_time = 10s
interval = 1s
sleep = 1s

[LOG_REQUESTS_PER_SECOND]
max_counter = 70
ban_time = 5s
interval = 1s
sleep = 1s

[LOG_REQUESTS_PER_FIVE_SECONDS]
on = true
max_counter = 700
dynamic_content_max_counter = 70
ban_time = 1m
interval = 5s
sleep = 5s
>> 130956  
16565366296050.jpg   (135Кб, 1192x670)   Показана уменьшенная копия, оригинал по клику.
135
>>130939
Не понимаю этих сложных строк) Я далек от кодинга, но могу помочь с ui ux если будет нужно.
>>130573
Опиши суть, миссию, цель АИБ для которой движок. Это может помочь с неймингом.
>> 130960  
>>130956
Я уже переименовал в MaidBox.
>> 130995  
>>130573
SASI - SUPERIOR ANIME SUPER IMAGEBOARD
>> 131017  
>>130573
> php
> 2022
Чел… А чё не ебнешь на каком-нибудь современном фреймворке на typescript?
>> 131019  
>>131017
А набуя тот суперсофременный фреймворк нужен, если все хотелки от борды пыха успешно и стабильно удовлетворяет второй десяток лет? Написал и забыл. Можно не писать даже, а тупо чужой код невозбранно пиздить, все сделано до тебя и для тебя. Я видел какой-то говнодвиг на суперсовременном чем-то, которому для компиляции нужно было 16 гигов ОЗУ !!! На пыхе вся борда килобайт 300 весит без зависимостей.
>> 131020  
>>131017
Лол, изучаю PHP, оказывается нужен фреймворк, куки в переменной $_COOKIE? Забудь, Symfony кладёт Cookie в $request->cookies. Я использую Symfony для разработчки MaidBox, нужен фреймворк, но забавно, что приходится изучать некоторы вещи, которые и так хорошо работали. Затем sql запросы... не нужны, теперь у меня doctrine, забудь sql, если отлично знаешь, пиши так:
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('s')
// ->andWhere('s.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('s.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
Зачем нужен новый язык, создавать более правильный с философской позиции код? У меня php для веб-разбработки и python для консольных и GUI-приложений.
>> 131021  
Я понимаю, что RAND() - это не самая быстра функция из MySQL, но гугл ответил, что, извини, Doctine не поддерживает RAND() вовсе, не получается такой sql запрос составить по фэншую. Конечно имеется специальная библиотека для Doctine, которая RAND() включает https://github.com/beberlei/DoctrineExtensions
>> 131032  
16566802618360.gif   (2713Кб, 994x644)   Показана уменьшенная копия, оригинал по клику.
2713
Скачал разные прикольные базы данных и сделал для них простенькие модули (список аниме, список слов, список цитат). На прикреплённом gif показано использование списка аниме и списка цитат для капчи.
>> 131033  
Бредогенератор (цитаты имеют теги по которым можно сделать выборку).

В английском алфавите двадцать шесть букв. Простите, я Вас не знаю. Почему ты так расстроен? Это деревня, в которой прошло моё детство. Том, не чавкай. Я её не ронял. Том и Мэри много времени проводят вместе. Полседьмого Том выкатился из постели, прошаркал на кухню и засунул в тостер два ломтика хлеба. Я говорил тебе не называть меня Томом или нет? Если бы я только был врачом. Не забудьте захватить с собой зонт на случай дождя. Ты его пугаешь. Мой брат заплатил двойную цену. Перед дождём парит. По радио сказали, что завтра будет дождь. Он почти пустой. Том и Мария поклялись друг другу в любви до гроба. Так закончилась эта историческая эпопея. Я никогда про вас не забывал. Вам надо будет с ней поговорить.
>> 131035  
16566822594170.webm   (2273Кб, 864x620)   Показана уменьшенная копия, оригинал по клику.
2273
>> 131036  
Сделал автозамену имени "Том" (часто встречается в списке цитат и предложений) на "Анонимус".

Я испытываю большой страх перед тем, чтобы оказаться презираемым теми людьми, которых я люблю и о ком я забочусь. Сегодня я впервые попробовал манго, оно сладкое, но у него очень большая косточка и много волокон. У меня своих проблем выше крыши. Анонимус хочет научиться водить трактор. Анонимус еще раз посмотрел на свои часы. Тебе здесь не понравится. Анонимус заболел, потому что слишком много съел. Выключишь мне свет, когда я засну? Вы ищете работу. Почему у вас всегда такой усталый вид? Маюко приснился странный сон. Анонимус посадил на своём поле пшеницу. Он никому не доверяет. В коробке пять яблок. Ты знаешь, сколько я заплатил за это? Эти несколько строк - краткое содержание его речи. Ты ведь говоришь по-русски? Вот ответ на мой вопрос! О какой реке вы хотите поговорить? О Роне или Соне? Я рад, что мы избавились от анонимуса. Вы когда-нибудь летали на воздушном шаре? Пожалуйста, подумайте. Лучше быть головой собаки, чем хвостом льва. Я увижусь с тобой в Бостоне. Вы страдаете? Вы сообщили об этом своему учителю? Я могу добавить одно замечание? Ты мне голову не морочь, а давай выкладывай всё начистоту. Он переходил улицу. Мои предки уехали из России в восемнадцатом году. Не искушайте судьбу. Когда вы взяли на себя ответственность за выполнение задач? У меня хватает ума не ссориться. Анонимус рассказал мне, что вырос в Бостоне. Они могут спеть. Если этот фильм такой плохой, зачем вы его смотрите? Анонимуса сегодня уже не будет. Все деньги исчезли. Надо было мне последовать совету анонимуса. Я ей родственница. Я не знаю, кому анонимус это дал. Кто рассказал тебе о нём? Ложь терзала меня изнутри. Я не могу вам с этим помочь. Мы хотим переговорить с анонимусом. У него был устный экзамен. Кто-то сломал мой фотоаппарат. Подойди и сам посмотри. Ты очень одинока. Что бы ты стал делать? Верёвка оборвалась. Анонимус относится к этому серьёзно. Мэри не всегда соблюдает правила дорожного движения. На какой самый лучший концерт ты ходил? Все думают, что это я деньги украл? Анонимус всех нас ненавидит. Я не хочу в больницу. У меня были проблемы с произнесением его имени. Ты всё-таки решил идти? Анонимус вас не поймает. Хватит говорить о анонимусе гадости. Вы должны это прекратить. Я ни разу ему не написала, несмотря на непреодолимое желание это сделать. Ты можешь привести мне другой пример? Анонимус был убит двадцатого октября две тысячи тринадцатого года. Чем этот отличается от того? Анонимус — нейрохирург, и он копается в мозге. Он холодно улыбнулся. Я уже сам ничего не понимаю. Почему у меня нет парня? Как ты оказался в моём доме? Иногда люди принимают неверные решения. Давай немного подождём! Конь хочет пить. У меня уже есть двое детей, и третьего я не потяну. Как я раньше не понял! Вот это не повезло! Я останусь и понаблюдаю за анонимусом. Жаль, что Шредингера нет рядом, чтобы увидеть растущий интерес к своей кошке. Ты не мог бы позвонить мне сегодня вечером? Может, сделаем передышку? Мы собираем двигатель. Скоро сам всё узнаешь. Я говорю всё, что вздумается, не опасаясь, что меня услышат. Эта книга принадлежит школьной библиотеке. Ты видишь между ними разницу? Мы провели тихий день за городом. Помяни чёрта, и он тут как тут. Я помыл картошку. Количество бумаги, производимой в стране, тесно связано с ее культурным уровнем. Вы глухая? Он потерял в аварии руку. Анонимус не поэтому этого не сделал. Я хочу быть здесь с тобой. Я хочу казаться выше. Я развеселился. Тогда как насчёт этого: 1500 в месяц. Пан или пропал. Я никогда не влюблялся ни в одну девушку. Мы отлично ладим.
>> 131038  
Я ей сейчас пишу. Направь камеру на ту группу. Этим утром я встретил Боба. Я хотела, чтобы ты выиграла. Кресло было повернуто к окну спинкой. Во Франции бензин дороже, чем в США. Огонь спалил дом дотла. Собаки и кошки в чём-то похожи. Вы мне не сказали, что анонимус говорит по-французски. Я долго не мог понять, куда это я попал. Как вы думаете, когда анонимус придёт? Где вы познакомились? Полицейский засвистел и дал знак машине остановиться. Научи меня делать салат. Только он может гуся на воробья выменять. Твой пёс весьма крупный. Мы все планируем привиться. Язык - ключ к душе человека. Это древний закон. Знаете что? Я вам тут не нанимался! Ты собаку кормил? Дети ненавидят нудных учителей. Этот старик только что убил гигантского кальмара. Я благополучно прибыл сюда рано утром. Он водитель лимузина. Мне нравится красный цвет. Они об этом не говорят. Я выжимаю апельсин. Мы брат и сестра. Я не фотографировала много. Сердце говорит да, а разум говорит нет. Я еду с ними. Я тебе чистую правду говорю. Ольга разучивает ноктюрн Шопена. Они выбрали Педро капитаном. Я думал, ты это знаешь. Анонимус какой-то уставший. Дети, прекратите вашу возню! Займитесь чем-нибудь. Посчитайте, например, предел. Мама, похоже, начала учить французский. Музыка — хороший способ борьбы с тишиной. Мэри не нравятся мужчины, похожие на анонимуса. Думаешь, мы с тобой несовместимы? Недалеко было поле полное золотистых колосков пшеницы. Она говорит, что никогда не видела панду. Анонимус понимает, что он сделал? Ты, похоже, не знаешь, что делать. Вдохните носом. Эта ошибка стоила ему нескольких минут, которых у него не было. Я не хочу разочаровать своих родителей. Анонимус имеет привычку беспрестанно придираться ко всем действиям Марии. Мне оба нравятся. Орёл легко убил воробья. Ты никогда не был на них похож. На твой вопрос легко ответить. В моём языке музыкальные ноты обозначаются знаками: "до", "ре", "ми", "фа", "соль", "ля", "си". Посмотри на свою карту. Анонимус пришёл в школу очень поздно. Случай делает человека вором. Он спас мне жизнь, хоть я того и не хотел. Последние три года анонимус живёт в Бостоне. Думаешь, это может сработать? Мы для тебя то же самое сделаем. Ты работаешь каждый день? Его выступление было особенно ожидаемым. Одиннадцать умножить на одиннадцать будет сто двадцать один. Анонимус спросил меня, есть ли у меня сестра. Не играй с этим. Он живёт на холме. Это имеет отношение к изучаемой вами проблеме. Праздник всем поднимает настроение. Он выставил меня за дверь. Я решила оставить девичью фамилию. Смотри не вывались за борт. Анонимус ничего не может с этим поделать. Надеюсь, она не умрёт. Никогда больше не бросай меня. Я не вполне понимаю, что ты хочешь сказать. Наслаждайся пляжем. Собрание в пятницу. Просто не ввязывайся в это. Анонимус хочет поговорить с вами снова. Я думаю, что ты уронил это. Анонимус точно знал, что ему надо делать. Я весь день играла в теннис. Я не знал, что анонимус учитель. Это набожные люди. Прошлой зимой у нас было много снега. Ей не следует ему доверять. Мне на глаза наворачиваются слёзы. Выпей за компанию. "Чьи это иголки?" - "Надины". Сколько строк в этом абзаце? Отец попросил её всё ему рассказать. Позволяй себе отдыхать время от времени. Я это приберегу. Мы ждём вас уже полчаса. Я знаю, почему анонимус плакал. "Какие новости?" — "Никаких". Он в чёрной шапке. Я думаю, вы с ним найдёте общий язык.
>> 131151  
16568192808420.jpg   (175Кб, 724x1035)   Показана уменьшенная копия, оригинал по клику.
175
>>131036
Зочем?
>> 131153  
>>131151
Ботов делать, в базе данных около 900000 фраз. У них ещё и теги есть https://tatoeba.org/ru/tags/view_all?sort=nbrOfSentences&direction=desc
>> 131154  
16568287586680.gif   (1996Кб, 736x471)   Показана уменьшенная копия, оригинал по клику.
1996
>>131151
Выборка быстрая, общее число фраз считается в базе данных, а затем случайное число определяется через php. Я могу каждой записи с тегом дать порядковый номер, тем самым даже выборка по тегу окажется очень быстрой. У меня ещё появилась идея капчи, в этой базе данных имеется перевод фразы на несколько языков (в том числе английский), можно выдать несколько капч на разных языках, попросить ввести ту, что на русском. Тем самым боту который разгадывает капчу ещё придётся определять язык, а это уже индивидуальный подход нужен, к тому же нужно определить, что за капчу вводить из нескольких, а сервисы для ввода капчи за деньги таким не занимаются.
>> 131158  
>>131151
Для чего нужен социальный успех? Этот вопрос "зачем" можно задать по любому поводу, затем сказать: "не нужна наука, не нужен интернет, ебаться надо, иметь успех". Любая наука является угрозой для социально успешных, тебе ответили для чего, такое уже воспринимается угрозой. Взять сообщение с этим "Том", затем удалить "Том" и сделать номером сообщения, получится бот, который отвечает на сообщения что-то вразумительное. И что дальше? Механизмы которые используются на YouTube для перевода на разные языки способны взломать любую аудио-капчу. Почему на АИБ так мало посетителей? Никому не нужно, зочем, лучше ебаться и социальный успех. Это же ложь, успешные здесь не выдерживают естественный отбор. В реальной жизни больше методов контроля, если собеседник не нравится, тогда можно ударить, здесь ничего нельзя сделать и отвечают: "ты страдаешь, зря тратишь время". Однако, разве тот человек, который удалил собеседника не тратит зря время? Видишь, ударить человека в реальной жизни почему-то некоторые допускают, а в интернете одни моральные уроды. Говорят: "общайся учтиво, уважай собеседника", а в реальной жизни никого не уважают. Почему-то в интернете нужно быть добрым, а в реальной жизни допускается быть быдлом.
>> 131159  
>>131158
> который ударил собеседника не тратит зря время?
fix
>> 131160  
>>131151
Возьмём тот же "бред" из психиатрии, одна из характеристик состоит в том, что не поддаётся критике, нельзя опровергнуть. Окей, у нас в интернете ограничена свобода слова, но мнение за которое отправляют в тюрьму не является бредом, значит не нужно наказывать, а вести диалог с человеком, затем опровергнуть мнение, которое признано в интернете неправильным. Не нужно отправлять в тюрьму человека, достаточно опровергнуть мнение, которое не является бредом. Для чего отправлять в тюрьму человека, если можно разложить по полочкам в чём не прав собеседник и все будут знать, что неправильное мнение высказано в интернете? Для чего скрывать информацию, которое является ложью и легко опровергнуть? Понимаю, если бы сообщения за которые наказывали были бредом, который нельзя опровергнуть и требуется лечение.
>> 131243  
16569494428270.gif   (5171Кб, 1278x657)   Показана уменьшенная копия, оригинал по клику.
5171
Сделал две капчи в одной, нужно ввести ту, что на русском. Имеется база данных фраз на многих языках, не только на русском и английском, тем самым за место английской капчи можно подставить капчу на другом языке. Боту усложняется задача, нужно ещё определить где капча русская.
>> 131273  
16569650276010.jpg   (8Кб, 259x194)   Показана уменьшенная копия, оригинал по клику.
8
>>131243
А это уже интересно
>> 131274  
>>131273
У меня имеется база данных перевода всех этих русских фраз на английский (ладно, не всех, не знаю, сколько переведено на том сайте, но всё равно там много фраз переведённых), могу сделать так, что капча на английском станет переводом капчи на русском, вводишь капчу и учишь английский язык. Боту тогда облегчается задача, но всё равно капча становится немного более запутанной. Ещё раз, база данных с этого сайта, у них файлы выложены, чтобы на свой сервер добавить: https://tatoeba.org/ru/sentences/index Выборка для капчи происходит из ~1 миллиона русских фраз.
>> 131275  
16569687882930.gif   (1124Кб, 1278x657)   Показана уменьшенная копия, оригинал по клику.
1124
>>131273
Русской-английский словарик так же имеется, не знаю для чего, хотя можно придумать такую капчу, что будут две фразы, одна рандоманая (бессмысленный набор слов) и фраза заранее подготовленная из ~1 миллиона, нужно выбрать не которая рандомная, тоже боту сложно справиться с задачей.
>> 132478  
>>130573
>Давайте придумывать название для движка АИБ,
Зачем тебе движок? Сделаешь свою мелкоборду? Или уже существующие будешь переводить?
Алсо, код-то выложишь в открытый доступ?
>> 132489  
16574525775080.gif   (919Кб, 1278x659)   Показана уменьшенная копия, оригинал по клику.
919
>>132478
>Зачем тебе движок?
Мне легче свой движок создать чем разбираться в существующих.
>Сделаешь свою мелкоборду?
Возможно, однако даже название для сайта не придумал.
>Алсо, код-то выложишь в открытый доступ?
В любом случае выложу, если не сразу, то когда сайт перестанет быть актуален, надоест, закроется. У меня было несколько попыток создать движок АИБ:
1) На Zend Framework (тогда ещё не было Laminas), получилось слишком громоздко, хотя была возможность создавать блоги и у тредов были теги.
2) На Laravel, быстро свернул из-за того, что решил Symfony лучше.
3) На Symfony, монолитная структура, слишком громоздко, но уже почти было готов, сообщения отправлялись, треды создавались.
Пишу на том же самом Symfony, но пытаюсь не делать код громоздким, получается модульная структура, любой программист может создать пакет maidbox-module и тем самым расширить функционал.
"installer-paths": {
"src": [
"type:maidbox-module-src"
],
"config/maid_box": [
"type:maidbox-module-config"
],
"templates": [
"type:maidbox-module-templates"
],
"translations": [
"type:maidbox-module-translations"
]
}
>> 132500  
16574566815460.gif   (4001Кб, 852x632)   Показана уменьшенная копия, оригинал по клику.
4001
Ещё один пример того насколько удобна модульная архитектура.
>> 133226  
>>132489
>чем разбираться в существующих.
Порой это тоже надо.
>> 133231  
>>133226
У некоторых движков АИБ процедурный код (ООП не используется), если нужно в таком разбираться, тогда в любом коде.
>> 133232  
>>130914
Ты никогда не станешь женщиной. Присоединись к 41%, Лэйнтрансуха.
>> 133345  
16579315005810.gif   (2622Кб, 777x630)   Показана уменьшенная копия, оригинал по клику.
2622
Создал специальную страницу с роутами на тот случай, если лень создавать меню.

Инструкция для создания модуля пока такая:
Нужно создавать отдельные пакеты maidbox-module-src, maidbox-module-config, maidbox-module-templates и maidbox-module-translations, либо разместить config, templates и translations в каталоге Resources внутри maidbox-module-src. Подробнее: https://pastebin.com/KjjcbiEy
>> 133524  
1
>> 133528  
2
>> 133531  
Имеет ли хоть какой-то смысл кодирование в base64 для АИБ? Это алгоритм который легко декодируется, достаточно нагуглить сайт с декодером или создать свою программу. Я подумал, что можно было бы создать специальный раздел в котором любое сообщение кодируется в base64, тогда для чтения такого раздела нужно самому создать программу, которая парсит раздел и декодирует в нормальный текст, получается раздел с порогом вхождения для программистов. Одно сообщение легко способен декодировать кто угодно, но для целое раздела нужны навыки программиста, хотя любой затем способен скачать специальный javascript, но снова же нужно быть в теме, не разбирающийся в программировании может не сразу понять, что дело в разделе в котором сообщения зашифрованы.
>> 133532  
>>133531
> для целого раздела
fix
> что делать в разделе в котором сообщения зашифрованы.
fix
>> 133544  
16581856047090.gif   (2556Кб, 718x620)   Показана уменьшенная копия, оригинал по клику.
2556
Лень делать страницу редактирования конфигурации для своего модуля? Ничего страшного, создаётся автоматически. Схема конфигурации такая: 1) файл default.yaml (не должен никем измениться, кроме автора 2) файл custom.yaml (изменяется пользователей 3) база данных. Когда скрипт не находит в базе данных конфигурацию, тогда обращается к кэшированной custom.yaml, если и там не находит, тогда поиск осуществляется в default.yaml.
>> 133545  
>>133544
И, да, на этой gif запись производится не в файл custom.yaml, а в базу данных. Поля: module, setting, type, value
setting имеет формат: key.key.key.key2, затем такое легко преобразуется в массив. Type определяется через default.yaml, при записи в базу данных считывается default.yaml, определяется тип переменной и устанавливается в поле Type.
>> 133547  
16581976489240.gif   (1591Кб, 717x620)   Показана уменьшенная копия, оригинал по клику.
1591
Несколько вариантов конфигурации? Без проблем. Custom - это основная, действующая конфигурация, остальные нужны для предоставления возможности быстрой смены содержимого custom.
>> 133554  
16582247924230.gif   (1672Кб, 937x659)   Показана уменьшенная копия, оригинал по клику.
1672
Немного косметики.
>> 133596  
16582583179000.jpg   (1126Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
1126
Видео (не про АИБ, а про базовые возможности расширения движка):
MaidBox\Config - https://youtu.be/BhLgbPGU_EQ
MaidBox\Routes - https://youtu.be/zjzCRlwzfdE
>> 133656  
16583366995040.jpg   (362Кб, 1020x1020)   Показана уменьшенная копия, оригинал по клику.
362
>>133596
>>130960
Вижу продвижение есть, спасибо что творишь! Планируешь ли запускать борду и когда? Я бы заходил.
>> 133669  
16583383827250.png   (669Кб, 1440x800)   Показана уменьшенная копия, оригинал по клику.
669
>>133656
По моим подсчётам на создание борды должно уйти месяц или два, но ничего не обещаю. Вообще я уже рассказывал, что борду легко сделать, минимум три таблицы (раздел, тред, сообщение), отправка сообщения... самое главное - это безопасность, чтобы не завайпали на следующий день.
>> 133676  
16583395171050.png   (224Кб, 420x280)   Показана уменьшенная копия, оригинал по клику.
224
>>133669
>чтобы не завайпали на следующий день
Успехов тебе! Меня больше волнует как избежать нашествия лахты. От рака же можно уберечься не пиаря борду на лахтаче.
>> 133700  
16583829171300.png   (101Кб, 2244x1388)   Показана уменьшенная копия, оригинал по клику.
101
Добавил возможно редактировать шаблоны через веб-интерфейс + редактор кода с подсветкой синтаксиса.
https://www.youtube.com/watch?v=Idde1xv5zE8
>> 133703  
>>133700
зачем нужен этот богомерзкий yaml?
чем json плох?
>> 133704  
16583933362700.png   (245Кб, 2000x867)   Показана уменьшенная копия, оригинал по клику.
245
>>133703
Тебе удобно редактировать конфигурацию в виде json???
>> 133705  
16583937839030.gif   (113Кб, 999x479)   Показана уменьшенная копия, оригинал по клику.
113
>>133704
Yaml понимает всякие [значение1, значение2], просто у меня Yaml конфигурация записывается в базу данных по одной опции, а затем выборка из базы данных отображается в виде Yaml, введёшь [значение1, значение2], станет
- значение1
- значение 2
неизвестно в каком виде вводилась настройка.
>> 133706  
>>133705
>>133703
>> 133707  
>>133704
да, потому что не удобно быстро читать глазами, можно проебать пробел
как и в питоне ебучем
>> 133708  
>>133707
да и много значений на одну строчку тоже неудобно
ты же не min js скрипты или ассемблер дрочишь

если править руками - пусть удобно будет, без необходимости обмазываться эзотрикой всякой

алсо, борда на симфони? оверкилл
>> 133709  
16583996195160.gif   (48Кб, 999x477)   Показана уменьшенная копия, оригинал по клику.
48
>>133707
Попытался сделать настройку, чтобы формат yaml менялся на json, затем оказалось json не понимает русский язык. Смотри, имеется возможность превратить массив в json на русском языке, но обратно нужно декодировать русские символы в специальные unicode последовательности... Посмотри какой-нибудь json содержающий значение на русской языке, тогда поймёшь, хотя чисто на английских символах работает.
>> 133711  
>>133708
Здесь вроде понимает русские символы, но вот про такое рассказываю:
\u003e\u003e\u003e130573\u003c/a\u003e\u003cbr\u003
https://dva-ch.net/b/res/130573.json
>> 133712  
Мне нужно неликвидную json строку превратить в массив.
>> 133715  
16584018116870.gif   (375Кб, 999x477)   Показана уменьшенная копия, оригинал по клику.
375
Ммм... оказывается синтаксическую ошибку в json сделал, нормально русский язык понимает.
>> 133716  
16584046791210.gif   (5234Кб, 1280x720)   Показана уменьшенная копия, оригинал по клику.
5234
XML конфигурация JUST FOR FUN.
>> 133726  
>>130573

Может быть cringe-engine?
>> 133728  
16584170842090.gif   (1055Кб, 498x342)   Показана уменьшенная копия, оригинал по клику.
1055
>>133726
Почему кринж?
>> 133738  
>>133728
IzgIB
>> 133758  
А ты няшный?
>>133728
>> 133759  
>Давайте придумывать название для движка
Пиздюкаба
>> 133760  
>>133758
Да. Писю будешь?
>> 133767  
ПРАВДА
Сосачеры -это пиздюки, сбежавшие с Двача (2ch.hk – Двач) на сосач (2ch.rip – сосач).
>> 133768  

>>133760
Не, я по девочкам
>> 133779  
>>133767
ПРАВДА
2ch.hk - параша ссаная, быдло. На лахтач (2ch.hk - ссаный подментованный лахтач) быдло!
>> 133780  
>>133768
Сунул свою 21 см ДЕВОЧКУ тебе в рот, пидорас.
>> 133781  
>>133779
Сосачерскому (2ch.rip - сосач) пихачепиздюку БОЛЬНО
>> 133789  
16584266394290.png   (1Кб, 136x63)   Показана уменьшенная копия, оригинал по клику.
1
>>133780
Не я не пидобир как ты, подростёт то зови, дефлорирую, бро
>> 133912  
бумп
>> 133926  
>>133780
Блять, опять скидывать свой пак порнухи, чтобы доказать, что я не гей.
>> 133948  
Не могу остановиться создавать модули, CSSManager + JSManager, возможность редактировать .css и .js файлы через веб-интерфейс, подсветка синтаксиса прилагается. https://www.youtube.com/watch?v=xHZAR-aCAjg
>> 133952  
16584342783380.jpg   (263Кб, 2000x1499)   Показана уменьшенная копия, оригинал по клику.
263
>>133948
Спасибо тебе за старания и труд, однажды буду капчевать на твоей борде:)
>> 133962  
>>133948
Не по теме. Как вы пользуетесь телеграмом в линуксах? Какой бы дистрибутив я не ставил, стоит мне покрутить колёсиком так окно телеги начинает гулять по экрану. Иногда спасало изменение рамки окна с дефолтной на системную.
>> 133995  
>>133962
У меня ничего такого нету.
>> 133996  
>>133962
Поставь емулятор винды и открывай
>> 134042  
bump
>> 134047  
16585047282350.webm   (2478Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
2478
Обновлении версий .css и .js файлов при редактировании через веб-интерфейс.
>> 134082  
16585857611990.mp4   (2568Кб, 640x360)   Показана уменьшенная копия, оригинал по клику.
2568
Оказывается и такое бывает, конвертер видео на стороне клиента через javascript, а не на стороне сервера.
Библиотека: https://github.com/ffmpegwasm/ffmpeg.wasm
Сайт автора: https://ffmpegwasm.netlify.app/
>> 134083  
16585858146570.webm   (4618Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
4618
Лол, не тот видосик загрузил, вот этот с конвертером видео через javascript.
>> 134110  
бамп
>> 134156  
16586776229500.webm   (1235Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
1235
АИБ.
>> 134180  
16587628381780.webm   (3640Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
3640
Добавление изображений к сообщению.
>> 134191  
16587824736430.webm   (5694Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
5694
Пример дополнения SiteMode и демонстрация страницы SQL-запросов к базе данных: https://youtu.be/bXHn6pOOeZs
Немного о настройках форума: https://youtu.be/WhOTG-1wri8
>> 134194  
Говорил же, что где-то месяц или два понадобиться, сейчас получается запилил АИБ с нуля за 3 дня. Мне очень долго пришлось разбираться с архитектурой, пилить что-то наподобии CMF.
>> 134203  
16588359310040.webm   (2613Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
2613
Добавил возможность ограничить количество тредов/постов с одного IP адреса за интервал времени. Опция board в значении true указывает считать количество тредов/постов в одном разделе, в значении false указывает считать количество тредов/постов по всему форуму.
>> 134204  
>>130573
Новая борда, ура, надеюсь там с вашим ламповым движком можно будет покапчевать, отписать в треде храма головы, спросить совета у сакрального оленя и прокрутить рулеточку.
>> 134207  
>>134204
Я тоже жду эту чудесную борду, весь пак с фотографиями говна туда выгружу, собирал много много лет.
>> 134208  
16588482484160.jpg   (97Кб, 626x513)   Показана уменьшенная копия, оригинал по клику.
97
>>134204
>>134207
Для вас специально для вас https://2ch.hk/. Можете не благодарить.
>> 134209  
>>134208
Если отписывать зашквар на незашкварной борде, то это не зашквар, тащемта.
>> 134210  
>>134208
>hk
На харкаче через хк сидят исключительно пидорахи, ты пидораха.
>> 134211  
16588494869860.webm   (1149Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
1149
Добавил возможность ограничить количество постов с одного IP-адреса в одном треде за интервал времени.
>> 134269  
16589664287110.webm   (3169Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
3169
Сделал в каждом разделе уникальный ID сообщения, на видео с помощью вайпа проверяю нету ли ошибки в скрипте, сообщения находятся в одной таблице, если бы в реализации была ошибка, тогда скрипт вайпа однажды остановился из-за того, что при генерации ID сообщения для раздела возникло два одинаковых ID.
>> 134271  
>>134269
Качество webm не очень для просмотра номеров постов при проктуре, не нужно удивляться, если не по порядку. https://www.youtube.com/watch?v=yFNc0BwwiLQ
>> 134272  
16589793025090.png   (172Кб, 3840x1642)   Показана уменьшенная копия, оригинал по клику.
172
Раз уж научился блокировать таблицы и делать счётчики, что думаете о таком развитии событий? Первый пост в треде имеет id равный 1, второй пост имеет id равный 2, а id внутри раздела не отображается.
>> 134273  
16589800959110.png   (133Кб, 1776x1228)   Показана уменьшенная копия, оригинал по клику.
133
Можно сделать так, отображается ID треда + ID поста внутри треда, если нужно указать ссылку на пост внутри другого треда, получится что-то типа такого >>/id_треда/номер_сообщения.
>> 134283  
16590082355930.webm   (2660Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
2660
Уникальный адрес для треда вида /b/anime/higurashi.html (поддерживает любую вложенность).
>> 134284  
16590113975100.jpg   (4513Кб, 6144x4096)   Показана уменьшенная копия, оригинал по клику.
4513
>>134283
Хорошая идея, молодец.
>> 134285  
Я думаю борда уже готова к выкатыванию, всё остальное может уже после прикручивать и оповещать об этом в своём специальном треде.
>> 134286  
>>134285
Нету нормальной регистрации, любая админская функция доступна без проверки привелегий.
>> 134300  
16590230734270.webm   (4516Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
4516
Вернул нормальный ID сообщения, пруф.
>> 134328  
16590961681220.webm   (1788Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
1788
Добавил ленту новостей для тредов и разделов.
>> 134329  
16590961880390.webm   (1788Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
1788
Добавил ленту новостей для тредов и разделов.
>> 134374  
16591939996970.webm   (3520Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
3520
Боковая панель, выбор шрифтов, определение адреса по заголовку + автоматическая генерация следующего id для адреса: https://youtu.be/Oomp12IH_yo
>> 134375  
16591940585940.webm   (1788Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
1788
Новостная лента для разделов и тредов: https://youtu.be/APHI2lYeuqw
>> 134376  
16591940801220.webm   (3520Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
3520
Боковая панель, выбор шрифтов, определение адреса по заголовку + автоматическая генерация следующего id для адреса: https://youtu.be/Oomp12IH_yo
>> 134377  
Не заметил, что посты добавились, а удалить нельзя, пароль пустой.
>> 134379  
16592031365760.webm   (1825Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
1825
Поле "адрес" больше не нужно, MaidBox определяет url по заголовку.
>> 134394  
>>130573
>АИБ
а кошелек с криптой и товары будут?
>> 134395  
16592809282850.webm   (3518Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
3518
Бамплимит, автозакрытие треда после n постов, перелистывание.
>> 134396  
16592817011980.webm   (1835Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
1835
Для создания страницы с тредами и последними к ним n сообщениями уложился в 5 запросов к базе данных, выполняются за 7 мс.
>> 134493  
16595369211880.png   (164Кб, 400x225)   Показана уменьшенная копия, оригинал по клику.
164
Что думаете насчёт аутентификации через вконтакте/гугл/яндекс/гитхаб, сильно ли ударит по рептуации? Анонимность таким образом не отменяется, а дополнительный способ аутентифицировать без регистрации... код уже имеется и функционирует, но неизвестно стоит ли такое включать и не отпугнёт ли пользователей.
>> 134494  
>аутентификации через вконтакте/гугл/яндекс/гитхаб
>Анонимность таким образом не отменяется
))))))))
>> 134495  
>>134494
Просто тупо можно не использовать саму возможность. Имеется регистрация, которая пока что непонятно какие даёт преимущества (нету функции в которых зарегистированных отличается от анонимуса), но в том случае, если найдутся такие преимущества имеется два способа регистрации: 1) подобрать логин и пароль 2) кликнуть по ссылку и аутентифицироваться через вконтакте.
>> 134496  
>>134495
>нету функций в которых зарегистированный отличается от анонимуса
>кликнуть по ссылке
fix
>> 134498  
>>134495
Не добавляй функций вроде регистрации и т.п., если не знаешь зачем. На вопрос "зачем мне" отвечай сам блять.
Так-то в принципе любая аутентификация это уже сорт оф деанон, но возможны и более мягкие взгляды на этот вопрос.
Рега через буквально какие-то корпоративные или подментованные ресурсы, при том что рега вообще не нужна - это пиздец. Как минимум это клоунада, а если ты хочешь привлечь каких-то утят, которые без этого не смогут (хз есть такие вообще или нет), то я не уверен, что это хорошая идея.
>> 134500  
>>134498
>Не добавляй функций вроде регистрации и т.п., если не знаешь зачем.
Регистрация в любом случае нужна для модерации.
>Рега через буквально какие-то корпоративные или подментованные ресурсы, при том что рега вообще не нужна - это пиздец.
Трипкоды же кто-то использует, могу дать возможность отобразить id вконтакте (или имя с фамилией) в поле "имя" и сделать кликабельную ссылку.
>> 134501  
>>134500
А, то есть ты форумчик делаешь, а не бордочку. Не осуждаю, мне похуй.
>Трипкоды же кто-то использует, могу дать возможность отобразить id вконтакте (или имя с фамилией) в поле "имя" и сделать кликабельную ссылку.
Имеет смысл, если юзеры попросят, по-моему. А так, ссылку можно и в посте дать лол.
>> 134503  
>>134501
Ссылка в посте не подтверждает, что твой аккаунт.
>> 134505  
>>134503
А должна?
>> 134506  
16595395941970.png   (71Кб, 760x650)   Показана уменьшенная копия, оригинал по клику.
71
>>134505
Не знаю.

В общем, по разработке, часть кода перенёс в event'ы (события), теперь при создания расширения получится отловить формирование формы ответа, создание треда и вмешиваться в событие, сторонее расширение способно добавить поле в форму, присоединить свою таблицу базу данных. Создание треда теперь выглядит вот так лаконично:
``
// Создание формы отправки.
$event = new ThreadFormCreateEvent(ThreadType::class, null, ['method' => 'post']);
$eventDispatcher->dispatch($event, ThreadFormCreateEvent::NAME);
$form = $event->getForm();
$form->handleRequest($request);
// Провека на наличие отправленных данных.
if($request->isMethod('post') == true) {
$event = new ThreadValidateEvent($board->getCategory(), $board, $form);
$eventDispatcher->dispatch($event, ThreadValidateEvent::NAME);
$form = $event->getForm();
if($form->isSubmitted() == false) {
switch($request->getRequestFormat()) {
case 'json':
return $this->json(['detail' => 'Данные не отправлены.'], 400);
break;
}
}
// Проверка отправленных данных.
if($form->isValid() == false) {
switch($request->getRequestFormat()) {
case 'json':
return $this->json(\MaidBox\Form::getErrors($form), 400);
break;
}
}
if($form->isSubmitted() == true and $form->isValid() == true) {
$data = $form->getData();
// Создание треда.
$event = new ThreadCreateEvent($board->getCategory(), $board, new Thread, new Post, $data);
$eventDispatcher->dispatch($event, ThreadCreateEvent::NAME);
// Отображение результата.
switch($request->getRequestFormat()) {
case 'json':
$post = [];
return $this->json($post);
break;
}
}
}
``
>> 134508  
>>134506
Код в читабельном виде: https://pastebin.com/Qw4bNNH0
>> 134522  
На каком ЯП пишешь движок?
>> 134524  
>>134522
PHP, фреймворк Symfony.
>> 134539  
анон, я правильно понимаю, что движок это, то что обычно называют бэкендом?
>> 134540  
зацени еще финскую борду вроде как довольго успешный проект
>> 134541  
https://ylilauta[.]org
>> 134544  
>>134539
Ага.
>>134540
Мне главное расширяемость движка, а не функционал, допустим, имеется некий базис АИБ (отправить сообщение, создать тред, модерация), а остальное является расширением, которое легко отключить или удалить.
>> 134545  
16596333671530.png   (477Кб, 3796x1880)   Показана уменьшенная копия, оригинал по клику.
477
>>134541
Заглянул, что за ужас, скрытие постов на анонимном форуме одного определённого анонимуса.
>> 134871  
16598830263680.jpg   (168Кб, 1080x950)   Показана уменьшенная копия, оригинал по клику.
168
>>134545
Действительно очень анонимно.
>> 134915  
>>134506
> if(... == true)
Понял.
>> 134916  
>>134506
> if(... == false)
Понял.
>> 134950  
>>134915
>>134916
Лоооол. Ахахаха.))))
>> 134953  
>>134916
Типа нужно так делать?
1.if($form->isValid())
2 if(!$form->isValid())

Кажется, что удобно, но когда условий становится несколько немного путаюсь.
>> 135023  
>>134953
> когда условий становится несколько
Меньше case больше guard clauses.
>> 135024  
>>134524
Зачем это говно? Переписывай на ассемблер.
>> 135025  
>>135024
Ассемблер - говно.
ТруЪ посоны выбирают машинный код.
>> 135026  
2ch
https://www.youtube.com/watch?v=gfj93G_gE3w





http://polezner.ru/kak-iskat-informatsiyu-v-veb-ke-she-google-instruktsiya/
>> 135207  
Имеется следующая идея, причём реализумая, каждый тред можно продолжить с помощью поля адреса, скажем, адрес anime, в случае существования второго треда с таким адресом и предыдущего появляется перелистывание, которое переносит в следующий тред anime/2/, так же можно продолжить тред указав в поле адреса id предыдущего.
>> 135208  
Так же думаю скрыть ID всех тредов и постов, использовать за место этого UUID вида 123e4567-e89b-12d3-a456-426655440000. Каким образом ссылаться на другой пост в треде? У меня пишутся id постов внутри тредов (от 1), внутри треда будет нормальная нумерация начинается с 1.
>> 135209  
16603066369180.webm   (1463Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
1463
Сделал возможность добавить теги для треда, можно искать по комбинации тегов (+тег1 +тег2), так же исключать тег из выборки (+тег1 +тег2 -тег3).
>> 135233  
16603352724500.webm   (3286Кб, 1920x1080)   Показана уменьшенная копия, оригинал по клику.
3286
Запилил возможность перемещаться между тредами с одинаковыми адресами используя перелистывание.
https://youtu.be/SOiK_uXMsAM
>> 135358  
С адресами получилось слишком много нюансов, собираюсь переделать концепцию адресов и превратить в возможность создавать подразделы. Скажем, имеется раздел /b/, анонимус способен создать подраздел с любым названием, скажем, /b/xxx.
>> 135361  
Хотя нет, адреса лучше, просто перелистывание нужно врубать после бамплимита, теги и так создают подразделы.
>> 135513  
16608340545110.jpg   (1010Кб, 1280x1508)   Показана уменьшенная копия, оригинал по клику.
1010
Когда собираешься выкатывать и собираешься ли вообще?
>> 135517  
>>135513
Код или сайт? У меня пока регистрации нету даже для модераторов, посты нельзя удалять, поэтому ещё рано. Адреса для тредов пока что сделал deprecated (удалил из проекта, но заново запилить легко), доступ к тредам совершается по UUID, регистрация пока что состоит из одной кнопки "зарегестрироваться" и выдаёт UUID,
>Общее количество уникальных ключей UUID (без учёта версий) составляет 2128 = 25616 или около 3,4 × 1038. Это означает, что генерируя 1 триллион ключей каждую наносекунду, перебрать все возможные значения удастся лишь за 10 миллиардов лет.
>> 135519  
16608354811710.jpg   (88Кб, 800x445)   Показана уменьшенная копия, оригинал по клику.
88
>>135517
Сайт имел ввиду, просто почему-то думал что уже все готово и просто пилишь мелкие фичи.
>> 135520  
16608359377770.png   (188Кб, 1594x1670)   Показана уменьшенная копия, оригинал по клику.
188
>>135517
Неправильно скопировалось общее количество уникальных ключей UUID:
https://ru.wikipedia.org/wiki/UUID
У тредов нету номеров, адрес указывает на UUID, например,
/xxx/thread/3ea2b8b0-c7a4-45e8-9906-a298b9ca7a8b.html
Номера постов внутри треда формируются за счёт счетчика, при удалении сообщения с номером 3 следующий пост так и останется под номером 4, ссылки внутри треда не сломаются.
>> 135521  
>>135519
Программировать станет не так легко, когда ещё придётся следить за контентом.
>> 135580  
>>135520
Ты почему идею из моей головы своровал?

жуликневоруй.jpg
>> 135581  
af193190b8d3cd14103e20e900378a2b76414ff6428065f3f8539b3577b22fdf
>> 138853  
16662384381920.png   (280Кб, 1061x593)   Показана уменьшенная копия, оригинал по клику.
280
Создал борду на домене https://lainchan.ru/ с использованием TinyIB пока разрабатываю свой модульный движок АИБ под названием MaidBox. TinyIB немного модифицированная и генерирует rss файлы, достаточно добавить адрес раздела/треда в rss-агрегатор, rss раздела выдаёт новые треды, а не посты, последние сообщения в виде rss доступны по адресу https://lainchan.ru/b/latest_posts.rss
Борда для грустных.
>> 138914  
У MaidBox появился личный бложик: https://maidbox.ru/
>> 138987  
16664507413510.png   (266Кб, 400x384)   Показана уменьшенная копия, оригинал по клику.
266
TinyIB нужно устанавливать отдельно для каждого раздела, такое выглядит дико, но имеет свои преимущества, например, можно модифицировать код борды для одного раздела не трогая другие, добавить поля в таблицу. TinyIB даёт спокойно сделать подразделы с вложенностью, например, /programmer/php, /programmer/python, дело не только в названии, но и возможности устанавливать скрипты в сам /programmer. TinyIB позволяет указать для двух разных разделов одну таблицу, например, создаёшь раздел /b/ без картинок, затем скрытый раздел /vip/, который обращается к той же самой таблице из базы данных, в /vip/ скрипт спокойно пропускает картинки. Интересно то, что дублирование раздела для /vip/ может оказаться производительнее динамической генерации страницы при каждом запросе.


[Обновить тред]
Удалить пост
Пароль