mirror of
https://github.com/znc/znc.git
synced 2026-05-08 14:24:45 +02:00
Refactor duplicate code in crypt module. (#1386)
This commit is contained in:
+39
-97
@@ -232,109 +232,15 @@ class CCryptMod : public CModule {
|
||||
}
|
||||
|
||||
EModRet OnUserMsg(CString& sTarget, CString& sMessage) override {
|
||||
sTarget.TrimPrefix(NickPrefix());
|
||||
|
||||
if (sMessage.TrimPrefix("``")) {
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
MCString::iterator it = FindNV(sTarget.AsLower());
|
||||
|
||||
if (it != EndNV()) {
|
||||
CChan* pChan = GetNetwork()->FindChan(sTarget);
|
||||
CString sNickMask = GetNetwork()->GetIRCNick().GetNickMask();
|
||||
if (pChan) {
|
||||
if (!pChan->AutoClearChanBuffer())
|
||||
pChan->AddBuffer(":" + NickPrefix() + _NAMEDFMT(sNickMask) +
|
||||
" PRIVMSG " + _NAMEDFMT(sTarget) +
|
||||
" :{text}",
|
||||
sMessage);
|
||||
GetUser()->PutUser(":" + NickPrefix() + sNickMask +
|
||||
" PRIVMSG " + sTarget + " :" + sMessage,
|
||||
nullptr, GetClient());
|
||||
}
|
||||
|
||||
CString sMsg = MakeIvec() + sMessage;
|
||||
sMsg.Encrypt(it->second);
|
||||
sMsg.Base64Encode();
|
||||
sMsg = "+OK *" + sMsg;
|
||||
|
||||
PutIRC("PRIVMSG " + sTarget + " :" + sMsg);
|
||||
return HALTCORE;
|
||||
}
|
||||
|
||||
return CONTINUE;
|
||||
return FilterOutgoing(sTarget, sMessage, "PRIVMSG", "", "");
|
||||
}
|
||||
|
||||
EModRet OnUserNotice(CString& sTarget, CString& sMessage) override {
|
||||
sTarget.TrimPrefix(NickPrefix());
|
||||
|
||||
if (sMessage.TrimPrefix("``")) {
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
MCString::iterator it = FindNV(sTarget.AsLower());
|
||||
|
||||
if (it != EndNV()) {
|
||||
CChan* pChan = GetNetwork()->FindChan(sTarget);
|
||||
CString sNickMask = GetNetwork()->GetIRCNick().GetNickMask();
|
||||
if (pChan) {
|
||||
if (!pChan->AutoClearChanBuffer())
|
||||
pChan->AddBuffer(":" + NickPrefix() + _NAMEDFMT(sNickMask) +
|
||||
" NOTICE " + _NAMEDFMT(sTarget) +
|
||||
" :{text}",
|
||||
sMessage);
|
||||
GetUser()->PutUser(":" + NickPrefix() + sNickMask + " NOTICE " +
|
||||
sTarget + " :" + sMessage,
|
||||
nullptr, GetClient());
|
||||
}
|
||||
|
||||
CString sMsg = MakeIvec() + sMessage;
|
||||
sMsg.Encrypt(it->second);
|
||||
sMsg.Base64Encode();
|
||||
sMsg = "+OK *" + sMsg;
|
||||
|
||||
PutIRC("NOTICE " + sTarget + " :" + sMsg);
|
||||
return HALTCORE;
|
||||
}
|
||||
|
||||
return CONTINUE;
|
||||
return FilterOutgoing(sTarget, sMessage, "NOTICE", "", "");
|
||||
}
|
||||
|
||||
EModRet OnUserAction(CString& sTarget, CString& sMessage) override {
|
||||
sTarget.TrimPrefix(NickPrefix());
|
||||
|
||||
if (sMessage.TrimPrefix("``")) {
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
MCString::iterator it = FindNV(sTarget.AsLower());
|
||||
|
||||
if (it != EndNV()) {
|
||||
CChan* pChan = GetNetwork()->FindChan(sTarget);
|
||||
CString sNickMask = GetNetwork()->GetIRCNick().GetNickMask();
|
||||
if (pChan) {
|
||||
if (!pChan->AutoClearChanBuffer())
|
||||
pChan->AddBuffer(":" + NickPrefix() + _NAMEDFMT(sNickMask) +
|
||||
" PRIVMSG " + _NAMEDFMT(sTarget) +
|
||||
" :\001ACTION {text}\001",
|
||||
sMessage);
|
||||
GetUser()->PutUser(":" + NickPrefix() + sNickMask +
|
||||
" PRIVMSG " + sTarget + " :\001ACTION " +
|
||||
sMessage + "\001",
|
||||
nullptr, GetClient());
|
||||
}
|
||||
|
||||
CString sMsg = MakeIvec() + sMessage;
|
||||
sMsg.Encrypt(it->second);
|
||||
sMsg.Base64Encode();
|
||||
sMsg = "+OK *" + sMsg;
|
||||
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001ACTION " + sMsg + "\001");
|
||||
return HALTCORE;
|
||||
}
|
||||
|
||||
return CONTINUE;
|
||||
return FilterOutgoing(sTarget, sMessage, "PRIVMSG", "\001ACTION ", "\001");
|
||||
}
|
||||
|
||||
EModRet OnUserTopic(CString& sTarget, CString& sMessage) override {
|
||||
@@ -447,6 +353,42 @@ class CCryptMod : public CModule {
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
EModRet FilterOutgoing(CString& sTarget, CString& sMessage, const CString& sType, const CString& sPreMsg, const CString& sPostMsg) {
|
||||
sTarget.TrimPrefix(NickPrefix());
|
||||
|
||||
if (sMessage.TrimPrefix("``")) {
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
MCString::iterator it = FindNV(sTarget.AsLower());
|
||||
|
||||
if (it != EndNV()) {
|
||||
CChan* pChan = GetNetwork()->FindChan(sTarget);
|
||||
CString sNickMask = GetNetwork()->GetIRCNick().GetNickMask();
|
||||
if (pChan) {
|
||||
if (!pChan->AutoClearChanBuffer())
|
||||
pChan->AddBuffer(":" + NickPrefix() + _NAMEDFMT(sNickMask) +
|
||||
" " + sType + " " + _NAMEDFMT(sTarget) +
|
||||
" :" + sPreMsg + "{text}" + sPostMsg,
|
||||
sMessage);
|
||||
GetUser()->PutUser(":" + NickPrefix() + sNickMask +
|
||||
" " + sType + " " + sTarget + " :" +
|
||||
sPreMsg + sMessage + sPostMsg,
|
||||
nullptr, GetClient());
|
||||
}
|
||||
|
||||
CString sMsg = MakeIvec() + sMessage;
|
||||
sMsg.Encrypt(it->second);
|
||||
sMsg.Base64Encode();
|
||||
sMsg = "+OK *" + sMsg;
|
||||
|
||||
PutIRC(sType + " " + sTarget + " :" + sPreMsg + sMsg + sPostMsg);
|
||||
return HALTCORE;
|
||||
}
|
||||
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
void FilterIncoming(const CString& sTarget, CNick& Nick,
|
||||
CString& sMessage) {
|
||||
if (sMessage.TrimPrefix("+OK *")) {
|
||||
|
||||
Reference in New Issue
Block a user