Как сделать таймер в discord py

Добавил пользователь Валентин П.
Обновлено: 05.10.2024

Простой бот-таймер, который поможет вовремя поднимать сервер в топ, напоминая Up-ать его на SD.C и bump-ать на прочих мониторингах.

Таймер заводится автоматически после успешного Up'а/bump'а, поэтому бот работает "прямо из коробки".

Также присутствует команда btm!remaining для удобного отслеживания оставшегося времени для каждого мониторинг-бота на сервере.

По умолчанию бот работает на английском языке, поэтому сменить его можно командой btm!setlanguage ru.

Для остальных команд введи команду btm!help

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

Отличный бот, который напоминает, когда нужно поднимать сервер в топ, но не хватает напоминаний о p!bump

В данной статье мы создадим Discord бот, используя при этом только Python.

Краткая информация о Discord для тех, кто еще о нем не знает

Discord — это, фактически, универсальная платформа голосового и текстового общения для геймеров.

Игроки, стримеры, студенты и разработчики используют Discord, чтобы обсуждать игры, отвечать на вопросы, общаться в чате во время игры в хорошем качестве, в том числе с членами своей команды. В нем даже есть игровой магазин с критическими отзывами и возможностью подписки. По сути, это центр игровых сообществ.

Хотя есть много вещей, которые вы можете создать с помощью API Discord, в этом руководстве мы остановимся на создании бота на Python.

Необходимые приготовления

Чтобы создать Discord бот, вам понадобится:

  1. Аккаунт в Discord и собственный сервер
  2. Python
  3. Устойчивое интернет-соединение во время всего процесса.

Что такое боты?

Для чего нужны чат-боты

В любой области деятельности всегда есть вопросы, которые пользователи задают чаще всего. И на эти вопросы каждый раз надо давать одни и те же ответы. Лучшее решение в таком случае — чат-бот.

Ускорение рабочих процессов

Чат-боты, в отличии от людей, никогда не устают. Все люди могут работать только ограниченный период времени, в то время как у ботов таких ограничений нет. Использование чат-ботов в бизнесе хорошо дополняет работу людей, повышает производительность труда и сокращает человеческий труд.

Экономия денег и времени

При правильном использовании дружелюбного чат-бота привлечение клиентов происходит с минимальными затратами и максимальной эффективностью.

Лаборатория Django-разработки

За 3 месяца отработай навыки Django-разработки до профессионального уровня на серьезном проекте под руководством наставника.

Пишем код для чат-бота

Сперва убедитесь, что на вашем компьютере установлен Python. Если его еще нет, то загрузите его с официального сайта.

Среду программирования можно использовать любую, какая вам больше нравится. Например, PyCharm, VS Code или Sublime.

Теперь выберите опцию New application (новое приложение) в правом верхнем углу страницы и дайте вашему новому приложению имя. Как видите, можно даже добавить изображение к аватару вашего бота. Мы можем сделать это позже. Сейчас пойдем в раздел Bot (на странице слева) и выберем опцию Add bot (добавить бота).

Сделав это, перейдите в категорию OAuth2 и в секции scope выберите опцию bot . Далее идите в секцию Permissions и настройте разрешения по вашему выбору.

Затем откройте ссылку под секцией scope в новом окне и выберите сервер, на котором вы желаете видеть ваш бот.

После этого установим библиотеку discord .

Для этого введем следующую команду:

Вот официальный сайт, где есть вся необходимая информация по данной библиотеке. Здесь же мы только заметим, что эта библиотека поддерживает API acync/await .

После установки этой библиотеки откройте ваш редактор кода и создайте файл bot.py .

Для начала импортируем необходимые библиотеки:

Создадим переменную Client :

Также имейте ввиду, что если вы хотите вызывать своего бота, ваша вызывающая команда должна иметь префикс, сохраненный в атрибуте command_prefix .

Например, в нашем случае, чтобы вызвать бота, нужно написать /hello , а не просто hello .

Напишем следующий код для определения статуса бота:

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

Эта функция задает условие, при котором, когда пользователь набирает /hello , бот отвечает hi .

Для запуска бота нам понадобится токен. Он находится в разделе Bot на сайте Discord. Мы заходили туда при создании бота.

Замените слово Token на ваш код. Сам токен находится рядом с аватором бота. Если вдруг его там нет, нажмите на надпись Click to Reveal Token . Это должно сработать.

Теперь настало время запустить нашего бота!

Откройте CMD и наберите следующую команду:

Если так не выходит, то наберите вот это:

