Monaba

Материал из Колчевики
Перейти к навигации Перейти к поиску

Monaba - Imageboard движок написанный на Haskell с использованием Yesod (www.yesodweb.com).

README[править]

<poem>Features Прикрепление нескольких файлов Рейтини цензуры для файлов Hellbanning AJAX Пруфметки Гибкая система аккаунтов. Интернационализация Удаление постов ОПом Поддержка GeoIP

Зависимости: GHC >= 7.6 PHP 5 GD image library MySQL 5</poem>

Установка[править]

Отредактировать config/settings.yml and config/mysql.yml

Загрузить GeoIPCity:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz
cp GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat

Или установить из репозитория.

Загрузить GeSHi:
wget http://sourceforge.net/projects/geshi/files/geshi/GeSHi%201.0.8.11/GeSHi-1.0.8.11.tar.gz
tar -zxvf GeSHi-1.0.8.11.tar.gz
mv geshi /your/path/to/geshi

Установить путь к GeSHi в highlight.php

Установить обязательные пакеты:
apt-get install ghc php5 libgd-dev mysql-server
apt-get install cabal-install zlibc libpcre++-dev libgeoip-dev libcrypto++-dev libssl-dev libmysqlclient-dev

Используя уже скомпилированный бинарник:
Загрузить: Monaba-[your-arch]-[your-platform].7z здесь и распаковать архив в dist/build/Monaba/

Сборка бинарника:
cabal update
cabal install hsenv
~/.cabal/bin/hsenv
source .hsenv/bin/activate
cabal install happy
cabal install --only-dependencies
cabal install yesod-bin
cabal clean && yesod configure && yesod build

Компиляция займёт около получаса.
Возможно вы столкнётесь с нехваткой памяти и вам придётся задействовать SWAP.

Запуск[править]

Создать базу данных:
mysql -u mysqluser -pmysqlpassword -e 'create database Monaba_production;'

Запустите приложение для инициализации схемы базы данных:
./dist/build/Monaba/Monaba production

Откройте другой терминал и заполните базу данных значениями по умолчанию:
mysql -u mysqluser -pmysqlpassword -e 'use Monaba_production; source init-db.sql;'

Используйте "admin" в качестве логина и пароля для авторизации.

На первый взгляд это похоже на нечто вакабоподобное. Админка более продвинутая, чем на других бордах. При переходе в админку лучше бы сразу открывался какой-нибудь раздел, а не просто отображался их листинг. Или же просто оформить листинг как-нибудь по другому что-ли.

Админ-панель[править]

Баны[править]

Список забаненных IP. Добавить к списку новый IP: Можно указать причину бана, на сколько часов, и перечень досок. Правда не понятно как забанить до отмены.

Борды[править]

Тут можно добавить борду, отредактировать существующую или все сразу.
Помимо стандартных опций вроде имени, краткого и полного описания тут присутствуют следующие:

  • Бамп-лимит (0 - неограничено), Максимальное число файлов (К конкретному посту)
  • Типы файлов, Дополнительные правила (Выводятся под формой постинга)
  • Максимальная длина сообщения, Максимальный размер превью в пикселях
  • Тредов на странице, Первью постов (Кол-во ответов в списках тредов)
  • Максимум тредов (-1 неограничено), Скрытая (Скрыта ли доска, естесственно)
  • Файл в оп посте (да, нет, обязательно), Файл в ответе (да, нет, обязательно)
  • Капча (On/Off), Оп-модерация (On/Off), Редактирование ОП-Постов (On/Off),
  • Редактирование постов (On/Off), Показывать историю изменений (On/Off)
  • Имя пользователя по умолчанию

Необязательные опции:

  • Категория
  • Настройка доступа для доски:
  • Отвед в тред (перечень групп)
  • Создание треда (перечень групп)
  • Просмотр доски (перечень групп).

Последняя опция (настройка доступа) прямо сказать порадовала. Очень нужно для крупноборды вроде сосача, где куча мочераторов. Не оказалось и без недочётов. Если при заполнении формы была допущена ошибка, то введённые значения сбрасываются и где конкретно была допущена ошибка не указывается. Очень раздражает.

