[WT] [Архив]  [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Последние 50 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 18881)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP размером до 10000 кБ.
  • Ныне 2866 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
151778852326.png-(51.07KB, 349×500, kotoba_logo_lg.png)
18881
No. 18881 watch    
DISCLAIMER: Данный проект не является форком kotoba-ib и его разработка не ведется персоналом «Супермаркета».

Этот тред посвящен разработке очередного движка имиджборды под названием «kotoba.js». Движок написан на NodeJS, в качестве базы данных MongoDB, стек express, mongoose, passport.js является сегодня настолько же стандартным, как PHP в свое время. Фронтенд использует Sass и Babel, его сборка автоматизирована (gulp+babelify, но со временем нужно перейти на Webpack). Верстка - полностью валидный HTML5, однако максимально напоминает Вакабу, что позволяет работать стороннему коду (Кукле и мобильным клиентам) без существенных доработок. Так же движок работает по классическому принципу генерирования статичных файлов и имеет схожую структуру каталогов.

Несмотря на наличие современных движков, некоторые их которых даже используют похожий стек (такие как LynxChan и ololord.js), до сих пор тут и там регулярно появляются вопросы по установке морально устаревших Вакабы, Кусабы, Вичана и их форков. При этом установка и обслуживание таких движков крайне затруднительна в виду почти полного отсутствия документации, устаревших зависимостей, и необходимости доработки движка, добавления недостающих функций, и исправления устаревшей верстки.

Целью данного проекта является создание движка с классическим дизайном и привычным для современных борд функционалом, отличающийся максимальной простотой в установке. Достигается это за счет конейнеризации приложения с помощью Docker.

Как выглядит процесс установки типичного движка на локалхост:

  • Установить Apache, PHP, MySQL
  • Убедиться что PHP скомпилирован с нужными флагами и что установлена нужная версия интерпретатора (PHP 5.6 будет ругаться на то, что работало в PHP 5.4)
  • Установить ImageMagic и ffmpeg для поддержки webm
  • Править config.php, проводить манипуляции с install.php (который никогда не выполняется первого раза без ошибок)
Так выглядит установка котобы:

  • Установить docker и docker-compose (дело 1 минуты)
  • Скачать исходный код из репозитория
  • Выполнить docker-compose up -d в папке с кодом.
Установка всех зависимостей произойдет автоматически (при этом оно никак не затронет систему). После этого движок сразу готов к работе. Первый созданный аккаунт получит права администратора, лезть в исходники и править переменные не нужно - все значимые настройки доступны из админки.
Разумеется, речь идет о локалхосте. На боевом сервере нужно еще как минимум запоролить БД, а так же настроить https.

Исходный код: https://github.com/WagonOfDoubt/kotoba.js

На данный момент проект находится в стадии MVP: то есть, самый основной функционал, такой как постинг, работает, но множество ключевых функций еще не реализовано.
Логотип, очевидно, WakabaMark, стилизованный под сервала, символизирует преемственность движка перед Вакабой и подобными, а так же кошачью тематику, и является отсылкой к Kemono Friends.
73 сообщений пропущено. Показаны 50 последних сообщений Развернуть все изображения
No. 19034    
>>19033
>Потому что о такой дополнительной инфы никто не узнает - ни модератор, ни создатель. А для совсем упоротых мантрами анонимности, можно запилить фичу, которая будет шифровать IP-адреса в последовательность цифр и букв по технологии BTCrypt. Будет эдакой глобальный ID который видит только старший модератор.
Только вот ничто не мешает желающим сделать этот вывод кому угодно со стороны движка. А вот отсутствие такой фичи в принципе - мешает.
No. 19038    
151831108247.rar-(1.22MB, kotobaJS-icons-2.rar)
19038
Чет не совсем я если честно разобрался, ибо когда удалил лишние тэги из svg-файла, он перестал нормально отображаться в браузере. Поэтому, не мог бы ты тогда почистить уже финально эти файлы. Да, в этих файлах я сделал:
  • иконка для прикрепленных тредов
  • иконка для закрытых тредов
  • иконка для каталога
  • иконка для быстрого ответа
