Files
FoxLang/telegram_bot

🦊 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:

nano token.txt

Замените YOUR_BOT_TOKEN_HERE на ваш реальный токен.

3. Запуск

./run_bot.sh

Или вручную:

../src/foxlang main.fox

🤖 Возможности бота

Команды

  • /start - Приветствие и инструкции
  • /help - Справка по FoxLang
  • /example - Пример кода

Выполнение кода

Отправьте боту любой FoxLang код:

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():

if (command == "/mycommand") {
    return "My custom response";
}

Расширение API

В bot_api.fox можно добавить новые методы Telegram API:

void send_photo(string token, string chat_id, string photo_url) {
    // Реализация отправки фото
}

Улучшение безопасности

В code_executor.fox, функция is_safe_code():

// Добавить новые запрещенные слова
set(forbidden_words, 5, "dangerous_function");

📝 Примечания

  • Бот написан на чистом FoxLang
  • Использует заглушки для системных функций
  • Для полной функциональности нужны встроенные функции:
    • http_get() - HTTP запросы
    • read_file() / write_file() - работа с файлами
    • sleep() - задержки
    • Строковые функции (contains, replace_all, etc.)

🔮 Будущие улучшения

  • Полный JSON парсер
  • Файловые операции
  • HTTP клиент
  • Строковые функции
  • Логирование
  • Конфигурация через файл
  • Поддержка inline клавиатур
  • Сохранение состояния пользователей

📄 Лицензия

MIT License - используйте свободно!