Add response message

This commit is contained in:
Choco
2023-03-24 22:26:29 +08:00
parent 725e703072
commit 927cfc4cd8
2 changed files with 73 additions and 8 deletions

View File

@@ -9,6 +9,15 @@ def missingPermission(user_id:int):
payload["user_id"] = user_id
return payload
def error_msg(msg: str, *, user_id: int = None, guild_id: int = None, level: str = "info"):
payload = {"op": "errorMsg", "level": level}
if user_id:
payload["user_id"]: user_id
if guild_id:
payload["guild_id"]: guild_id
return payload
async def initPlayer(player, member: Member, data: dict):
return {
"op": "initPlayer",
@@ -29,8 +38,17 @@ async def initPlayer(player, member: Member, data: dict):
async def skipTo(player, member: Member, data: dict):
if not player.is_privileged(member):
return missingPermission(member.id)
if member == player.current.requester:
pass
elif member in player.skip_votes:
return error_msg(player.get_msg('voted', 'EN'), user_id=member.id)
else:
player.skip_votes.add(member)
if len(player.skip_votes) >= (required := player.required()):
pass
else:
return error_msg(player.get_msg('skipVote', 'EN').format(member, len(player.skip_votes), required), guild_id=player.guild.id)
index = data.get("index", 1)
if index > 1:
player.queue.skipto(index)
@@ -41,7 +59,17 @@ async def skipTo(player, member: Member, data: dict):
async def backTo(player, member: Member, data: dict):
if not player.is_privileged(member):
return missingPermission(member.id)
if member == player.current.requester:
pass
elif member in player.skip_votes:
return error_msg(player.get_msg('voted', 'EN'), user_id=member.id)
else:
player.skip_votes.add(member)
if len(player.skip_votes) >= (required := player.required()):
pass
else:
return error_msg(player.get_msg('backVote', 'EN').format(member, len(player.skip_votes), required), guild_id=player.guild.id)
index = data.get("index", 1)
if not player.is_playing:
@@ -102,7 +130,15 @@ async def getTracks(player, member: Member, data: dict):
async def shuffleTrack(player, member: Member, data: dict):
if not player.is_privileged(member):
return missingPermission(member.id)
if member in player.shuffle_votes:
return error_msg(player.get_msg('voted'), user_id=member.id)
else:
player.shuffle_votes.add(member)
if len(player.shuffle_votes) >= (required := player.required()):
pass
else:
return error_msg(player.get_msg('shuffleVote').format(member, len(player.skip_votes), required), guild_id=player.guild.id)
await player.shuffle(data.get("type", "queue"), member)
@@ -117,10 +153,31 @@ async def updatePause(player, member: Member, data: dict):
return missingPermission(member.id)
pause = data.get("pause", True)
if not player.is_privileged(member):
if pause:
if member in player.pause_votes:
return error_msg(player.get_msg('voted'), user_id=member.id)
else:
player.pause_votes.add(member)
if len(player.pause_votes) >= (required := player.required()):
pass
else:
return error_msg(player.get_msg('pauseVote').format(member, len(player.pause_votes), required), guild_id=player.guild.id)
else:
if member in player.resume_votes:
return error_msg(player.get_msg('voted'), user_id=member.id)
else:
player.resume_votes.add(member)
if len(player.resume_votes) >= (required := player.required()):
pass
else:
return error_msg(player.get_msg('resumeVote').format(member, len(player.resume_votes), required), guild_id=player.guild.id)
if pause:
player.pause_votes.clear()
else:
player.resume_votes.clear()
await player.set_pause(pause, member)
async def updatePosition(player, member: Member, data: dict):
@@ -179,7 +236,7 @@ async def process_methods(websocket, bot: commands.Bot, data: dict) -> None:
except Exception as e:
payload = {
"op": "errorMsg",
"level": "info",
"level": "error",
"msg": e,
"user_id": member.id
}

View File

@@ -184,6 +184,7 @@ class Track {
this.imageUrl = object["thumbnail"];
this.length = object["info"]["length"];
this.track_id = object["track_id"];
this.uri = object["info"]["uri"];
}
}
@@ -207,6 +208,8 @@ class Player {
this.volume = 100;
this.last_update = 0;
this.is_connected = true;
this.channelName = "";
}
handleMessage(data) {
@@ -238,14 +241,19 @@ class Player {
}
updateCurrentQueuePos(pos) {
this.current_queue_position = pos - 1;
if (pos != undefined) {
this.current_queue_position = pos - 1;
}
this.currentTrack = this.queue[this.current_queue_position];
$('#sortable li div').removeClass('active');
const li = $(`#sortable li:eq(${this.current_queue_position})`);
li.find('div').addClass('active');
$('.queue-list').animate({ scrollTop: li.position().top - $('.queue-list').position().top }, 'slow');
const queue = $('.queue-list')
if (queue.prop('scrollHeight') > queue.prop('clientHeight')) {
queue.animate({ scrollTop: li.position().top - queue.position().top }, 'slow');
}
return this.currentTrack;
}