imported>Catweird |
imported>Megejot408 |
Строка 1: |
Строка 1: |
| Перед созданием команд убедитесь, что они соответствуют требованиям Catware:
| | <div style="background:black;width:100%;text-align:center"> |
| | | <h1 style="font-size:150px"><span style="color:#359cfc">#нет</span><span style="color:yellow">войне</span></h1> |
| - команда действительно имеет применение
| | <span style="font-size:40px;color:white">Фонд Catware против войны на Украине</span> |
| | | </div> |
| - команда выполняется как можно быстрее
| |
| | |
| - команда не использует запрещённых методов
| |
| | |
| Проверили? Поехали дальше.
| |
| | |
| == Создание конфигурации команды ==
| |
| Примерная конфигурация команды выглядит так:
| |
| | |
| <code>{</code> | |
| | |
| <code>"author": "catwared",</code>
| |
| | |
| <code>"mode": "=",</code>
| |
| | |
| <code>"deps": "None",</code>
| |
| | |
| <code>"identificator": "test",</code>
| |
| | |
| <code>"command_ru": "тест",</code>
| |
| | |
| <code>"description": "Тестовая команда",</code>
| |
| | |
| <code>"testing": false,</code>
| |
| | |
| <code>"hide": false,</code>
| |
| | |
| <code>"restricted": false,</code>
| |
| | |
| <code>"disabled": false</code>
| |
| | |
| <code>}</code>
| |
| | |
| Поле "author": в него вы вписываете свои данные (никнейм, способ связаться)
| |
| | |
| Поле "mode": способ реагирования на команду:
| |
| {| class="wikitable"
| |
| |+
| |
| !Режим использования
| |
| !Описание
| |
| |-
| |
| |=
| |
| |Команда не требует аргументов, либо они опциональны
| |
| |-
| |
| |start
| |
| |Команда '''ОБЯЗАТЕЛЬНО''' требует аргумента
| |
| |-
| |
| |pic
| |
| |Команда требует приложенной картинки
| |
| |}
| |
| '''Поле deps не нужно, т.к пока что не добавили поддержку/замену'''
| |
| | |
| Поле "identificator": идентификатор вашей команды
| |
| | |
| Поле "command_ru": название (триггер) команды. '''Не должно содержать пробелов'''
| |
| | |
| Поле "description": описание вашей команды.
| |
| | |
| Флаги:
| |
| {| class="wikitable"
| |
| |+
| |
| !testing
| |
| !hide
| |
| !restricted
| |
| !disabled
| |
| |-
| |
| |Значение факта команды для тестеров
| |
| |Скрытие команды
| |
| |Команда потенциально оскорбительна?
| |
| |Команда отключена?
| |
| |}
| |
| Теперь перейдём к <s>выебонам</s> возможностям написания под CatABMS
| |
| | |
| == CatENV ==
| |
| Начнём пожалуй с CatENV - набор определений (методов), сильно упрощающий написание кода.
| |
| {| class="wikitable"
| |
| |+
| |
| !Название метода
| |
| !Передаваемые аргументы
| |
| !Возможный ответ от функции
| |
| !Что это?
| |
| |-
| |
| |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
| |
| |Любой текст
| |
| |<s>Любой текст</s>
| |
| |Фишка юникода
| |
| |-
| |
| |HostToIp
| |
| |URL
| |
| |123.123.123.123
| |
| |Получение IP из домена
| |
| |-
| |
| |percent
| |
| |сколько всего, сколько из "всего"
| |
| |53.0
| |
| |Получение процента
| |
| |-
| |
| |getid
| |
| |короткое имя ВКонтакте
| |
| |131236782
| |
| |Получение цифрового ID пользователя
| |
| |-
| |
| |getmention
| |
| |user_id
| |
| |<nowiki>[id123123123|Имя Фамилия]</nowiki>
| |
| |Получение упоминания пользователя
| |
| |-
| |
| |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
| |
| |текст
| |
| |нет
| |
| |Отправка сообщения в текущий диалог
| |
| |-
| |
| |mta
| |
| |текст
| |
| |нет
| |
| |Отправка сообщения всем администраторам котопая
| |
| |-
| |
| |picture
| |
| |URL, текст
| |
| |нет
| |
| |Отправка изображения по URL
| |
| |-
| |
| |picturedata
| |
| |/path/to/image, текст
| |
| |нет
| |
| |Отправка изображения по пути к файлу
| |
| |-
| |
| |resize_image
| |
| |/путь/к/входному/изображению, /путь/к/выхлопу, (ширина, высота)
| |
| |нет
| |
| |Изменение размера изображения
| |
| |}
| |
| | |
| == CatLib ==
| |
| CatENV - это не всё. Сборка Catpy может также предложить вам набор библиотек CatLib:
| |
| {| class="wikitable"
| |
| |+
| |
| !Название метода
| |
| !Входные данные
| |
| !Выходные данные
| |
| !Принадлежит библиотеке
| |
| |-
| |
| |decipher
| |
| |закодированные в catcipher данные
| |
| |результат декодирования
| |
| |Catware Cipher
| |
| |-
| |
| |cipher
| |
| |строка
| |
| |к примеру, test -> 1@€§£@1#1@&1
| |
| |Catware Cipher
| |
| |-
| |
| |getparam
| |
| |user_id, "названиепараметра"
| |
| |Содержимое параметра
| |
| |CUMv2 (Catware User Manager)
| |
| |-
| |
| |setparam
| |
| |user_id, "названиепараметра", "значение"
| |
| |Success или Error
| |
| |CUMv2
| |
| |-
| |
| |generrorcode
| |
| |Любая строка
| |
| |Генерируемый код ошибки, к примеру член члееен -> 6676676676
| |
| |generrorcode
| |
| |-
| |
| |rhyme
| |
| |слово (str)
| |
| |["олово", "говно", "хуйло", "давно", "дерьмо"]
| |
| |Rhymes generator
| |
| |-
| |
| |searchpic
| |
| |слова для поиска картинок
| |
| |[url1, url2, url3, url4]
| |
| |kalbot's ImgSearch
| |
| |-
| |
| |sget
| |
| |url
| |
| |выхлоп запроса
| |
| |SmartGet (представляется браузером)
| |
| |-
| |
| |transliterate
| |
| |текст
| |
| |text
| |
| |mlebd's transliterate
| |
| |}
| |
| | |
| == Переменные ядра и окружения системы (CoreRC, сервисы) ==
| |
| {| class="wikitable"
| |
| |+
| |
| !Переменная
| |
| !Примерное значение
| |
| !Принадлежность к
| |
| !Описание
| |
| |-
| |
| |osname
| |
| |GNU/Linux
| |
| |Загрузчик
| |
| |Семейство ОС на сервере
| |
| |-
| |
| |admins
| |
| |123,123,123,123,123
| |
| |Конфигурация системы
| |
| |Список ID вконтакте админов бота
| |
| |-
| |
| |botname
| |
| |CatPy Stable
| |
| |Конфигурация системы
| |
| |Имя бота
| |
| |-
| |
| |version
| |
| |0.9_53
| |
| |Конфигурация системы
| |
| |Версия бота
| |
| |-
| |
| |abms_name
| |
| |<nowiki>CatABMS | Catware Advanced Bot Manipulation System</nowiki>
| |
| |Конфигурация системы
| |
| |Название управляющей системы
| |
| |-
| |
| |codename
| |
| |Chernobyl 35y Anniversary
| |
| |Конфигурация системы
| |
| |Codename (кодовое имя выпуска)
| |
| |-
| |
| |releasedate
| |
| |26.04.2021
| |
| |Конфигурация системы
| |
| |Дата выпуска
| |
| |-
| |
| |user_id
| |
| |458828641
| |
| |Ядро
| |
| |id пользователя
| |
| |-
| |
| |peer_id
| |
| |200000чётотамсколькоцифр0072
| |
| |Ядро
| |
| |Peer ID
| |
| |-
| |
| |chat_id
| |
| |72
| |
| |Ядро
| |
| |ID чата
| |
| |-
| |
| |textic_2
| |
| |/кот команды
| |
| |Ядро
| |
| |Полный текст сообщения
| |
| |-
| |
| |replytext
| |
| |я хуй знает
| |
| |Ядро
| |
| |Текст сообщения, на которое ответил пользователь
| |
| |-
| |
| |cmd
| |
| |команды
| |
| |Ядро
| |
| |Имя (триггер) использованной команды
| |
| |-
| |
| |parameter
| |
| | -лист
| |
| |Ядро
| |
| |Переданные параметры
| |
| |-
| |
| |argv_picture
| |
| |https://чётотам/чётотам.jpg
| |
| |Ядро
| |
| |URL приложенной картинки
| |
| |-
| |
| |using
| |
| |True/False
| |
| |Ядро
| |
| |Необходимость реагирования на команду (обработчик-оптимизатор)
| |
| |-
| |
| |serverspeed
| |
| |941472
| |
| |Сервис
| |
| |Баллы производительности системы
| |
| |}
| |
| | |
| == Введение в сервисы catABMS ==
| |
| Сервисы (Catware Autostart) - тупо файлы, выполняющиеся при загрузке системы и обеспечивающие работу каких либо системных аспектов, команд и так далее.
| |
| | |
| == Тоже самое, но с coreRC == | |
| Core Run Commands - тупо файлы, выполняющиеся при запуске команды
| |
| | |
| == Введение в CatLib ==
| |
| Тупо файлы с дэф-ами, чтобы не костылить в катенве. '''Знайте своё место блять!'''
| |
| | |
| == Введение в catABMS Chains ==
| |
| Тупа новенькая фича. Итак, приступим:
| |
| | |
| Есть папка с файлами на питоне - chains. Хочу, чтобы после выполнения моей команды, юзер что то написал и файл из той папки активировался ЧИСТО У ТОГО ЮЗЕРА. Окей.
| |
| | |
| Делаем ебало:
| |
| | |
| <code>message("Привет! Что бы ты хотел пожелать админам?")</code>
| |
| | |
| Инициируем выполнение цепочки:
| |
| | |
| <code>setparam(user_id, "stage", "mychainfile")</code>
| |
| | |
| В файле цепочки, пишем код после инпута юзера:
| |
| | |
| <code>mta(f"Привет, админы. Пользователь {getmention(user_id)} желает всем вам {textic_2}!")</code>
| |
| | |
| И также в файле цепочки даём сигнал, что выполнение цепочки требуется прекратить:
| |
| | |
| <code>setparam(user_id, "stage", "default")</code>
| |
| | |
| == Пример кода команды (кстати) ==
| |
| Конфигурация команды пусть будет:
| |
| | |
| <code>{</code>
| |
| | |
| <code>"author": "Catpy Programmist <catpyproger@mail.ru>",</code>
| |
| | |
| <code>"mode": "=",</code> | |
| | |
| <code>"deps": "None",</code>
| |
| | |
| <code>"identificator": "ping",</code>
| |
| | |
| <code>"command_ru": "пинг",</code>
| |
| | |
| <code>"description": "Пинг бота",</code>
| |
| | |
| <code>"testing": false,</code>
| |
| | |
| <code>"hide": true,</code>
| |
| | |
| <code>"restricted": false,</code>
| |
| | |
| <code>"disabled": false</code>
| |
| | |
| <code>}</code>
| |
| | |
| И код команды:
| |
| | |
| <code>message("Понг!")</code>
| |
| | |
| == Введение в CFAT или файлы catABMS ==
| |
| Просто приведём таблицу:
| |
| {| class="wikitable"
| |
| |+
| |
| !Папка
| |
| !Что хранится (описание)
| |
| |-
| |
| |chains
| |
| |Файлы цепочек
| |
| |-
| |
| |chats
| |
| |БД чатов
| |
| |-
| |
| |commands
| |
| |Файлы с командами
| |
| |-
| |
| |configs
| |
| |Файлы с конфигурацией бота
| |
| |-
| |
| |corerc
| |
| |Файлы CoreRC
| |
| |-
| |
| |exf
| |
| |Файлы CatShell
| |
| |-
| |
| |experimental
| |
| |Тестируемые, предрелизные команды
| |
| |-
| |
| |lib
| |
| |Файлы с библиотеками
| |
| |-
| |
| |services
| |
| |Файлы Catware Autostart
| |
| |-
| |
| |users
| |
| |Данные пользователей (база данных)
| |
| |}
| |