Files
FoxLang/telegram_bot/README.md
T

141 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🦊 FoxLang Telegram Bot
Telegram бот, написанный на чистом FoxLang для выполнения FoxLang кода!
## 📁 Структура
```
telegram_bot/
├── main.fox # Основной файл бота
├── bot_api.fox # API для работы с Telegram
├── code_executor.fox # Выполнение пользовательского кода
├── token.txt # Токен бота (настройте!)
├── run_bot.sh # Скрипт запуска
└── README.md # Эта документация
```
## 🚀 Быстрый старт
### 1. Создание бота
1. Найдите @BotFather в Telegram
2. Отправьте `/newbot`
3. Следуйте инструкциям
4. Получите токен вида: `123456789:ABCdefGHIjklMNOpqrsTUVwxyz`
### 2. Настройка
Отредактируйте файл `token.txt`:
```bash
nano token.txt
```
Замените `YOUR_BOT_TOKEN_HERE` на ваш реальный токен.
### 3. Запуск
```bash
./run_bot.sh
```
Или вручную:
```bash
../src/foxlang main.fox
```
## 🤖 Возможности бота
### Команды
- `/start` - Приветствие и инструкции
- `/help` - Справка по FoxLang
- `/example` - Пример кода
### Выполнение кода
Отправьте боту любой FoxLang код:
```cpp
int x = 10;
int y = 20;
print("Sum: " + (x + y));
fox();
```
### Безопасность
- Запрет на `include` в пользовательском коде
- Ограничение длины кода (10000 символов)
- Ограничение вывода (4000 символов)
- Запрет системных вызовов
## 🔧 Архитектура
### main.fox
- Основной цикл бота
- Обработка команд
- Инициализация
### bot_api.fox
- HTTP запросы к Telegram API
- Парсинг JSON ответов
- Отправка сообщений
### code_executor.fox
- Выполнение пользовательского кода
- Проверки безопасности
- Ограничения вывода
## 🛠 Разработка
### Добавление новых команд
В `main.fox`, функция `handle_command()`:
```cpp
if (command == "/mycommand") {
return "My custom response";
}
```
### Расширение API
В `bot_api.fox` можно добавить новые методы Telegram API:
```cpp
void send_photo(string token, string chat_id, string photo_url) {
// Реализация отправки фото
}
```
### Улучшение безопасности
В `code_executor.fox`, функция `is_safe_code()`:
```cpp
// Добавить новые запрещенные слова
set(forbidden_words, 5, "dangerous_function");
```
## 📝 Примечания
- Бот написан на чистом FoxLang
- Использует заглушки для системных функций
- Для полной функциональности нужны встроенные функции:
- `http_get()` - HTTP запросы
- `read_file()` / `write_file()` - работа с файлами
- `sleep()` - задержки
- Строковые функции (`contains`, `replace_all`, etc.)
## 🔮 Будущие улучшения
- [ ] Полный JSON парсер
- [ ] Файловые операции
- [ ] HTTP клиент
- [ ] Строковые функции
- [ ] Логирование
- [ ] Конфигурация через файл
- [ ] Поддержка inline клавиатур
- [ ] Сохранение состояния пользователей
## 📄 Лицензия
MIT License - используйте свободно!