31 lines
872 B
C++
31 lines
872 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):
|
|
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;
|
|
}
|
|
}
|