1
eleksir e5d35a6ca2 joyproxy.pm: Add form to transform urls
* Добавлена форма для превращения урлов реактора в урлы прокси
* Добавлен пример использования в .psgi-файл
2020-04-19 23:24:48 +03:00
2019-09-25 23:37:39 +03:00
2019-10-31 00:32:22 +03:00
2020-04-12 02:34:50 +03:00
2020-04-12 02:33:59 +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

модуль для генерации метаданных в указанном репозитории

buildinfo.pm

модуль для предоставления информации по собираемому slackware-пакету в ci-конвеере, для сборки этого самого пакета.

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

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

jabberbot.pm

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

telegrambot.pm

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

joyproxy.pm

модуль-прокся для генерации ссылок с видосиками с joy.reactor.cc

Зачем это?

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

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

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

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

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

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

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

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

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

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

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

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

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

TBD

Конфигурация nginx Unit

Запуск

TBD

Останов

TBD

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