CAPTCHA
 Deletion password
  • Supported file types are JPG, PNG, GIF, WEBM and MP4.
  • Maximum number of files is 4, 20 MB total.
  • Images greater than 230x230 will be thumbnailed.
  • Currently 492 unique users.

No.537
1232578207466.jpg
(24.02KB, 384x402)
Выложил исходники своей мелкоборды.
https://github.com/SthephanShinkufag/TinyIB

Таки спромогся, насколько это возможно со всеми ранее сделанными модификациями, актуализировать свой форк TinyIB до последнего коммита (14 Nov 2018) от Тревора Слокума (он же автор кусабы), и выложить на гитхаб.

Кто хочет почитать и ознакомиться со списком изменений, читайте здесь и далее.

Буду теперь отправлять туда все свои правки в движке. Жаль, не регистрировал коммиты раньше, сейчас получился один большой неуклюжий коммит на все изменения за год.

А чому я выбрал TinyIB? Тому що у меня уже есть Dollchan Extension! TinyIB примитивный и быстрый, а кукла гигантская и перегруженная. Они как инь и янь, дополняют друг друга.
Процитирую Тревора:

> A bloated pile of crap like lynxchan is just a pain in the ass because there is too much to deal with. I hope you keep the new imageboard simple like tinyib is, that is why tinyib is so awesome, the simplicity. Like the tons of features on vichan or 4chan boards are retarded, no one gives a crap about 50000 extra options, just make a board!!

Amen!
No.542
1228497970690.jpg
(48.44KB, 429x480)
Список отличий моего форка от оригинального TinyIB (на русском):

