jay/handler/message.cpp
2025-03-03 21:36:02 +02:00

32 lines
922 B
C++

// SPDX-FileCopyrightText: 2024 Yury Gubich <blue@macaw.me>
// SPDX-License-Identifier: GPL-3.0-or-later
#include "message.h"
#include <iostream>
Message::Message(const std::shared_ptr<Config>& config, const std::shared_ptr<gloox::Client>& client, const Callback& callback):
callback(callback),
config(config),
client(client)
{
client->registerMessageHandler(this);
}
Message::~Message() {
if (std::shared_ptr<gloox::Client> cl = client.lock())
cl->removeMessageHandler(this);
}
void Message::handleMessage(const gloox::Message& message, gloox::MessageSession* session) {
std::shared_ptr<Config> cfg = config.lock();
if (!cfg)
return;
if (cfg->getOwners().count(message.from().bare())) {
std::cout << "Received message from owner: " << message.body() << std::endl;
} else {
std::cout << "Received message: " << message.body() << std::endl;
}
}