mirror of
https://github.com/znc/znc.git
synced 2026-03-28 17:42:41 +01:00
Perform: Also parse stuff like "/msg foo bar" via webmods
Signed-off-by: Uli Schlachter <psychon@znc.in> git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2231 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
@@ -15,6 +15,26 @@ public:
|
|||||||
|
|
||||||
virtual ~CPerform() {}
|
virtual ~CPerform() {}
|
||||||
|
|
||||||
|
CString ParsePerform(const CString& sArg) {
|
||||||
|
CString sPerf = sArg;
|
||||||
|
|
||||||
|
if (sPerf.Left(1) == "/")
|
||||||
|
sPerf.LeftChomp();
|
||||||
|
|
||||||
|
if (sPerf.Token(0).Equals("MSG")) {
|
||||||
|
sPerf = "PRIVMSG " + sPerf.Token(1, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((sPerf.Token(0).Equals("PRIVMSG") ||
|
||||||
|
sPerf.Token(0).Equals("NOTICE")) &&
|
||||||
|
sPerf.Token(2).Left(1) != ":") {
|
||||||
|
sPerf = sPerf.Token(0) + " " + sPerf.Token(1)
|
||||||
|
+ " :" + sPerf.Token(2, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return sPerf;
|
||||||
|
}
|
||||||
|
|
||||||
virtual bool OnLoad(const CString& sArgs, CString& sMessage) {
|
virtual bool OnLoad(const CString& sArgs, CString& sMessage) {
|
||||||
GetNV("Perform").Split("\n", m_vPerform, false);
|
GetNV("Perform").Split("\n", m_vPerform, false);
|
||||||
|
|
||||||
@@ -31,20 +51,7 @@ public:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sPerf.Left(1) == "/")
|
m_vPerform.push_back(ParsePerform(sPerf));
|
||||||
sPerf.LeftChomp();
|
|
||||||
|
|
||||||
if (sPerf.Token(0).Equals("MSG")) {
|
|
||||||
sPerf = "PRIVMSG " + sPerf.Token(1, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((sPerf.Token(0).Equals("PRIVMSG") ||
|
|
||||||
sPerf.Token(0).Equals("NOTICE")) &&
|
|
||||||
sPerf.Token(2).Left(1) != ":") {
|
|
||||||
sPerf = sPerf.Token(0) + " " + sPerf.Token(1)
|
|
||||||
+ " :" + sPerf.Token(2, true);
|
|
||||||
}
|
|
||||||
m_vPerform.push_back(sPerf);
|
|
||||||
PutModule("Added!");
|
PutModule("Added!");
|
||||||
Save();
|
Save();
|
||||||
} else if (sCmdName == "del") {
|
} else if (sCmdName == "del") {
|
||||||
@@ -98,7 +105,13 @@ public:
|
|||||||
|
|
||||||
virtual bool OnWebRequest(CWebSock& WebSock, const CString& sPageName, CTemplate& Tmpl) {
|
virtual bool OnWebRequest(CWebSock& WebSock, const CString& sPageName, CTemplate& Tmpl) {
|
||||||
if (WebSock.IsPost()) {
|
if (WebSock.IsPost()) {
|
||||||
WebSock.GetRawParam("perform", true).Split("\n", m_vPerform, false);
|
VCString vsPerf;
|
||||||
|
WebSock.GetRawParam("perform", true).Split("\n", vsPerf, false);
|
||||||
|
m_vPerform.clear();
|
||||||
|
|
||||||
|
for (VCString::iterator it = vsPerf.begin(); it != vsPerf.end(); ++it)
|
||||||
|
m_vPerform.push_back(ParsePerform(*it));
|
||||||
|
|
||||||
Save();
|
Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user