Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 13.12.2021
Сообщений: 8
Discord Bot

Сделать бота для дискорда и подключить к нему бд

27.10.2023, 18:10. Показов 656. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста! Нам нужно по заданию сделать бота для дискорда и подключить к нему бд.

вот код:

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
import discord
import sqlite3
from discord import app_commands
from discord.ui import Button, View
 
 
class aclient(discord.Client):
    def __init__(self):
        super().__init__(intents=discord.Intents.default())
        self.synced = False
 
    async def on_ready(self):
        await self.wait_until_ready()
        if not self.synced:
            await tree.sync(guild=discord.Object(id=1095707448813306006))
            self.synced = True
        print(f"We have logged in as {self.user}.")
 
    async def on_voice_state_update(self, member, before, after):
        if after.channel:  # Пользователь присоединился к голосовому каналу
            save_points(member.id, 1)  # Увеличить баллы пользователя на 1
 
    async def on_message(self, message):
        if not message.author.bot:  # Игнорировать сообщения от ботов
            save_points(message.author.id, 1)  # Увеличить баллы пользователя на 1
 
 
def save_points(user_id: int, points: int):
    connection = sqlite3.connect('my_database.db')
    cursor = connection.cursor()
    cursor.execute("CREATE TABLE IF NOT EXISTS points (user_id INTEGER PRIMARY KEY, points INTEGER)")
    cursor.execute("INSERT INTO points (user_id, points) VALUES (?, ?) ON CONFLICT(user_id) DO UPDATE SET points = points + excluded.points", (user_id, points))
    connection.commit()
    cursor.close()
    connection.close()
 
 
class SukaButton(discord.ui.Button):
    def __init__(self, interaction, user_id):
        super().__init__(style=discord.ButtonStyle.primary, label="Suka")
        self.interaction = interaction
        self.user_id = user_id
 
    async def callback(self, interaction: discord.Interaction):
        user_id = self.user_id
 
        connection = sqlite3.connect('my_database.db')
        cursor = connection.cursor()
        cursor.execute("SELECT points FROM points WHERE user_id = ?", (user_id,))
        result = cursor.fetchone()
        if result is not None:
            points = result[0]
            await interaction.user.send(f"У вас {points} баллов!")
        else:
            await interaction.user.send("У вас нет баллов.")
 
        cursor.close()
        connection.close()
 
 
client = aclient()
tree = app_commands.CommandTree(client)
 
 
@tree.command(name="test", description="testing", guild=discord.Object(id=1095707448813306006))
async def self(interaction: discord.Interaction, name: str):
    await interaction.response.send_message(f"Hello {name}! I was made with Discord.py!")
 
 
@tree.command(name="suka", description="Показывает количество баллов", guild=discord.Object(id=1095707448813306006))
async def suka(interaction: discord.Interaction):
    user_id = interaction.user.id
 
    view = discord.ui.View()
    view.add_item(SukaButton(interaction, user_id))
 
    await interaction.response.send_message("Нажмите кнопку 'Suka', чтобы узнать количество баллов.", view=view)
 
client.run('')
Вот ошибки:

[2023-10-27 22:00:05] [INFO ] discord.client: logging in using static token
[2023-10-27 22:00:06] [INFO ] discord.gateway: Shard ID None has connected to Gateway (Session ID: a47c60a36b207673dffad6c0fbea4c7e).
[2023-10-27 22:00:08] [ERROR ] discord.client: Ignoring exception in on_ready
Traceback (most recent call last):
File "C:\Users\volod\PycharmProjects\pythonPr oject1\venv\lib\site-packages\discord\client.py", line 441, in _run_event
await coro(*args, **kwargs)
File "C:\Users\volod\PycharmProjects\pythonPr oject1\main.py", line 15, in on_ready
await tree.sync(guild=discord.Object(id=109570 7448813306006))
File "C:\Users\volod\PycharmProjects\pythonPr oject1\venv\lib\site-packages\discord\app_commands\tree.py", line 1069, in sync
data = await self._http.bulk_upsert_guild_commands(se lf.client.application_id, guild.id, payload=payload)
File "C:\Users\volod\PycharmProjects\pythonPr oject1\venv\lib\site-packages\discord\http.py", line 739, in request
raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access


Если ещё можно подскажите как добавить функцию по типу "магазина"
Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2023, 18:10
Ответы с готовыми решениями:

Пишу простого бота для дискорда, но при использовании команды выдаёт ошибку
Пишу простого бота, для того, чтобы просто проверить как он отвечает на команды. При запуске все хорошо import discord from discord.ext...

Как сделать сервер, и к нему подключить мобильное приложение?
Всем привет, мне нужно сделать сервер и к нему подключить мобильное приложение , при помощи каких компонентов можно это сделать и как будет...

Нужно сделать меню и подключить к нему 4 программы с процедурами
Есть 4 программы(если нужно скину), нужно написать меню, в котором с помощью процедур можно будет вызвать любую из этих 4 программ. Скажем...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2023, 18:10
Помогаю со студенческими работами здесь

есть проект на С#(программа для помощи создания школьного расписания), к нему нужно подключить БД
Здравствуйте. У меня такая проблема: есть проект на С#(программа для помощи создания школьного расписания), к нему нужно подключить БД. ...

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

Бот для дискорда
Здраствуйте. Задача сделать бота для дискорда. Подскажите хотя бы библиотеку.

Бот для дискорда на питоне
Добрый день и всех с наступающим! Немного начала разбираться с написание бота для дискорда, написал и запустил. Этого было мало и я...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru