42 lines
1.6 KiB
C++
42 lines
1.6 KiB
C++
#include "db.h"
|
|
#include <string>
|
|
|
|
int main(int argc, char **argv) {
|
|
if (argc != 3) return 1;
|
|
voicecat::server::Database database(argv[2]);
|
|
std::string error;
|
|
if (!database.open(error)) return 1;
|
|
if (std::string(argv[1]) == "create-protected") {
|
|
voicecat::server::ChannelRecord channel;
|
|
channel.name = "Native protected";
|
|
channel.audio.set_sample_rate(48000);
|
|
channel.audio.set_bitrate_bps(24000);
|
|
channel.audio.set_frame_ms(20);
|
|
return database.create_channel(channel, "channel password", error) ? 0 : 1;
|
|
}
|
|
if (std::string(argv[1]) == "verify-protected") {
|
|
for (const auto& channel : database.list_channels()) {
|
|
if (channel.name == "Managed protected")
|
|
return database.check_channel_password(channel.id, "channel password") &&
|
|
!database.check_channel_password(channel.id, "wrong") ? 0 : 1;
|
|
}
|
|
return 1;
|
|
}
|
|
if (std::string(argv[1]) == "create") {
|
|
if (!database.create_account("legacy", "legacy password", true, error)) return 1;
|
|
voicecat::server::ChannelRecord lobby;
|
|
lobby.name = "Lobby";
|
|
lobby.topic = "Preserved native topic";
|
|
lobby.max_users = 7;
|
|
lobby.audio.set_sample_rate(48000);
|
|
lobby.audio.set_bitrate_bps(32000);
|
|
lobby.audio.set_frame_ms(20);
|
|
return database.create_channel(lobby, "", error) ? 0 : 1;
|
|
}
|
|
if (std::string(argv[1]) == "verify") {
|
|
auto account = database.authenticate("managed", "managed password");
|
|
return account && account->is_admin ? 0 : 1;
|
|
}
|
|
return 1;
|
|
}
|