50
src/main.cpp
50
src/main.cpp
@@ -8,58 +8,13 @@ int main(int argc, char const *argv[]) {
|
||||
configfile >> configdocument;
|
||||
|
||||
const std::string BOT_TOKEN = configdocument["token"];
|
||||
const std::string GEMINI_KEY = configdocument["gemini"];
|
||||
|
||||
dpp::cluster bot(BOT_TOKEN, dpp::i_default_intents | dpp::i_guild_members);
|
||||
|
||||
bot.on_log(dpp::utility::cout_logger());
|
||||
|
||||
bot.on_slashcommand([&bot, GEMINI_KEY](const dpp::slashcommand_t& event) {
|
||||
bot.on_slashcommand([](const dpp::slashcommand_t& event) {
|
||||
if (event.command.get_command_name() == "ping") {
|
||||
event.reply("Pong!");
|
||||
return;
|
||||
} else if (event.command.get_command_name() == "gemini") {
|
||||
std::string prompt = std::get<std::string>(
|
||||
event.get_parameter("prompt")
|
||||
);
|
||||
json payload = {{
|
||||
"contents", json::array({{
|
||||
{
|
||||
"role", "user"
|
||||
},
|
||||
{
|
||||
"parts", json::array({
|
||||
{ { "text", prompt } }
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
};
|
||||
std::string postdata = payload.dump();
|
||||
event.thinking();
|
||||
bot.request("https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent", dpp::m_post,
|
||||
[&bot, event, GEMINI_KEY](const dpp::http_request_completion_t& cc) {
|
||||
if (cc.status != 200) {
|
||||
event.edit_original_response(
|
||||
dpp::message(std::to_string(cc.status))
|
||||
);
|
||||
return;
|
||||
}
|
||||
json response = json::parse(cc.body, nullptr, false);
|
||||
std::string reply = response["candidates"][0]["content"]["parts"][0]["text"];
|
||||
if (reply.size() > 2000) {
|
||||
reply = reply.substr(0, 2000);
|
||||
}
|
||||
event.edit_original_response(
|
||||
dpp::message(reply)
|
||||
);
|
||||
},
|
||||
postdata,
|
||||
"application/json", {
|
||||
{ "x-goog-api-key", GEMINI_KEY }
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -105,9 +60,6 @@ int main(int argc, char const *argv[]) {
|
||||
bot.on_ready([&bot](const dpp::ready_t& event) {
|
||||
if (dpp::run_once<struct register_bot_commands>()) {
|
||||
bot.global_command_create(dpp::slashcommand("ping", "Ping pong!", bot.me.id));
|
||||
|
||||
bot.global_command_create(dpp::slashcommand("gemini", "Ask gemini-2.5-flash.", bot.me.id)
|
||||
.add_option(dpp::command_option(dpp::co_string, "prompt", "What you want to ask.", true)));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user