Создание команд: различия между версиями
imported>Megejot408 (Содержимое страницы заменено на «<div style="background:black;width:100%;text-align:center"> <h1 style="font-size:150px"><span style="color:#359cfc">#нет</span><...») |
imported>Cat Weird Нет описания правки |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 1: | Строка 1: | ||
< | Перед созданием команд убедитесь, что они соответствуют требованиям Catware: | ||
< | |||
< | - команда действительно имеет применение | ||
</ | |||
- команда выполняется как можно быстрее | |||
- команда не использует запрещённых методов | |||
Проверили? Поехали дальше. | |||
== Создание конфигурации команды == | |||
Примерная конфигурация команды выглядит так: | |||
<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 | |||
|Данные пользователей (база данных) | |||
|} | |||
== История котопая == | |||
В этой статье будет описана история становления котопая как бота и будущего захватителя рынка ботов. Она без дат, но некоторые всё же будут. | |||
'''Большой Взрыв (2018)''' | |||
На КатВиерда внезапно хлынуло вдохновение создать какую то тестируемую хуйню чисто для фана, и способ реализации пал на СпермаБот. В отличии от прошлых попыток создать электроведро, эта попытка увенчалась успехом и привлекла некоторых людей, которые сейчас, являются элитой среди разработчиков. | |||
Из функций там был список команд, кликер, и триггеры по типу "амуде": | |||
Пользователь: амуде | |||
Бот: АМУДЕ НЕ ПАРАША | |||
ПОБЕДА БУДЕТ НАША | |||
АМУДЕ ПОТАНЦЕВАЛ | |||
ВСЕХ ВЫЕБЕТ В АНАЛ | |||
Вообщем, как и некоторые поймут - бот был вдохновлён также и Izzy Laif'ом. | |||
Тогда он даже и не назывался "котопаем" -- он назывался "izzytop". | |||
Потом появились вознаграждения за клики, множители счёта и прочие ебанские бонусы всего лишь для цифр, а также имущество, дающее некоторые техвозможности | |||
В это время, к проекту присоединились Никита Полищук<sup>[страдает хуйнёй]</sup>, Никита Худяков, Макс Мерзляков, и Василий Васильконов<sup>[страдает хуйнёй]</sup>. | |||
'''Большая {Проблема,Жопа}''' | |||
Закончился пробный период смартбота: | |||
- отвалилось usage в беседах | |||
- отвалились некоторые функции | |||
- сам бот умер. | |||
Все пришлось делать заново. | |||
'''Р<u>ЕВОЛЮЦИЯ</u> (2018-20 января 2019)''' | |||
Бот больше не зависит от тарифов смартбота, а только от рук разработчиков (катвиерда, гены). Все фичи бота были перечёркнуты по причине катвиерд (а на то время izzytopd) был неразумной обьезьяной, неспособной написать helloworld в вк_апи. | |||
Кое как он осилил с Васей Васильконовым запуск этого ведёрка (заставляние его отвечать) и пошло поехало. | |||
История | |||
- 1.0, бот умеет показывать список команд | |||
- 1.1, бот умеет считать 1, 2, 3, 4... | |||
- 1.7, бот научился слать картинки по URL. | |||
- 2.2.6, теперь появились функции пизденья логотипа гугла (вроде, не помню) | |||
- 2.3.7, добавлена конфигурация бота (техническое) | |||
- 3.0, бот умеет искать по википедии | |||
- 4.0, бот умеет переводить раскладку | |||
- 5.5, добавлен яндекс переводчик | |||
- 6.0, ??? | |||
- 7.0, добавлена куча хуйни ебаной и говна сраного. | |||
- 7.1, пофикшен какой то жоский баг | |||
- 7.2, (забыл об этом сказать, но) кривенько адаптирован под беседы. Выдавал баги, но работал. | |||
'''РЕБРЕНДИНГ (лето 2019)''' | |||
Бот переименован в Catpy и имеет новый счёт версий, намного более правильный. | |||
0.1, 0.2 - более адаптирован в беседах | |||
0.3 - имеет какие то текстовые функции, превращение в винительный падеж | |||
0.4 - новый синтаксис команд и новые функции (дебильные) | |||
0.5 - что то такое, я не помню что | |||
0.6 - появление великого менеджера аккаунтов и бесед. суперстабильная вещь, безотказная как Автомат Калашникова | |||
0.7 - ещё одна куча хуйни я не помню какой ПИЗДЕЦ | |||
0.8 - сильно улучшен менеджер из 0.8. Имеет очень много сходств с Виндуз Висла (крутая но нестабильная) | |||
0.9 - куча функций для обработки фотографий. Именно там завезли команду /кончил. | |||
'''РЕФАКТОРИНГ (2020, новый год-лiто)''' | |||
Аффффтор понял что он слишком много наговнокодил и решил всё разгрести. Все что было ранее = стало называться Catpy Legacy, а что после - Catpy NLT. | |||
0.9_30 - бота по новой заставили отвечать, теперь команды разбиваются по модулям, новый синтаксис, прочее разбитие по файлам и новые технологии. | |||
... тут могли быть билды с прочим пиздежом блаблабла что было добавлено бля бля бля. | |||
0.9_42/50 - все команды из Legacy были успешно портированы, впереди остались только новые планы. | |||
----Тут припёрся Иван Загайнов и начал новую революцию, спасибо великому творцу | |||
----'''''О хостингах:''''' | |||
''С самого начала котопай был нестабилен как залупа, и хостился на ноуте админа.'' | |||
''Потом мы открыли для себя pythonanywhere, и там бот падал, но мы починили. Он стабильно падал каждые 3 дня.'' | |||
''В таком режиме мы хостились очень долго, (и сейчас хостимся, т.к бот начал активно разрабатываться)'' | |||
''Потом появился в нашей (недавно) [[Участник:Anton2319]]. Он нам дал место на своём [https://nighthost.ru хостинге], а потом и виртуалку'' | |||
''После же котопай съебал на таймвеб, где стабильно хостится и доныне.'' | |||
'''БУДУЩЕЕ (это скорее затянется на 2021)''' | |||
1.0 - пиздец как много улучшений. |
Текущая версия от 07:41, 10 ноября 2022
Перед созданием команд убедитесь, что они соответствуют требованиям 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 | текст | нет | Отправка сообщения в текущий диалог |
mta | текст | нет | Отправка сообщения всем администраторам котопая |
picture | URL, текст | нет | Отправка изображения по URL |
picturedata | /path/to/image, текст | нет | Отправка изображения по пути к файлу |
resize_image | /путь/к/входному/изображению, /путь/к/выхлопу, (ширина, высота) | нет | Изменение размера изображения |
CatLib
CatENV - это не всё. Сборка Catpy может также предложить вам набор библиотек CatLib:
Название метода | Входные данные | Выходные данные | Принадлежит библиотеке |
---|---|---|---|
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, сервисы)
Переменная | Примерное значение | Принадлежность к | Описание |
---|---|---|---|
osname | GNU/Linux | Загрузчик | Семейство ОС на сервере |
admins | 123,123,123,123,123 | Конфигурация системы | Список ID вконтакте админов бота |
botname | CatPy Stable | Конфигурация системы | Имя бота |
version | 0.9_53 | Конфигурация системы | Версия бота |
abms_name | CatABMS | Catware Advanced Bot Manipulation System | Конфигурация системы | Название управляющей системы |
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. Хочу, чтобы после выполнения моей команды, юзер что то написал и файл из той папки активировался ЧИСТО У ТОГО ЮЗЕРА. Окей.
Делаем ебало:
message("Привет! Что бы ты хотел пожелать админам?")
Инициируем выполнение цепочки:
setparam(user_id, "stage", "mychainfile")
В файле цепочки, пишем код после инпута юзера:
mta(f"Привет, админы. Пользователь {getmention(user_id)} желает всем вам {textic_2}!")
И также в файле цепочки даём сигнал, что выполнение цепочки требуется прекратить:
setparam(user_id, "stage", "default")
Пример кода команды (кстати)
Конфигурация команды пусть будет:
{
"author": "Catpy Programmist <catpyproger@mail.ru>",
"mode": "=",
"deps": "None",
"identificator": "ping",
"command_ru": "пинг",
"description": "Пинг бота",
"testing": false,
"hide": true,
"restricted": false,
"disabled": false
}
И код команды:
message("Понг!")
Введение в CFAT или файлы catABMS
Просто приведём таблицу:
Папка | Что хранится (описание) |
---|---|
chains | Файлы цепочек |
chats | БД чатов |
commands | Файлы с командами |
configs | Файлы с конфигурацией бота |
corerc | Файлы CoreRC |
exf | Файлы CatShell |
experimental | Тестируемые, предрелизные команды |
lib | Файлы с библиотеками |
services | Файлы Catware Autostart |
users | Данные пользователей (база данных) |
История котопая
В этой статье будет описана история становления котопая как бота и будущего захватителя рынка ботов. Она без дат, но некоторые всё же будут.
Большой Взрыв (2018)
На КатВиерда внезапно хлынуло вдохновение создать какую то тестируемую хуйню чисто для фана, и способ реализации пал на СпермаБот. В отличии от прошлых попыток создать электроведро, эта попытка увенчалась успехом и привлекла некоторых людей, которые сейчас, являются элитой среди разработчиков.
Из функций там был список команд, кликер, и триггеры по типу "амуде":
Пользователь: амуде
Бот: АМУДЕ НЕ ПАРАША
ПОБЕДА БУДЕТ НАША
АМУДЕ ПОТАНЦЕВАЛ
ВСЕХ ВЫЕБЕТ В АНАЛ
Вообщем, как и некоторые поймут - бот был вдохновлён также и Izzy Laif'ом.
Тогда он даже и не назывался "котопаем" -- он назывался "izzytop".
Потом появились вознаграждения за клики, множители счёта и прочие ебанские бонусы всего лишь для цифр, а также имущество, дающее некоторые техвозможности
В это время, к проекту присоединились Никита Полищук[страдает хуйнёй], Никита Худяков, Макс Мерзляков, и Василий Васильконов[страдает хуйнёй].
Большая {Проблема,Жопа}
Закончился пробный период смартбота:
- отвалилось usage в беседах
- отвалились некоторые функции
- сам бот умер.
Все пришлось делать заново.
РЕВОЛЮЦИЯ (2018-20 января 2019)
Бот больше не зависит от тарифов смартбота, а только от рук разработчиков (катвиерда, гены). Все фичи бота были перечёркнуты по причине катвиерд (а на то время izzytopd) был неразумной обьезьяной, неспособной написать helloworld в вк_апи.
Кое как он осилил с Васей Васильконовым запуск этого ведёрка (заставляние его отвечать) и пошло поехало.
История
- 1.0, бот умеет показывать список команд
- 1.1, бот умеет считать 1, 2, 3, 4...
- 1.7, бот научился слать картинки по URL.
- 2.2.6, теперь появились функции пизденья логотипа гугла (вроде, не помню)
- 2.3.7, добавлена конфигурация бота (техническое)
- 3.0, бот умеет искать по википедии
- 4.0, бот умеет переводить раскладку
- 5.5, добавлен яндекс переводчик
- 6.0, ???
- 7.0, добавлена куча хуйни ебаной и говна сраного.
- 7.1, пофикшен какой то жоский баг
- 7.2, (забыл об этом сказать, но) кривенько адаптирован под беседы. Выдавал баги, но работал.
РЕБРЕНДИНГ (лето 2019)
Бот переименован в Catpy и имеет новый счёт версий, намного более правильный.
0.1, 0.2 - более адаптирован в беседах
0.3 - имеет какие то текстовые функции, превращение в винительный падеж
0.4 - новый синтаксис команд и новые функции (дебильные)
0.5 - что то такое, я не помню что
0.6 - появление великого менеджера аккаунтов и бесед. суперстабильная вещь, безотказная как Автомат Калашникова
0.7 - ещё одна куча хуйни я не помню какой ПИЗДЕЦ
0.8 - сильно улучшен менеджер из 0.8. Имеет очень много сходств с Виндуз Висла (крутая но нестабильная)
0.9 - куча функций для обработки фотографий. Именно там завезли команду /кончил.
РЕФАКТОРИНГ (2020, новый год-лiто)
Аффффтор понял что он слишком много наговнокодил и решил всё разгрести. Все что было ранее = стало называться Catpy Legacy, а что после - Catpy NLT.
0.9_30 - бота по новой заставили отвечать, теперь команды разбиваются по модулям, новый синтаксис, прочее разбитие по файлам и новые технологии.
... тут могли быть билды с прочим пиздежом блаблабла что было добавлено бля бля бля.
0.9_42/50 - все команды из Legacy были успешно портированы, впереди остались только новые планы.
Тут припёрся Иван Загайнов и начал новую революцию, спасибо великому творцу
О хостингах:
С самого начала котопай был нестабилен как залупа, и хостился на ноуте админа.
Потом мы открыли для себя pythonanywhere, и там бот падал, но мы починили. Он стабильно падал каждые 3 дня.
В таком режиме мы хостились очень долго, (и сейчас хостимся, т.к бот начал активно разрабатываться)
Потом появился в нашей (недавно) Участник:Anton2319. Он нам дал место на своём хостинге, а потом и виртуалку
После же котопай съебал на таймвеб, где стабильно хостится и доныне.
БУДУЩЕЕ (это скорее затянется на 2021)
1.0 - пиздец как много улучшений.