Создание команд
Перед созданием команд убедитесь, что они соответствуют требованиям Catware:
- команда действительно имеет применение
- команда выполняется как можно быстрее
- команда не использует запрещённых методов
Проверили? Поехали дальше.
Создание конфигурации команды
Примерная конфигурация команды выглядит так:
{
"author": "catwared",
"mode": "=",
"deps": "None",
"identificator": "test",
"command_ru": "тест",
"description": "Тестовая команда",
"testing": false,
"hide": false,
"restricted": false,
"disabled": false
}
Поле "author": в него вы вписываете свои данные (никнейм, способ связаться)
Поле "mode": способ реагирования на команду:
Режим использования | Описание |
---|---|
= | Команда не требует аргументов, либо они опциональны |
start | Команда ОБЯЗАТЕЛЬНО требует аргумента |
pic | Команда требует приложенной картинки |
Поле deps не нужно, т.к пока что не добавили поддержку/замену
Поле "identificator": идентификатор вашей команды
Поле "command_ru": название (триггер) команды. Не должно содержать пробелов
Поле "description": описание вашей команды.
Флаги:
testing | hide | restricted | disabled |
---|---|---|---|
Значение факта команды для тестеров | Скрытие команды | Команда потенциально оскорбительна? | Команда отключена? |
Теперь перейдём к выебонам возможностям написания под CatABMS
CatENV
Начнём пожалуй с CatENV - набор определений (методов), сильно упрощающий написание кода.
Название метода | Передаваемые аргументы | Возможный ответ от функции | Что это? |
---|---|---|---|
dvn | integer | 148.0 KB | Функция для словестной записи размера данных |
allchatrules | нет | Правила: текст | Возвращает правила беседы, где задействован метод во время выполнения команды |
setTester | id пользователя | нет | Устанавливает пользователю значение тестера Catpy и сообщает пользователю об этом |
unsetTester | id пользователя | нет | Лишает пользователя значения тестера Catpy и сообщает ему об этом. |
testerinfo | id пользователя | {'id': 597100871, 'tester': True, 'reports': 0, 'report_list': [], 'first_invite': 1624988382, 'last_invite': 1624988382, 'status': 'Бета-тестировщик catpy'} | Информация о тестировщике в формате JSON |
isTester | id пользователя | True/False | Является ли пользователь тестировщиком |
ssorg | lat, long (int) | Возвращаемые значения:
- Рассвет (0) - Закат (1) - Астрономический полдень (2) - Длительность светового дня (3) - Начало человеческого рассвета (4) - Конец человеческого заката (5) - Начало морского рассвета (6) - Конец морского заката (7) - Начало астрономического рассвета (8) - Конец астрономического заката (9) - Отклонение от UTC (10) |
Ума не приложу, зачем нужно большинство этих данных, но пусть будет))
Все данные возвращаются в массиве по порядку в формате unixtime по местному времени |
globalid | conversation_message_id (int) | message_id | Не шарю, вроде от этого смски можно группой сносить |
regproc | Любой текст | Нет | Создаёт редактируемое сообщение |
editmessage | Любой текст | Нет | Редактирует сообщение, созданное методом regproc() |
weekday | int от 1 до 7 | Возвращает день недели по числу | Хуй знает зачем это и где используется |
chatadmins | peer_id (int) | Возвращает список ID админов чата | Крутая же фича |
clrlink | URL | Возвращает сокращённую ссылку | Тож пиздатая фичя(( |
isgroup | user_id | Возвращает значение (True/False) факта того группа это или нет | Ну, хз зачем блять нахуй это надо сука |
cordstooffset | lat, lon (int) | Возвращает смещение по геокоординатам (не помню чё там в жсоне, да и неибу, спросите у катвиерда/зиги) | cords to offset |
readabledate | unixtime (int) | Возвращает читаемую дату | юникстайм в дату |
rid | нет | Бинд для быстрой генерации random_id для ВКонтакте, возвращаает рандомное число | лень просто вводить каждый раз рандд. ранддинт чёто там... |
strike | Любой текст | Фишка юникода | |
HostToIp | URL | 123.123.123.123 | Получение IP из домена |
percent | сколько всего, сколько из "всего" | 53.0 | Получение процента |
getid | короткое имя ВКонтакте | 131236782 | Получение цифрового ID пользователя |
getmention | user_id | [id123123123|Имя Фамилия] | Получение упоминания пользователя |
getname | user_id | Имя Фамилия | Получение имени пользователя по ID |
convertjson | strинговый жсон | жсоновый жсон | Тупо бинд для json.loads |
translate | text, lang | Переведённый текст | Переводчик (коды языков смотреть в документации googletrans python)))) |
Voice | /path/to/ogg | Нет | Записывает голосовое сообщение |
PlusWrite | текст, путь/к/файлу | Нет | Дозапись в файл |
Get | URL | Полученный текст | GET-запрос |
InstallPackage | название пакета в PIP | Нет | Устанавливает pip пакетик йойойойо |
ReadFF | путь/к/файлу | Содержимое файла | Читает файл и возвращает его содержимое |
CallSystem | команда в Linux Shell | Выхлоп команды | Вызов шела |
Run | путь/к/файлу | Зависит от кода | Хз зачем эта хуйня |
RunThread | id потока, def, (args,) | Нет | Тоже не ебу, но это поток, да |
convertint | 19834273847 | 229563 дня 8 часов 30 минут 47 секунд | Словестная запись количества секунд |
Download | URL, /path/to/download | Нет | Скачивание файла |
similar | первая строка, вторая строка | True/False | Сравнение строк на схожесть |
TextToBits | строка | 1000101010101010101000101010100101 бинарное кодирование короч да понели | Двоичное кодирование |
TextFromBits | 10010111010001010 ебаные | строка | Двоичное декодирование |
Reverse | строка | акортс | Реверсирование текста |
RandomLetter | нет | Рандомная латинская буква | Рандомная буква |
writeTo | text, /path/to/file | нет | Запись в файл |
message | текст | нет | Отправка сообщения в текущий диалог |