1
eleksir 694f64e501 telegrambot.pm: properly detect chat type, bug fix
* Detect chat in more conventional way, so we can handle channels too (no one cares about it, since no plans to release this bot as product)
* Catch even those events tat have no 'text' fields, so we can cat join and leave events
* Cosmetic fixes
2020-03-28 14:36:34 +03:00
2019-09-25 23:37:39 +03:00
2019-10-31 00:32:22 +03:00
2020-03-22 19:43:43 +03:00

MyAPI

Что это такое

myapi - разнообразное api и пример его использования. Api написано на perl-е для удобства и простоты разработки.

Что оно умеет

ping.pm

отвечает pong, нужно для проверки, что приложение в принципе живо

easter_egg.pm

ditto, пробсто бесполезные функции, just for fun quote - цитата дня (использует системную fortune) chanserv - обращение к несуществующему chanserv nickserv - обращение у несуществующему nickserv me - действие /me

image_dl.pm

будет модуль для скачивания картинок из интернетов

metagen.pm

будет модуль для генерации метаданных в указанном репозитории для начала предполагается генерация метаданных для slackware linux, впрочем от расширения списков репозиториев меня удерживает только лень :)

upload.pm

модуль для загрузки файлов в каталог, конфигурируется в myapi.json в классе upload. Загрузка происходит через метод PUT в процессе используется каcтомный заголовок auth.

paste.pm

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

utils.pm

модуль с простыми утилитами ip - возвращает ip, с которого пришёл клиент getaddrbyname - возвращает список ipv4 адресов по имени хоста getnamebyaddr - возвращает имя хоста по ipv4 адресу punycoder - кодирует в punycode punydecoder - превращает punycode-строку в utf-8 строку mytime - возвращает время

ircbot.pm

будет модуль с простым ботом

xmppbot.pm

будет модуль с простым xmpp-ботом

Зачем это?

ХЗ, если есть что-то интересное в наборе модулей, то можно это использовать

Подготовка к запуску

Сервер приложений

Для запуска api используется uwsgi. Возможен вариант запуска и через другие сервера psgi, например, через plack или nginx unit, но это не тестировалось.

Перловые модули

Помимо самого perl-а, для запуска нужны cpanm и lib::local, чтобы иметь возможность засосать всё остальное в каталог vendor_perl.

Подготовительные операции

Перед первым запуском и после каждого обновления необходимо запускать bootstrap.sh, который и засасывает зависимости из интернетов и складывает их все в каталог vendor_perl.

Зависимостей сравнительно много и среди них есть "пидорские", но вполне себе стабильные модули, подтягиваемые по графу зависимостей не напрямую :)

Рабочий каталог и данные

API работает непосредственно в том каталоге, где лежит myapi.psgi.

Конфигурация самого api и модулей хранится в каталоге data, там же хранится состояние модулей, которые подразумевают хранение таковых данных.

Конфигурация uWSGI

TBD

Запуск

TBD

Останов

TBD

Description
My test api
Readme 79 KiB
Languages
Perl 99.8%
Shell 0.2%