Пользователи[править]

Листинг, Добавление/Изменение. Тут ничего особенного.

Группы[править]

А вот это довольно интересно. Тут можно создать группу, отредактировать/удалить/посмотреть существующие.

Список полномочий для группы:

  • Управление тредами
  • Управление бордами
  • Управление пользователями
  • Изменение конфига
  • Удаление постов
  • Доступ в админку
  • Бан
  • Редактирование постов и просмотр истории
  • Редактирование постов без сохранения истории
  • Расширенная разметка
  • Просматривать IP и ID постеров
  • Премодерация
  • Изменять рейтинг цензуры у файлов

Что тут можно сказать, AMAZING!
После того, как я создал две группы с одинаковыми правами, решил удалить одну из них.
Удалить не получилось:

«

Вы единственный, кто может создать нового пользователя!

»
— Анонимус

Настройки[править]

  • Длина капчи
  • Кол-во капч для постига без капчи
  • Таймаут капчи
  • Задержка перед ответом в тред
  • Задержка перед созданием нового треда
  • Категории досок (через запятую)
  • Доска для новостей
  • Сколько показывать новостей
  • Сколько показывать последних постов
  • Сколько раз можно редактировать пост

Насчет постинга без капчи непонятно. Получается, что отпостив несколько раз без капчи и спиздив сессию для своей вайпалки можно вайпать спокойно? Если это так, то очевидный недочёт, но он вполне восполняется банами.

Премодерация[править]

Список премодерируемых постов.

Мой аккаунт[править]

Здесь можно сменить пароль для своего аккаунта.

С админкой разобрались. Вполне годно.

Настройки[править]

Здесь опций немного:
Часовой пояс, Стиль (Ash, Futaba, Postmodern), Максимальный рейтинг (SFW, R15, R18, R18G)
Только вместо максимальный, почему-то написано "Максимально"

Справка[править]

<poem>Здесь описана разметка и API Стоило оформить это как-нибудь по интереснее, а не просто две ссылки. Например, можно посмотреть как это было сделано на фрипорте (через AJAX).

Расширенная разметка: Цвет текста (hex или имя цвета) Что-то вроде кап-кода: #group, #user - выведет группу и имя пользователя соответственно. Расширенная разметка, насколько я понимаю, доступна только зарегистрированным пользователям, и то, только при условии, что настройки группы пользователя это позволяют.

Затем идут стандартные BB-коды: [b], [i], [u], [s] Также к ним в добавок идёт [spoiler] Спойлеры можно делать и через привычные %%проценты%% Ссылки обрабатываются как есть. > Цитата >>Номер поста >>/доска/номер поста - Неожидал. Вряд-ли где-то можно встретить такое еще. * элемент маркированного списка - А не буллет как ожидалось.

Есть пруфметки: ##OP ##номер_поста Подцвечиваются зелёным, если автор поста, иначе красным.

Имеется возможность использовать LaTeX, что делает движок еще более уникальным. Незнаю зачем это вообще может быть нужно, но думаю не помешает.

Подцветка кода осуществляется через BB-код [code=language_name][/code] Организована она с помощью GeSHi, и поддерживаются насколько я понял все языки, которые поддерживает геши.

Претензий к разметке нет. Охуенно, что тут сказать. Разве что могут найтись люди, которые захотят поставить минус за то, что нет wakabamark, но как по мне без разницы что тут, хоть маркдаун используйте, главное, чтобы было удобно.

Копипастить возможности API нет необходимости, так как это может быть интересно разве что только разработчикам.</poem>

Доски[править]

<poem>Есть возможность разбить доски по категориям. Помимо досок есть список последних постов, доступный через /~/ Кол-во последних постов настраивается в админке.

В досках есть возможность развернуть/свернуть тред. Длинные посты обрезаются, но можно развернуть/свернуть пост. Есть массовый делит постов/файлов. Простые смертные могут удалить собственные посты. Для ОП'а, чтобы удалить чужие посты нужно поставить галку на чекбоксе ОП-модерация. Это конечно при условии, что в доске включена оп-модерация.

