Быстрый старт¶
Предварительные требования¶
Python 3.11+
Сетевой стек Reticulum (
pip install rns
)LXMFy (
pip install lxmfy
или установка из исходного кода)
Создание вашего первого бота (с помощью CLI)¶
Самый простой способ начать - использовать инструмент командной строки LXMFy.
Откройте терминал в каталоге, где вы хотите создать проект своего бота.
Выполните команду create:
lxmfy create my_first_bot
Эта команда сгенерирует следующие файлы: *
my_first_bot.py
: Ваш основной файл бота, настроенный с разумными значениями по умолчанию. *cogs/
: Каталог для расширений бота (модулей). *cogs/__init__.py
: Делает каталогcogs
пакетом Python. *cogs/basic.py
: Пример модуля с простыми командами «hello» и «about». *data/
: Каталог, в котором бот будет хранить свои данные (по умолчанию используется JSON). *config/
: Каталог, в котором бот хранит свою идентификацию и статус объявления.Просмотрите файл :code:`my_first_bot.py`:
from lxmfy import LXMFBot bot = LXMFBot( name="my_first_bot", # Bot name used in announces/identity announce=600, # Announce interval in seconds (10 minutes) announce_immediately=True, # Announce on first run? admins=set(), # Set of admin LXMF address hashes hot_reloading=False, # Enable/disable hot reloading of cogs rate_limit=5, # Max messages per minute per user cooldown=60, # Cooldown period in seconds for rate limit max_warnings=3, # Warnings before ban for spam warning_timeout=300, # Time (seconds) before warnings reset command_prefix="/", # Prefix for commands (e.g., /hello) cogs_dir="cogs", # Directory to load cogs from cogs_enabled=True, # Enable/disable loading cogs permissions_enabled=False, # Enable/disable the role-based permission system storage_type="json", # Storage backend ("json" or "sqlite") storage_path="data", # Path for storage files/database first_message_enabled=True, # Enable special handling for first messages event_logging_enabled=True, # Log events to storage? max_logged_events=1000, # Max events to keep in log event_middleware_enabled=True, # Enable event middleware? announce_enabled=True, # Enable/disable network announces signature_verification_enabled=False, # Enable/disable cryptographic signature verification require_message_signatures=False # Require all messages to be signed ) # To add an admin, find your LXMF address hash and add it here: # bot.config.admins.add("your_lxmf_hash_here") # bot.admins = bot.config.admins # Ensure the running instance knows # Example of preparing an LXMF icon field (optional) # from lxmfy import IconAppearance, pack_icon_appearance_field # try: # icon_data = IconAppearance(icon_name="emoji_objects", fg_color=b'\xFF\xA5\x00', bg_color=b'\x8B\x45\x13') # Orange on Brown # bot.icon_field = pack_icon_appearance_field(icon_data) # Store for use in send/reply # except Exception as e: # print(f"Could not prepare icon field: {e}") # bot.icon_field = None if __name__ == "__main__": print(f"Starting bot: {bot.config.name}") print(f"Bot LXMF Address: {bot.local.hash}") # Prints the bot's address bot.run()
(Необязательно) Добавьте свой хэш администратора: * Найдите хэш своего адреса LXMF (например, в вашем клиенте Reticulum, таком как Sideband или NomadNet). * Раскомментируйте и отредактируйте строку
bot.config.admins.add(...)
в файлеmy_first_bot.py
, заменив"your_lxmf_hash_here"
на ваш фактический хэш.Запустите своего бота:
python my_first_bot.py
Ваш бот запустится, выведет свой адрес LXMF, потенциально отправит объявление по сети Reticulum и начнет прослушивать сообщения.
Взаимодействие с вашим ботом¶
Отправьте сообщение на адрес LXMF бота из вашего клиента.
Попробуйте пример команды: Отправьте
/hello
боту. Он должен ответить «Hello<your_hash>
!». Если вы раскомментировали пример с иконкой выше, этот ответ также может содержать иконку.Попробуйте команду помощи: Отправьте
/help
.
Следующие шаги¶
Изучите руководство Создание ботов, чтобы получить более подробную информацию о добавлении команд, использовании модулей и различных типах ботов.
Проверьте Справочник по API для получения подробной информации о компонентах фреймворка.