Они все 16х16 пикселей. Нужно ли еще какие-то иконки нарисовать?
No. 19043    
151836113145.png-(386.99KB, 787×1740, Screenshot-2018-2-11 бред(1).png)
19043
Коммиты за эту неделю:
Добавлен каталог.
Добавлена карта ответов, которая хранится на стороне сервера.
Добавлена возможность загрузки нескольких файлов.
Админбар теперь редактируется как обычный список ссылок в markdown, без необходимости вручную делать html-разметку.
Добавлены пункты правил под формой постинга.
>>19038
Я очень ценю твои старания, но результат нельзя назвать удовлетворительным. Эти файлы еще перепиливать и перепиливать, а иконок может понадобится еще много. Визуальные украшательства имеют сейчас наименьший приоритет, а за уникальным внешним видом нет смысла гнаться. Гораздо проще действительно своровать svg из font awesome и не париться. Не трать свое время.
No. 19044    
>>19043
Переключалку стилей переделать на выпадающий список. Пункты под меню сократить в два раза, объединив типы и размер в один пункт и убрав никому ненужную строку про уменьшение.
No. 19045    
>>19043
О, поясни за "референс". Что это значит?
> currently 2 unique user posts
Я думаю, что этот пункт под формой постинга лучше сделать отключаемой. Всегда эта фича немного раздражала с Kusaba X.
И было бы неплохо в репорт-функции сделать графу с причиной. Чтобы модератор знал причину, почему сделан репорт на данный пост.
No. 19048    
>>19045
Когда >>ссылку пишут в отдельной строке, то пост засчитывается как "ответ".
А если то же самое пишут >>19045 в составе текста, то пост добавляется в "упоминания". На 0chan.hk сейчас действует похожая система, только там разрешено отвечать только на один пост, либо ответ будет на пост ОПа по умолчанию. Ссылки на пост с других досок типа >>/b/123 всегда будут упоминаниями.
Это позволяет различать именно ответы на пост и вещи как ">>123, >>124 и >>125 - дураки" и "я >>999-кун". Возможно следует сделать опцию смешать это дело в кучу.
> Я думаю, что этот пункт под формой постинга лучше сделать отключаемой.
Под каждую из таких мелочей отдельную опцию не предусмотришь. Эти можно спокойно скрыть в css, либо найти в шаблонах и закомментировать соответствующую строку, подобные вещи можно подробно описать на вики.
А к репортам пока не притрагивался.
No. 19052    
>>19048
> Когда >>ссылку пишут в отдельной строке, то пост засчитывается как "ответ".
> А если то же самое пишут >>19045 в составе текста, то пост добавляется в "упоминания". На 0chan.hk сейчас действует похожая система, только там разрешено отвечать только на один пост, либо ответ будет на пост ОПа по умолчанию. Ссылки на пост с других досок типа >>/b/123 всегда будут упоминаниями.
Блин, на самом деле вроде выглядит просто и гениально.
> Возможно следует сделать опцию смешать это дело в кучу.
Ты имеешь ввиду возможность разделения на упоминания и ответы?
No. 19053    
>>19043
Альзо, хотелось бы скринов каталога.
No. 19054    
>>19048 То есть такой стиль ответов ты не встречал?
No. 19055    
>>19054
Ну он реже используется на самом деле. Хотя замечание верное на самом деле. Если на то пошло, тогда по упоминаниям можно уточнить: если после ссылки на пост, сразу идут символы, тогда это упоминания, а если пропуск хотя бы в один символ - ответ.
No. 19071    
>>19055
>если после ссылки на пост, сразу идут символы, тогда это упоминания, а если пропуск хотя бы в один символ - ответ.
И не забудь, что и при таком стиле могут идти номера постов подряд.
No. 19095    
>>19071
Ну это уже по-моему неудобочитательное извращение.
No. 19098    
151847869289.png-(271.00KB, 425×600, изображение.png)
19098
ОП, я тут придумал новую систему капчи, которую лучше всего реализовать тебе в движке. А именно - я говорю о возможности кастомной капчи, которую админ сам с легкостью может настраивать.
Так как текст слишком большой получился и автобус не пустил его, то я скинул идую на пастбин:
https://pastebin.com/2pJhvY4h
В общем, надеюсь мою мысль здесь поняли, а если нет, то спрашивайте конкретно, а я попытаюсь уже ответить на ваши вопросы.
No. 19099    
>>19098
Я даже не знаю, няwа, ты наркоман, или прикидываешься. Писать офигенную идею своей суперновой капчи прямо на доске, где такое уже есть. А щёлкается одно слово быстрее, чем добавляется.
No. 19101    
>>19099
Ты забываешь что у автобуса исходный код закрыт. Так что это не считается.
> А щёлкается одно слово быстрее, чем добавляется.
А тут я тебя совсем не понял.
No. 19114    
>>19098
Во-первых лол,именно на 410 такое реализовано, во-вторых картинок надо заготовить сотни тысяч, иначе какой-нибудь упертый товарисч распознает вручную хотя бы четверть из них и начнет вайпать.
No. 19116    
>>19114
> Во-первых лол,именно на 410 такое реализовано,
Я тебе больше скажу. Похожая, но упрощённая вещь реализована в движке доллчана. (вакаримасен - модифицированный клон вакабы на питоне). Но мой вариант шире придуман, чем это реализовано на автобусе и доллчане. Хотя бы потому что здесь более широкие возможности кастумизации. Это во-первых. Во-вторых, именно эти движки меня вдохновили придумать и усовершенствовать существующую систему.
> картинок надо заготовить сотни тысяч, иначе какой-нибудь упертый товарисч распознает вручную хотя бы четверть из них и начнет вайпать.
Не нужно. Достаточно 20-30 штук на самом деле. Особенно если это мелкоборда. Вряд ли кто будет писать под такое вайпалку если все это можно с лёгкостью изменить. Да и на автобус взгляни. У него на каждый раздел картинок для капчи так 15 от силы. Что-то я не видел, чтобы его штурмовали вайперы.
No. 19117    
>>19116
> Похожая, но упрощённая вещь реализована в движке десучана
Быстрофикс
No. 19118    
>>19116
>если все это можно с лёгкостью изменить
Ещё раз: телодвижений на добавление одного слова надо проделать больше, чем на добавление ответа в вайпалку. И подменять получается можно не более одной капщи за раз. С оплаченным проездом всё становится вообще очень весело.
>Особенно если это мелкоборда.
Так тут вроде уже спорили, чтоэто двиг общего назначения, а не под конкретные запросы.
No. 19119    
>>19118
>Так тут вроде уже спорили, чтоэто двиг общего назначения, а не под конкретные запросы.
Да тут из этого всего переобувания на лету уже не поймёшь, кому нужен этот двиг. А в данном случае это даже не ОП.
No. 19123    
>>19119
> Да тут из этого всего переобувания на лету
И что же за странность у тебя с переобуванием не так?
> кому нужен этот двиг
Ох, как же я люблю таких людей на анонимных имиджбордах, которые любят за всех рьяно отчитываться злоупотребляя анонимностью...
No. 19127    
151861415369.jpg-(1.37MB, 985×1400, 9b5f1f929527a2f782518c76930271f3.jpg)
19127
>>18968
> NoSQL быстрее SQL

