Python

Разработка плагинов с использованием Python.

Перед началом разработки рекомендую ознакомиться с информацией об system-python из Файла с флагами.

Следуйте инструкции

1. Создайте папку с названием в виде имени будущего плагина.

Далее можете продолжить следовать инструкции или скачать готовый пример и на его основе создать свой плагин. Чтобы установить данный плагин, не распаковывая, перетащите файл на список установленных плагинов. Для просмотра и редактирования рекомендую воспользоваться архиватором 7-Zip со сжатием Нормальное.

Пример готового плагина

Установленный плагин SimplePy3 активируется командой /sp3 и выводит список установленных библиотек в виртуальном окружении (venv). Для теста, прописана установка Flask и requests. Во время установки плагина будут появляться окна консоли, ожидайте пока процесс завершится и не будет написано Press the Enter key to continue... Ниже представлен примерный вывод после работы команды /sp3

2. В данной папке (далее в гайде просто main_folder)

{main_folder} = main_folder. Все переменные в гайде обозначаются в фигурных скобках.

3. Создайте следующую структуру файлов:

{main_folder}\main.manifest
{main_folder}\main.py

Виртуальное окружение (venv) будет создано и использоваться, только, если имеется файл requirements.txt с пакетами-зависимостями. Иначе – будет просто использован портативный Python. Можно использовать флаг system-python и тогда будет использоваться установленный вами Python для запуска плагина или для создания venv.

Портативный Python скачивается, только при установке хотя бы одного плагина. Python совершенно не является обязательным для Shark Remote.

4. В файл main.manifest (текстовый файл манифеста плагина с надстройками) вставьте следующий текст:

main.manifest
chat_action_type = 1
message_type = 1
arguments_count = 0

Описание

chat_action_type - тип действия, которое будет написано в чате во время работы файла

Значения

  • 0 - ничего не писать

  • 1 - "Бот набирает сообщение..".

message_type - тип возвращаемого сообщения в Telegram бота

Значения

  • 0 - Текстовое сообщение

  • 1 - Текстовое сообщение с поддержкой HTML форматирования

  • 2 - Ничего не возвращать

arguments_count - количество обязательных принимаемых аргументов плагина от пользователя

Значения

  • От 0 до 4

5. Основной код можно написать в файле main.py в любом текстовом редакторе или редакторе кода. Рекомендуется Visual Studio Code.

6. Вставьте в файл main.py следующий код (базовый пример):

main.py
#app {plugin_name}, Version="{plugin_version}", Author={author}, Command={call_command}

import sys

def main():
    args = sys.argv[1:]
    print(f"SimplePlugin: {len(args)} args: {', '.join(args) if args else 'None'}")
    
if __name__ == "__main__":
    main()

Для вывода текста в Telegram бота используйте команду print в коде плагина.

7. Заполните данные (всё без пробелов):

  • {plugin_name} - название плагина, такое же как для {main_folder}

  • {plugin_version} - версия в формате x.x.x.x, где x - число (например: 1.0.0.4)

  • {author} - автор плагина

  • {call_command} - команда для вызова плагина (обязательно начинается с /), например: /hello

Должно получиться что-то похожее: #app HelloWorld, Version="1.0.0.0", Author=developer, Command=/hello

8. Создайте zip архив с папкой {main_folder} (рекомендую воспользоваться архиватором 7-Zip со сжатием Нормальное)

9. Переименуйте файл в {main_folder} и измените расширение архива на srp

10. Установите файл через Shark Remote.

11. Тестируйте!

Вес установочного файла плагина (созданного архива) должен не превышать 10 мегабайт, иначе установить будет нельзя. Однако, если вы точно уверены в своём плагине, то можно использовать флаг big-bang=1 (подробнее)

Last updated