Введение

Это вторая статья из серии статей про создание бота на основе discord.py. В этой части рассмотрим форматирование в discord, конфиги и немного про git, а к коду перейдём в следующей.

В данной части

  1. Форматирование

  2. Конфиги

  3. Git

Форматирование

Начнём мы с темы, не на прямую связанную с ботами, но при разработке она будет очень полезной.

Для начала форматирование текста, всего существует 4 стиля:

Форматирование текста
Форматирование текста

Так же, текст или изображения можно отправить как спойлер, это значит, что его содержание будет скрыто до нажатия на него. Для того чтобы текст стал спойлером, нужно поставить || слева и справа от текста.

Спойлеры
Спойлеры
  • Спойлер 1 - Как задать спойлер

  • Спойлер 2 - Открытый спойлер

  • Спойлер 3 - Ещё не открытый спойлер

Следующее - это цитаты. Они немного похоже на embed(могут отправлять только боты).

Есть однострочные и многострочные цитаты. Для их использования нужно поставить знак > или >>>. (Сначала что вводим, затем результат)

Цитаты
Цитаты

Обратите внимание, что между > и текстом обязательно должен быть пробел!

Текст в блоках, если вы используете дискорд для коммуникации команды разработчиков, то наверняка знаете о том, что можно создавать блоки текста. Так же, как и цитаты, они могут быть однострочными и многострочными.

Блоки кода
Блоки кода

Но у многострочного блока кода есть одна очень полезная фишка, он может подсвечивать синтаксис языка. Для этого после "открытия" блока, без пробела, написать язык и перенести строку(Если поставить пробел или не перенести строку, это будет обычный текст).

Подсветка синтаксиса
Подсветка синтаксиса

Иногда это можно использовать для "раскраски" какой-либо информации. Например, если использовать в качестве языка diff, то можно красиво показывать список изменений.

Полный список поддерживаемых языков можно посмотреть тут.

Иногда возникает потребность использовать, например * как символ, а не как средство форматирования, и тут к нам приходит старое доброе экранирование. Оно работает, как и во всех языках программирования путём добавления "\"(Обратного слэша) перед зарезервированным символом.

Например, вот так. (В блоке, форматирование текста не работает)

Экранирование
Экранирование

А теперь переходим к тому, о чём многие не знают.

Ввод (текст)

Результат

<https://www.example>

Выводится ссылка без прикреплённого вложения.

<@80351110224678912>

Упоминание пользователя. Цифры(18) - ID пользователя.

<#103735883630395392>

Упоминание канала. Цифры(18) - ID канала.

<@&165511591545143296>

Упоминание роли. Цифры(18) - ID роли.

<:mmLol:216154654256398347>

Вставка статичного эмодзи (имя и ID эмодзи).

<a:mmLol:216154654256398347>

Вставка подвижного эмодзи (имя и ID эмодзи).

<t:1618953630>

Временная отметка. Цифры - количество секунд с 1 янв. (четверг) 1970 года, 3:00.

<t:1618953630:STYLE>

Временная отметка, но со стилем. STYLE - стиль отображения, является символом (список примеров в таблице ниже), по умолчанию f.

И сами стили для последней строчки.

STYLE

Результат

Пример синтаксиса

t

0:20

<t:1618953630:t>

T

0:20:30

<t:1618953630:T>

d

21.04.2021

<t:1618953630:d>

D

21 апреля 2021 г.

<t:1618953630:D>

f *

21 апреля 2021 г., 0:20

<t:1618953630:f>

F

среда, 21 апреля 2021 г., 0:20

<t:1618953630:F>

R

7 месяцев назад

<t:1618953630:R>

Таблицы взяты отсюда.

Конфиги

Я думаю не стоит объяснять почему конфиги - это удобно. Но если вкратце, то это даёт возможность "скомпоновать" все константы в одном месте, особенно, если они используются многократно. И когда нам потребуется изменить какую-либо постоянную, нам не придётся лазить по всему проекту, в поиск куска кода, который отвечает за нужную нам задачу.

Существует множество возможных реализаций конфига. Можно использовать библиотеки, класс, поля которого будут являться нашими константами. Это полностью дело вкуса, в своих проектах я использую самый простой подход - файл с константами.

Пример "боевого" конфига
Пример "боевого" конфига

Git

Важно сказать про контроль версий. Если у вас личный проект, который будет храниться в приватном репозитории, то наличие в нём токена, не так страшно. (но всё равно не желательно)

Если же вы работаете в команде или проект публичный, вы можете использовать этот способ.

  1. Для начала конечно же нужно удалить конфиг файл из git-а. (в примере config.py)

  2. Скопируйте файл и добавьте в название копии .example (config.py.example)

  3. Удалите все "приватные" данные, такие как токены, ID приложения и тд.

  4. Если файлы не добавляются автоматически, добавьте новый файл в git.

Другие разработчики, при получении новой версии копируют константы из примера и указывают свои тестовые токены. Есть и другие способы, но именно этим пользуемся мы с командой.

Git Branch

И немного про организацию веток системы контроля версий. Мы с моей командой используем модель ветвления feature branches, её суть заключается в том, что каждая новая функция должна разрабатываться в отдельной ветке. Ветки функций создаются не на основе master, a на основе develop(dev). Когда работа над новой функцией завершена, она вливается назад в develop(dev). Новый код не должен отправляться напрямую в master.

Модель ветвления
Модель ветвления

Это ещё не всё

Если есть ещё темы, которые можно было бы можно рассказать в этой статье, пишите в комментарии, с радостью распишу.

Следующие части

Комментарии (0)