mirror of
https://github.com/znc/znc.git
synced 2026-03-28 17:42:41 +01:00
Revert 3382543917 and
00ddcd302f
ListChans for now will behave as before, and ShowChan isn't currently
needed.
See #914
This commit is contained in:
@@ -434,80 +434,6 @@ void CClient::UserCommand(CString& sLine) {
|
||||
"] channels matching [" + sPatterns + "]");
|
||||
PutStatus("Disabled [" + CString(uDisabled) + "] channels");
|
||||
}
|
||||
} else if (sCommand.Equals("SHOWCHAN")) {
|
||||
if (!m_pNetwork) {
|
||||
PutStatus(
|
||||
"You must be connected with a network to use this command");
|
||||
return;
|
||||
}
|
||||
|
||||
CString sChan = sLine.Token(1, true);
|
||||
if (sChan.empty()) {
|
||||
PutStatus("Usage: ShowChan <#chan>");
|
||||
return;
|
||||
}
|
||||
|
||||
CChan* pChan = m_pNetwork->FindChan(sChan);
|
||||
if (!pChan) {
|
||||
PutStatus("No such channel [" + sChan + "]");
|
||||
return;
|
||||
}
|
||||
sChan = pChan->GetPermStr() + pChan->GetName();
|
||||
CString sStatus = pChan->IsOn()
|
||||
? (pChan->IsDetached() ? "Detached" : "Joined")
|
||||
: (pChan->IsDisabled() ? "Disabled" : "Trying");
|
||||
|
||||
CTable Table;
|
||||
Table.AddColumn(sChan);
|
||||
Table.AddColumn(sStatus);
|
||||
|
||||
Table.AddRow();
|
||||
Table.SetCell(sChan, "InConfig");
|
||||
Table.SetCell(sStatus, CString(pChan->InConfig() ? "yes" : "no"));
|
||||
|
||||
Table.AddRow();
|
||||
Table.SetCell(sChan, "Buffer");
|
||||
Table.SetCell(
|
||||
sStatus,
|
||||
CString(pChan->GetBuffer().Size()) + "/" +
|
||||
CString(pChan->GetBufferCount()) +
|
||||
CString(pChan->HasBufferCountSet() ? "" : " (default)"));
|
||||
|
||||
Table.AddRow();
|
||||
Table.SetCell(sChan, "AutoClearChanBuffer");
|
||||
Table.SetCell(
|
||||
sStatus,
|
||||
CString(pChan->AutoClearChanBuffer() ? "yes" : "no") +
|
||||
CString(pChan->HasAutoClearChanBufferSet() ? ""
|
||||
: " (default)"));
|
||||
|
||||
if (pChan->IsOn()) {
|
||||
Table.AddRow();
|
||||
Table.SetCell(sChan, "Topic");
|
||||
Table.SetCell(sStatus, pChan->GetTopic());
|
||||
|
||||
Table.AddRow();
|
||||
Table.SetCell(sChan, "Modes");
|
||||
Table.SetCell(sStatus, pChan->GetModeString());
|
||||
|
||||
Table.AddRow();
|
||||
Table.SetCell(sChan, "Users");
|
||||
|
||||
VCString vsUsers;
|
||||
vsUsers.push_back("All: " + CString(pChan->GetNickCount()));
|
||||
|
||||
CIRCSock* pIRCSock = m_pNetwork->GetIRCSock();
|
||||
const CString& sPerms = pIRCSock ? pIRCSock->GetPerms() : "";
|
||||
map<char, unsigned int> mPerms = pChan->GetPermCounts();
|
||||
for (char cPerm : sPerms) {
|
||||
vsUsers.push_back(CString(cPerm) + ": " +
|
||||
CString(mPerms[cPerm]));
|
||||
}
|
||||
Table.SetCell(sStatus,
|
||||
CString(", ").Join(vsUsers.begin(), vsUsers.end()));
|
||||
}
|
||||
|
||||
PutStatus(Table);
|
||||
} else if (sCommand.Equals("LISTCHANS")) {
|
||||
if (!m_pNetwork) {
|
||||
PutStatus(
|
||||
@@ -541,6 +467,8 @@ void CClient::UserCommand(CString& sLine) {
|
||||
}
|
||||
|
||||
const vector<CChan*>& vChans = pNetwork->GetChans();
|
||||
CIRCSock* pIRCSock = pNetwork->GetIRCSock();
|
||||
CString sPerms = pIRCSock ? pIRCSock->GetPerms() : "";
|
||||
|
||||
if (vChans.empty()) {
|
||||
PutStatus("There are no channels defined.");
|
||||
@@ -550,17 +478,40 @@ void CClient::UserCommand(CString& sLine) {
|
||||
CTable Table;
|
||||
Table.AddColumn("Name");
|
||||
Table.AddColumn("Status");
|
||||
Table.AddColumn("Conf");
|
||||
Table.AddColumn("Buf");
|
||||
Table.AddColumn("Clear");
|
||||
Table.AddColumn("Modes");
|
||||
Table.AddColumn("Users");
|
||||
|
||||
for (char cPerm : sPerms) {
|
||||
Table.AddColumn(CString(cPerm));
|
||||
}
|
||||
|
||||
unsigned int uNumDetached = 0, uNumDisabled = 0, uNumJoined = 0;
|
||||
|
||||
for (const CChan* pChan : vChans) {
|
||||
Table.AddRow();
|
||||
Table.SetCell("Name", pChan->GetPermStr() + pChan->GetName());
|
||||
Table.SetCell("Status",
|
||||
pChan->IsOn()
|
||||
? (pChan->IsDetached() ? "Detached" : "Joined")
|
||||
: (pChan->IsDisabled() ? "Disabled" : "Trying"));
|
||||
Table.SetCell("Conf", CString(pChan->InConfig() ? "yes" : ""));
|
||||
Table.SetCell("Buf",
|
||||
CString(pChan->HasBufferCountSet() ? "*" : "") +
|
||||
CString(pChan->GetBufferCount()));
|
||||
Table.SetCell(
|
||||
"Status",
|
||||
((pChan->IsOn())
|
||||
? ((pChan->IsDetached()) ? "Detached" : "Joined")
|
||||
: ((pChan->IsDisabled()) ? "Disabled" : "Trying")));
|
||||
"Clear",
|
||||
CString(pChan->HasAutoClearChanBufferSet() ? "*" : "") +
|
||||
CString(pChan->AutoClearChanBuffer() ? "yes" : ""));
|
||||
Table.SetCell("Modes", pChan->GetModeString());
|
||||
Table.SetCell("Users", CString(pChan->GetNickCount()));
|
||||
|
||||
std::map<char, unsigned int> mPerms = pChan->GetPermCounts();
|
||||
for (char cPerm : sPerms) {
|
||||
Table.SetCell(CString(cPerm), CString(mPerms[cPerm]));
|
||||
}
|
||||
|
||||
if (pChan->IsDetached()) uNumDetached++;
|
||||
if (pChan->IsOn()) uNumJoined++;
|
||||
@@ -1768,8 +1719,6 @@ void CClient::HelpUser(const CString& sFilter) {
|
||||
"List all trusted server SSL certificates of current IRC network.",
|
||||
sFilter);
|
||||
|
||||
AddCommandHelp(Table, "ShowChan", "<#chan>", "Show channel details",
|
||||
sFilter);
|
||||
AddCommandHelp(Table, "EnableChan", "<#chans>", "Enable channels", sFilter);
|
||||
AddCommandHelp(Table, "DisableChan", "<#chans>", "Disable channels",
|
||||
sFilter);
|
||||
|
||||
Reference in New Issue
Block a user