GithubHelp home page GithubHelp logo

makise-homura / kurisaba Goto Github PK

View Code? Open in Web Editor NEW
8.0 6.0 3.0 63.19 MB

A nullchan-kusabaX based imageboard engine with some modern features

License: GNU General Public License v2.0

PHP 83.41% CSS 4.26% Smarty 3.31% HTML 1.93% JavaScript 7.09%
imageboard-engine imageboard kusaba nullchan-kusaba kurisach

kurisaba's Introduction

kurisaba

A nullchan-kusabaX based imageboard engine with some modern features

Установка

Этот процесс пока что не проверялся, но всё должно выглядеть так.

Если кто-то захочет развернуть курисабу у себя с нуля и поделится с нами своим опытом, например, в виде написания issue-в на github - мы будем очень рады.

  • Скопировать шаблон config.php.template из каталога template в корень борды, поправить в нём необходимые поля (они все собраны в одном помеченном соответствующими словами месте).
  • Создать базу данных с любым названием (если ещё не создана).
  • Импортировать файл database.sql в эту базу.
  • Добавить пользователя-админа в таблицу staff.
  • Создать каталоги tmp, tmp/dwoo (настраивается в конфиге), tmp/xhrupload. Они должны быть доступны для записи веб-серверу. Можно удалить каталог _templates.
  • После этого можно заходить в админку (http://example.com/manage.php) и создавать секции (по умолчанию определена секция "борды") и доски на них.
  • Можно модифицированть главную (front.php) в соответствии с тематикой борды и поправить KU_MAINPAGE в конфиге. Для примера, главная Курисача есть в отдельном репозитории.

Конфиг

Параметры в конфиге (по крайней мере, которые стоит трогать) описаны прямо в нём.

Админка

По сравнению с обычной кусабой в админке есть специальные пункты:

  • пересоздать статическую карту ответов: так как карта ответов, в отличие от обычной 0chan-кусабы в курисабе статическая, то после массивных правок досок (к примеру, переноса тредов или влива дампа базы) она может сломаться, тогда следует выбрать этот пункт.
  • сбросить лимит тредов: с целью защиты от вайпа в день можно создать не более KU_MAXTHREADSADAY тредов. Если нужно создать больше, то нужно выбрать этот пункт, и тогда отсчет KU_MAXTHREADSADAY пойдет с текущего момента, а не 24 часов до него, и можно будет создать новые KU_MAXTHREADSADAY тредов.
  • специальные треды. О них ниже. Есть также пункт "подневная статистика по бордам /sg/ и /vg/" - его вообще можно выпилить или переделать так, как надо (этот пункт специфичен для "Курисача", первой и, собственно, родной борды для курисабы).

Специальные треды

Некоторые треды могут быть доступны по коротким ссылкам и из меню.

Их можно добавить в списке тредов для меню на странице "специальные треды" админки.

Формат записи:

{THREAD | HIDDEN} thread-id /link/ Thread-Name

Здесь:

  • THREAD - показать тред в меню и сделать возможность переходить в него по ссылке
  • HIDDEN - не показывать тред в меню, но всё равно сделать возможность переходить в него по ссылке
  • thread-id - id ОП-поста,
  • link - это ссылка, по которой он будет доступен,
  • Thread-Name - имя треда, под которым он появляется в меню. Каждый блок записей THREAD/HIDDEN должна предварять строка вида BOARD boardname, где boardname - имя доски (без слэшей). Эта строка показывает, к какой борде относятся последующие треды.

К примеру, если там написано:

BOARD b
THREAD 12345 /vid/ Video Thread

то это означает, что в тред можно зайти как по обычной ссылке вида http://example.com/b/res/12345.html, так и по ссылке http://example.com/vid/.

Очевидно, названия имеющихся досок не должны совпадать с подобными ссылками на треды.

Если существует такой тред со ссылкой /faq/ - то в хедере страниц борд/тредов, а также в меню появится ссылка "FAQ". Этот тред логично объявить как HIDDEN, заблокировать и спрятать, чтобы он мог быть доступен только по ссылке, но не светился на борде.

Пару слов про лицензию

Основная лицензия проекта - GPLv2.

Однако, поскольку как сама Kusaba X, так и 0chan-Kusaba в своём составе имеет много компонентов и там могут возникать проблемы с лицензиями, то для курисабы эта болезнь тоже справедлива.

Иконки файлов (inc/filetypes/*.png) сделаны на основе иконки авторства Icooon Mono с лицензией public domain и шрифта Arturito Slab авторства Denis Ignatov с лицензией SIL OFL 1.1.

kurisaba's People

Contributors

kurisachdevteam avatar makise-homura avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

kurisaba's Issues

Autoban based on useragent

Some specific useragents may be auto-banned (for example, flooder utilities and something like this.)
List of such useragents could have been set up in administrator interface.

KuHealth availability tester

Make script that automatically tests network and service availability and sends reports
(reverse proxy test, slave storage test, link loader proxy test)

'>>,' generates empty reflinks

>>, creates reflink like https://kurisa.ch/read.php?b=vg&t=1&p=. Should not create reflink at all, but cite of level 2.

Implement english interface

There are some english messages in interface, but not all of them. Maybe it is a good idea to really implement english interface properly.

imagemagick sandbox

Due to security concerns, tools like gif*, imagemagick and ffmpeg should use sandbox.

WebM and Youtube/Coub/Vimeo previews

It would be good to generate and show preview pictures of WebM files and embeds; when clicked, they should be substituted by actual WebM or embed, which should automatically start playing.

Multiple attachments

Multiple attachments to one post are requested; for example, two pictures or picture + music.

Make styles great again

Many styles have minor bugs. For example, tripcodes are usually absent, some (Tomorrow) have width issues on shrink screen sizes.

So, general refactor with migration to SCSS needed.

[hr] and '>'/'>>'

After [hr], cite and reflink tag is not functioning, if there is no line break between them.
(like [hr]>>, [hr]>)

Image resizer with right offset

Image resizer ("Картинка ужата на") fails its logic when preview's offset is being calculated not from left, but from right off screen (for example, when viewing reply of reply of ...)

Minor bugs in formatting

  • Different order of post ordinal number and 'hide' button
  • &nbsps in post headers
  • Overlapping of buttons in floating postbox
    default

links to next/prev page

Implement urls with links to next and prev pages (a rel="next"/"prev") , head tags (link rel="next"/"prev")

FAQ: Technical reference

Some technical reference might be added to Kurisach's FAQ.
What it may include:

  • Postbox interface
  • Post interface (clickable areas, meaning of numbers/letters, etc)
  • API description

Everything noted might be added correctly to docs for sources of Kurisaba too.

(You) on autoupdate

(You) marks should appear on auto-update; both in post headers and reply map.

Push notifications

Push notifications were requested one past day. And there might be a checkbox in options that may enable it, after they are implemented.

non-js support

Dynamic elements are visible for users with disabled javascript.
Elements like up/down arrows, getnewposts, "[Reply]", emgr_ui ("История записей") are visible for non-js users.
By the way, overlay-menu becomes totally unusable, despite menus like "boards" and "search" could be implemented without js (with dropdown using pure CSS)

Show image of longpost preview at visible screen

When viewing reflinks using previews, it's sometimes hard to determine poster of longpost.
So, a possible feature to SpeedPost Helper: show image and name/tripcode of longpost in visible part of screen.

Add 'timezone' field

API's post structure might have timezone field, so client can correctly determine correction for post timestamp.

Search "replies to %username%'s posts"

Another search criteria might be added, like search every reply to posts written by some namefag author who uses name field.
Could have done by SELECT id WHERE name = '%username%', and then find corresponding replies' IDs in reply map table.

Delete/Edit Discussion

Demonstration of delete/edit model in github.
Please leave your comments here, this issue is for demonstration purposes only.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lacinia enim at odio convallis, eu sodales justo pretium. Vivamus nec urna pulvinar, euismod metus quis, congue sem. Maecenas in convallis eros. Morbi dignissim, erat in efficitur maximus, ligula lectus mollis neque, et blandit dui leo et lacus. Maecenas est erat, facilisis quis elementum sed, suscipit vel lacus. Duis aliquet sodales efficitur. Cras ultricies hendrerit velit, nec mattis leo aliquam eu. Proin orci erat, laoreet sit amet est eget, egestas posuere lectus. Nunc ultrices faucibus orci, a tempor ante porta vel. Quisque efficitur fermentum tristique. Etiam in turpis id neque convallis dapibus.

Vivamus tincidunt metus nec nisi fermentum condimentum. Mauris lobortis eleifend fermentum. Ut malesuada porta nibh, eget vehicula purus congue at. Curabitur dignissim libero est, quis lobortis ex consectetur ut. Morbi sollicitudin, libero vitae ultrices convallis, massa ligula luctus nisl, ac molestie felis sapien eget enim. Maecenas finibus mollis mattis. Vivamus maximus ac lorem eu mattis. Donec neque urna, convallis non ante scelerisque, gravida porttitor magna. Nullam laoreet imperdiet metus non aliquet. Maecenas condimentum nisl urna, quis sodales tortor tincidunt eget. Praesent eget metus quis mi elementum convallis. Curabitur justo elit, imperdiet quis convallis eget, accumsan ultricies mi. Phasellus ut mauris et ligula dictum euismod ac id metus. Suspendisse potenti.

"Scroll up" button in lower postbox

Upper postbox have a button "move to bottom", which:

  • Switches postbox to bottom mode;
  • Scrolls page to the end.

There might be analogous button in lower postbox (which moves postbox to top and scrolls up).

Autoupdate: no animation

Animated gifs do not appear animated in posts loaded by autoupdate (if animated previews are enabled in options).

'Interesting posts' button

A button like "Recommend post to Homura-chan" "Mark post as interesting" might be added; it might mark post with some boolean value, and there should be some mode like post feed, that shows these marked posts sorted by time (newer on top).
Removing from "interesting posts" might be allowed only for moderators (and admins), I suppose.

Note: database template file should be updated after adding of requested boolean field.

Specialthreads autoupdate

Make server automatically update special threads using patterns ("Random thread" in title -> update "random thread" specialthread, "аноничный" in text -> the same, etc)

["бсуждать можно любые темы", "каноничный", "Главное помнить, что", "роме знаете-сами-каких.", "андом тред", "андом-тред"]

Prettifying the postbox

It may be discussed how we might make postbox more pretty. Hide some fields (and expand them after a click of some button), fix width/height of some fields, etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.