Learning IT.
Часть 2.
Выход 2 части не заставил себя долго ждать. Сегодня мы разберемся с командами и их составляющими. Поэтому готовьте чаёк и печеньки, а мы начинаем погружение в IT.
После наших strings пойдут команды и их функционал. Назначение команд у нас будет сопровождаться таким образом:
async def {}cmd(self, args):
# {} - название вашей командыТакже вы можете отметить с помощью команды загрузчика, что дальше пойдут функциональные команды. Сделать это вы можете, поставив над строкой первой команды этот код:
@loader.command()
Командам, как и классу, можно присваивать описание при помощи тройных ковычек. Получаем такую структуру:
...
@loader.command()
async def {}cmd(self, args):
"""Описание команды"""
#aргументы вы можете указывать относительно направленности вашего модуля.Можно указывать и без cmd. Но всегда лучше перестраховаться.
Давайте теперь возьмем наш зародышевый модуль и укрепим его скелетом с командой. Получаем:
#Name: Test
#Description: Module for learning
#Commands:
# .dev
#библиотеки
import logging
from .. import loader, utils
#логи
logger = logging.getLogger(__name__)
@loader.tds
class Test(loader.Module):
"""Учиться - это весело! Тестовый модуль."""
#стрококвые значения
strings = {
"name": "Test",
"dev": "I'm a developer!",
}
#строки для русского языка
strings_ru = {
"dev": "Я - разработчик!",
}
#схема с командами
@loader.command()
async def devcmd(self, message):
"""наша команда."""Сейчас мы рассмотрим свойства и на что, собственно, возможны функции. Начнем!
В библиотеках Hikka имеются достаточно большие базы функций для команд, такие как:
- Функции для взаимодействие непосредственно с пользователем и его аккаунтом.
- Автоматизация команд.
- Функции для управления сообщениями.
И это лишь несколько из огромного количества раличных, специфических и узконаправленных, функций.
Для нашего тестового модуля мы будем использовать функцию редактирования сообщения пользователя, чтобы после отправления нашей команды она редактировалась на ту фразу, которую мы указали в strings. Выглядеть это будет следующим образом:
@loader.command()
async def devcmd(self, message):
#создаем код, который будет выполнять наша команда
await utils.answer(message, self.strings("dev"))await utils.answer(args)
Данная команда создает утилиту, которая исправит сообщение пользователя, либо исполнит ту функцию, которую в неё заложат. В нашем случае мы создали утилиту и заложили в неё команду исправления сообщения пользователя на значение "dev". Мы указали значение в strings.
Ути́лита (англ. utility) — вспомогательная компьютерная программа в составе общего программного обеспечения для выполнения специализированных типовых задач, связанных с работой оборудования и операционной системы (ОС).
Вот мы и подошли к знаменательному моменту, когда мы уже можем написать простой модуль, используя базовые знания.
На протяжении недолгого времени мы с вами охватили самые верхние основы программирования модулей на Python. И теперь можем похвастаться тем, что способны назвать себя начинающими в этом деле.
Ниже будет представлен полный код с тем, что нам уже известно.
import logging
from .. import loader, utils
logger = logging.getLogger(__name__)
@loader.tds
class Test(loader.Module):
"""Учиться - это весело! Тестовый модуль."""
strings = {
"name": "Test",
"dev": "I'm a developer!",
}
strings_ru = {
"dev": "Я - разработчик!",
}
@loader.command()
async def devcmd(self, message):
"""Hаша команда."""
await utils.answer(message, self.strings("dev"))Ну, а чтобы сделать его не пустым при загрузке Hikka, достаточно выше основного кода, при помощи # указать название модуля, описание и автора. Также, можно указать значение #meta developer, чтобы ваше имя было указано, как дополнительное описание модуля.
#Name: Test
#Description: The begging of the programmer
#Author: dev.
#Commands:
#.dev
import logging
from .. import loader, utils
logger = logging.getLogger(__name__)
@loader.tds
class Test(loader.Module):
"""Учиться - это весело!"""
strings = {
"name": "Test",
"dev": "I'm a developer!",
}
strings_ru = {
"dev": "Я - разработчик!",
}
@loader.command()
async def devcmd(self, message):
"""Hаша команда."""
await utils.answer(message, self.strings("dev"))Учтите, что для указания команд при установке, у вас должна быть строка:
#Commands: # .command
Если вы хотите сделать несколько команд, то разделителем является символ " | ".
#Commands: #.command | .command | .command
На этом на сегодня всё. С вами был всё тот же неизменный Кай. Если кому интересно, пишу модули на GitHub.