Spaces:
Paused
Paused
Update README.md
Browse files
README.md
CHANGED
|
@@ -4,20 +4,28 @@ emoji: 🛠️
|
|
| 4 |
colorFrom: green
|
| 5 |
colorTo: blue
|
| 6 |
sdk: docker
|
| 7 |
-
app_port: 7860
|
| 8 |
pinned: false
|
| 9 |
---
|
| 10 |
|
| 11 |
-
## Telegram Bot API с расширенными инструментами и
|
| 12 |
|
| 13 |
-
Этот Space запускает локальный сервер Telegram Bot API и предоставляет
|
| 14 |
|
| 15 |
-
1.
|
| 16 |
-
2.
|
| 17 |
-
3.
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
-
### Необходимые секреты
|
| 21 |
|
| 22 |
Добавьте следующие секреты в настройках вашего Space (`Settings -> Secrets`):
|
| 23 |
|
|
@@ -25,21 +33,88 @@ pinned: false
|
|
| 25 |
* `TELEGRAM_API_HASH`: Ваш API Hash от Telegram.
|
| 26 |
* `GITHUB_USERNAME`: Ваш логин на GitHub (для обновления Gist).
|
| 27 |
* `GITHUB_TOKEN`: Ваш Personal Access Token от GitHub с правом `gist` (для обновления Gist).
|
| 28 |
-
* `ENV_GIST_ID`: ID вашего GitHub Gist, куда будет
|
|
|
|
| 29 |
|
| 30 |
-
### Переменные окружения (можно переопределить через секреты)
|
| 31 |
|
| 32 |
-
* `
|
| 33 |
-
* `TELEGRAM_DATA_DIR`:
|
| 34 |
-
* `FILES_TTL`: Время жизни файлов в часах. Старые файлы
|
|
|
|
| 35 |
|
| 36 |
-
### Как использовать
|
| 37 |
|
| 38 |
-
1.
|
| 39 |
-
2.
|
| 40 |
-
*
|
| 41 |
-
|
| 42 |
-
*
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
colorFrom: green
|
| 5 |
colorTo: blue
|
| 6 |
sdk: docker
|
| 7 |
+
app_port: 7860
|
| 8 |
pinned: false
|
| 9 |
---
|
| 10 |
|
| 11 |
+
## Telegram Bot API с расширенными инструментами и прокси (Русский)
|
| 12 |
|
| 13 |
+
Этот Space запускает локальный сервер Telegram Bot API и предоставляет расширенное приложение Node.js Express, доступное по URL-адресу вашего Space, предлагая:
|
| 14 |
|
| 15 |
+
1. **Проксированный Telegram Bot API**: Доступ к вашему локальному Telegram Bot API через `https://[YOUR_SPACE_URL]/tg/bot<YOUR_BOT_TOKEN>/<METHOD_NAME>`.
|
| 16 |
+
2. **Статистика файлов**: Получение количества и общего размера файлов в каталоге данных Telegram Bot API через `https://[YOUR_SPACE_URL]/stats`.
|
| 17 |
+
3. **Расширенные операции с файлами (через префикс `/file/`)**:
|
| 18 |
+
* **Список файлов**: `.../file/list?token=<BOT_TOKEN>` - Список всех файлов для указанного бота, включая размеры отдельных файлов и общий размер перечисленных файлов.
|
| 19 |
+
* **Получение информации о файле и ссылок**: `.../file/<BOT_TOKEN>/getFile?file_id=<FILE_ID>` - Возвращает ответ `getFile` от Telegram, дополненный прямыми ссылками для скачивания (по пути, по ID и зашифрованной версией).
|
| 20 |
+
* **Скачивание по ID**: `.../file/<BOT_TOKEN>/downloadFile?file_id=<FILE_ID>` - Прямое скачивание файла.
|
| 21 |
+
* **Скачивание по пути**: `.../file/<BOT_TOKEN_AS_DIR>/<PATH_TO_FILE_INSIDE_BOT_DIR>` - Скачивание, если известен точный относительный путь (например, `.../file/bot123:abc/photos/file_0.jpg`).
|
| 22 |
+
* **Зашифрованное скачивание**: `.../file/downloadEncrypted?payload=<ENCRYPTED_PAYLOAD>` - Скачивание с использованием полезной нагрузки из эндпоинта `getFile` (скрывает токен бота и ID файла из прямого URL).
|
| 23 |
+
* **Удаление файла по пути**: `.../file/deleteFile?file=<BOT_TOKEN_AS_DIR>/<PATH_TO_FILE_INSIDE_BOT_DIR>` - Удаление файла из кэша с использованием его прямого пути.
|
| 24 |
+
* **Удаление файла по ID**: `.../file/<BOT_TOKEN>/deleteById?file_id=<FILE_ID>` - Удаление файла из кэша с использованием токена бота и ID файла (внутренне вызывает `getFile` для определения пути).
|
| 25 |
+
4. **Очистка кэша (TTL)**: Автоматическое удаление старых файлов из кэша Telegram Bot API.
|
| 26 |
+
5. **Агрегированное обновление Gist**: Информация об этом Space (включая URL-адреса инструментов) сохраняется в указанный GitHub Gist, агрегируя информацию, если несколько Space указывают на один и тот же файл Gist.
|
| 27 |
|
| 28 |
+
### Необходимые секреты (Русский)
|
| 29 |
|
| 30 |
Добавьте следующие секреты в настройках вашего Space (`Settings -> Secrets`):
|
| 31 |
|
|
|
|
| 33 |
* `TELEGRAM_API_HASH`: Ваш API Hash от Telegram.
|
| 34 |
* `GITHUB_USERNAME`: Ваш логин на GitHub (для обновления Gist).
|
| 35 |
* `GITHUB_TOKEN`: Ваш Personal Access Token от GitHub с правом `gist` (для обновления Gist).
|
| 36 |
+
* `ENV_GIST_ID`: ID вашего GitHub Gist, куда будет сохраняться/обновляться информация о Space. Создайте пустой Gist и скопируйте его ID из URL.
|
| 37 |
+
* `LINK_ENCRYPTION_KEY`: Секретная фраза (например, длинная случайная строка), используемая для генерации зашифрованных ссылок на скачивание. Если не установлена, зашифрованные ссылки генерироваться не будут.
|
| 38 |
|
| 39 |
+
### Переменные окружения (можно переопределить через секреты) (Русский)
|
| 40 |
|
| 41 |
+
* `INTERNAL_TELEGRAM_API_PORT`: Порт для внутреннего процесса `telegram-bot-api` (по умолчанию: `8081`). Приложение Node.js проксирует запросы на этот порт.
|
| 42 |
+
* `TELEGRAM_DATA_DIR`: Каталог данных для `telegram-bot-api` (по умолчанию: `/var/lib/telegram-bot-api`).
|
| 43 |
+
* `FILES_TTL`: Время жизни кэшированных файлов в часах. Старые файлы автоматически удаляются. Установите `-1` для отключения (по умолчанию: `-1`).
|
| 44 |
+
* `PROXY_TELEGRAM_PATH_PREFIX`: Префикс URL для проксирования вызовов Telegram API (по умолчанию: `/tg`).
|
| 45 |
|
| 46 |
+
### Как использовать (Русский)
|
| 47 |
|
| 48 |
+
1. **Корневой эндпоинт**: `https://[YOUR_SPACE_URL]/` - Предоставляет JSON-список доступных основных эндпоинтов.
|
| 49 |
+
2. **Прокси Telegram Bot API**:
|
| 50 |
+
* Используйте `https://[YOUR_SPACE_URL]/tg/bot<YOUR_BOT_TOKEN>/<METHOD_NAME>` вместо стандартного URL `api.telegram.org`.
|
| 51 |
+
3. **Инструменты**:
|
| 52 |
+
* **Статистика**: `https://[YOUR_SPACE_URL]/stats`
|
| 53 |
+
* **Операции с файлами**: Все начинаются с `https://[YOUR_SPACE_URL]/file/`. Примеры:
|
| 54 |
+
* **Список файлов для вашего бота**: `.../file/list?token=12345:ABCDEF...` (Ответ включает размеры отдельных файлов и общий размер файлов этого бота).
|
| 55 |
+
* **Получение информации о файле**: `.../file/12345:ABCDEF.../getFile?file_id=SOME_FILE_ID`
|
| 56 |
+
* **Скачивание файла напрямую по его пути**: `https://[YOUR_SPACE_URL]/file/bot12345:ABCDEF.../photos/file_0.jpg`
|
| 57 |
+
* **Удаление файла по пути**: `https://[YOUR_SPACE_URL]/file/deleteFile?file=bot12345:ABCDEF.../photos/file_0.jpg`
|
| 58 |
+
* **Удаление файла по ID**: `https://[YOUR_SPACE_URL]/file/12345:ABCDEF.../deleteById?file_id=SOME_FILE_ID`
|
| 59 |
+
* Gist, указанный `ENV_GIST_ID`, будет содержать обновленный JSON-файл (`hf_space_tg_tools_info.json`) с URL-адресами, специфичными для вашего экземпляра Space.
|
| 60 |
+
|
| 61 |
+
**Важные замечания о путях к файлам (Русский):**
|
| 62 |
+
* Когда `telegram-bot-api` сохраняет файлы, он обычно использует подкаталог, названный в честь токена бота (например, `/var/lib/telegram-bot-api/bot12345:ABCDEF.../`).
|
| 63 |
+
* Для эндпоинтов, таких как прямое скачивание по пути (`/file/<filepath>`) или удаление по пути (`/file/deleteFile?file=<filepath>`), часть `<filepath>` должна включать эту структуру каталогов токена бота, например, `bot12345:ABCDEF.../photos/file_0.jpg`.
|
| 64 |
+
|
| 65 |
+
---
|
| 66 |
+
<br>
|
| 67 |
+
|
| 68 |
+
## Telegram Bot API with Enhanced Tools and Proxy (English)
|
| 69 |
+
|
| 70 |
+
This Space runs a local Telegram Bot API server and provides an enhanced Node.js Express application, accessible via your Space URL, offering:
|
| 71 |
+
|
| 72 |
+
1. **Proxied Telegram Bot API**: Access your local Telegram Bot API via `https://[YOUR_SPACE_URL]/tg/bot<YOUR_BOT_TOKEN>/<METHOD_NAME>`.
|
| 73 |
+
2. **File Statistics**: Get count and total size of files in the Telegram Bot API data directory via `https://[YOUR_SPACE_URL]/stats`.
|
| 74 |
+
3. **Advanced File Operations (via `/file/` prefix)**:
|
| 75 |
+
* **List Files**: `.../file/list?token=<BOT_TOKEN>` - List all files for a specific bot, including individual file sizes and the total size of listed files.
|
| 76 |
+
* **Get File Info & Links**: `.../file/<BOT_TOKEN>/getFile?file_id=<FILE_ID>` - Returns Telegram's `getFile` response, augmented with direct download links (by path, by ID, and an encrypted version).
|
| 77 |
+
* **Download by ID**: `.../file/<BOT_TOKEN>/downloadFile?file_id=<FILE_ID>` - Directly downloads the file.
|
| 78 |
+
* **Download by Path**: `.../file/<BOT_TOKEN_AS_DIR>/<PATH_TO_FILE_INSIDE_BOT_DIR>` - Downloads if you know the exact relative path (e.g., `.../file/bot123:abc/photos/file_0.jpg`).
|
| 79 |
+
* **Encrypted Download**: `.../file/downloadEncrypted?payload=<ENCRYPTED_PAYLOAD>` - Downloads using a payload from the `getFile` endpoint (hides bot token and file ID from the direct URL).
|
| 80 |
+
* **Delete File by Path**: `.../file/deleteFile?file=<BOT_TOKEN_AS_DIR>/<PATH_TO_FILE_INSIDE_BOT_DIR>` - Deletes a file from the cache using its direct path.
|
| 81 |
+
* **Delete File by ID**: `.../file/<BOT_TOKEN>/deleteById?file_id=<FILE_ID>` - Deletes a file from the cache using its bot token and file ID (internally calls `getFile` to find the path).
|
| 82 |
+
4. **Cache Cleanup (TTL)**: Automatic deletion of old files from the Telegram Bot API cache.
|
| 83 |
+
5. **Aggregated Gist Update**: Information about this Space (including tool URLs) is saved to a specified GitHub Gist, aggregating info if multiple spaces point to the same Gist file.
|
| 84 |
+
|
| 85 |
+
### Necessary Secrets (English)
|
| 86 |
+
|
| 87 |
+
Add the following secrets in your Space settings (`Settings -> Secrets`):
|
| 88 |
+
|
| 89 |
+
* `TELEGRAM_API_ID`: Your API ID from Telegram.
|
| 90 |
+
* `TELEGRAM_API_HASH`: Your API Hash from Telegram.
|
| 91 |
+
* `GITHUB_USERNAME`: Your GitHub login (for updating the Gist).
|
| 92 |
+
* `GITHUB_TOKEN`: Your GitHub Personal Access Token with `gist` scope.
|
| 93 |
+
* `ENV_GIST_ID`: ID of your GitHub Gist where Space info will be saved/updated. Create an empty Gist and copy its ID from the URL.
|
| 94 |
+
* `LINK_ENCRYPTION_KEY`: A secret passphrase (e.g., a long random string) used for generating encrypted download links. If not set, encrypted links will not be generated.
|
| 95 |
+
|
| 96 |
+
### Environment Variables (can be overridden via secrets) (English)
|
| 97 |
+
|
| 98 |
+
* `INTERNAL_TELEGRAM_API_PORT`: Port for the internal `telegram-bot-api` process (default: `8081`). The Node.js app proxies to this.
|
| 99 |
+
* `TELEGRAM_DATA_DIR`: Data directory for `telegram-bot-api` (default: `/var/lib/telegram-bot-api`).
|
| 100 |
+
* `FILES_TTL`: Time-to-live for cached files in hours. Older files are auto-deleted. Set to `-1` to disable (default: `-1`).
|
| 101 |
+
* `PROXY_TELEGRAM_PATH_PREFIX`: URL prefix for proxying Telegram API calls (default: `/tg`).
|
| 102 |
+
|
| 103 |
+
### How to Use (English)
|
| 104 |
+
|
| 105 |
+
1. **Root Endpoint**: `https://[YOUR_SPACE_URL]/` - Provides a JSON list of available main endpoints.
|
| 106 |
+
2. **Telegram Bot API Proxy**:
|
| 107 |
+
* Use `https://[YOUR_SPACE_URL]/tg/bot<YOUR_BOT_TOKEN>/<METHOD_NAME>` instead of the standard `api.telegram.org` URL.
|
| 108 |
+
3. **Tools**:
|
| 109 |
+
* **Statistics**: `https://[YOUR_SPACE_URL]/stats`
|
| 110 |
+
* **File Operations**: All start with `https://[YOUR_SPACE_URL]/file/`. Examples:
|
| 111 |
+
* **List files for your bot**: `.../file/list?token=12345:ABCDEF...` (Response includes individual file sizes and total size for this bot's files).
|
| 112 |
+
* **Get info for a file**: `.../file/12345:ABCDEF.../getFile?file_id=SOME_FILE_ID`
|
| 113 |
+
* **Download a file directly using its path**: `https://[YOUR_SPACE_URL]/file/bot12345:ABCDEF.../photos/file_0.jpg`
|
| 114 |
+
* **Delete a file by path**: `https://[YOUR_SPACE_URL]/file/deleteFile?file=bot12345:ABCDEF.../photos/file_0.jpg`
|
| 115 |
+
* **Delete a file by ID**: `https://[YOUR_SPACE_URL]/file/12345:ABCDEF.../deleteById?file_id=SOME_FILE_ID`
|
| 116 |
+
* The Gist specified by `ENV_GIST_ID` will contain an updated JSON file (`hf_space_tg_tools_info.json`) with URLs specific to your Space instance.
|
| 117 |
+
|
| 118 |
+
**Important Notes on File Paths (English):**
|
| 119 |
+
* When `telegram-bot-api` saves files, it typically uses a subdirectory named after the bot token (e.g., `/var/lib/telegram-bot-api/bot12345:ABCDEF.../`).
|
| 120 |
+
* For endpoints like direct download by path (`/file/<filepath>`) or delete by path (`/file/deleteFile?file=<filepath>`), the `<filepath>` part must include this bot token directory structure, e.g., `bot12345:ABCDEF.../photos/file_0.jpg`.
|