Теперь перейдем на наш сервер и введем тестовый запрос, который в нашем случае был /hello . Мы увидим, что наш бот отвечает нам Hi .

Точно таким же образом пишем бот для приветствия новых участников:

Возможные проблемы при создании бота

Все может быть не так просто, как это кажется на первый взгляд. Вы обязательно должны помнить о проблемах, с которыми можете столкнуться при создании бота. Некоторые из них мы перечислили ниже:

Заключение

Мы рассмотрели, как создать Discord бот на Python. Разумеется, это был простейший бот. Но вы, конечно же, можете написать свой собственный код и добавить множество различных функций, например OCR.

Black_Yuzia

Зарабатываю на жизнь Мемами про Крузю.

nyood

Менеджер клоунов

@xyligan, Ну это естественно, когда вы работаете с перезаписью одного поля, ключа, в бд и при этом никак не обрабатываете ситуации с ошибкой.
К тому же, fetch , полагаю, асинхронная и никак это не обыгрываете. Хотя хрен его знает, ведь вы не говорите, что используете для хранения данных.

  1. Вы получаете, возможно каждый раз (и то вряд ли), текущую дату.
  2. Эта дата никак не обрабатывается (потому что)
  3. Происходит форматирование раннее записанной даты
  4. Вам выводит эту дату (время).

xyligan

Ты самый умный? Тогда будь любезен не вредничать🧐

Вся эта "сложная" математика нужна для того, чтобы перевести огромное число в миллисекундах в дни, часы, минуты и секунды.

@xyligan, Ну это естественно, когда вы работаете с перезаписью одного поля, ключа, в бд и при этом никак не обрабатываете ситуации с ошибкой.
К тому же, fetch , полагаю, асинхронная и никак это не обыгрываете. Хотя хрен его знает, ведь вы не говорите, что используете для хранения данных.

  1. Вы получаете, возможно каждый раз (и то вряд ли), текущую дату.
  2. Эта дата никак не обрабатывается (потому что)
  3. Происходит форматирование раннее записанной даты
  4. Вам выводит эту дату (время).

Для хранения данных использую локальную БД.
Название пакета npmJS: quick.db

1. Дату получаем как только человек зайдёт в голосовой канал и выйдет из него.
2. Даже незнаю как её обрабатывать
3. Форматируется дата, которая была записана ботом при выходе пользователя из голосового канала
4. Логично

Reiko1231

AlexTheRegent

xyligan

Ты самый умный? Тогда будь любезен не вредничать🧐

Как я понимаю, Вы представляете работу системы так: пользователь заходит в канал, в базу пишется значение даты. Пользователь выходит, и идёт подсчёт времени, которое он провёл в голосовом канале. Но мне нужно сделать так, чтобы бот считал время не за 1 раз, а за всё время. Собственно поэтому при заходе пользователя стоит условие, которое проверяет в базе запись на данного пользователя. Если она не найдена, она создаётся. При следующих заходах она меняться не будет, а вот выходах будет.


Termux, please

Всем привет, сего я покажу вам бота, который крашит сервера Discord. Он способен удалить все каналы и роли на сервере дискорд, переименовать его, забанить рандом участников и многое другое.


Установка

Настройки токена и т.д

Для начала нам нужно отредактировать файл modded.py, и в самом конце найти строку, в которую вставить свой токен:

Где взять токен?

Первым делом мы переходим по ссылке *КЛИК* логинимся и после этого жмём на кнопку New Application


Потом вводим имя бота и нажимаем на кнопку create. Дальше нас нужно оформить бота, чтобы не вызывать никаких подозрений.

Теперь, нажимаем на три полоски, и заходим в сам бот:



Нам необходимо выбрать пункт Administrator

После чего мы просто копируем токен, и вставляем в нашу утилиту.

Если вы всё сделали правильно, то будет вот это:


Потом переходим на ту же страницу, и переходим во вкладку oauth2


Далее мы выбираем пункт bot, и копируем ниже полученную ссылку


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


Выбираем сервер, проходим капчу и авторизовываемся.

Потом в чат сервера любой участник должен прописать команду

$delroles - удаление всех ролей что сможет бот

$upme - выдает роль с правами администратора тому кто ввел, нужно указать место роли, желательно выше обычной роли пользователей

Для примера, я взял команду $lol .Всё, сервера - нет.


Спасибо за ваше внимание, надеюсь вам понравилась данная утилита. Все предложения по поводу статей писать нашему боту, а я не прощаюсь с вами!

Читайте также: