Devel:Core
Материал из Core-X! IRC Bot Kernel, Plugin, Client!
Содержание |
Ядро Core-X
В данном документе описано назначение, основные функции, состав и алгоритмы работы Ядра Core-X (далее просто Ядро).
Назначение
Ядро предназначено для выполнения следующих функций:
- Загрузка, хранение и сохранение настроечных данных, а так же доступ к ним.
- Обеспечение подключения, отключения и поддержание соединения с IRC-сервером(-ами).
- Разбор получаемых от IRC сервера(-ов) сообщений в соответствии с протоколом (RFC 2812).
- Предоставление доступа к обработанным данным.
- Предоставление доступа для отправки данных на сервер.
- Предоставление сигналов для каждого типа (и подтипа) сообщения.
- Ведение специализированных данных для каждого типа сообщения.
- Обеспечение перекодировки данных полученных от сервера и передаваемых на сервер.
- Ведение пользователей и предоставление доступа к данным пользователей.
- Ведение данных каналов, ников и др. данных.
- Управление динамически загружаемыми модулями (плагинами).
Состав ядра
Ядро представляет собой динамическую библиотеку. Она включает в себя нескольких классов и один основного класса, обеспечивающего создание связей между этими классами.
В состав ядра входят следующие классы:
- CoreIni - класс для работы с конфигурационными файлами;
- CoreError - класс для хранения и обработки ошибок;
- CoreConnect - класс для подключения к серверу;
- CoreProtocol - класс для разбора IRC-протокола;
- CoreData - класс для ведения специализированных данных;
- CorePlugin - класс для управления плагинами;
- CoreBase - класс ведения данных каналов, пользователей и др.
Назначение Классов
Назначение CoreIni
Класс CoreIni предназначен для работы с конфигурационными файлами.
Более подробное описание класса CoreIni тут:
Назначение CoreError
Класс CoreError предназначен для хранения и обработки ошибок.
Более подробное описание класса CoreError тут:
Назначение CoreConnect
Класс CoreConnect предназначен для подключения к серверу и поддержания подключения.
Более подробное описание класса CoreConnect тут:
Назначение CoreProtocol
Класс CoreProtocol предназначен для разбора IRC-протокола.
Более подробное описание класса CoreProtocol тут:
Назначение CoreData
Класс CoreData предназначен для ведения специализированных данных.
Более подробное описание класса CoreData тут:
Назначение CorePlugin
Класс CorePlugin предназначен для управления плагинами.
Более подробное описание класса CorePlugin тут:
Назначение CoreBase
Класс CoreBase предназначен для ведения данных каналов, пользователей и др.
Более подробное описание класса CoreBase тут:
Конфигурационные файлы
- Примечание: под именами сети и сервера подразумеваются ключевые слова без пробелов - идентификаторы, с помощью которых будут осуществляться взаимосвязи серверов между собой.
Файл core.ini
Файл core.ini содержит настройки по умолчанию.
Структура файла:
[default] anick=Core[X] codepage=utf8 ident=core-x nick=Core-X port=6667 realname=Core-X Bot rectime=60 timeout=200
где:
- anick - альтернативный ник;
- codepage - кодировка сервера;
- ident - идент;
- nick - основной ник;
- port - порт подключения по умолчанию;
- realname - реальное имя;
- rectime - интервал между переподключениями (в секундах);
- timeout - максимальное время ожидания данных от сервера.
Файл connect.ini
Файл connect.ini содержит сетевые настройки подключения.
Структура файла:
[network_name] anick=Core[X] autoconnect=1 codepage=utf8 ident=core-x nick=Core-X port=6667 realname=Core-X Bot rectime=60 servers=server1,server2,server3 timeout=200
где:
- [network_name] - имя (идентификатор) сети;
- anick - альтернативный ник;
- autoconnect - настройка автоматического подключения к данной сети;
- codepage - кодировка сервера;
- ident - идент;
- nick - основной ник;
- port - порт подключения по умолчанию;
- realname - реальное имя;
- rectime - интервал между переподключениями (в секундах);
- servers - перечень имен (идентификаторов) серверов из данной сети (см. файл servers.ini);
- timeout - максимальное время ожидания данных от сервера.
Примечание: Если какие то параметры отсутствуют, то берутся параметры по умолчанию из файла core.ini.
Файл servers.ini
Файл servers.ini содержит настройки подключения для каждого сервера.
Структура файла:
[server1] anick=Core[X] autoconnect=1 codepage=utf8 host=irc.server ident=core-x nick=Core-X password=123456 port=6667 realname=Core-X Bot timeout=200 rectime=60 [server2] ...
где:
- [server1], [server2] - имена (идентификаторы) серверов из connect.ini
- anick - альтернативный ник;
- autoconnect - настройка автоматического подключения к данной сети;
- codepage - кодировка сервера;
- host - адрес сервера;
- ident - идент;
- nick - основной ник;
- password - пароль сервера;
- port - порт подключения по умолчанию;
- realname - реальное имя;
- rectime - интервал между переподключениями (в секундах);
- timeout - максимальное время ожидания данных от сервера.
Примечание: Если какие то параметры отсутствуют, то параметры берутся из настроек сети из файла connect.ini. А в случае если и там нет, то из файла core.ini.
Файл perform.ini
Файл perform.ini содержит перечень команд, выполняемых при подключении к сети.
Структура файла:
[network1] n1=команда1 n2=команда2 [network1:server1] n1=команда1 n2=команда2 n3=команда3 [network2] ...
где:
- [network1] - имя (идентификатор) сети;
- [network1:server1] - имя (идентификатор) сети:имя (идентификатор) сервера;
- n1, n2, n3, ... - нумерованный список команд, выполняемых при подключении к сети.
Примечание: Если список команд для сервера пуст, то выполняются команды для сети, в которую входит данный сервер.