Управление тредами/постами: Забанить, Прикрепить/Открепить тред, Заблокировать/Разблокировать тред, Автосажа (Тред перестаёт бампаться), Премодерировать все дальнейшие сообщения автора. Скрыть пост для всех, кроме автора. Скрыть пост для всех, кроме автора и премодерировать все дальнейшие сообщения автора Скрыть все посты и Премодерировать все дальнейшие сообщения автора Показать пост, Снять премодерацию, Показать пост и Снять премодерацию. Искать посты по UID Смена рейтинга цензуры для изображения. Обновление треда без перезагрузки страницы. Автообновление отсутствует, но как я заметил в TODO, планируется в скором. Ответы: Клик по номеру вставляет номер поста. Клик по кнопке ответа вставляет номер и перемещает форму к посту. Клик по "No" - переход к посту.

Переходим к постингу. Форма стандартная. Остутствует только поле E-mail. Возможность сагать имеется. Хотя то, что пост с сажей - не показывается. Тред просто не поднимается. Можно прикреплять несколько файлов, если это позволяют настройки доски. Есть кнопки для быстрой вставки бб-кодов. Единственное замечание: нет списка поддерживаемых языков для [code], поэтому придётся обращаться к справке. Список можно было бы организовать в виде селект-бокса, при клике на элемент которого, в форму вставлялся нужный BB-код. Капча не стандартная. Предлагается ввести определённые символы из предоставленного набора. Например: введите только подчеркнутые символы. Впервые вижу подобное, если автор не будет против, то я позаимствую у него идею хотя кто будет спрашивать. Под полем ввода текста показывается кол-во введенных символов. Если количество символов превышает максимальное, будет красным показано [введено]/[максимально]. Само поле ввода сообщения автоматом изменяет свой размер при изменении кол-ва строк, вместо появления скроллбара. Незнаю, кому как, а для меня это плюс. Имеется возможность выбрать направление редиректа: к борде/к треду. (По умолчанию всегда к борде.) Много где встречал эту фичу, но и много где её не хватает. Очень хотелось бы, чтобы она стала стандартом для борд Можно убрать файл, выбранный для загрузки.

Под формой располагается блоттер: правила, поддерживаемые форматы файлов, макс. размер файла, размер превью изображения, бамп-лимит и включена-ли оп модерация.

Имеется кнопка для закрытия формы, но без запоминания положения она не очень-то полезна. Т.е. если вы закроете форму и обновите страницу, то она снова окажется открытой. При ответе в тред форма автоматом скрывается. Вобщем не очень понятно какова логика скрытия формы, лучше бы перенести это на пользователя. Плохо сделали. Тупо.

Карта ответов организована вроде как вполне нормально. Только нехватает возможности при ответе из другой доски просматривать ответы на пост, открытый в превью. Закрытие превью постов организовано с умом. Можно забыть про глюки, когда посты почему то не скрываются при снятии с них фокуса, которые особенно нервируют в эксабе. Тут же можно закрыть в ручную пост, или же закрыть все сразу.</poem>

Недоработки[править]

<poem>При изменении размера превью в настройках доски, старые превью остаются такими же. При клике правой кнопкой мыши по превью изображение разворачивается и только потом открывается контекстное меню. Нет возможности хоть как-то кастомизировать главную страницу, добавить/отредактировать свои статичные страницы Хотя можно закинуть в /static html-документ и он будет доступен, но это совсем не то. При отображении новости с пикчей на главной, картинка не отображается. При постинге имя запоминается, но нет возможности сбросить его, очистив поле имя.</poem>

Заключение[править]

<poem>Движок вышел довольно годный. Я бы даже сказал охуенный. Экс со своим новым поколением просто тихо курит в сторонке. Будем надеяться, что автор примет к сведению кажущиеся мне недочёты и естесственно будет развивать свой проект и далее. При таких возможностях довольно странно, что у него ещё пока нет своего сообщества и насколько я понял, автор делает всё в одиночку. Хотя судя по активности коммитов на гитхабе, движку около полутора месяцев, так что думаю, что у него всё ещё впереди. И как обычно пожелаем всего хорошего и успехов.</poem>

Скриншоты[править]

Ссылки[править]

Скачать[править]