initial yandex music

This commit is contained in:
bacon
2024-03-09 11:47:06 +03:00
parent be76027581
commit 805dc7c71e
5 changed files with 20 additions and 15 deletions

View File

@@ -14,11 +14,3 @@ qodana:
expose_as: 'qodana_report' expose_as: 'qodana_report'
expire_in: 1 week expire_in: 1 week
paths: [ '.qodana/results/' ] paths: [ '.qodana/results/' ]
deploy:
only:
- master
image: alpine
script:
- apk --update add openssh-client
- ssh -i $SSH_KEY $BOT_HOST && cd /opt/discord/tarkov && git pull

10
bot.py
View File

@@ -6,7 +6,7 @@ import disnake
from dotenv import load_dotenv from dotenv import load_dotenv
from disnake import OptionType, Option from disnake import OptionType, Option
from disnake.ext import commands from disnake.ext import commands
from __init__ import version_info as ver from __init__ import version_info as ver, __version__
from lib.CogsPrep import work_with_cogs, cog_list from lib.CogsPrep import work_with_cogs, cog_list
from lib.Comands import determine_prefix from lib.Comands import determine_prefix
from lib.Logger import logger from lib.Logger import logger
@@ -42,8 +42,8 @@ asyncio.run(work_with_cogs('load', bot, asyncio.run(cog_list())))
async def on_ready(): async def on_ready():
logger.info('Bot started') logger.info('Bot started')
logger.info(f'Disnake version {disnake.__version__}') logger.info(f'Disnake version {disnake.__version__}')
logger.info('We have logged in as {0.user}'.format(bot)) logger.info(f'We have logged in as {bot.user}')
logger.info(f'Version of bot is - v{ver.major}.{ver.minor}.{ver.micro}-{ver.releaselevel}') logger.info(f'Version of bot is - v{__version__}-{ver.releaselevel}')
@bot.slash_command( @bot.slash_command(
@@ -71,12 +71,14 @@ async def slash_cogs(inter: disnake.ApplicationCommandInteraction, what_do, cog:
@slash_cogs.autocomplete('cog') @slash_cogs.autocomplete('cog')
async def _cog_opt(inter: disnake.ApplicationCommandInteraction, current: str, what_do): async def _cog_opt(inter: disnake.ApplicationCommandInteraction, what_do, current: str):
current = current.lower() current = current.lower()
if what_do == 'enable': if what_do == 'enable':
_list = await cog_list('./cogs/disabled/') _list = await cog_list('./cogs/disabled/')
logger.error(_list)
else: else:
_list = await cog_list() _list = await cog_list()
logger.error(_list)
return [choice for choice in _list if current in choice.lower()] return [choice for choice in _list if current in choice.lower()]

View File

@@ -13,9 +13,12 @@ class Testing(commands.Cog, name='Testing'):
logger.info(f'Cog {__name__.split(".")[1]} is ready!.') logger.info(f'Cog {__name__.split(".")[1]} is ready!.')
@commands.slash_command(name='play', description='play audio test from yandex.music', options=[ @commands.slash_command(name='play', description='play audio test from yandex.music', options=[
Option(name='search', description='seach track/artist') Option(name='search', description='seach track/artist'),
Option(name='type', description='type of search',
choices=['all', 'artist', 'user', 'album', 'playlist', 'track', 'podcast', 'podcast_episode'])
]) ])
async def play(self, inter: disnake.ApplicationCommandInteraction, audio): async def play(self, inter: disnake.ApplicationCommandInteraction, audio):
# TODO add yandex_music player with queue, playlists
pass pass

View File

@@ -5,9 +5,7 @@ from disnake import FFmpegOpusAudio
async def play_audio(audio, bot, vc): async def play_audio(audio, bot, vc):
if not bot.voice_clients: if not bot.voice_clients:
# logger.info(audio)
logger.error(f'Playing: {audio}') logger.error(f'Playing: {audio}')
await sleep(1)
vp = await vc.connect() vp = await vc.connect()
if not vp.is_playing(): if not vp.is_playing():
vp.play(FFmpegOpusAudio(f'{audio}')) vp.play(FFmpegOpusAudio(f'{audio}'))

10
lib/YandexPlayer.py Normal file
View File

@@ -0,0 +1,10 @@
import os
from yandex_music import Client
client = Client(os.getenv('Yandex_Token')).init()
def _search(self, _str: str, _type: str):
search_result = client.search(_str, type_=_type)
pass