Вруша.

https://www.enterprisedb.com/node/3441

MongoDB в 2018 году вообще не нужно. Разве что если память девать некуда, а надёжность-производительность не важна.
No. 19129    
тред для мемов?
тред для мемов!

http://www.youtube.com/watch?v=b2F-DItXtZ
s
No. 19130    
опс
http://www.youtube.com/watch?v=b2F-DItXtZs
No. 19143    
>>18968
>1. NodeJS быстрее PHP.
Ахаха, нет. Если тебе заходит абстрактная херня вместо объективных тестов, то вот тебе порция:

  • Склейка строк в PHP в 2.5 раза быстрее;
  • Наполнение массивов в PHP на 60% быстрее;
  • Наполнение ассоциативных массивов в PHP в 7 раз быстрее;
  • Чтение файлов в PHP в 10 раз быстрее;
  • SELECT запросы к БД в PHP в 2 раза быстрее;

No. 19144    
151880011540.png-(24.90KB, 589×429, tumblr_lyod8mfp621qm9ue5o2_r2_1280.png)
19144
>>19143
No. 19148    
>>19143

> абстрактная херня вместо объективных тестов

> Ахаха
No. 19172    
Ну что ОП, как дела? Будет ли отчёт за неделю, как в прошлый раз?
No. 19173    
151897327123.jpg-(170.25KB, 1001×820, yandere trance -- Misaka imouto.jpg)
19173
Читал описание теста >>19144 по адресу http://zzarbi.tumblr.com/post/16870870471/php-nodejs-mysql-and-mongo