- Разметка текста: bbcode (поддержка многострочного текста и вложенных тегов), wakabamark.
- Кнопки форматирования текста, расположены под текстовой областью в фоhме ответа.
- Кнопка "Quote text", которая вставляет выделенный текст в текстовую область формы ответа с символами >.
- Именованные ссылки, как на github: [TinyIB](https://github.com/SthephanShinkufag/TinyIB/)
- Загрузка, просмотр и разворот WEBM и MP4 файлов без установленных mediainfo и ffmpegthumbnailer. Видео вставляются прямо в станицу без генерации превью.
- Удобный css с поддержкой мобильных устройств.
- Настраиваемое имя в постах по умолчанию.
- Обрезание длинных постов по размеру в байтах и по количеству строк.
- Админ: посты с красным именем, если админ залогинился в Manage-панели.
- Индикация "Sage" в постах.
- Система лайков (пока на стадии разработки, сейчас есть лишь поле в базе и фронт-енд).
No.543
tinyib_fork_html.jpg
(236.30KB, 1126x881)
И да!
Мой форкнутый TinyIB генерирует красивый удобочитаемый HTML-код, пикрелейтед.
С соблюдением всех отступов, вместо каши и сплошной вырвиглазной простыни.
Не везде, конечно, но я над этим ещё поработаю.
Естественно, в нынешнем 2k18 (2k19), со всеми современными инспекторами, которые встроены в браузеры, это не так и важно, но мне со моим перфекционизмом так приятнее.
No.546
А ты не планируешь интегрировать куклу внутрь?
А оверчан каким представляешь, если не передумал его делать?
А на лурочку в список борд не хочешь добаить свою, все таки пол года уже существует?
No.548
FINAL_capture-20130805-0054521.jpg
(60.38KB, 500x282)
>>546
> А ты не планируешь интегрировать куклу внутрь?
Не вижу сакрального смысла в этом деянии. Сюда и так все с куклоскриптом заходят. Зойчем?
> А оверчан каким представляешь, если не передумал его делать?
Азъ давно вынашиваю эту идею, да всё руки не доходят. Столько идей крутит мой гзом, що не могу делать всё и сразу. Скрипт тоже надо ведь пилить, реквесты, баги, вот это всё. То там подпилить, то здесь, то вот опять занялся движком имиджборда, уже третий день хочу допилить лайки, но то одно, то другое, то третье. Вот новую фичу в кукле реализовал сего дня, например.
А овербордец пилить буду обязательно.
Начать можно, например, с переноса вот этой таблицы сюда, с красивым оформлением. Потом на основе сего списка создать ещё одну страницу, и де будут разворачивающиеся списки с досками, и конечно же фрейм.
> А на лурочку в список борд не хочешь добавить свою, все таки пол года уже существует?
Стесняюсь, однако. Да и так не пиарюсь ниразу нигде, от слова савсэм. Ресурс живёт исключительно за счёт интереса пользователей Dollchan. Собственно, ведь ему он и посвящён, жи есть. Пока что. Но ваш покорный слуга, как сферический bydloadminus vulgaris, в душе надеюсь, что народ сюда буде прибывать и на прочие темы.
А вот шиш. Уже джва года как крутится ресурс https://dscript.me/chanstat/, но про него знает 3.5 анонимуса, и то не заходит нихът.
Аще один фактор, домен выбран неудачно - слово t.me (злоъбучий телеграм) занесено в блеклист на сосаче и ычане. Кто ж знал про такое.
Ну да и ладно.
No.549
162c3528cb57cb0db82506f09250c086.gif
(41.62KB, 359x453)
Альзо, теперь можно подчёркивать зачёркивать синеньким красненьким.
Как-то забыл про разметку зачёркивания, одако. Добавлена кнопка в движке, и заработала кнопка в скрипте.
Также теперь включён постинг прозрачных gif, png и анимированных png.
Аще было дело, включил анимацию в превьюшках гифов, поигрался, и выключил нафиг. Бардак буде, одако, да и ресурсы дешевенького сэрвачка жалко.

О, а подчёркивание то оказывается не реализовано. Буде чем заняться завтра утром за чаем.
No.595
ulQvwkNoFsM.jpg
(101.84KB, 1065x800)
Подскажи, как доски создавать, пожалуйста, а то не получается установить. Заранее спасибо!!
No.597
>>595
Сорри, в глаза долблюсь. Прям стыдно.
No.600
Странно, почему-то не работает загрузка вебмок, кода на виртуал хостинг поставил. Хмм...хотя на локалхосте всё окей.
No.601
>>600
Посмотрите ваши директивы php.ini:
upload_max_filesize
post_max_size

Может, у вас там стоит каких-нибудь 2Mb, вот и не пускает сервер файлы, вебмки ведь большие.
No.606
ошибка!.png
(4.78KB, 510x126)
>>601
Увы, но не заработало(( Поменял upload_max_filesize, post_max_size но всё равно не удается загрузить даже вебмку размером в полмб. Я вчера весьма неточно указал ошибку, оно ругается на загружаемый формат.
No.607
>>606
Хотя, ясное дело, я загружая вебм.
No.608
11.png
(12.02KB, 248x646)
Загружаемые вебмки почему-то имеют такой миме-тип. Я профан, и вообще не знаю как такое решать. Я могу разрешить загружать этот тип через settings.php, но мне кажется, что это дырявое решение и мне занесут туда вирусов.
No.730
EP5pnZ3GCnQ.jpg
(243.54KB, 1000x1200)
Реквестирую возможность прикрепления нескольких файлов к посту, а так же менялку стилей. Очень реквестирую пожаняушта
No.731
1382647135433.jpg
(172.39KB, 900x720)
А ещё реквестирую режим каталога. Тогда вообще лучший движок будет.
No.741
1547614205188.png
(395.26KB, 662x758)
Бамп!
No.786
Screenshot_2019-01-13-22-10-44-067_com.android.chr
(829.66KB, 720x1440)
Bump
No.850
1394044773826.jpg
(48.77KB, 712x871)
Я тут подумал вот о чём. Почему, с одной стороны, утратил свою популярность ЖЖ, хотя дискуссии там было вести куда удобнее, чем в Фейсбуке и Вконтакте по причине наличия в ЖЖ древовидной структуры комментариев? Потому что с развитием Интернета общение стало менее текстоориентированным, а постить картинки и видосы в ЖЖ было неудобно - ни в постах, ни в комментах. А почему, с другой стороны, приобрели популярность имиджборды? Как раз потому, что там можно было удобно, в один клик, постить мемасы. И вести длинные дискуссии тоже было удобнее, чем в соцсетях: на АИБ есть стандартный способ цитирования сообщения, на которое отвечаешь, и есть карта ответов, по которой можно отслеживать ветви дискуссии. Да, сейчас АИБы умирают - но это скорее потому, что изжила себя сама идея анонимности и слабого контроля процесса общения его непосредственными участниками, а не сам формат АИБ.

Поэтому я считаю, что следующий этап развития соцсетей вполне может выглядеть как этакий гибрид АИБ и Фейсбука. То есть - неанонимная, с юзернеймами, паролями и аватарками имиджборда, где вместо тематических разделов - персональные разделы пользователей и сообществ. То есть - всё как в Фейсбуке (или ЖЖ), только в форме имиджборды: у себя можно создавать, удалять и замораживать треды, банить, тереть и запрещать комменты, а у других - только комментировать; ещё можно френдить, читать френдленту, писать под замок, создавать сообщества, вступать в них и так далее.

Попробуй сделать на основе движка своей борды что-то подобное. Вдруг взлетит, станешь новым Цукербергом.
No.851
57b05136dde1915688bd3e7d.png
(164.34KB, 700x326)
Наконец-то реализовал систему лойсов.
Первое нажатие по сердечку лойсает пост, второе убирает ваш лойс (в отличие от 2ch.hk, где свой лойс убрать нельзя).
Пока зойпилил для pdo и pgsql баз данных. Егда обкатаю на других типах (sqlite, mysql, flatfile), тогда выкачу коммит.
>>850
Идея может и хорошая, но боюсь, что у меня физически не буде столько времени на подобный масштабный проджэкт. Для этого надо бросить все, работу, личные дела, и заниматься только этим. А я какбе не ноулайфер, те же лойсы я собирался реализовывать месяца два, да всё было некогда. Конечно, взял себя в руки и буквально за вчера и сегодня реализовал механизм запросов, но в таком режиме нонстоп быть не получится. Таки буду допиливать движок понемногу, но что-то кардинальное сделать - це вряд ли.
Такие дела.
No.864
1371319357_1844865608.jpg
(133.45KB, 511x518)
>>851
Допилил систему лайков для всех режимов данных: 'pdo', 'mysqli', 'mysql', 'sqlite3', 'sqlite', 'flatfile'.
Алсо, таблица лайков успешно переносится механизмом миграции из flatfile в mysqli.
Исправлена ошибка, когда лайкать можно было только с индексной страницы.
Коммит на гитхабе:
https://github.com/SthephanShinkufag/TinyIB/commit/459c1698c4644fae653c76c0eff26a2f72ddf431
No.875
>>850
Ты только что Реддит.
No.877
>>851
У тебя в таблице есть столбец islike - видимо, для дислайков - но при этом везде при подсчетах лайков этот факт игнорируется.
No.878
>>877
Поле islike не нужно, всегда равно 1, и выполняет декоративную функцию. Запилил его просто на будущее, если реализую дизлайки. Система дизлайков не реализована, даже в зачаточном виде. Будет время - реализую.
No.879
>>878
Лучше сразу расширяемые каштомизируемые реакшоны пилить, а лойсы как один из вариантов.
No.1052
css-fixed.jpg
(121.49KB, 862x1224)
Небольшой фикс CSS чтобы последующие посты не налезали на ОП пост:

.oppost {
	overflow: hidden;
}

.oppost > .filesize {
	margin-left: 20px;
}
No.1055
rawpost-mark.png
(193.13KB, 1142x982)
>>1052
Запилил в админской форме чекбокс для установки плашки админа/мода

diff ./html.php ./edited-html.php
179a180,189
> ($isRawPost)? '
> <tr>
> <td class="postblock"></td>
> <td>
> <input type="checkbox" name="rawpost" style="margin: 0 auto;"> '.'<span style="font: 10px sans-serif;">Add <span style="color: red;">## Admin</span> or <span style="color: purple;">## Mod</span> mark</span>' . '
> </td>
> </tr>
>
> ':''
> ) . (
No.1056
>>1055
Немного переделал функцию отвечающую за OEMBED вставку.

Старая функция тупо проводила запрос через url_get_contents() к каждому хостингу из массива $tinyib_embeds[] и птом проверяла результаты заполнения массива $result[].
Из-за чего при вставке YouTube видоса зачем-то происходили обращения к Soundcloud и Vimeo.

Эта функция сначала проверяет к какому хостингу относится URL и только потом обращается.

function getEmbed($url) {
	global $tinyib_embeds;

	if (sizeof($tinyib_embeds)!=0) {
		foreach ($tinyib_embeds as $service => $service_url) {

			if ( strpos( strtolower($url), strtolower($service) ) !== false ) {
			$service_url = str_ireplace("TINYIBEMBED", urlencode($url), $service_url);
			$result = json_decode(url_get_contents($service_url), true);
			 if (!empty($result)) {
			 	return array($service, $result);
			 }
			}

		}
 	}
	return array('', array());
}
No.1106
bb.png
(444.06KB, 1984x1412)
>>1056
Я решил запилить свою версию на основе твоей борды. Сейчас сижу и раскуриваю код. Кое что уже сделал (4 файла на пост).

Нашел ошибку. В файле database_pdo.php есть ошибка в коде функции deletePostByID($id). Из-за нее при удалении всего треда, из базы удаляется только оп-пост, а реплаи остаются в базе.
При вызове pdoQuery() надо передвать не $id, а $post['id']:

Исправленный код:
function deletePostByID($id) {
	$posts = postsInThreadByID($id, false);
	foreach ($posts as $post) {
		if ($post['id'] != $id) {
			deletePostImages($post);
			pdoQuery("DELETE FROM " . TINYIB_DBPOSTS . " WHERE id = ?", array($post['id']));

		} else {
			$thispost = $post;
		}
	}
	if (isset($thispost)) {
		if ($thispost['parent'] == TINYIB_NEWTHREAD) {
			@unlink('res/' . $thispost['id'] . '.html');
		}
		deletePostImages($thispost);
		pdoQuery("DELETE FROM " . TINYIB_DBPOSTS . " WHERE id = ?", array($thispost['id']));
	}
}
No.1111
>>1056
Сделал форк на Github:
https://github.com/nolifer1337/TinyIB

Собственно главная фича - можно постить до 4х файлов.


В данный момент можно использовать только
define('TINYIB_DBMODE', 'pdo');
define('TINYIB_DBDRIVER', 'mysql');

То есть только библиотеку функций из database_pdo.php + MySQL, ибо остальные библиотеки я еще не модифицировал и не тестировал.

У меня такой набор софта:
pkg info | grep mysql80
mysql80-client-8.0.16_1        Multithreaded SQL database (client)
mysql80-server-8.0.16          Multithreaded SQL database (server)

pkg info | grep php73
mod_php73-7.3.6                PHP Scripting Language
php73-7.3.6                    PHP Scripting Language
php73-fileinfo-7.3.6           The fileinfo shared extension for php
php73-gd-7.3.6                 The gd shared extension for php
php73-json-7.3.6               The json shared extension for php
php73-mysqli-7.3.6             The mysqli shared extension for php
php73-openssl-7.3.6            The openssl shared extension for php
php73-pdo-7.3.6                The pdo shared extension for php
php73-pdo_mysql-7.3.6          The pdo_mysql shared extension for php
php73-session-7.3.6            The session shared extension for php
php73-tidy-7.3.6               The tidy shared extension for php

pkg info | grep ffmpegthumb
ffmpegthumbnailer-2.2.0_8      Lightweight video thumbnailer that can be used by file managers

pkg info | grep mediainfo 
libmediainfo-19.04             MediaInfo library
mediainfo-19.04                Provides technical and tag information for video and audio files



При создании юзера в MySQL базе надо указывать использование устаревшей схемы хранения паролей "mysql_native_password":
CREATE DATABASE b;
CREATE USER 'buser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bpassword';
GRANT ALL ON bb.* TO 'buser'@'localhost';
No.1117
TinyIB-fork.png
(568.81KB, 1975x1979)
>>1111
Держу в курсе. Тем временем запилил:
+ Можно постить 4 файла
+ Удаление файлов из поста
+ Редактирование поста
+ Возможность залочить тред
+ Мелкие багфиксы

Осталось запилить:
- Каталог
- Мод-лог
- Несколько модераторов

Тебе интересно получить pull request, когда все будет допилено?
Или ну его накуй этот репортаж?
No.1118
>>1117
Почему вас заинтересовал мой форк?
> Тебе интересно получить pull request
Спасибо, nein.
Я было хотел перепилить ваш постинг четырёх файлов для совместимомсти с текущей базой данных (убрать 0 из имён полей первой картинки), но вы накидали сверху ещё изменений. Да и времени нема даже на скрипт, куда там борду допиливать. Не до этого, в общем.
Пусть это будет ваш собственный форк. А я егда-нибудь заберу у вас что-нибудь полезное себе.
Можете отписываться здесь, как хотите.
No.1119
XnWrbqqSRxE.jpg
(48.22KB, 403x604)
Самое главное, не превращайте движок в комбайн свистелок и перделок а-ля Meguca, LynxChan и т.п. с фичами ради фич, с окнами никому не нужных настроек и возможностей привет, куклоскрипт, хех. В обливион все сторонние библиотеки и плагины. Только чистый php (насколько возможно), только хардкор.
Простота, и понятная функциональность.
No.1120
>>1118
>Я было хотел перепилить ваш постинг четырёх файлов для совместимомсти с текущей базой

Скажи как надо сделать и я запилю как надо. Я не смогу вечно пилить этот форк и был бы рад отдать его обратно.
No.1121
>>1118
>Почему вас заинтересовал мой форк?
От нечего делать. Лолилисач накрылся унитазом и йа ощутил порыв вдохновения от обилия свободного времени. Раньше все время капчевал в анимублядском и было некогда.>>1118
No.1122
og_og_1465290902281955558.jpg
(101.20KB, 1200x628)
>>1120
В принципе, подумал и пришёл к выводу, что именование полей с нулём тоже верно.
file0,
file0_hex,
file0_original,
...

Ничего не меняйте. Я модифицирую потом свою базу, просто переименую поля.
У меня проблемы со свободным временем IRL, не обижайтесь, что не принимаю всё сразу и не реагирую. Мне некогда сейчас даже смотреть. Но я такой человек, что мне надо основательно сесть и хорошо вникнуть, вкурить, переварить.
Спасибо за труды, обязательно всё заберу, егда время появится.
No.1128
>>1052
> чтобы последующие посты не налезали на ОП пост
Кхм-кхм, это не баг, а фича.
>>1106
> function deletePostByID($id) {
Господь всемогущий! Это плохой, негодный код. Начнем с того, почему вообще функция, удаляющая пост, может удалять тред? Если ей передали оп-пост, она должна бросать исключение. Либо хотя бы вызывать deteteThreadByID(), если вам лень выпалывать легаси где-то в кишках.
А вот внутри deteteThreadByID() с тредом и картинками можно расправиться парой запросов к SQL. Картинки можно прибить одной строкой через array_map('unlink', glob('паттерн из sql')).
Удалять тред циклом по одному посту - слишком мощное кунг-фу.

Полям file0..file3 в таблице постов делать нечего. Должна быть отдельная таблица для файлов. search://нормализация%20sql
No.1131
>>1128

>Удалять тред циклом по одному посту - слишком мощное кунг-фу.
Я не пилю чан с нуля, а лишь добавляю что-то к существующему движку. Вопрос не совсем ко мне, а скорее к автору оригинала https://github.com/tslocum/TinyIB
Он реализовал удаление поста и треда одной универсальной функцией.


>Полям file0..file3 в таблице постов делать нечего. Должна быть отдельная таблица для файлов. search://нормализация%20sql
Я знаком с теорией БД, но все упирается в универсальность. Не все движки БД имеют поддержку внешних ключей. Придется реализовывать эту логику на PHP что приведет к усложнению кода.
No.1132
catalog.png
(584.75KB, 1411x1295)
>>1117
>>1131
Добавил каталог.
Генерируется catalog.html в корневой директории доски (там же где index.html).
No.1133
6457775.png
(19.57KB, 300x300)
64577750.png
(24.66KB, 300x300)
64577751.png
(24.63KB, 300x300)
64577757.png
(24.70KB, 300x300)
>>1052>>1055>>1056>>1106>>1111>>1117>>1120>>1121
Залил ваши изменения к себе на репо, по #a78ef01 включительно.
Мой коммит с правками. Мои правки касаются в основном мелкого рефакторнга, адаптации стиля к привычному мне, а также приведению генерируемого HTML-кода к читабельному состоянию с соблюдением отступов, см. >>543.
Обновил структуру БД на этой борде, вроде бы всё работае. Запилил изменение в скрипте для возможности постинга 4 файлов из-под скрипта Dollchan.
Благодарствую, друже, вы делаете замечательную работу!

Message edited: 25.06.19 Tue 00:06:06
No.1134
>>1133
Добра, Степан. Рад что мои потуги пригодились.

Я сегодня сделал генерацию каталога. Думаю еще добавить возможность иметь на доске несколько модов и потом сделаю мод-лог.

Есть еще что-нибудь что стоило бы попытаться допилить?
No.1139
31116158277_11479f30f2_b.jpg
(58.08KB, 903x600)
>>1134
Исправил постинг файлов с куклоскриптом.
Сделаю попозже pull ваших последних коммитов с разрешением конфликтов.

> Есть еще что-нибудь что стоило бы попытаться допилить?
Danke и так за ваши труды, столько сделано.

Можно, например, пагинацию длиннотредов >>810>>812. Ибо в треде обсуждения скрипта уже 841 пост.
Но таки не знаю, каким образом собственно сие должно выглядеть.
Например, вот так:
https://dscript.me/de/res/2342-page0.html
https://dscript.me/de/res/2342-page1.html
...
С разбивкой по 500 постов. И ссылки на страницы под оп-постом.

А можно не разбивать тред на страницы, например, а зойпилить систему треда, егда в нём отображается только последние 500 постов по ссылке Reply:
https://dscript.me/de/res/2342.html
а тред целиком можно получать отдельно по ссылке под оп-постом, "335 posts omitted. Click Here to view.", например:
https://dscript.me/de/res/2342-full.html
Правда, для всего этого придётся перепиливать и куклоскрипт.

А можно вообще ничего не пилить, а создать новый тред, и аллес.
Надо обсудить концепцию и хорошо подумать.

UPD: Может, лучше не пилить эту фичу, так как возрастёт нагрузка на сервер, ибо необходимо будет генерировать не только большой тред целиком, но и сокращённый тред (или вообще в виде страниц по 500 постов). В таком случае, большие треды будут генерироваться по два раза. Да и куклоскрипт перепиливать лень.

Message edited: 25.06.19 Tue 18:27:50
No.1142
public-modlog.png
(44.09KB, 884x524)
modlog-adminPanel.png
(72.03KB, 883x524)
>>1139

Добавил модлог.
Теперь расставляя в нужных местах вызов функции modLog() можно логировать действия модов, например (или что угодно еще).
Сейчас для логируется удаление постов/тредов, а так же Login/Logout модов. Данные пишуться в новую таблицу.

P.S.
Степан, ты просто герой! Нифига себе - так ты уже перепилил все библиотеки SQL функций?! Это 80% всей работы по адаптации изменений.
No.1147
ice.webm (20559010 bytes)
No.1148
No.1154
derevo-otvetov.png
(106.79KB, 542x756)
>>1142
Запилил индикацию ответов на пост (как правильно это называется? дерево ответов?).
Для старых данных работать будет, но не очень красиво. После накатывания этого изменения ко всем новым постам будет прикрепляться перевод строки в конце.

На этом все. Больше ничего добавлять скорее всего не буду.
No.1174
test2.webm
(5.97MB)
test
No.1175
test1.webm
(2.98MB)
test1
No.1188
>>879
Стикеры, чтоль? Да, надо флажки и репосты в вк. Модтян, сделай!
c: cazuz
No.1190
wakaba топ
No.1194
>>1188
Стикеры тоже можно. Но нет. Реакшоны — это типа лойсы, но с каштомной кортинкой и подписью. Надеюсь, так понятнее.

Стёпу, при возвращении взад при дисейблед капще вставляется ещё раз ссылка на пост. Зделой чтобы не.
No.1195
Если закрыть шебмку, то после закрытия она запускается хуй знает где.

Delete Post   Manage