Some minor changes
This commit is contained in:
@@ -2866,6 +2866,7 @@ command_result ConnectedClient::handleCommandListFeatureSupport(ts::Command &cmd
|
||||
REGISTER_FEATURE("log-query", FeatureSupportMode::FULL, 1);
|
||||
REGISTER_FEATURE("whisper-echo", FeatureSupportMode::FULL, 1);
|
||||
REGISTER_FEATURE("video", FeatureSupportMode::EXPERIMENTAL, 1);
|
||||
REGISTER_FEATURE("sidebar-mode", FeatureSupportMode::FULL, 1);
|
||||
|
||||
this->sendCommand(notify);
|
||||
return command_result{error::ok};
|
||||
|
||||
@@ -284,11 +284,13 @@ command_result ConnectedClient::handleCommandMusicBotPlayerAction(Command& cmd)
|
||||
bot->rewindSong();
|
||||
} else if(cmd["action"] == 5) {
|
||||
if(!player) return command_result{error::music_no_player};
|
||||
player->forward(::music::PlayerUnits(cmd["units"].as<int64_t>()));
|
||||
player->forward(::music::PlayerUnits{(int64_t) cmd["units"].as<uint64_t>()});
|
||||
} else if(cmd["action"] == 6) {
|
||||
if(!player) return command_result{error::music_no_player};
|
||||
player->rewind(::music::PlayerUnits(cmd["units"].as<int64_t>()));
|
||||
} else return command_result{error::music_invalid_action};
|
||||
player->rewind(::music::PlayerUnits{(int64_t) cmd["units"].as<uint64_t>()});
|
||||
} else {
|
||||
return command_result{error::music_invalid_action};
|
||||
}
|
||||
|
||||
return command_result{error::ok};
|
||||
}
|
||||
@@ -799,7 +801,7 @@ inline void fill_song_info(ts::command_builder_bulk bulk, const std::shared_ptr<
|
||||
if(extract_metadata && song->metadata.is_loaded() && metadata) {
|
||||
bulk.put("song_metadata_title", metadata->title);
|
||||
bulk.put("song_metadata_description", metadata->description);
|
||||
bulk.put("song_metadata_url", metadata->url);
|
||||
bulk.put("song_metadata_url", metadata->url); /* Internally resolved URL. Should not be externally used */
|
||||
bulk.put("song_metadata_length", metadata->length.count());
|
||||
if(auto thumbnail = static_pointer_cast<::music::ThumbnailUrl>(metadata->thumbnail); thumbnail && thumbnail->type() == ::music::THUMBNAIL_URL) {
|
||||
bulk.put("song_metadata_thumbnail_url", thumbnail->url());
|
||||
@@ -836,7 +838,7 @@ command_result ConnectedClient::handleCommandPlaylistSongList(ts::Command &cmd)
|
||||
}
|
||||
fill_song_info(result.bulk(index), song, extract_metadata);
|
||||
|
||||
if(this->getExternalType() == ClientType::CLIENT_TEAMSPEAK && result.current_size() + estimated_song_info_size(song, extract_metadata) > 128 * 1024) {
|
||||
if(this->getType() != ClientType::CLIENT_QUERY && result.current_size() + estimated_song_info_size(song, extract_metadata) > 64 * 1024) {
|
||||
this->sendCommand(result);
|
||||
result.reset();
|
||||
index = 0;
|
||||
@@ -844,9 +846,13 @@ command_result ConnectedClient::handleCommandPlaylistSongList(ts::Command &cmd)
|
||||
index++;
|
||||
}
|
||||
}
|
||||
if(index > 0)
|
||||
|
||||
if(index > 0) {
|
||||
this->sendCommand(result);
|
||||
if(this->getExternalType() == ClientType::CLIENT_TEAMSPEAK) {
|
||||
}
|
||||
|
||||
/* This step is actiually not really needed... */
|
||||
if(this->getType() != ClientType::CLIENT_QUERY) {
|
||||
ts::command_builder finish{"notifyplaylistsonglistfinished"};
|
||||
finish.put(0, "playlist_id", playlist->playlist_id());
|
||||
this->sendCommand(finish);
|
||||
@@ -1137,8 +1143,9 @@ command_result ConnectedClient::handleCommandMusicBotPlaylistAssign(ts::Command
|
||||
|
||||
auto bot = ref_server->music_manager_->findBotById(cmd["bot_id"]);
|
||||
if(!bot) return command_result{error::music_invalid_id};
|
||||
if(bot->getOwner() != this->getClientDatabaseId())
|
||||
if(bot->getOwner() != this->getClientDatabaseId()) {
|
||||
ACTION_REQUIRES_GLOBAL_PERMISSION(permission::i_client_music_play_power, bot->calculate_permission(permission::i_client_music_needed_play_power, 0));
|
||||
}
|
||||
|
||||
auto playlist = ref_server->music_manager_->find_playlist(cmd["playlist_id"]);
|
||||
if(!playlist && cmd["playlist_id"] != 0) return command_result{error::playlist_invalid_id};
|
||||
@@ -1163,20 +1170,24 @@ command_result ConnectedClient::handleCommandPlaylistSetSubscription(ts::Command
|
||||
if(!config::music::enabled) return command_result{error::music_disabled};
|
||||
|
||||
auto playlist = ref_server->music_manager_->find_playlist(cmd["playlist_id"]);
|
||||
if(!playlist && cmd["playlist_id"] != 0) return command_result{error::playlist_invalid_id};
|
||||
if(!playlist && cmd["playlist_id"] != 0) {
|
||||
return command_result{error::playlist_invalid_id};
|
||||
}
|
||||
|
||||
{
|
||||
auto old_playlist = this->_subscribed_playlist.lock();
|
||||
if(old_playlist)
|
||||
auto old_playlist = this->subscribed_playlist_.lock();
|
||||
if(old_playlist) {
|
||||
old_playlist->remove_subscriber(_this.lock());
|
||||
}
|
||||
}
|
||||
|
||||
if(playlist) {
|
||||
if(auto perr = playlist->client_has_permissions(this->ref(), permission::i_playlist_needed_view_power, permission::i_playlist_view_power); perr)
|
||||
if(auto perr = playlist->client_has_permissions(this->ref(), permission::i_playlist_needed_view_power, permission::i_playlist_view_power); perr) {
|
||||
return command_result{perr};
|
||||
}
|
||||
|
||||
playlist->add_subscriber(_this.lock());
|
||||
this->_subscribed_playlist = playlist;
|
||||
this->subscribed_playlist_ = playlist;
|
||||
}
|
||||
|
||||
return command_result{error::ok};
|
||||
|
||||
Reference in New Issue
Block a user