44 lines
1.5 KiB
C
44 lines
1.5 KiB
C
#include <string.h>
|
|
#include <concord/discord.h>
|
|
#include <concord/log.h>
|
|
#include <sqlite3.h>
|
|
#include <stdlib.h>
|
|
|
|
sqlite3* db;
|
|
|
|
void on_ready(struct discord *client, const struct discord_ready *msg) {
|
|
log_info("Logged in as %s!", msg->user->username);
|
|
}
|
|
|
|
void on_message(struct discord *client, const struct discord_message *msg) {
|
|
if(msg->type == DISCORD_MESSAGE_REPLY && msg->content != NULL) {
|
|
char* error;
|
|
if(sqlite3_exec(db, sqlite3_mprintf(
|
|
"INSERT INTO messages(message, reply)"
|
|
"VALUES('%q', '%q')",
|
|
msg->referenced_message->content, msg->content),
|
|
NULL, NULL, &error)) {
|
|
log_error(error);
|
|
}
|
|
}
|
|
}
|
|
|
|
int main(void) {
|
|
sqlite3_open("messages.db", &db);
|
|
|
|
char* error;
|
|
if(sqlite3_exec(db,
|
|
"CREATE TABLE IF NOT EXISTS messages("
|
|
"id INTEGER PRIMARY KEY AUTOINCREMENT,"
|
|
"message TEXT NOT NULL,"
|
|
"reply TEXT NOT NULL"
|
|
");", NULL, NULL, &error)) {
|
|
log_error(error);
|
|
}
|
|
|
|
struct discord *client = discord_config_init("config.json");
|
|
discord_add_intents(client, DISCORD_GATEWAY_MESSAGE_CONTENT);
|
|
discord_set_on_ready(client, &on_ready);
|
|
discord_set_on_message_create(client, &on_message);
|
|
discord_run(client);
|
|
}
|