2024-08-15 10:39:42 +00:00
|
|
|
|
# IU9 C.A. WEB CHAT
|
2024-07-04 13:53:37 +00:00
|
|
|
|
|
2024-08-15 10:39:42 +00:00
|
|
|
|
C.A. stands for Collarbone Annihilation.
|
|
|
|
|
|
2024-08-16 19:10:04 +00:00
|
|
|
|
# About
|
|
|
|
|
|
2024-08-15 10:39:42 +00:00
|
|
|
|
Сделан на летней практике 5-ю первокурсниками из ИУ9-21Б.
|
|
|
|
|
|
|
|
|
|
# Dependencies
|
|
|
|
|
|
|
|
|
|
iu9-ca-web-chat использует
|
2024-08-16 19:10:04 +00:00
|
|
|
|
- GCC
|
2024-08-15 10:39:42 +00:00
|
|
|
|
- [regexis024-build-system](
|
2024-08-16 19:10:04 +00:00
|
|
|
|
https://gitlab.yyyi.ru/collarbone-annihilation/regexis024-build-system
|
2024-08-15 10:39:42 +00:00
|
|
|
|
)
|
|
|
|
|
- [libregexis024](
|
2024-08-16 19:10:04 +00:00
|
|
|
|
https://gitlab.yyyi.ru/kme-devline/libregexis024
|
2024-08-15 10:39:42 +00:00
|
|
|
|
)
|
|
|
|
|
- [libjsonincpp](
|
2024-08-16 19:10:04 +00:00
|
|
|
|
https://gitlab.yyyi.ru/collarbone-annihilation/libjsonincpp
|
2024-08-15 10:39:42 +00:00
|
|
|
|
)
|
|
|
|
|
- [sqlite3](
|
|
|
|
|
https://www.sqlite.org
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
Сервис так же использует библиотеки engine_engine_number_9 и new_york_transit_line,
|
|
|
|
|
размещённые прямо в репозитории.
|
|
|
|
|
|
|
|
|
|
Работает только на unix системах.
|
|
|
|
|
|
|
|
|
|
# Compilation
|
|
|
|
|
|
|
|
|
|
```sh
|
2024-08-16 19:10:04 +00:00
|
|
|
|
regexis024_build_system.sh
|
2024-08-15 10:39:42 +00:00
|
|
|
|
./building/main bi ./ "absolute/path/to/installation/root"
|
|
|
|
|
```
|
|
|
|
|
# Usage
|
|
|
|
|
|
|
|
|
|
Помимо самого бинарника нужен файл с настройками сервиса. Формат настроек: JSON.
|
|
|
|
|
Комментарии не поддерживаются. Пример такого файла находится в example/config.json.
|
2024-09-01 22:11:28 +00:00
|
|
|
|
Вместе с бинарным фалом так же распространяются ассеты, необходимые для работы сайта.
|
2024-09-07 18:55:26 +00:00
|
|
|
|
Их можно найти в папке assets. В настроках (поле `config.assets`) указывается путь до
|
2024-08-15 10:39:42 +00:00
|
|
|
|
папки с ассетами. Путь может быть как абсолютным, так и относительным к рабочей директории.
|
2024-09-07 18:55:26 +00:00
|
|
|
|
Поле настроек `config.database` указывает как соединиться с базой данных.
|
2024-09-01 22:11:28 +00:00
|
|
|
|
Поддерживается только база данных sqlite3. Поддерживается только хранение в файле.
|
2024-09-07 18:55:26 +00:00
|
|
|
|
Поле `config.database.file` указывает путь где хранится sqlite база данных.
|
2024-08-15 10:39:42 +00:00
|
|
|
|
|
|
|
|
|
Перед тем как использовать сервис нужно его проинициализировать (а точнее проинициализировать
|
|
|
|
|
базу данных):
|
|
|
|
|
|
|
|
|
|
`ROOT_PW="<your desired root password>" iu9-ca-web-chat /path/to/config.json initialize`
|
|
|
|
|
|
|
|
|
|
Переменная окружения `ROOT_PW` читается для устаановки пароля root пользователю раз и навсегда.
|
|
|
|
|
Далее можно запускать сервис:
|
|
|
|
|
|
|
|
|
|
`iu9-ca-web-chat /path/to/config.json run`
|
|
|
|
|
|
|
|
|
|
Для остановки сервиса киньте ему SIGTERM или SIGINT.
|
2024-07-04 13:53:37 +00:00
|
|
|
|
|
2024-08-21 12:44:20 +00:00
|
|
|
|
Утилита `iu9-ca-web-chat-admin-cli` позволяет администратору сервиса контролировать его через сокет
|
|
|
|
|
(адрес указан в `config["server"]["admin-command-listen"]`).
|
|
|
|
|
|
2024-09-06 21:31:42 +00:00
|
|
|
|
По адресам `config.server.admin-command-listen` идёт прослушивание так называемых "команд администратора".
|
|
|
|
|
iu9cawebchat определяет свой простой протокол для передачи этих команд.
|
|
|
|
|
Утилита iu9-ca-web-chat-admin-cli может отправить текст с некой командой на сервер на этот адрес и получить
|
|
|
|
|
ответ от сервера.
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
iu9-ca-web-chat-admin-cli <server admin-control address> <command text> [<command text> ...]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Дополнительные параметры конкатенируются, разделяясь переводом строки.
|
|
|
|
|
Команды администратора:
|
|
|
|
|
|
|
|
|
|
`updateroopw <new root password>` - сменить пароль пользователя с номером 0
|
|
|
|
|
|
|
|
|
|
`adduser <user nickname> <user name> <user password> <user bio>` - зарегистрировать пользователя сайта
|
|
|
|
|
|
2024-09-07 07:48:15 +00:00
|
|
|
|
`8` - остановить сервис
|
|
|
|
|
|
2024-09-06 21:31:42 +00:00
|
|
|
|
Если нужно ввести пробел или символ `\ ` в любое из этих полей, перед ними нужно поставить `\ `;
|
2024-09-07 07:48:15 +00:00
|
|
|
|
Если указать меньше полей, чем нужно, незаполненные поля станут пустыми строками.
|
2024-09-06 21:31:42 +00:00
|
|
|
|
|
|
|
|
|
Параметры конфигурации `config.lang.whitelist` и `config.lang.force-order` определяют на
|
|
|
|
|
какие языки будет локализован сервер, и какие переводы приоритетнее каких.
|
|
|
|
|
На данный момент поддерживаются
|
|
|
|
|
- `ru-RU`
|
|
|
|
|
- `en-US`
|
2024-09-07 07:48:15 +00:00
|
|
|
|
|
2024-09-07 18:55:26 +00:00
|
|
|
|
Все переводы хранятся в папке `assets/lang`. Для добавления своего перевода нужно форкнуть репозиторий и
|
|
|
|
|
сделать копию файла `assets/lang/ru-RU.lang.json` в `assets/lang/XXXXX.lang.json`.
|
2024-09-06 21:31:42 +00:00
|
|
|
|
|
2024-07-04 13:53:37 +00:00
|
|
|
|
# Список участников
|
|
|
|
|
|
2024-07-16 08:20:31 +00:00
|
|
|
|
1. [Китанин Фёдор](https://gitflic.ru/user/fed-kit)
|
|
|
|
|
2. [Андреев Григорий](https://gitflic.ru/user/biburat)
|
|
|
|
|
3. [Зоткин Владимир](https://gitflic.ru/user/vova2006)
|
|
|
|
|
4. [Каримов Адель](https://gitflic.ru/user/ra1n)
|
2024-07-16 08:19:46 +00:00
|
|
|
|
5. [Яковлев Антон](https://gitflic.ru/user/yakovlevanton)
|
|
|
|
|
|
2024-08-15 10:39:42 +00:00
|
|
|
|
# Комментарии (для разработчиков)
|
|
|
|
|
|
|
|
|
|
Зачем писать комментарии в коде, если можно их вынести в отдельные пдф-ки?
|
|
|
|
|
|
2024-08-17 12:49:28 +00:00
|
|
|
|
- [Документация для разработчиков](
|
2024-08-16 19:10:04 +00:00
|
|
|
|
https://gitlab.yyyi.ru/collarbone-annihilation/iu9-ca-chat-api)
|
2024-08-15 10:39:42 +00:00
|
|
|
|
|
|
|
|
|
О том как работает всё остальное можно только догадываться.
|