Много думал.

Тесты под названием «Mysql2» и «Mongo2» отличаются тем, что не содержат повторного открытия соединения с сервером. Не удивительно, что Node.js быстр в этом случае, но для чистоты эксперимента тогда и PHP следовало бы запускать аналогично (возможности http://php.net/manual/en/mysqli.persistconns.php и http://php.net/manual/en/pdo.connections.php это позволяют для MySQL, например), а сделано это не было, так что тест ни о чём.
No. 19174    
>>19173
Это имеет смысл, так как сравнивалась производительность типичного веб-приложения на PHP, работающего через cgi, например php-fpm, где на каждый запрос спавнится новый процесс, и наиболее популярного подхода на Node.js: запустить сервер и слушать порт. В первом случае нет возможности держать постоянное соединение с БД. Оба подхода являются дефолтными при выборе соответствующей технологии, говоря "сайт на PHP" подразумевают именно LAMP с php-fpm, а так сделаны все движки для имиджборд на PHP, так же как и на perl, и некоторые на Python, говоря о сайте на Node.js, как правило подразумевают express, и все известные движки на нем написаны именно так.
Так что в контексте данного треда этот тест совсем не ни о чем.
No. 19177    
>>19172
Добавлено удаление постов по паролю. Вроде бы немного, но это ключевая функция, которая не очень тривиальна. Нужно было корректно удалять не только посты из базы данных, но и ссылки на удаленные посты из карты ответов других постов, посты-ответы при удалении тредов, картинки и html-файлы. В дальнейшем с этим уже легко реализовать основные функции админки.
В процессе переход сборки фронтенда с gulp на webpack, что позволит ускорить разработку фронтенда.
No. 19178    
>>19177
>удалять не только посты из базы данных
То есть, тут нельзя будет, как в кусабовском модлоге, посмотреть, что там понаудаляли модераторы. И некровайперов, которые удаляют посты, только через логи сервера ловить, ага.
No. 19179    
>>19178
Чего? Откуда такой вывод?
No. 19180    
>>19179
Из процитированного. Как просмотреть содержание удалённых сообщений, если они и из базы удаляются?
No. 19181    
>>19180
В модлоге. Которого еще нет.
No. 19182    
151899339432.jpg-(126.66KB, 700×990, 1518993394862.jpg)
19182
>>19177
>>19178-кун очень прав. Не смотря на каличность кода кусабы, у нее было несколько ключевых функций, которые отсутствуют в многих современных движках. Например, в том же тиниборде/вичан. Среди них:
  • нет быстрого ответа
меньше действий, что эргономично.
  • multidelete/multiban.
Дохера полезная вещь. Допустим в треде пару дурачков Семёнов устроили сильный срач на постов так 25 а то и больше. И вот, представь, модератору вместо того чтобы выделить сразу ненужные посты на удаление - приходится кликать по каждому посту отдельно. Скорее всего он взорвется так - что удалит тред полностью. Что не очень найс. Как это работает. Когда ты залогонился как админ или модератор, ты заходишь на доску и можешь удалять не через мод-кнопки которые находятся рядом с каждым постом, а как обычные пользователи - с разницей лишь той, что твой пароль может удалить любой пост в пределах доски/досок, где у тебя есть права на удаление. )
  • Бэкап тредов.
