Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/55: Рейтинг темы: голосов - 55, средняя оценка - 4.73
9 / 9 / 1
Регистрация: 30.10.2013
Сообщений: 87

Установка бота для Discord на Python

18.09.2017, 16:51. Показов 11736. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем Доброго времени суток!
Прошу вашей помощи по следующему вопросу:
Нашел в сети бота для сервера Discord. Бот написан естественно на языке Python (Сам Бот: https://github.com/Halreis/Discord-SourceQuery)
Долго думал как его запустить - потом понял. Но когда запускаю его через Python 3.5 Idle то выдает что нет модуля (discord.py). Модуль нашел (https://github.com/Rapptz/discord.py) но теперь не понимаю как это все собрать вместе и запустить.

ЗЫ
С питоном никогда не работал, для меня этот язык совершенно новый.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.09.2017, 16:51
Ответы с готовыми решениями:

Создание Discord бота на Python
Нужно создать бота, который бы автоматически выдавал роли, если находил id человека, который использовал команду, в документе (экселевском)...

Создание бота для Discord
Доброго времени суток, уважаемые! Помогите написать функцию для бота :-| @client.event async def on_member_join(member): ...

Включить Discord.Intents для Discord бота
Доброго времени суток, уважаемые Форумчане. Возникла следующая трудность не могу никак понять как включить ...

8
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
18.09.2017, 19:32
Вам нужно установить все зависимости для вашего пакета. Для этого есть встроенный (с питона версии 3) менеджер пакетов pip. Т.е. вам на вашей машине надо сделать pip install discord.py и pip install tinydb . Это все написано в Actually installing & running в репо, по ссылке, которую вы дали.
1
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
18.09.2017, 19:36
Цитата Сообщение от santaatnas Посмотреть сообщение
Для этого есть встроенный (с питона версии 3)
В двойке pip тоже есть из коробки.
0
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
18.09.2017, 19:53
Да, ошибся, с 2.7.9 уже поставляется в комплекте. Python 2 >=2.7.9 or Python 3 >=3.4
0
9 / 9 / 1
Регистрация: 30.10.2013
Сообщений: 87
18.09.2017, 22:03  [ТС]
Цитата Сообщение от santaatnas Посмотреть сообщение
Вам нужно установить все зависимости для вашего пакета. Для этого есть встроенный (с питона версии 3) менеджер пакетов pip. Т.е. вам на вашей машине надо сделать pip install discord.py и pip install tinydb . Это все написано в Actually installing & running в репо, по ссылке, которую вы дали.
Ну Питон для меня совершенно новый язык программирования, и я толком ничего не "догоняю" куда и что вписывать.
Кликните здесь для просмотра всего текста
https://www.cyberforum.ru/attachment.php?attachmentid=866091&stc=1 &d=1505761512
Миниатюры
Установка бота для Discord на Python  
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
19.09.2017, 06:39
FaNaTiK2495, в cmd это писать надо, а не в интерпретаторе.
0
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
19.09.2017, 15:57
Win+r , cmd, enter, откроется командная строка, в ней и вводите.
0
9 / 9 / 1
Регистрация: 30.10.2013
Сообщений: 87
19.09.2017, 20:58  [ТС]
Вроде бы смогу запустить, только вот скажите, кто может дописать/переписать код (договоримся). Ибо текущая версия немного не та что нужно.
0
9 / 9 / 1
Регистрация: 30.10.2013
Сообщений: 87
23.09.2017, 01:35  [ТС]
подскажите пожалуйста как подправить один скрипт. Объясните мне вот что:
Как в строке 75 изменить переменные 'server_addr' и 'server_port' на переменную 'Host name'. Вот сам скрипт:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# -*- coding: utf-8 -*-
import discord
from discord.ext import commands
import asyncio
from tinydb import TinyDB, Query
from classes.SourceQuery import SourceQuery
from modules.WorkerFunctions import *
Search = Query()
bot = commands.Bot(command_prefix='/')
@bot.event
async def on_ready():
    print('Logged in as {0}\n'.format(bot.user.name))
@bot.event
async def on_command_error(error, ctx):
    await bot.send_message(ctx.message.channel, ":octagonal_sign: An error occurred:\n```{0}```".format(error))
@bot.command(pass_context=True, aliases=['q'], description="Queries a server and prints some if it’s info")
async def query(context, addr: str, port=27015):
    if is_valid_ip(addr):
        oServer = SourceQuery(addr=addr, port=port, timeout=5.0); lServer = oServer.getInfo()
        if lServer is not False:
            try:
                lServer['Hostname'] = lServer['Hostname'].encode('iso-8859-1').decode('utf-8')
            except:
                pass;
            em = discord.Embed(title=":lock: "+lServer['Hostname'] if bool(lServer['Password']) else ":unlock: "+lServer['Hostname'], description='Map: {0}'.format(lServer['Map']), colour=0x10EE00)
            em.set_author(name='Query result ({0}):'.format(lServer['_engine_']), icon_url=bot.user.avatar_url)
            em.add_field(name="Players", value="{0}/{1}".format(lServer['Players'], lServer['MaxPlayers']), inline=True)
            em.add_field(name="VAC", value=("Enabled" if bool(lServer['Secure']) else "Disabled"), inline=True)
            em.add_field(name="Running on", value=lServer['OS'], inline=True)
            em.add_field(name="Mod", value=lServer['GameDesc'], inline=False)
            em.add_field(name="Type", value=lServer['Dedicated'], inline=True)
            em.add_field(name="Version", value=lServer['Version'], inline=True)
            await bot.send_message(context.message.channel, embed=em)
        else:
            await bot.say(":warning: The server doesn’t seem to be running from here.")
    else:
        await bot.say(":warning: You’ve provided malformed IP address.")
@bot.command(pass_context=True, aliases=['a'], ignore_extra=True, description="Adds a server to your watchlist")
async def add(context, addr: str, port=27015):
    if is_valid_ip(addr):
        db = TinyDB('./database.json')
        db.insert({
            'userid': context.message.author.id,
            'server_addr': addr,
            'server_port': port,
        })
        db.close()
        await bot.say(":white_check_mark: Server added!")
    else:
        await bot.say(":warning: You’ve provided malformed IP address.")
@bot.command(pass_context=True, aliases=['r'], ignore_extra=True, description="Removes a server from your watchlist")
async def remove(context, addr: str, port=27015):
    if is_valid_ip(addr):
        db = TinyDB('./database.json')
        if db.search((Search.userid==context.message.author.id) & (Search.server_addr==addr) & (Search.server_port==port)) is not False:
            db.remove((Search.userid==context.message.author.id) & (Search.server_addr==addr) & (Search.server_port==port))
            await bot.say(":white_check_mark: Server removed!")
        else:
            await bot.say(":negative_squared_cross_mark: There are no records listing this server.")
        db.close()
    else:
        await bot.say(":warning: You’ve provided malformed IP address.")
@bot.command(pass_context=True, aliases=['c'], ignore_extra=True, description="Queries all servers from your watchlist")
async def check(context):
    db = TinyDB('./database.json'); lServers = db.search(Search.userid==context.message.author.id); db.close()
    em = discord.Embed(title="Server query results", description="Total servers: {0}".format(len(lServers)), colour=0x5677E8)
    for i in range(len(lServers)):
        full_addr = lServers[i]['server_addr']+":"+str(lServers[i]['server_port'])
        em.add_field(name=full_addr, value=":white_check_mark: Responded" if is_alive(lServers[i]['server_addr'], lServers[i]['server_port']) else ":warning: Didn’t respond", inline=False)
    await bot.send_message(context.message.channel, embed=em)
async def sendMessage(userid, listitem):
    user = discord.User(id=userid)
    await bot.send_message(user, "Some servers did not respond:\n```"+"\n".join(listitem)+"```")
async def crontab():
    await bot.wait_until_ready()
    while not bot.is_closed:
        db = TinyDB('./database.json'); lServers = db.all(); db.close()
        servers = ""; mList = {};
        for i in range(len(lServers)):
            if (not is_alive(lServers[i]['server_addr'], lServers[i]['server_port'])) and (not is_alive(lServers[i]['server_addr'], lServers[i]['server_port'], 15)):
                mList.setdefault(lServers[i]['userid'],[]).extend([" * "+lServers[i]["server_addr"]+":"+str(lServers[i]["server_port"])])
            else:
                continue;
        for key, value in mList.items():
            await sendMessage(key, value)
        await asyncio.sleep(120)
bot.loop.create_task(crontab())
bot.run('paste_your_token_here')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.09.2017, 01:35
Помогаю со студенческими работами здесь

Сделать команду !clear для Discord бота
Всем привет, я создаю бота для дискорда и мне нехватает комманды !clear. Помогите мне её сделать. Я сделал вот так, но не работает case...

Не могу найти код для discord бота
У меня есть свой бот с discord js v11 мне надо чтобы когда я вел комманду ?купить он написал сообщение в ЛС!!!! проблема в этом и...

Не запускается скрипт команды для бота Discord
В общем. Я запускаю сам скрипт команды, в консоли вроде он начинается включаться, но потом сразу "погибает", т.е. ничего не пишет...

Редактирования изображения node.js для бота Discord
Вобщем, у меня есть бот на Discord, мне нужно что бы при заходе в группу этот бот кидал картинку(с зарание подготовленым фоном) с ником...

Локализация Discord бота
Добрый день, заранее прошу прощения: пока не искал ничего, но буду признателен за помощь Пишу discor бота на библиотеке discordJS. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru