Discord.py Bot
MusicPlayerBot
napravi discord bota muzika ja ukucam pesmu muziku ime sa yt i kad ukucam pusti se muzika i peva voice imam skip stop i tako coamnde
main.py
import asyncio
import logging
import os
import discord
from discord.ext import commands
from config import settings
from database import Database
logging.basicConfig(
level=logging.INFO,
format="[%(asctime)s] [%(levelname)-8s] %(name)s: %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
handlers=[logging.StreamHandler(), logging.FileHandler("bot.log", encoding="utf-8")],
)
logger = logging.getLogger("bot")
TOKEN = os.environ.get("DISCORD_TOKEN") or os.environ.get("BOT_TOKEN") or os.environ.get("TOKEN")
intents = discord.Intents.default()
intents.message_content = True
intents.members = True
intents.voice_states = True
class MusicBot(commands.Bot):
def __init__(self) -> None:
super().__init__(command_prefix="!", intents=intents)
self.settings = settings
self.database = Database(settings.database_path)
async def setup_hook(self) -> None:
await self.database.initialize()
for extension in ("cogs.music", "cogs.errors"):
await self.load_extension(extension)
async def close(self) -> None:
await self.database.close()
await super().close()
bot = MusicBot()
@bot.event
async def on_ready() -> None:
try:
synced = await bot.tree.sync()
logger.info("Slash komande sinhronizovane: %s", len(synced))
except discord.DiscordException:
logger.exception("Sinhronizacija slash komandi nije uspela")
logger.info("Bot online kao %s | %s servera", bot.user, len(bot.guilds))
async def main() -> None:
if not TOKEN:
raise RuntimeError("Nedostaje Discord token u hosting environment promenljivama.")
async with bot:
await bot.start(TOKEN)