Files
2025-02-28 22:15:55 +03:00

70 lines
2.1 KiB
Python

import os
import logging
from aiohttp import ClientSession
import discord
from discord.ext.commands import Bot
from discord.ext import tasks
intents = discord.Intents.default()
bot = Bot(intents=intents)
cogs_list = [
'general',
'voice',
'settings'
]
@bot.event
async def on_ready():
logging.info("Bot's ready!")
await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.listening, name="/voice vibe"))
@tasks.loop(seconds=3600)
async def update_server_count():
# Don't update server count in debug mode
if os.getenv('DEBUG') == 'True':
return
async with ClientSession() as session:
if token := os.getenv('PROMO_TOKEN_1'):
res = await session.post(
'https://api.server-discord.com/v2/bots/1325795708019806250/stats',
headers={'Authorization': token},
data={'servers': len(bot.guilds), 'shards': bot.shard_count or 1}
)
if not res.ok:
logging.error(f'Failed to update server count 1: {res.status} {await res.text()}')
if __name__ == '__main__':
from dotenv import load_dotenv
load_dotenv()
try:
import coloredlogs
coloredlogs.install(level=logging.DEBUG)
except ImportError:
pass
if os.getenv('DEBUG') == 'True':
logging.getLogger().setLevel(logging.DEBUG)
logging.getLogger('discord').setLevel(logging.INFO)
logging.getLogger('pymongo').setLevel(logging.INFO)
logging.getLogger('yandex_music').setLevel(logging.WARNING)
else:
logging.getLogger().setLevel(logging.INFO)
logging.getLogger('discord').setLevel(logging.WARNING)
logging.getLogger('pymongo').setLevel(logging.WARNING)
logging.getLogger('yandex_music').setLevel(logging.WARNING)
if not os.path.exists('music'):
os.mkdir('music')
token = os.getenv('TOKEN')
if not token:
raise ValueError('You must specify the bot TOKEN in your enviroment')
for cog in cogs_list:
bot.load_extension(f'MusicBot.cogs.{cog}')
bot.run(token)