Поддавшись волне хайпа вокруг ботов я решил не отставать от мира и сделать своего.

Первоначально, была идея написать бота на Golang и исключительно для Telegram. Но, позже он был переписан на NodeJS...

Суть идеи была проста: отправлять по запросу случайную картинку с анонимного форума Двач.

Вооружившись обёрткой для API Telegram'а, написанную на Golang, был создан каркас всего бота, поддерживающего 4 простых команды: /img, /gif, /webm, и /help. К сожалению, моей силы воли не хватило для завершения бота, поэтому проект пришлось положить в долгий ящик...

Но явилось чудо, Microsoft представили миру Bot Framework, позволяющий с лёгкостью делать ботов для разных платформ, используя единый код. Вооружившись NodeJS, ибо в C# я не умею, я пошёл создавать новый каркас для бота.

Первая версия нового бота была создана за считанные часы в облачной IDE Cloud9. Он мог отправлять заранее определённую картинку, гифку или вебм без получения актуальной с Двача.

И вот на этом этапе начались проблемы. К сожалению, я только начинающий NodeJS разработчик, поэтому опыта работы с JSON по URL у меня не было. И из-за занятости на работе, бота пришлось положить к своему прототипу на Golang в ящик.


@afff9cd91197a8e82b45 Разрешилось! Спустя год я додумался как правильно возвращать 404 в Action.

$this->dispatcher->setControllerName('page');
$this->dispatcher->setActionName('show404');

https://facebook.github.io/react/blog/2016/07/22/create-apps-with-no-configuration.html

На будущее. Надо попытаться таки осилить реакт.


Надо посмотреть, освободится ли через 4 месяца домен или владелец продлит адрес rwch.org


Хехех! Наконец-то доделал редактор для бложика :3

Сейчас хочу добавить Parsedown для разметки заметки.


У меня дилемма.

Можно сделать АИБ в стиле Futaba или же в стиле Форума. С одной стороны, хочется чего-то старого-доброго и понятного, а с другой - чего-то нового. Щито делать?


Только что на корпоративную почту компании пришло письмо с жалобой. Все бы ничего, но в копии письма были ящики других компаний. "Странно, мошенники, наверное" - подумал я.

И содержимое аттача подтвердило мою догадку. В нём была HTML страница, которая с помощью JS скрипта скачивала вирусный файл, замаскированный под .DOC.

Не долго думая, я взял да и написал тем компаниям, что были в копии письма, чтоб они были аккуратны. Все правильно сделал?


Я передумал @3dccbe88536c4fb7a227. Идея делать АИБ с использованием в качестве фронт-энда MeteorJS и бэк-энда Phalcon - глупа. Буду продолжать фигачить на чистом Phalcon. Авось даже смогу сделать загрузку картинок.

И вот, кстати демо-версия анонимного фидонет-форума. https://crychan.ru/


«Анонимный форум должен быть реалтаймовый. Без необходимости жать F5 или кнопку "Обновить тред"»

После долгих размышлений и неприятных багов Фальцабы на Phalcon PHP я решил прислушаться к этому высказыванию и начал активный поиск подходящего JS решения для создания нового движка...

Первым попался Vue.JS.

Подкупило то, что его можно подключать из внешних источников в файл, ибо мне было лень возиться с npm. И "two way binding" у него отличный, да и документация хорошая.

Решено было использовать его в связке с Phalcon PHP, который выступал бы в роли RESTful API. Первым делом я сделал шаблоны, потом настроил компоненты. Но вот связать данные получаемые от Phalcon я не смог... Уж очень в vueJS тугие хелперы и видимости данных. Имхо, сабж очень сырой и пригоден только для ToDo List.

Далее пришёл Meteor JS.

И в этот раз пришлось заморочиться с npm, ибо делал все на Cloud9. Кстати, это был мой первый опыт работы с Node.JS подобным фреймворком.

На сей раз было два варианта: Либо опять же использовать Phalcon PHP в качестве RESTful API, либо использовать MongoDB. В конечном итоге пока что не определился и сделал сразу два варианта.

И на счёт хелперов, они тут и в правду удобные. Таким простым способ я могу его создать:

Template.registerHelper('pageTitle',
 (title) => { document.title = title + ' - ' + siteName; }
);

И использовать в шаблоне так. Например, вывод в заголовок темы треда:

{{pageTitle thread.subject}}

Роутера, как и полагается, из коробки не было, по этому поставил Iron.router, ибо он единственный хороший роутер метеора. Шаблоны оказались тоже годные, передача данных в шаблон из роутера выглядела легче и понятнее, нежели в Vue.JS. Так что решено было остановиться на сабже и начать писать на нём.

Но есть и некоторая грусть: iron.router при смене страницы не скроллит на верх по умолчанию. В интернете есть решения, но все они используют jquery, да и выглядит как костыль. И ещё я парсер не могу переписать...


В конечном итоге есть два одинаковых анонимных форума на двух разных технологиях. И оба не могут в загрузку изображений.


Приветствую.

Вышло второе и достаточно крупное обновление движка анонимного форума. Проведена огромная работа, если честно.

В этом обновлении:

  • Возможность закрывать и закреплять тред
  • А так же закрывать разделы
  • Быстрые ответы с нулевой
  • Красивые уведомления
  • Изменена логика добавления поста
  • Задание максимального размера заголовка
  • Убраны некие задатки для будущего обновления с картинками
  • Изменение версии до 0.3

В принципе, движок уже готов для стабильной работы в качестве текстового форума. Скачать можно тут.