4365a50cda
с афроо лошадьми
3.8 KiB
3.8 KiB
🦊 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. Создание бота
- Найдите @BotFather в Telegram
- Отправьте
/newbot - Следуйте инструкциям
- Получите токен вида:
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 - используйте свободно!