У меня есть этот бот, работающий на малиновом VPS (друга). Он запускается правильно, и я могу отправить команду для визуализации зеленой кнопки. В течение 5 минут все идеально, но по какой-то причине оно само останавливается, когда я нажимаю зеленую кнопку, в Discord появляется надпись «Ошибка взаимодействия». Когда я отправляю команду еще раз, она показывает другое сообщение, и она работает (он сохраняет идентификатор пользователя в входе в dict). через 5 минут то же самое. То есть бот на самом деле не останавливается, но что-то работает не так.
Почему так происходит? проблема с кодом или vps?
import discord
from discord.ui import Button, View, Modal, TextInput
from discord.ext import commands
from discord import Interaction
import re
intents = discord.Intents.default()
intents.message_content = True
intents.members = True
bot = commands.Bot(command_prefix="!", intents=intents)
iscrizioni = {} # Sign in Dict
report_channel_id = 1234567891011
rules_channel_id = 1234567891011
@bot.command()
async def comando_iscrizioni(ctx):
button = Button(label="Iscriviti", style=discord.ButtonStyle.green)
async def button_callback(interaction: discord.Interaction):
user_id = interaction.user.id
if user_id in iscrizioni:
await interaction.response.send_message("Sei già registrato", ephemeral=True)
return
modal = IscrizioneModal()
await interaction.response.send_modal(modal)
button.callback = button_callback
view = View()
view.add_item(button)
await ctx.send(f""" test message """, view=view)
# Sign Up Modal
class IscrizioneModal(Modal):
def __init__(self):
super().__init__(title="Modulo di Iscrizione")
self.nickname = TextInput(label='Nickname', placeholder='Inserisci il tuo nickname')
self.platform = TextInput(label='Piattaforma di gioco', placeholder='PC, PS, Xbox')
self.assists = TextInput(label='Aiuti Utilizzati', placeholder='ABS, Traiettoria')
self.add_item(self.nickname)
self.add_item(self.platform)
self.add_item(self.assists)
async def on_submit(self, interaction: Interaction):
nickname = self.nickname.value
platform = self.platform.value
assists = self.assists.value
iscrizioni[interaction.user.id] = {
"nickname": nickname,
"platform": platform,
"assists": assists
}
button = Button(label="Next", style=discord.ButtonStyle.primary)
async def button_callback(button_interaction: Interaction):
modale_tempi = SecondModal()
await button_interaction.response.send_modal(modale_tempi)
button.callback = button_callback
view = View()
view.add_item(button)
await interaction.response.send_message("Dati salvati! Premi il pulsante NEXT per continuare", view=view, ephemeral=True)
# Second modal
class SecondModal(Modal):
def __init__(self):
super().__init__(title="Inserimento Tempi")
self.bahrain = TextInput(label='Bahrain', placeholder='Inserisci il tempo in modalità Time Trial')
self.spa = TextInput(label='Belgio', placeholder='Inserisci il tempo in modalità Time Trial')
self.silverstone = TextInput(label='Silverstone', placeholder='Inserisci il tempo in modalità Time Trial')
self.add_item(self.bahrain)
self.add_item(self.spa)
self.add_item(self.silverstone)
# Format Check Function
def is_valid_time_format(self, time_str):
# Regex per il formato minuti.secondi,millesimi
pattern = r'^\d+\.\d{2},\d{3}$'
return re.match(pattern, time_str) is not None
async def on_submit(self, interaction: Interaction):
Bahrain = self.bahrain.value
Belgio = self.spa.value
Silverstone = self.silverstone.value
# Correct Format Check
if not all(self.is_valid_time_format(time) for time in [Bahrain, Belgio, Silverstone]):
await interaction.response.send_message("Errore: I tempi devono essere inseriti nel formato 'minuti.secondi,millesimi (Es: 1.26,388)", ephemeral=True)
return
iscrizioni[interaction.user.id].update({
"Bahrain": Bahrain,
"Belgio": Belgio,
"Silverstone": Silverstone
})
await interaction.response.send_message("Iscrizione completata con successo!", ephemeral=True)
# Send report
report_channel = bot.get_channel(report_channel_id)
await report_channel.send(f"""Nuova iscrizione:
Nickname: {iscrizioni[interaction.user.id]['nickname']}
Piattaforma: {iscrizioni[interaction.user.id]['platform']}
Aiuti: {iscrizioni[interaction.user.id]['assists']}
Bahrain: {iscrizioni[interaction.user.id]['Bahrain']}
Belgio: {iscrizioni[interaction.user.id]['Belgio']}
Silverstone: {iscrizioni[interaction.user.id]['Silverstone']}""")
# Avvia il bot
bot.run("ABCDEFGHIKLMNOPQRSTUVXYZ1234567890")```
Подробнее здесь: https://stackoverflow.com/questions/793 ... op-running
Discord Bot в Python перестает работать ⇐ Python
Программы на Python
1737666366
Anonymous
У меня есть этот бот, работающий на малиновом VPS (друга). Он запускается правильно, и я могу отправить команду для визуализации зеленой кнопки. В течение 5 минут все идеально, но по какой-то причине оно само останавливается, когда я нажимаю зеленую кнопку, в Discord появляется надпись «Ошибка взаимодействия». Когда я отправляю команду еще раз, она показывает другое сообщение, и она работает (он сохраняет идентификатор пользователя в входе в dict). через 5 минут то же самое. То есть бот на самом деле не останавливается, но что-то работает не так.
Почему так происходит? проблема с кодом или vps?
import discord
from discord.ui import Button, View, Modal, TextInput
from discord.ext import commands
from discord import Interaction
import re
intents = discord.Intents.default()
intents.message_content = True
intents.members = True
bot = commands.Bot(command_prefix="!", intents=intents)
iscrizioni = {} # Sign in Dict
report_channel_id = 1234567891011
rules_channel_id = 1234567891011
@bot.command()
async def comando_iscrizioni(ctx):
button = Button(label="Iscriviti", style=discord.ButtonStyle.green)
async def button_callback(interaction: discord.Interaction):
user_id = interaction.user.id
if user_id in iscrizioni:
await interaction.response.send_message("Sei già registrato", ephemeral=True)
return
modal = IscrizioneModal()
await interaction.response.send_modal(modal)
button.callback = button_callback
view = View()
view.add_item(button)
await ctx.send(f""" test message """, view=view)
# Sign Up Modal
class IscrizioneModal(Modal):
def __init__(self):
super().__init__(title="Modulo di Iscrizione")
self.nickname = TextInput(label='Nickname', placeholder='Inserisci il tuo nickname')
self.platform = TextInput(label='Piattaforma di gioco', placeholder='PC, PS, Xbox')
self.assists = TextInput(label='Aiuti Utilizzati', placeholder='ABS, Traiettoria')
self.add_item(self.nickname)
self.add_item(self.platform)
self.add_item(self.assists)
async def on_submit(self, interaction: Interaction):
nickname = self.nickname.value
platform = self.platform.value
assists = self.assists.value
iscrizioni[interaction.user.id] = {
"nickname": nickname,
"platform": platform,
"assists": assists
}
button = Button(label="Next", style=discord.ButtonStyle.primary)
async def button_callback(button_interaction: Interaction):
modale_tempi = SecondModal()
await button_interaction.response.send_modal(modale_tempi)
button.callback = button_callback
view = View()
view.add_item(button)
await interaction.response.send_message("Dati salvati! Premi il pulsante NEXT per continuare", view=view, ephemeral=True)
# Second modal
class SecondModal(Modal):
def __init__(self):
super().__init__(title="Inserimento Tempi")
self.bahrain = TextInput(label='Bahrain', placeholder='Inserisci il tempo in modalità Time Trial')
self.spa = TextInput(label='Belgio', placeholder='Inserisci il tempo in modalità Time Trial')
self.silverstone = TextInput(label='Silverstone', placeholder='Inserisci il tempo in modalità Time Trial')
self.add_item(self.bahrain)
self.add_item(self.spa)
self.add_item(self.silverstone)
# Format Check Function
def is_valid_time_format(self, time_str):
# Regex per il formato minuti.secondi,millesimi
pattern = r'^\d+\.\d{2},\d{3}$'
return re.match(pattern, time_str) is not None
async def on_submit(self, interaction: Interaction):
Bahrain = self.bahrain.value
Belgio = self.spa.value
Silverstone = self.silverstone.value
# Correct Format Check
if not all(self.is_valid_time_format(time) for time in [Bahrain, Belgio, Silverstone]):
await interaction.response.send_message("Errore: I tempi devono essere inseriti nel formato 'minuti.secondi,millesimi (Es: 1.26,388)", ephemeral=True)
return
iscrizioni[interaction.user.id].update({
"Bahrain": Bahrain,
"Belgio": Belgio,
"Silverstone": Silverstone
})
await interaction.response.send_message("Iscrizione completata con successo!", ephemeral=True)
# Send report
report_channel = bot.get_channel(report_channel_id)
await report_channel.send(f"""Nuova iscrizione:
Nickname: {iscrizioni[interaction.user.id]['nickname']}
Piattaforma: {iscrizioni[interaction.user.id]['platform']}
Aiuti: {iscrizioni[interaction.user.id]['assists']}
Bahrain: {iscrizioni[interaction.user.id]['Bahrain']}
Belgio: {iscrizioni[interaction.user.id]['Belgio']}
Silverstone: {iscrizioni[interaction.user.id]['Silverstone']}""")
# Avvia il bot
bot.run("ABCDEFGHIKLMNOPQRSTUVXYZ1234567890")```
Подробнее здесь: [url]https://stackoverflow.com/questions/79379585/discord-bot-in-python-stop-running[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия