Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/node fix #87

Merged
merged 2 commits into from
Mar 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 19 additions & 22 deletions musicbot/cogs/nodemanager.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import codecs
from typing import Optional
from typing import List, Optional, Union

import discord
import lavalink
Expand Down Expand Up @@ -59,12 +59,12 @@ def load_nodes_from_file(self):
if node['name'] in name_cache:
continue

self.lavalink.add_node(**node)
added = self.lavalink.add_node(**node)

self.logger.debug("Adding Lavalink node: %s on %s with the port %s in %s" % (
node['name'], node['host'],
node['port'], node['region'],))
new_nodes.append({**node})
new_nodes.append(added)
name_cache.append(node['name'])
return new_nodes

Expand All @@ -89,31 +89,27 @@ async def _regioner(self, region):
except KeyError:
return ':question:'

async def _node_presenter(self, ctx, node):
async def _node_presenter(self, ctx, node: Union[List[lavalink.Node], lavalink.Node]):
embed = discord.Embed(color=ctx.me.color)
embed.title = 'Added new node!'

if isinstance(node, list):
for n in node:
embed.add_field(name=f'{await self._regioner(n.region)} **Name:** {n.name}',
value=f'**Host:** {n.host}\n **Port:** {n.port}')
value=f'**Host:** {n._transport._host}\n **Port:** {n._transport._port}')

if isinstance(node, lavalink.Node):
embed.add_field(name=f'{await self._regioner(node.region)} **Name:** {node.name}',
value=f'**Host:** {node.host}\n **Port:** {node.port}')

if isinstance(node, dict):
embed.description = f'**Name:** {node.get("name")}\n **Host:** {node.get("host")}\n ' \
f'**Port:** {node.get("port")}\n **Region:** {await self._regioner(node.get("region"))}'
value=f'**Host:** {node._transport._host}\n **Port:** {node._transport._port}')

return embed

def get_node_properties(self, node):
def get_node_properties(self, node: lavalink.Node):
return {
'name': node.name,
'host': node.host,
'port': node.port,
'password': node.password,
'host': node._transport._host,
'port': node._transport._port,
'password': node._transport._password,
'region': node.region
}

Expand All @@ -140,10 +136,10 @@ async def _add(self, ctx, host: str, port: int, password: str, region, name: Opt
if name in [n.name for n in self.lavalink.node_manager.nodes]:
return await ctx.send("A node with that name already exists")

self.lavalink.add_node(host, port, password, region, name=name)
self.logger.debug("Adding Lavalink node: %s on %s with the port %s in %s" % (host, port, region, name,))
embed = await self._node_presenter(ctx, {'host': host, 'port': port, 'password': password,
'region': region, 'name': name})
node = self.lavalink.add_node(host, port, password, region, name=name)
self.logger.debug("Adding Lavalink node: %s", (node))

embed = await self._node_presenter(ctx, node)
embed.title = 'Added new node!'

self.settings.set('lavalink', 'nodes', [self.get_node_properties(n) for
Expand All @@ -166,13 +162,14 @@ async def _remove(self, ctx, node):
await ctx.send('Cannot remove the last node')
sent_feedback = True
break
if (_node.name or _node.host) == node:
if _node.name == node:
sent_feedback = True
embed = await self._node_presenter(ctx, _node)
embed.title = 'Removed node from bot'
await ctx.send(embed=embed)
self.lavalink.node_manager.remove_node(_node)
self.logger.info("Removed Lavalink node: %s, %s" % (_node.name, _node.host))
self.lavalink.node_manager.remove(_node)
await _node.destroy()
self.logger.info("Removed Lavalink node: %s" % (_node.name))

self.settings.set('lavalink', 'nodes', [self.get_node_properties(n) for
n in self.lavalink.node_manager.nodes])
Expand All @@ -195,7 +192,7 @@ async def _nodechange(self, ctx, node=None):
else:
newnode = None
for _node in self.lavalink.node_manager.nodes:
if (_node.name or _node.host) == node:
if _node.name == node:
newnode = _node

if not newnode:
Expand Down
9 changes: 6 additions & 3 deletions musicbot/utils/mixplayer/player.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,20 +217,23 @@ async def handle_event(self, event):
await self.play()

async def bassboost(self, boost: bool):
changed = self.boosted != boost
self.boosted = boost
if changed:
self.logger.info(f"{'Enabling' if self.boosted else 'Disabling'} bass boost")
if boost:
await self.set_filter(self.bass_boost_filter)
else:
self.logger.info("Disabling bass boost")
await self.remove_filter(self.bass_boost_filter)

async def nightcoreify(self, nightcore: bool):
changed = self.nightcore_enabled != nightcore
self.nightcore_enabled = nightcore
if changed:
self.logger.info(f"{'Enabling' if self.nightcore_enabled else 'Disabling'} nightcore mode")
if nightcore:
self.logger.info("Enabling nightcore mode")
await self.set_filter(self.nightcore_filter)
else:
self.logger.info("Disabling nightcore mode")
await self.remove_filter(self.nightcore_filter)

@property
Expand Down
Loading