Нужен для двух случаев: 1) контролировать модераторов, чтобы знать не только сколько и какие посты они удаляют, но и что было в содержании. А вдруг рядом с постами нарушающими правила, они трут ещё просто то что им не нравится. И тогда, если пользователь жалуется на несправедливую модерацию, то админ может по модлогам и бэкапу чекнуть, "гонит" ли пользователь на доске или быть может у него появились "вахтёры". 2) есть некоторые тролли, которые любят создать тред, а потом когда люди начинают отвечать и тред набирает интересную и полезную дискуссию, он берет и удаляет тред. ОП же типо. Ну а про невидимые бампы я вообще молчу.
Да, самое главное: эти посты при желании можно восстановить. С файлами. Но только таким правом обладает админ. Как и удаление корзины. Т.е. получается у нас есть аналог корзины в бд. Удаленные файлы/треды/посты В ЛЮБОМ СЛУЧАЕ попадают в корзину при удалении, а потом только админ способен либо восстановить либо удалить навсегда конкретные посты/файлы.
  • No-read баны. Тоже полезная вещь. Если стоит на апаче то пускай вписывает IP в .htaccess файл. Профиты: более строгое наказание для вайперов. Чтобы они наверняка не смогли завайпать борду и также заодно трафик можно сэкономить.

No. 19183    
>>19177
Хотя быстрый ответ у тебя уже реализован, это хорошо.
No. 19184    
>>19182
Все это довольно очевидно и являлось частью концепции движка изначально.
За исключением только no-read банов. Большой практической цели они не несут, а в случаях защиты от вайпов/ддосов/надзоров можно самому полезть в настройки вебсервера.
No. 19185    
>>19184
>За исключением только no-read банов
То есть, опыт эксплуатации™ Ычана, где их вкатывают каждый день по несколько раз, игнорируется?
No. 19186    
>>19184
> Большой практической цели они не несут
Ну как сказать, высшая же мера наказания.
>>19185
А разве там есть no-read баны?
No. 19191    
151899694112.jpg-(536.04KB, 1056×1504, horror -- Hakurei Reimu.jpg)
19191
Возражение >>19174 признаю убедительным.
No. 19192    
>>19178
Кстати о некровайперах. В Инстанте была правка, возвращающая тред на место, если последний пост, которым был бампнут тред, удаляется.
No. 19193    
>>19192
А также такая правка была в Phutaba
No. 19194    
>>19192
Хороший вообще движок. Только вот доски 2.0 раздражали. Если бы можно было как-то от них избавиться...
No. 19207    
151906159043.jpg-(211.65KB, 430×600, 67313183_p0_master1200.jpg)
19207
Над чем дальше будешь работать после того, как реализовал удаление по паролю постов?
Я бы лично рекомендовал тебе реализовывать в таком хронологическом порядке:
1. bans and moderation features
2. staff permissions system
3. autoupdate and notifications
4. personal settings stored on server
No. 19221    
151913360218.png-(21.90KB, 259×224, 14154262.png)
19221
МЕЛОЧЬ, НО ПРИЯТНО!
В кусабе, в отличии от вичана и вакабы, если изменить имя дефолтное и делать это без генерации страницы, итог один и тот же: изменяются абсолютно все имена. Даже на старых, т.е. последних страниц. Более того, в дефолтное имя нельзя запихнуть массив например, если хочется создать примитивный генератор имен. Было бы здорово, если ты систему имен дефолтных реализовал как в вичане/кусабе
No. 19227    
>>19221
>В Кусабе убогая реализация, не как в Вичане!
>Сделай как в Кусабе/Вичане!
Што.
No. 19228    
>>19227
Как в вакабе хотел сказать. Опечатался
No. 19231    
15191446994.png-(280.00KB, 664×1367, Screenshot-2018-2-20 Kemono Friends.png)
19231
>>19221
Оно там с самого начала так.
No. 19233    
Json api есть?
Тред не читал.
Удалить сообщение []
Пароль  
[Mod]