1

Добавлена документация.

* Обновлён TODO
+ Добавлен .gitignore
+ Добавлен черновик README.md
+ Добавлен черновой вариант bootstrap.sh
This commit is contained in:
eleksir
2019-09-20 16:17:39 +03:00
parent 84ac139733
commit e5240f5fdf
4 changed files with 72 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
vendor_perl/**

66
README.md Normal file
View File

@@ -0,0 +1,66 @@
### Что это?
myapi - разнообразное api и пример его использования. Api написано на perl-е для удобства и простоты разработки.
### Что умеет?
#### ping.pm
отвечает pong, нужно для проверки, что приложение в принципе живо
#### easter_egg.pm
ditto, пробсто бесполезные функции, just for fun
quote - цитата дня
chanserv - обращение к несуществующему chanserv
nickserv - обращение у несуществующему nickserv
me - действие /me
#### image_dl.pm
будет модуль для скачивания картинок из интернетов
#### metagen.pm
будет модуль для генерации метаданных в указанном репозитории
#### upload.pm
модуль-пример для загрузки файлов в каталог, конфигурируется в myapi.json в классе upload.
#### 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.
Зависимостей сравнительно много и среди них есть "пидорские", но вполне себе стабильные модули, подтягиваемые по графу зависимостей не напрямую :)
#### Конфигурация uWSGI
TBD
### Запуск
В процессе работы api, данные складываются в каталог data.
TBD
### Отанов
TBD

2
TODO
View File

@@ -8,3 +8,5 @@
* shortener api for goo.gl or same services * shortener api for goo.gl or same services
* paste api for some pastebins * paste api for some pastebins
* image downloader * image downloader
* repo uploader
* repo metadata re-generator

3
bootstrap.sh Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
cpanm -l vendor_perl Plack