mirror of https://notabug.org/acetone/ircabot.git
minor improvements
parent
5b4a0ebd49
commit
6e61843d70
|
@ -65,7 +65,7 @@ bool AdminIRCPanel::parse(const QString& networkName, const QString &input, QStr
|
|||
{ // https://modern.ircdocs.horse/formatting.html#bold
|
||||
answer = QStringList() << QString(QString("Add channel to my list or remove one: ")+0x02+ QString("!channel <add|delete> CHANNEL_NAME")) <<
|
||||
QString(QString("After deleting or adding channels, reload connections: ")+0x02+ QString("!reload channels")) <<
|
||||
QString(QString("Captcha gate in channels where I have the privilege to do +v: ")+0x02+QString("!voiceGate set <enabled|disabled>")) <<
|
||||
QString(QString("Captcha gate in this network: ")+0x02+QString("!voiceGate set <enabled|disabled>")) <<
|
||||
QString(QString("Global voice gate option: ")+0x02+ QString("!voiceGate set case sensitive <enabled|disabled>")) <<
|
||||
QString(QString("Global voice gate option: ")+0x02+ QString("!voiceGate set only numbers <enabled|disabled>")) <<
|
||||
QString(QString("Global voice gate option: ")+0x02+ QString("!voiceGate set captcha cache size <positive number>")) <<
|
||||
|
@ -114,12 +114,13 @@ bool AdminIRCPanel::parse(const QString& networkName, const QString &input, QStr
|
|||
|
||||
else if (input.contains(rgx_reloadChannels))
|
||||
{
|
||||
uint changeCounter = 0;
|
||||
auto configs = Config::networksAccess();
|
||||
for (auto iter = configs.begin(); iter != configs.end(); ++iter)
|
||||
{
|
||||
(*iter)->instance->reloadChannelList();
|
||||
changeCounter = (*iter)->instance->reloadChannelList();
|
||||
}
|
||||
answer.push_back("Success. Reloaded.");
|
||||
answer.push_back("Success. Reloaded: " + QString::number(changeCounter) + " changes.");
|
||||
}
|
||||
|
||||
else if (input.contains(rgx_voiceGate))
|
||||
|
|
|
@ -26,6 +26,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||
|
||||
#include <QDateTime>
|
||||
#include <QStringList>
|
||||
#include <QRegularExpression>
|
||||
#include <QDebug>
|
||||
|
||||
#define LOG_WARN qWarning().noquote() << "[" + m_config->networkName + "]"
|
||||
|
@ -49,8 +50,9 @@ void IRCNetworkClient::setConfig(Config::Network *&config)
|
|||
m_config = config;
|
||||
}
|
||||
|
||||
void IRCNetworkClient::reloadChannelList()
|
||||
uint IRCNetworkClient::reloadChannelList()
|
||||
{
|
||||
uint changeCounter = 0;
|
||||
QMutexLocker lock (&m_mtxNetworkChannelsIteration);
|
||||
|
||||
QStringList connectedChannelsTotalList;
|
||||
|
@ -64,6 +66,7 @@ void IRCNetworkClient::reloadChannelList()
|
|||
if (not m_config->channels.contains(connectedChan->GetName()))
|
||||
{
|
||||
channelsToPart.push_back(connectedChan->GetName());
|
||||
changeCounter++;
|
||||
}
|
||||
connectedChannelsTotalList.push_back(connectedChan->GetName());
|
||||
}
|
||||
|
@ -85,6 +88,7 @@ void IRCNetworkClient::reloadChannelList()
|
|||
if (not connectedChannelsTotalList.contains(newChannel))
|
||||
{
|
||||
channelsToJoin.push_back(newChannel);
|
||||
changeCounter++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,6 +99,8 @@ void IRCNetworkClient::reloadChannelList()
|
|||
m_network->RequestJoin(chanName);
|
||||
QThread::msleep(500);
|
||||
}
|
||||
|
||||
return changeCounter;
|
||||
}
|
||||
|
||||
void IRCNetworkClient::start()
|
||||
|
@ -136,7 +142,13 @@ void IRCNetworkClient::Slot_privMsg(libircclient::Parser *p)
|
|||
{
|
||||
const QString receiver = p->GetParameterLine();
|
||||
const QString sender = p->GetSourceUserInfo()->GetNick();
|
||||
const QString text = p->GetText();
|
||||
QString text = p->GetText();
|
||||
static const QRegularExpression leadingSpaces("^\\s*");
|
||||
static const QRegularExpression trailingSpaces("\\s*$");
|
||||
text.remove(leadingSpaces);
|
||||
text.remove(trailingSpaces);
|
||||
|
||||
if (text.isEmpty()) return;
|
||||
|
||||
if (receiver == m_network->GetLocalUserInfo()->GetNick())
|
||||
{
|
||||
|
@ -148,27 +160,6 @@ void IRCNetworkClient::Slot_privMsg(libircclient::Parser *p)
|
|||
}
|
||||
}
|
||||
|
||||
void IRCNetworkClient::Slot_adminIdentified(libircclient::Parser* p)
|
||||
{
|
||||
auto params = p->GetParameters();
|
||||
if (params.size() < 2)
|
||||
{
|
||||
LOG_WARN << "Event_WhoisRegNick failure: params.size() < 2, expected 2";
|
||||
return;
|
||||
}
|
||||
if (p->GetParameters().at(1) != m_config->ircabotAdmin)
|
||||
{
|
||||
LOG_WARN << "Event_WhoisRegNick failure: requested, but admin changed";
|
||||
return;
|
||||
}
|
||||
|
||||
AdminIRCPanel::identifiedTimestampUpdate(m_config->networkName);
|
||||
m_network->SendNotice("You have been identified as an IRCaBot administrator.", m_config->ircabotAdmin, libircclient::Priority_RealTime);
|
||||
|
||||
processAdminCommand(m_adminCommandBuffer);
|
||||
m_adminCommandBuffer.clear();
|
||||
}
|
||||
|
||||
void IRCNetworkClient::Slot_onDirectMessage(QString sender, QString text)
|
||||
{
|
||||
if (sender == m_config->ircabotAdmin and text.startsWith("!"))
|
||||
|
@ -252,6 +243,26 @@ void IRCNetworkClient::processVoiceRequest(const QString& sender)
|
|||
m_network->SendMessage(message, sender);
|
||||
}
|
||||
|
||||
void IRCNetworkClient::Slot_adminIdentified(libircclient::Parser* p)
|
||||
{
|
||||
auto params = p->GetParameters();
|
||||
if (params.size() < 2)
|
||||
{
|
||||
LOG_WARN << "Event_WhoisRegNick failure: params.size() < 2, expected 2";
|
||||
return;
|
||||
}
|
||||
if (p->GetParameters().at(1) != m_config->ircabotAdmin)
|
||||
{
|
||||
LOG_WARN << "Event_WhoisRegNick failure: requested, but admin changed";
|
||||
return;
|
||||
}
|
||||
|
||||
AdminIRCPanel::identifiedTimestampUpdate(m_config->networkName);
|
||||
|
||||
processAdminCommand(m_adminCommandBuffer);
|
||||
m_adminCommandBuffer.clear();
|
||||
}
|
||||
|
||||
void IRCNetworkClient::processAdminCommand(const QString &text)
|
||||
{
|
||||
QStringList answer;
|
||||
|
|
|
@ -34,7 +34,7 @@ public:
|
|||
IRCNetworkClient(QObject* parent = nullptr);
|
||||
void setConfig(Config::Network*& config);
|
||||
// after config change; voiceGate have effect in run-time automatically
|
||||
void reloadChannelList();
|
||||
uint reloadChannelList();
|
||||
void start();
|
||||
void addNicknameToVoicedGroup(const QString& nickname);
|
||||
|
||||
|
|
Loading…
Reference in New Issue