[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.42295 Reply
File: Снимок-Программирование-10-Mozilla-Firefox.png
Png, 268.93 KB, 1762×1035 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок-Программирование-10-Mozilla-Firefox.png
Сюда еще не вбрасывал. Борда на крестах, короче. Потому что я могу.
https://ololoepepe.me/board
https://github.com/ololoepepe/ololord
>> No.42304 Reply
>>42295
Купи книжку по Perl.
>> No.42306 Reply
>>42304
Зачем?
>> No.42307 Reply
>>42295
The following libraries are also required:

   * CppCMS (http://cppcms.com/wikipp/en/page/main)
   * ODB (http://www.codesynthesis.com/products/odb)
   * libcurl (http://curl.haxx.se/libcurl)
   * curlpp (https://code.google.com/p/curlpp)
   * boost (Regex) (http://www.boost.org)
   * GNU Source-Highlight (https://www.gnu.org/software/src-highlite)

Ну и что тогда написал ты сам?
>> No.42308 Reply
>>42307
Не знаю даже, но на 15к строк набралось. Бойлерплейт наверное. Ну толсто же.
>> No.42310 Reply
>>42307
Удваиваю. Там ещё и QT судя по коду.

А ещё это очевидный сосачер. Судя по наличию шок-контента в репе.

В целом уныленько. Хардкора нет иначе зачем вообще борду на крестах писать?. Тестов нет хотя казалось бы. Нормальной сборки нет где Makefile, Automake, CMake на худой конец?. Богомерзкие либы в зависимостях. Вот зачем вообще тянуть boost ради только одного regex? Оно ведь и в QT есть. И ещё судя по всему ОП виндоложец. Сам движок ничего нового не привносит. Никому нинужные фичи эвривеар. Вот нахуя там вообще всё это дерьмо вроде
    ResultType *operator ->() const
    {
        return data.data();
    }
    ResultType &operator *() const
    {
        return *data;
    }
или сотен ts.translate. По всему коду разбросаны множественные странности. Всё перечислять лень. Одно только наличие классов на каждую доску чего стоит. Хотя казалось бы бери конфиг и делай дело.
>> No.42313 Reply
>>42310
> очевидный сосачер
Мимо. Где там шок-контент то? Ты видимо сам унылый, раз шуток не понимаешь. Еще и название Qt правильно написать не можешь, зато делаешь вид знатока. Ну да это ладно.
> зачем вообще борду на крестах писать
Потому что могу. Ты сам подумай, сколько лет придется писать все полностью с нуля, включая свой HTTP-сервер и драйвер SQLite. Еще на ассемблере предложи написать.
> Тестов нет
А баги есть? Вот то-то же.
> Нормальной сборки нет
Есть. qmake [parameters] && make -jN && make install Без Qt все равно не соберется, а если есть Qt, то зачем еще какие-то системы сборки поверх qmake городить?
> Вот зачем вообще тянуть boost ради только одного regex?
Потому что он нужен для одной из либ. CppCMS вроде бы, но могу и ошибаться, не помню точно.
> Оно ведь и в QT есть
Есть, я в курсе. Им и пользуюсь. Буст вообще в принципе не нужен почти никогда.
> виндоложец
Опять мимо. Попробуй все это под виндой собрать, гарантирую веселую ночку-другую.
> Сам движок ничего нового не привносит
Это смотря с чем сравнивать. Взять тот же ычан. По сравнению с сосачем, да, бедновато, хотя опять же [code] есть, в отличие от.
> Никому нинужные фичи эвривеар
Примеры?
> Вот нахуя
А ты код почитай, оно там используется.
> или сотен ts.translate
Предлагаешь все на одном языке делать?
> По всему коду разбросаны множественные странности. Всё перечислять лень
Примеры? А, ну да, лень, это серьезный аргумент. Верим, верим.
> Одно только наличие классов на каждую доску чего стоит
Ты же хардкора хотел. Попробуй сконфигурируй контроллер, который суть есть класс. Я посмотрю.
> Хотя казалось бы бери конфиг и делай дело
То что можно - конфигурируется. Наличие капчи, ограничения и тому подобное.
Пока что я вижу "я не осилил, но осуждаю".
>> No.42319 Reply
А мог бы SRNd (движок распределённой имиджборды) допилить,
>> No.42320 Reply
>>42319
Он же на мерзком питоне.
>> No.42321 Reply
>>42320
Альтернативную реализацию можно запилить хоть на Idris.
>> No.42322 Reply
>>42319
Каждый делает то, что ему нравится. Если тебе хочется пилить распределенную борду - вперед, я то тут при чем?
>> No.42323 Reply
>>42320
Питон охуенен.
>> No.42325 Reply
File: наркомания-ты-упоротый-песочница-350414.jpeg
Jpeg, 59.26 KB, 600×374 - Click the image to expand
edit Find source with google Find source with iqdb
наркомания-ты-упоротый-песочница-350414.jpeg
Я захотел посмотреть сорцы.
AbstractBoard:
#include "abstractboard.h"

Ладно.

abstractboard.h:
#include "../src/lib/board/abstractboard.h"

Вы, блядь, серьёзно? Целая папка файлов, которые говорят "подключи файл", которые говорят "подключи файл, который находится в другом месте, а совсем-совсем не тут, хотя все мы зачем-то лежим тут". Плохо зделали тупо. Если это "хороший тон", я не хочу знать, как выглядит плохой.
>> No.42326 Reply
>>42325
Файлы в папке include служат для установки и дальнейшего использования при написании плагинов. В Qt такая же система. Не понял, что конкретно тебе не понравилось.
>> No.42334 Reply
File: Снимок.png
Png, 211.35 KB, 1456×694
edit Find source with google Find source with iqdb
Снимок.png
File: Снимок-test-Mozil...
Png, 453.18 KB, 1762×1035
edit Find source with google Find source with iqdb
Снимок-test-Mozilla-Firefox.png

А тем временем я допилил просмотр постов по наведению на ссылку и приделал обновление тредов (загрузку новых постов без обновления страницы).
А еще придумал такую безумную штуку: на специальной доске при создании треда указывается ссылка на тред с другой борды (с ычана, например). Если зайти в тред, то "внешний" тред будет отображаться сбоку в ifram'е (растягивается на почти весь экран при наведении мыши). Можно сидеть во "внешнем" треде и одновременно обсуждать его.
>> No.42336 Reply
>>42334
Это файрфокс?
>> No.42337 Reply
>>42326
А я написал, что мне не нравится. Туча файлов непонятно зачем.
> В Qt такая же система.
Ну круто, что теперь.
>> No.42341 Reply
>>42336
Да.
>>42337
Это тебе не понятно, потому что ты не в теме, а мне очень даже понятно. Да и разработчикам Qt я больше верю, чем неизвестно кому с борд.
>> No.42342 Reply
>>42325
> Если это "хороший тон"
Это плохой тон. Есть же -I опция. В данном конкретном случае можно папку include тупо удалить. От этого одна только путаница.
>> No.42348 Reply
>>42342
Она не для использования в проекте, а для установки. Читать учимся. Еще раз повторю, что мнение анонимных экспертов меня волнует много меньше мнения профессионалов из Qt.
>> No.42359 Reply
>>42348
> Еще раз повторю, что мнение анонимных экспертов меня волнует много меньше мнения профессионалов из Qt.
А можно ссылку? Просто я реально не могу понять, зачем эта хрень делается.

>>42313
> Где там шок-контент то?
В папке с видео.
> Ты видимо сам унылый, раз шуток не понимаешь.
Возможно.
> Еще и название Qt правильно написать не можешь, зато делаешь вид знатока.
Не вижу разницы между qt, QT и Qt. Они одинаково правильные на мой взгляд. Все всё поняли, а тебя видимо задевает. QT хорошая библиотека, но лучше обойтись без фанатизма же.
> Ты сам подумай, сколько лет придется писать все полностью с нуля, включая свой HTTP-сервер и драйвер SQLite.
Зачем писать драйвер sqlite? #include <sqlite3.h> и погнали.
> > Оно ведь и в QT есть
> Есть, я в курсе. Им и пользуюсь.
Вообще тянуть qt при написании сервера мне кажется плохой идеей.
> хотя опять же [code] есть
Мерзкие bb-коды нинужны ящитаю. Джля кода есть православные обратные кавычки. Одна кавычка джля встроенного кода. Джве кавычки джля многострочного. Ещё можно три кавчычки и id ЯП, как на гитхабе.
> > Никому нинужные фичи эвривеар
> Примеры?https://github.com/ololoepepe/ololord/blob/master/src%2Flib%2Fcontroll[...]p.cpp
Да тот же самый перевод на другие языки. На самом деле нинужен.
> Предлагаешь все на одном языке делать?
Вообще да, но если уж очень хочется, то переводам место поближе к шаблонизатору. А в коде вообще лучше отсутствие всех тех полей, которые ты переводишь.
> > По всему коду разбросаны множественные странности. Всё перечислять лень
> Примеры? А, ну да, лень, это серьезный аргумент. Верим, верим.
Перегрузка -> делает код не очевидным для всех, кроме может быть тебя. На сколько я помню, в 99% случаев перегрузка операторов это плохая идея.
Открываем рандомный файл. https://github.com/ololoepepe/ololord/blob/develop/src%2Flib%2Fcontrol[...]p.cpp И видим сплошные static-функции. Рядом с ним лежит https://github.com/ololoepepe/ololord/blob/develop/src%2Flib%2Fcontrol[...]r.cpp с примерно той-же начинкой. Остальные файлы в папке - *.h и таких почти джвадцать штук. Мне подобное кажется странным.
Заходим в папку https://github.com/ololoepepe/ololord/tree/develop/src/lib/board и видим множество странных файлов. Мне кажется, что кроме AbstractBoard там особо не на что смотреть. Зачем всё остальное там? Можно ведь запилить один конфигурабельный класс. И цеплять к нему плагины обработчики, ежели оно требуется. Опятьже ебучий копипаст translate присутствует.
Ах да. Мне кажется, что static и templates должны быть вне папки src. Впрочем как и остальные данные, конфиги и прочие ресурсы. Хотя я так понел все эти ресурсы живут постоянно в памяти.
> Попробуй сконфигурируй контроллер, который суть есть класс.
Начнём с того, что я не крестовик, а веб-макака. Ну например http://www.boost.org/doc/libs/1_57_0/doc/html/property_tree.html у тебя должен быть. Или вот http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-[...]ented
> Пока что я вижу "я не осилил, но осуждаю".
Я на крестах точно борду писать не буду. Если и буду, то на няшном или на go. Или на rust, если я когда либо стану его учить конечно.
>> No.42360 Reply
>>42359
> А можно ссылку? Просто я реально не могу понять, зачем эта хрень делается.
Вот тут например можно скачать сырцы и посмотреть: http://download.qt.io/archive/qt/4.8/4.8.6/ Репы у них, к сожалению, на богомерзком гиториусе, я не осилил там что-то найти, еще и жутко медленно работает.
> В папке с видео.
Шок-контент - это какахи, кровь, кишки. А тут даже крови нет. Бери проще.
> Не вижу разницы между qt, QT и Qt. Они одинаково правильные на мой взгляд. Все всё поняли, а тебя видимо задевает. QT хорошая библиотека, но лучше обойтись без фанатизма же.
Дело не в этом. Твоя фраза выглядела так, будто бы знаток этого самого Qt. А ты даже название его неправильно пишешь. QT - QuickTime (плеер такой был раньше, вроде и сейчас еще жив). Читается Qt как кьюти (с ударением на первый слог) или кьют - "милашка" по нашему.
> Зачем писать драйвер sqlite? #include <sqlite3.h> и погнали.
Зачем писать %something%? #include "something.h" и погнали. Так я и сделал, а тебе не нравится.
> Вообще тянуть qt при написании сервера мне кажется плохой идеей.
Почему?
> Мерзкие bb-коды нинужны ящитаю.
Вкусовщина. Мне так неудобно, например. Да и одно не мешает другому, только при извращениях с кавычками парсер запутанней выйдет.
> Да тот же самый перевод на другие языки. На самом деле нинужен.
Это он тебе не нужен. А мне нужен. Хотя бы для /int/.
> Вообще да, но если уж очень хочется, то переводам место поближе к шаблонизатору. А в коде вообще лучше отсутствие всех тех полей, которые ты переводишь.
Почему? Ты в курсе, что для замены переводов не требуется менять код? Достаточно записать свой ololord_ru.ts QtLinguist'ом, заменив все не устраивающие переводы на свои, скомпилить в .qm тем же лингвистом и положить его в пользовательскую папку (~/.ololord/translations).
> Перегрузка -> делает код не очевидным для всех, кроме может быть тебя.
То есть в смарт-пойнтерах тоже предлагаешь отказаться от этого? Не очевидно - не используй, есть аналоги в виде методов. Не вижу проблемы.
> Остальные файлы в папке - *.h и таких почти джвадцать штук.
А если бы ты заглянул в эти файлы, то увидел бы, что в них только объявления классов (структур на самом деле), и с .cpp они никак не связаны. А куча static функций - кусочки парсера. Каждая функция - следующий этап парсинга.
> Зачем всё остальное там? Можно ведь запилить один конфигурабельный класс. И цеплять к нему плагины обработчики, ежели оно требуется. Опятьже ебучий копипаст translate присутствует.
Для переводов, опять же. Никто не мешает запилить своего потомка AbstractBoard, который будет брать имя и тайтл из конфиг-файла. Кому надо - сделает за минуту, а мне не надо. Про копипаст не понял. Все названия борд разные.
> Мне кажется, что static и templates должны быть вне папки src. Впрочем как и остальные данные, конфиги и прочие ресурсы. Хотя я так понел все эти ресурсы живут постоянно в памяти.
Да, ты прав, потом перенесу, это не проблема. Ресурсы живут в памяти только если компилить с опцией "LORDCONFIG+=builtinresources". Мне с 8 гигами оперативки лишние 2-3 метра побоку. Кому не хочется, тот не встраивает ресурсы, при установке они копируются в целевую папку и при запуске грузятся оттуда, после чего один фиг кешируются (и тут вопрос - а нафига было...).
> Начнём с того
Начнем с того, что, опять же, кому надо, тот пишет своего потомка AbstractBoard, берущего конфиги откуда ему хочется, и конфигурирует до посинения. Мне же легче переопределить пару функций, чем громоздить конфиги, в которых все равно никогда всего не учесть.
> Я на крестах точно борду писать не буду.
Вот о том и речь. Не надо так резко судить о том, в чем не разбираешься и не хочешь разбираться, только потому, что у кого-то другие вкусы и мнение.
>> No.42363 Reply
File: Снимок.png
Png, 317.64 KB, 1452×832 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
А еще я запилил постинг нескольких файлов (пока только в /h/, ибо нефиг), и, благодаря очепятке одного анона в /pr/, возможность вместо [code lang="cpp"]...[/code] писать сразу [cpp]...[/cpp] (ну и [php], [hasskel] и т.д., естественно, тоже).
>> No.42364 Reply
>>42359
Перегрузка норм идея для случаев, для которых она существует. Просто не надо юзать её где попало. Она только, если именно хочется именно этот оператор. Норм фича в синтаксисе, которую вечно пинают из-за таких как ОП.

Борды вообще в СУБД или файлах должны быть. И добавляться из админки. Они же вообще не имеют кастомной логики. Это чисто данные. Данные нужно отделять от кода.
>> No.42366 Reply
>>42364
> где попало
Не где попало. Там как раз случай как со смартпойнтерами - получение доступа к underlying указателю на объект.
> не имеют кастомной логики
Имеют. Это у вас не имеют, а у меня имеют. Мне вот не охота пиздякаться с кастомизацией различных видов капчи, это проще сделать в коде. Алсо, все уже было сказано: кому надо - пилит своего кастомизируемого через шаблоны потомка AbstractBoard.
>> No.42403 Reply
ОП, тебя видо на хабре.
>> No.42404 Reply
>>42403
Я знаю. Только никому не говори. Почему бы и нет?
>> No.42405 Reply
>>42403
Портянку накатал ояебу.
>> No.42406 Reply
http://habrahabr.ru/post/252215/
Однако же. Анонимность, тьфу.
>> No.42415 Reply
>>42295
Не хочется мне писать ничего масштабного связанного с чанами.
- %username%, а откуда ты умеешь делать %anything%?
- О, ну, я писал распределенную анонимную имиджборду, и..
>> No.42417 Reply
>>42415
А таки в чем проблема? Стереотипчики?
>> No.42418 Reply
>>42417
У меня боязнь деанона, ничего не могу с собой поделать. При любом упоминании чанов делаю кулфейс и непонимающее лицо.
>> No.42419 Reply
>>42418
Тебе больше 20? Если нет, то еще пройдет, скорее всего.
>> No.42420 Reply
>>42419
18. В чем суть?
>> No.42421 Reply
>>42420
В том, что это выглядит как-то несерьёзно.
>> No.42422 Reply
>>42420
В 18 я тоже "боялся" деанонимизации (на самом деле просто недавно попал на борды и, как свойственно многим молодым неокрепшим умам, занимался подобной ерундой (анонимность-лигионность и все таке прочее)). Сейчас с улыбкой вспоминаю то время и себя прежнего. Не парься, короче, все в свое время происходит.
>> No.42436 Reply
>>42422
На бордах уже года три, лол. Да, с пятнадцати лет. Фаза анонимус-легион уже давно прошла, но есть причина почему я не желаю деанона. Ведь я не только говорю своим окружающим что я посещаю борды (некоторые люди это знают), но и даю знать бордам, кто я, и если я по какой то причине не понравлюсь анону, это может привести к плохим для меня последствиям.
Все таки анонимность на анонимных имиджбордах не просто так.
>> No.42441 Reply
>>42436
Фу таким быть. Мелкие гадости делаешь, да еще и боишься. Фу. Надеюсь, это у тебя возрастное.
>> No.42447 Reply
>>42441
Какие гадости? Анон способен рейджить на пустом месте.
>> No.42448 Reply
>>42447
Никто к тебе не придет и не набьет табло на пустом месте. Чего ты еще то опасаешься?
>> No.42456 Reply
[личный_бложек]
  • Исправил превью постов в хромом брошзере ко-ко-ко, веб-стандарты, один код, везде одинаково, хуй там
  • Добавил поддержку тегов [sup] и [sub]
  • Добавил автообновление треда и подсветку новых постов
  • Прикрутил превью (thumbnails) для вемок (WebM)
  • Сделал чтоб при неправильно заполненной форме никуда не перенаправляло, а только сообщало об этом (форма постится в скрытый iframe)
[/личный_бложек]
>> No.42467 Reply
File: Снимок-b-ратство-Mozilla-Firefox.png
Png, 590.36 KB, 1460×920 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок-b-ратство-Mozilla-Firefox.png
Продолжаем.
+ Картинки и вемки (WebM) теперь по щелчку открываются в плавающем "окошке". Можно елозить ими по окну, зажав мышь (только картинки, вемки не двигаются), а также масштабировать колесиком.
+ Теперь сохраняется информация о разрешении вемок, и вообще доступ к мета-информации происходит быстрее.
+ Добавлена кнопка "Пожаловаться" (с сюрпризом, естественно, ибо жаловаться стремно).
+ Добавлены превью для загружаемых файлов (только картинки). В целом несколько красивее стало поле для выбора файлов.
+ Переработана система добавления/хранения постов: ренедрится пост теперь при создании, в базе хранится как исходный текст, так и то что отрендерилось. Небольшой оверхед по памяти (несущественный на фоне прикрепляемых файлов), зато быстрее отдача и гораздо менее затратны по нагрузке следующие две фичи.
+ Добавлена карта постов (штука внизу поста со ссылками на ответы).
+ Тег [code] включен на всех досках.
>> No.42472 Reply
>>42295
Ты в курсе, что 50% успеха любого проекта - хорошее название?
Есть шанс всё исправить!
>> No.42474 Reply
>>42472
Не умею придумывать названия. И вообще, бесят меня эти вакабы, кусабы, хуябы, равно как и -чаны. Это же уебищно, срсли.
>> No.42475 Reply
>>42474
"Еблозавр".
>> No.42476 Reply
>>42472
95% успеха чего угодно в этой вашей пошлой физической реальности - маркетинг и реклама. Это вне всякого сомнения название. И логотипчик. И реклама где угодно и как угодно. И СЕО. И группы в контакте, и новости, и рассылки. Все уёбищные вещи, которые никому не нравятся. Потому что в реальном мире пашут, чтобы чего-то достичь, а не получают удовольствие. Это если тебе вдруг нужен пипл или деньги.
>>42474
Всё это связано с аниме так или иначе.
>> No.42477 Reply
>>42475
Очень приятно, а я Андрей.
>>42476
Да знаю, но мне похуй. Магма течет в наших венах, ну ты понял. Мне надо не бешеную популярность и деньги с рекламы, а чтоб там сидели люди, и чтобы они сами были хорошие, и чтоб им там было там хорошо. Тогда и мне будет хорошо.
> Всё это связано с аниме так или иначе.
Ну и что? Борды давно уже не являются форумом для анимешников.
>> No.42509 Reply
File: Снимок.png
Png, 136.95 KB, 1406×927 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
  • Добавил возможность определения реального IP для непрозрачных прокси (тех, которые ставят заголовки X-Forwarded-For и X-Client-IP). Правда, я таких не нашел, но тем не менее. Охуительные механизмы проверки, типа попыток подключения к клиенту по порту 8080, реализовывать не стал: бред сивой кобылы какой-то, хочет человек - пусть сидит через прокси, всегда можно IP внести в черный список.
  • Весь JS-код завернул в нэймспейс, поудалял лишние файлы, слил все в три основных (общеупотребительный, для досок/тредов и отдельный только для тредов, чтобы другие страницы не засорять).
  • Реализовал механизм "дедупликации", как его назвал один анон (хоть это и не совсем точное название). При выборе файла вычисляется его хеш, отправляется запрос на сервер с целью узнать, есть ли там уже такой файл. Если есть, input очищается, а в скрытый input добавляется хеш (работает и для нескольких файлов, само собой). На клиенте по хешу находится соответствующий файл и копируется с изменением названия. Дедупликация получается только для юзера, но лучше лишний мегабайт занимаемого места, чем переусложнение логики.
  • Исправил вставку ссылок на пост. Теперь фокус передается текстовому полю, а вставка осуществляется не в оба поля, а только в то, которое открыто. Также после ссылки добавляется пустая строка. Разумеется, если оба поля ответа закрыты, тогда уж вставляется в оба.
  • Поправил отображение кнопок на превьюхах постов (те, которые отображаются при наведении на ссылку).
  • Добавил возможность премодерации. Не пугайтесь, премодерирует тот, кто отправил пост, а не мочератор. Премодерируемый пост будет виден только тому, кто его оставил (ну и моче/админу, само собой). Включается установкой галки внизу. Для этого надо залогиниться (об этом отдельно ниже). При редактировании (кнопка справа от поста), когда юзер наконец созреет представить общественности свой высер, надо убрать галку. После того, как пост будет отредактирован со снятой галкой, больше его редактировать станет нельзя.
  • Добавил кнопку для скачивания всех картинок из треда. Нужно для этого зайти в тред, тогда кнопка справа от ОП-поста появится. Может, в дальнейшем сделаю, чтобы в тред не надо было заходить.
  • Сделал чтоб неактивная вкладка с тредом начинала мигать иконкой, если там появились новые посты (работает, очевидно, если включено автообновление треда).
  • Сделал чтоб можно было переключать стили (пока, правда, стиль один, да и тот не идеальный, но тем не менее). Заодно загнал все стили в один файл. Глупо было ради экономии 1-2 КБ раздристывать CSS на кучу файлов.
  • Добавил кнопки поиска по картинке. Как здесь.
Ну и малоинтересные технические детали:
  • Добавил возможность для админа постить голый HTML (включается галкой). Удобно для оформления прикрепленных тредов, например.
  • Для черного списка сделал возможным указывать IP при помощи Wildcard. Возможно, надо было лучше диапазоны сделать, ну да ладно, все равно не пользуюсь им.
  • Добавил список IP, запросы с которых не нужно логгировать. 192.168.0.2 (рабочий пека) и 192.168.1.* (вафля) добавил, например, и сразу стало чище.
  • Добавил возможность редактировать помимо текста поста еще и тему, мыло и имя.
Теперь по поводу залогинивания. Тут (или не тут, не помню уже) кто-то возмущался по этому поводу. Так вот. Логин - это вам не регистрация. Сервер никакой инфы при этом не хранит. Логин записывает введенное слово в виде хеша и передает на сервер при запросах как cookie. С помощью этого происходит идентификация, можно не вводить пароль для постов и можно редактировать перемодерируемое сообщение. Вот так. Никаких трипкодов и прочей мути при этом не отображается. Можно, конечно, соответствующую галку поставить, и трип появится, но никто не заставляет. Регистрация с занесением в базу тоже предусмотрена, но продавать ее или регистрировать на халяву я не буду. Это функция исключительно для идентификации админа и мочераторов, буде таковые появятся, что, к слову, сомнительно. И еще раз подчеркну, что в любом случае, пока не поставлена галка, независимо от логина, регистрации и положения звезд, ваши посты ничем не отличаются от других.
>> No.42512 Reply
>>42509
> Реализовал механизм "дедупликации" [...]
Вот это костылище.
>> No.42516 Reply
File: Снимок.png
Png, 14.79 KB, 903×66 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
>>42512
Костыль - это кривое решение вместо "прямого". Называй "прямое" решение в данном случае.
Вообще, как по мне, так это бесполезная фича. Предложил тот же анон, что и премодерацию посоветовал (пикрелейтед). Типа для тех, у кого интернет медленный. (Интересно, НАСКОЛЬКО он должен быть медленный, лол. И как это поможет, если такого файла на сервере нет, что будет явно чаще, чем когда есть.)
>> No.42519 Reply
Поясни?
>> No.42521 Reply
>>42519
Что пояснить?
>> No.42523 Reply
>>42521
Успокойся, теперь у меня нет вопросов. >>42516
>> No.42525 Reply
File: Снимок-b-ратство-Mozilla-Firefox.png
Png, 470.19 KB, 1450×841 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок-b-ратство-Mozilla-Firefox.png
  • Переименовал везде систему премодерации в систему черновиков.
  • Подправил разметку (сам не помню уже, что и где исправил, вроде что-то с цитированием).
  • Запилил возможность делать ссылки на посты с других досок (примерно как здесь, только с еще одним слешем перед именем доски).
  • Исправил выделение постов при клике на ссылки.
  • Добавил мини-список правил под формой ответа (как у всех, короче).
  • Добавил страницу с описанием разметки.
  • Если пост, на который ссылался другой пост, удаляется, то ссылка на удаленный пост становится неактивной (точнее, превращается в обычный текст).
Технические мелочи:
  • Улучшил систему ведения логов (более единообразно и более информативно теперь).
  • В новостях и правилах теперь HTML, можно все что угодно туда вставлять (раньше был простой текст, только ссылки автоматом вставлялись).
Пока что, наверное, хватит, а то уже свистоперделки начинаются. Еще совместимость с куклой попробую сделать, а так можно в релиз выкатывать.
>> No.42527 Reply
>>42525
Кукла - это костыль, сразу надо делать необходимый функционал.
>> No.42528 Reply
>>42527
Не могу не согласиться. Но ты же понимаешь, что воспроизвести все, что может кукла - это задача довольно тяжелая, скорее всего, не на один месяц непрерывной работы. Тут можно поспорить, что многие свистоперди не нужны, и я опять же с этим соглашусь, но только не все ведь так считают. Кто-то любит делать из борды йобу, умеющую помимо всего прочего считать интегралы и подавать кофе в постель.
>> No.42580 Reply
File: Снимок.png
Png, 244.09 KB, 1411×928 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
Несколько оптимизировал свое поделие:
  • Информация о файлах (картинках) теперь хранится в базе (да, раньше в файле хранилась, потому что изначально не предусмотрел и было лень переносить посты из старой базы в новую).
  • Ссылки на посты теперь хранятся в отдельной таблице, что существенно увеличивает скорость их добавления и особенно удаления (раньше при удалении приходилось читать и записывать каждый пост).
  • Добавил поле "userData" в таблицу "posts" - дополнительные данные для нестандартных досок. Раньше приходилось извращаться с запихиванием, например, в поле "subject", то есть жутчайший говнокод.
  • Проверка капчи и все операции с файлами (сохранение и создание превью) теперь происходят до начала транзакции БД, чтобы не вызывать длительной блокировки.
  • Удаление файлов происходит после завершения транзакции, что, как и в предыдущем пункте, снижает длительность блокировки, а также не приводит к преждевременному удалению файлов, если вдруг транзакция откатится.
  • Файлы превью при откате транзакции теперь также удаляются (раньше не удалялись).
Прочие мелочи:
  • Для файлов без расширения оно автоматически выбирается на основе MIME-типа и добавляется к имени.
  • Теперь отображается дата и время последнего редактирования поста. К черновикам не относится (пока пост в статусе черновика, его можно сколько угодно редактировать, эта шняга не появится). Сделано, по сути, для того, чтобы показывать, когда мочератор/админ злоупотребляет полномочиями, чтобы без повода все подряд не редактировал.
  • Забаненные IP, а также IP, запросы с которых не логгируются, теперь задаются в виде диапазона (192.168.0.1-192.168.0.255), а не wildcard'ом, как раньше.
  • Исправлено отображение трипкода (а то он даже при включенной галочке не отображался, может это и к лучшему было, лол).
И еще (хоть к движку это и не относится): отключил форму поиска, а то, говорят, у некоторых страница не отображалась, пока эта сраная форма не прогрузится (что странно, ведь у меня то отображалась).
>> No.42657 Reply
File: Снимок.png
Png, 40.47 KB, 964×745 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
  • Исправил сообщение "Вам не надо вводить капчу. Осталось постов без капчи: N". Теперь после отправки очередного сообщения количество оставшихся постов автоматически обновляется.
  • Добавил поддержку видео .mp4 и .ogg (.ogv).
  • Добавил поддержку аудио .mp3, .ogg, .wav.
  • Для всех типов файлов добавил иконки в поле выбора файла и логотипы в теле поста (логотип используется, если не удалось, к примеру, создать thumbnail для видео, а также для всех аудио-файлов).
  • Добавил возможность отмены скачивания файлов из треда. Также кнопка закачки блокируется после нажатия.
  • Количество постов, которые можно оставить без ввода капчи, теперь сохраняется после перезапуска сервера.
  • Улучшена разметка. Привет тем, кому не нравятся bbCode'ы. Пикрелейтед. Да, на одной борде подсмотрел. Нет, не на той самой.
  • Добавил возможность заново отрендерить все посты одной командой. Будет полезно при изменениях в разметке и в некоторых других случаях, связанных с администрированием.
>> No.42765 Reply
File: Снимок.png
Png, 171.08 KB, 1444×774 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
  • Добавлен собственный поиск (по всем доскам, либо по указанной доске). Не требует индексации гуглом, работает вроде быстро.
  • Исправлено создание ссылок на посты при использовании AJAX-запросов.
  • Исправлены превью постов по наведению на ссылку.
  • Добавлена возможность удалять прикрепленные файлы.
  • Вместо alert'ов теперь показываются всплывающие сообщения.
  • На доске /echo/ добавлена возможность редактировать ссылку на тред. Вообще система HTML-шаблонов несколько улучшена, теперь больше возможностей кастомизации.
  • Произведен небольшой рефакторинг JS-кода.
  • Добавлен класс ConfigurableBoard, в котором можно задать некоторые настройки, такие как название доски, без необходимости наследоваться. Соответственно, убраны отдельные классы досок, которые можно настроить при помощи этого класса.
  • Добавлена доска /rpg/ для текстовых RPG. Со встроенной системой голосования. Киллер фича, лол.
>> No.42798 Reply
File: Снимок-b-ратство-Mozilla-Firefox.png
Png, 190.44 KB, 1430×900 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок-b-ратство-Mozilla-Firefox.png
  • Теперь на всех досках на 1 капчу 10 постов.
  • Для того, чтобы свести влияние пинга к минимуму, файлы из треда качаются параллельно по две штуки разом.
  • Разметка немного допилена (не помню уже, что именно менял, вроде чтоб ссылки лучше определялись).
  • Реализован новый быстрый поиск. Index-based, так сказать. Работает быстрее, чем ты тилибонькаешь свой стручок.
  • Предусмотрена возможность добавлять доски, где нельзя постить файлы, и при этом можно создавать треды (раньше тред без файла никак нельзя было создать).
  • Примерно в 10-15 раз увеличена скорость рендеринга тредов/досок (закеширована одна тяжелая операция).
  • Добавлен диалог настроек. Настройки времени и стиля помещены туда.
  • Добавлена возможность выбирать тип капчи. В /pr/ железно зашита кодерская капча для защиты от дебилов.
  • Добавлена поддержка яндекс-капчи (чтоб им пусто было за такой кривой апи).
  • Исправлено ошибочное отображение нулевого (0x0) разрешения для аудио- и видеофайлов файлов.
  • Исправлено отображение ошибки при постинге, если ошибка произошла не на сервере, а где-то в пути (прокся не пустила и т.п.).
  • Добавлена возможность быстрого ответа на выбранный пост (форма телепортируется прямо к посту, потом уходит на место).
  • Добавлена возможность отрендерить все посты заново (при изменениях в разметке, например).
  • Рендеринг постов теперь выполняется вне транзакции.
>> No.42880 Reply
File: Снимок.png
Png, 53.30 KB, 1403×783 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
  • Файлы из треда теперь скачиваются по две штуки одновременно, чтобы снизить влияние пинга.
  • Для асинхронного постинга используется нормальный XHR вместо хака с iframe.
  • Реализована возможность добавлять файлы к уже запощенному посту.
  • Улучшена глагне (можно добавлять кастомный контент, а так же список сайтов-друзей).
  • Добавлена доска /d/. На этой доске отображается User-Agent, как в спец. треде куклоскрипта.
  • Добавлена система подсчета постов.
  • Усовершенствована разметка ссылок, добавлен тег [url], реализована разметка e-mail.
  • Исправлены быстрые ответы с доски.
  • Добавлен выбор действия после быстрого ответа (в настройках).
  • Исключения теперь отлавливаются во всех потоках.
  • Исправлена система авто-обновления тредов.
  • Усовершенствована система правил (можно указать, какие общие правила включать на доску).
  • Улучшена кнопка "Пожаловаться".
  • Реализована поддержка частичных GET-запросов (аудио и видео благодаря этому теперь перематываются).
  • Реализовано встраивание видео с YouTube. Вместо ссылки подставляется название видео.
  • Теперь сохраняется дополнительная информация об аудио и видео (длительность, битрейт, теги).
  • Реализована поддержка заголовков Last-Modified/If-Modified-Since (кеширование браузером).
  • Улучшен AJAX-запрос get_new_posts (если номер последнего поста равен 0, возвращаются все посты треда).
  • Добавлен AJAX-запрос get_thread_numbers (возвращает номера всех тредов с доски).
  • Добавлен AJAX-запрос get_file_meta_data (возвращает мета-данные о файле, такие как длительность, битрейт или теги).
  • Добавлена страница-плейлист (аудио-файлы теперь можно добавлять в плей-лист).
  • Добавлена система "Избранных" тредов (выскакивает окошко, если в избранных тредах появились новые посты).
  • Добавлена возможность кешировать файлы вручную (например, сразу после запуска сервера).
>> No.42911 Reply
File: Снимок.png
Png, 131.96 KB, 1000×980
edit Find source with google Find source with iqdb
Снимок.png
File: Снимок-b-ратство-...
Png, 294.00 KB, 1002×991
edit Find source with google Find source with iqdb
Снимок-b-ратство-Tor-Browser.png

  • Исправлены теги audio (теперь задается нормальная ширина).
  • Усовершенствован подсчет скорости досок (постов в единицу времени).
  • Исправлено скачивание файлов из треда.
  • Для настроек и скрытия тредов/постов используется localStorage вместо кукисов.
  • Прикреплять файлы теперь можно Drag and Drop-ом.
  • Для аудио- и видеофайлов теперь отображается дополнительная информация при наведении курсора (теги аудио, битрейт для видео).
  • HTML/JS/CSS теперь немного минифицируется.
  • Добавлен счетчик символов на поле ввода текста формы постинга.
  • Исправлена Yandex-капча.
  • Добавлен стиль Futaba.
  • В панель навигации добавлена информация о новых постах на досках.
  • В базу данных добавлены индексы и таким образом на порядки увеличена скорость работы (особенно заметно при большом количестве постов/тредов).
  • Добавлена возможность использовать внешнюю утилиту file вместо библиотеки libmagic. При использовании Qt5 сначала производится попытка определить MIME-тим при помощи встроенного средства QMimeDatabase.
  • Существенно оптимизирован парсер текста поста (быстрее до нескольких десятков раз в зависимости от количества тегов разметки).
  • Исправлена кнопка "Пожаловаться".
  • Исправлено отображение темы треда, если тема не была указана.
  • Исправлено обновление постов, ссылавшихся на удаленный пост (ссылка на удаленный пост перестает быть ссылкой).
  • Исправлено отображение трипкодов (теперь больше похоже на классические трипкоды).
  • В плейлист добавлены кнопки для скачивания треков.
  • Действия над постом теперь показываются только при наведении мыши, чтобы не загромождать пространство.
>> No.47914 Reply
А еще на шморкач сходи. Сажи.


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]