August 6, 2023

Learning IT.

Lang - Rus.

Часть 2.

Вступление.

Выход 2 части не заставил себя долго ждать. Сегодня мы разберемся с командами и их составляющими. Поэтому готовьте чаёк и печеньки, а мы начинаем погружение в IT.

Поехали!

5. Команды.

После наших 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):
      """наша команда."""

6. Функции и утилиты.

Сейчас мы рассмотрим свойства и на что, собственно, возможны функции. Начнем!

В библиотеках Hikka имеются достаточно большие базы функций для команд, такие как:

  1. Функции для взаимодействие непосредственно с пользователем и его аккаунтом.
  2. Автоматизация команд.
  3. Функции для управления сообщениями.

И это лишь несколько из огромного количества раличных, специфических и узконаправленных, функций.


Для нашего тестового модуля мы будем использовать функцию редактирования сообщения пользователя, чтобы после отправления нашей команды она редактировалась на ту фразу, которую мы указали в strings. Выглядеть это будет следующим образом:

@loader.command()
async def devcmd(self, message):
#создаем код, который будет выполнять наша команда
   await utils.answer(message, self.strings("dev"))

Теперь расшифруем код выше.

await utils.answer(args)

Данная команда создает утилиту, которая исправит сообщение пользователя, либо исполнит ту функцию, которую в неё заложат. В нашем случае мы создали утилиту и заложили в неё команду исправления сообщения пользователя на значение "dev". Мы указали значение в strings.

Ути́лита (англ. utility) — вспомогательная компьютерная программа в составе общего программного обеспечения для выполнения специализированных типовых задач, связанных с работой оборудования и операционной системы (ОС).

7. Модуль.

Вот мы и подошли к знаменательному моменту, когда мы уже можем написать простой модуль, используя базовые знания.

На протяжении недолгого времени мы с вами охватили самые верхние основы программирования модулей на 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.

Всем до скорой встречи и удачи.