Skip to content
Open
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
3 changes: 2 additions & 1 deletion redbot/cogs/audio/apis/interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,7 @@ async def spotify_enqueue(
try:
current_cache_level = CacheLevel(await self.config.cache_level())
guild_data = await self.config.guild(ctx.guild).all()
can_skip = await self.cog._can_instaskip(ctx, ctx.author)
enqueued_tracks = 0
consecutive_fails = 0
queue_dur = await self.cog.queue_duration(ctx)
Expand Down Expand Up @@ -624,7 +625,7 @@ async def spotify_enqueue(
if enqueue:
if len(player.queue) >= 10000:
continue
if guild_data["maxlength"] > 0:
if guild_data["maxlength"] > 0 and not can_skip:
if self.cog.is_track_length_allowed(single_track, guild_data["maxlength"]):
enqueued_tracks += 1
single_track.extras.update(
Expand Down
4 changes: 2 additions & 2 deletions redbot/cogs/audio/core/commands/player.py
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ async def command_bumpplay(
title=_("Unable To Play Tracks"),
description=_("This track is not allowed in this server."),
)
elif guild_data["maxlength"] > 0:
elif guild_data["maxlength"] > 0 and not can_skip:
if self.is_track_length_allowed(single_track, guild_data["maxlength"]):
single_track.requester = ctx.author
single_track.extras.update(
Expand Down Expand Up @@ -821,7 +821,7 @@ async def _search_menu(
):
log.debug("Query is not allowed in %r (%s)", ctx.guild.name, ctx.guild.id)
continue
elif guild_data["maxlength"] > 0:
elif guild_data["maxlength"] > 0 and not can_skip:
if self.is_track_length_allowed(track, guild_data["maxlength"]):
track_len += 1
track.extras.update(
Expand Down
7 changes: 6 additions & 1 deletion redbot/cogs/audio/core/commands/playlists.py
Original file line number Diff line number Diff line change
Expand Up @@ -1485,6 +1485,7 @@ async def command_playlist_start(
ctx.command.reset_cooldown(ctx)
return
maxlength = await self.config.guild(ctx.guild).maxlength()
can_skip = await self._can_instaskip(ctx, ctx.author)
author_obj = self.bot.get_user(ctx.author.id)
track_len = 0
try:
Expand All @@ -1510,7 +1511,11 @@ async def command_playlist_start(
pass
if not local_path.exists() and not local_path.is_file():
continue
if maxlength > 0 and not self.is_track_length_allowed(track, maxlength):
if (
maxlength > 0
and not can_skip
and not self.is_track_length_allowed(track, maxlength)
):
continue
track.extras.update(
{
Expand Down
3 changes: 2 additions & 1 deletion redbot/cogs/audio/core/utilities/formatting.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ async def _search_button_action(
player = lavalink.get_player(ctx.guild.id)
player.store("notify_channel", ctx.channel.id)
guild_data = await self.config.guild(ctx.guild).all()
can_skip = await self._can_instaskip(ctx, ctx.author)
if len(player.queue) >= 10000:
return await self.send_embed_msg(
ctx, title=_("Unable To Play Tracks"), description=_("Queue size limit reached.")
Expand Down Expand Up @@ -167,7 +168,7 @@ async def _search_button_action(
return await self.send_embed_msg(
ctx, title=_("This track is not allowed in this server.")
)
elif guild_data["maxlength"] > 0:
elif guild_data["maxlength"] > 0 and not can_skip:
if self.is_track_length_allowed(search_choice, guild_data["maxlength"]):
search_choice.extras.update(
{
Expand Down
8 changes: 6 additions & 2 deletions redbot/cogs/audio/core/utilities/player.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ async def _can_instaskip(self, ctx: commands.Context, member: discord.Member) ->
if await self.bot.is_owner(member):
return True

if await self.bot.is_admin(member):
return True

if await self.bot.is_mod(member):
return True

Expand Down Expand Up @@ -366,6 +369,7 @@ async def _enqueue_tracks(
except KeyError:
self.update_player_lock(ctx, True)
guild_data = await self.config.guild(ctx.guild).all()
can_skip = await self._can_instaskip(ctx, ctx.author)
first_track_only = False
single_track = None
index = None
Expand Down Expand Up @@ -454,7 +458,7 @@ async def _enqueue_tracks(
):
log.debug("Query is not allowed in %r (%s)", ctx.guild.name, ctx.guild.id)
continue
elif guild_data["maxlength"] > 0:
elif guild_data["maxlength"] > 0 and not can_skip:
if self.is_track_length_allowed(track, guild_data["maxlength"]):
track_len += 1
track.extras.update(
Expand Down Expand Up @@ -547,7 +551,7 @@ async def _enqueue_tracks(
return await self.send_embed_msg(
ctx, title=_("This track is not allowed in this server.")
)
elif guild_data["maxlength"] > 0:
elif guild_data["maxlength"] > 0 and not can_skip:
if self.is_track_length_allowed(single_track, guild_data["maxlength"]):
single_track.extras.update(
{
Expand Down
Loading