mirror of
https://github.com/znc/znc.git
synced 2026-07-02 16:02:02 +02:00
CClient: share the chan matching code
This commit is contained in:
@@ -30,6 +30,7 @@ class CIRCNetwork;
|
||||
class CIRCSock;
|
||||
class CClient;
|
||||
class CMessage;
|
||||
class CChan;
|
||||
// !Forward Declarations
|
||||
|
||||
class CAuthBase {
|
||||
@@ -256,6 +257,8 @@ private:
|
||||
void AddBuffer(const T& Message);
|
||||
void EchoMessage(const CMessage& Message);
|
||||
|
||||
std::set<CChan*> MatchChans(const CString& sPatterns) const;
|
||||
|
||||
protected:
|
||||
bool m_bGotPass;
|
||||
bool m_bGotNick;
|
||||
|
||||
+14
-9
@@ -361,15 +361,7 @@ void CClient::ReadLine(const CString& sData) {
|
||||
return;
|
||||
}
|
||||
|
||||
VCString vsChans;
|
||||
sPatterns.Replace(",", " ");
|
||||
sPatterns.Split(" ", vsChans, false, "", "", true, true);
|
||||
|
||||
set<CChan*> sChans;
|
||||
for (const CString& sChan : vsChans) {
|
||||
vector<CChan*> vChans = m_pNetwork->FindChans(sChan);
|
||||
sChans.insert(vChans.begin(), vChans.end());
|
||||
}
|
||||
set<CChan*> sChans = MatchChans(sPatterns);
|
||||
|
||||
unsigned int uDetached = 0;
|
||||
for (CChan* pChan : sChans) {
|
||||
@@ -1062,3 +1054,16 @@ void CClient::EchoMessage(const CMessage& Message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set<CChan*> CClient::MatchChans(const CString& sPatterns) const
|
||||
{
|
||||
VCString vsPatterns;
|
||||
sPatterns.Replace_n(",", " ").Split(" ", vsPatterns, false, "", "", true, true);
|
||||
|
||||
set<CChan*> sChans;
|
||||
for (const CString& sPattern : vsPatterns) {
|
||||
vector<CChan*> vChans = m_pNetwork->FindChans(sPattern);
|
||||
sChans.insert(vChans.begin(), vChans.end());
|
||||
}
|
||||
return sChans;
|
||||
}
|
||||
|
||||
+3
-27
@@ -120,15 +120,7 @@ void CClient::UserCommand(CString& sLine) {
|
||||
return;
|
||||
}
|
||||
|
||||
VCString vsChans;
|
||||
sPatterns.Replace(",", " ");
|
||||
sPatterns.Split(" ", vsChans, false, "", "", true, true);
|
||||
|
||||
set<CChan*> sChans;
|
||||
for (const CString& sChan : vsChans) {
|
||||
vector<CChan*> vChans = m_pNetwork->FindChans(sChan);
|
||||
sChans.insert(vChans.begin(), vChans.end());
|
||||
}
|
||||
set<CChan*> sChans = MatchChans(sPatterns);
|
||||
|
||||
unsigned int uDetached = 0;
|
||||
for (CChan* pChan : sChans) {
|
||||
@@ -371,15 +363,7 @@ void CClient::UserCommand(CString& sLine) {
|
||||
if (sPatterns.empty()) {
|
||||
PutStatus("Usage: EnableChan <#chans>");
|
||||
} else {
|
||||
VCString vsChans;
|
||||
sPatterns.Replace(",", " ");
|
||||
sPatterns.Split(" ", vsChans, false, "", "", true, true);
|
||||
|
||||
set<CChan*> sChans;
|
||||
for (const CString& sChan : vsChans) {
|
||||
vector<CChan*> vChans = m_pNetwork->FindChans(sChan);
|
||||
sChans.insert(vChans.begin(), vChans.end());
|
||||
}
|
||||
set<CChan*> sChans = MatchChans(sPatterns);
|
||||
|
||||
unsigned int uEnabled = 0;
|
||||
for (CChan* pChan : sChans) {
|
||||
@@ -403,15 +387,7 @@ void CClient::UserCommand(CString& sLine) {
|
||||
if (sPatterns.empty()) {
|
||||
PutStatus("Usage: DisableChan <#chans>");
|
||||
} else {
|
||||
VCString vsChans;
|
||||
sPatterns.Replace(",", " ");
|
||||
sPatterns.Split(" ", vsChans, false, "", "", true, true);
|
||||
|
||||
set<CChan*> sChans;
|
||||
for (const CString& sChan : vsChans) {
|
||||
vector<CChan*> vChans = m_pNetwork->FindChans(sChan);
|
||||
sChans.insert(vChans.begin(), vChans.end());
|
||||
}
|
||||
set<CChan*> sChans = MatchChans(sPatterns);
|
||||
|
||||
unsigned int uDisabled = 0;
|
||||
for (CChan* pChan : sChans) {
|
||||
|
||||
Reference in New Issue
Block a user