Compare commits
3 Commits
d5e30f8c36
...
0.2
| Author | SHA1 | Date | |
|---|---|---|---|
| b28b7c583d | |||
|
|
f8e9a528e2 | ||
|
|
9266d8f32b |
9
.dockerignore
Normal file
9
.dockerignore
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
.venv/
|
||||||
|
session_storage/
|
||||||
|
__pycache__/
|
||||||
|
runtime/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*.vscode
|
||||||
|
*.json
|
||||||
|
*.sqlite
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,6 +1,7 @@
|
|||||||
.venv/
|
.venv/
|
||||||
session_storage/
|
session_storage/
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
runtime/
|
||||||
*.swp
|
*.swp
|
||||||
*.swo
|
*.swo
|
||||||
*.vscode
|
*.vscode
|
||||||
|
|||||||
16
Dockerfile
Normal file
16
Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install --no-install-recommends -y libolm3 libolm-dev git && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
COPY requirements.txt ./
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
WORKDIR /runtime
|
||||||
|
RUN chown -R 1000:1000 /usr/src /runtime
|
||||||
|
|
||||||
|
USER 1000:1000
|
||||||
|
CMD [ "python", "/usr/src/app/main.py" ]
|
||||||
40
README.md
40
README.md
@@ -4,7 +4,30 @@
|
|||||||
Раньше был бот с таким же функционалом, но для Telegram. Telegram больше не в
|
Раньше был бот с таким же функционалом, но для Telegram. Telegram больше не в
|
||||||
почёте, и теперь у меня всё в локальном Matrix, поэтому бот тоже перенесён сюда.
|
почёте, и теперь у меня всё в локальном Matrix, поэтому бот тоже перенесён сюда.
|
||||||
|
|
||||||
## Подготовка окружения
|
## Для запуска рекомендуется `docker`
|
||||||
|
|
||||||
|
1. [Скачайте образ](https://git.tyukalov.su/nikita/-/packages/container/2026-matrix-csonac) (измените версию на нужную вам):
|
||||||
|
```bash
|
||||||
|
sudo docker pull git.tyukalov.su/nikita/2026-matrix-csonac:0.2
|
||||||
|
```
|
||||||
|
2. Выполните первый запуск в интерактивном режиме
|
||||||
|
```bash
|
||||||
|
sudo mkdir runtime
|
||||||
|
sudo chown 1000:1000 runtime
|
||||||
|
sudo docker run -v ./runtime:/runtime -ti git.tyukalov.su/nikita/2026-matrix-csonac:0.2
|
||||||
|
```
|
||||||
|
3. В папке `runtime` появится файл `config.json`. Внесите туда нужные настройки
|
||||||
|
4. Запустите ещё раз в интерактивном режиме, чтобы авторизоваться
|
||||||
|
```bash
|
||||||
|
sudo docker run -v ./runtime:/runtime -ti git.tyukalov.su/nikita/2026-matrix-csonac:0.2
|
||||||
|
```
|
||||||
|
5. Дальше можно запускать контейнер в фоне
|
||||||
|
```bash
|
||||||
|
sudo docker run -p 127.0.0.1:4980:4980 -v ./runtime:/runtime --detach git.tyukalov.su/nikita/2026-matrix-csonac:0.2
|
||||||
|
```
|
||||||
|
> Рекомендуется запускать контейнер при помощи `docker compose`.
|
||||||
|
|
||||||
|
## Запуск без `docker`
|
||||||
|
|
||||||
1. Клонируйте репозиторий и перейдите в его директорию
|
1. Клонируйте репозиторий и перейдите в его директорию
|
||||||
```bash
|
```bash
|
||||||
@@ -26,17 +49,6 @@ python main.py
|
|||||||
python main.py
|
python main.py
|
||||||
```
|
```
|
||||||
|
|
||||||
## Запуск
|
|
||||||
|
|
||||||
Для запуска приложения вы можете либо активировать `venv`, либо просто использовать полный путь до интерпретатора Python:
|
|
||||||
```bash
|
|
||||||
~/2026-matrix-downloader/.venv/bin/python main.py
|
|
||||||
```
|
|
||||||
```bash
|
|
||||||
. .venv/bin/activate
|
|
||||||
python main.py
|
|
||||||
```
|
|
||||||
|
|
||||||
## Как работает бот
|
## Как работает бот
|
||||||
|
|
||||||
Для каждой службы (канала уведомлений) создаётся своя собственная комната и в
|
Для каждой службы (канала уведомлений) создаётся своя собственная комната и в
|
||||||
@@ -72,7 +84,7 @@ python main.py
|
|||||||
```
|
```
|
||||||
2. Использовать URL параметр `token`. Например:
|
2. Использовать URL параметр `token`. Например:
|
||||||
```plain
|
```plain
|
||||||
https://csonac.su/notify?token=f1829e94d...
|
https://csonac.su/api/notify?token=f1829e94d...
|
||||||
```
|
```
|
||||||
Рекомендуется использовать первый способ (HTTP-заголовок), так как это позволяет
|
Рекомендуется использовать первый способ (HTTP-заголовок), так как это позволяет
|
||||||
избежать раскрытия токена в логах сервера и других местах, где можно посмотреть
|
избежать раскрытия токена в логах сервера и других местах, где можно посмотреть
|
||||||
@@ -83,7 +95,7 @@ URL прошлых запросов.
|
|||||||
> токен будет украден.
|
> токен будет украден.
|
||||||
|
|
||||||
Доступные эндпоинты:
|
Доступные эндпоинты:
|
||||||
- `GET /notify`
|
- `GET /api/notify`
|
||||||
- **Описание.** Используется, чтобы отправить уведомление в канал.
|
- **Описание.** Используется, чтобы отправить уведомление в канал.
|
||||||
- **Параметры запроса**
|
- **Параметры запроса**
|
||||||
- `channel` - код канала, получаемый при помощи команды `!info`,
|
- `channel` - код канала, получаемый при помощи команды `!info`,
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ idna==3.19
|
|||||||
Jinja2==3.1.6
|
Jinja2==3.1.6
|
||||||
jsonschema==4.26.0
|
jsonschema==4.26.0
|
||||||
jsonschema-specifications==2025.9.1
|
jsonschema-specifications==2025.9.1
|
||||||
mab @ git+https://git.tyukalov.su/nikita/mab@c3046307c7bc4e65113aab62b07bad2a148b49e5
|
mab @ git+https://git.tyukalov.su/nikita/mab@v0.0.2
|
||||||
markdown-it-py==4.2.0
|
markdown-it-py==4.2.0
|
||||||
MarkupSafe==3.0.3
|
MarkupSafe==3.0.3
|
||||||
matrix-nio==0.26.0
|
matrix-nio==0.26.0
|
||||||
|
|||||||
Reference in New Issue
Block a user