# 🦊 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 - используйте свободно!