Hierarchy of /znc commands by Kult [$10] #261

Open
opened 2026-10-05 04:08:19 +02:00 by adam · 9 comments
Owner

The current separate command lists in /znc and in various modules may be hard to use for newbies and for people coming from other bouncers

Kult wrote up this new hierarchy of commands:
https://docs.google.com/spreadsheet/ccc?key=0AjDbfLqX2pk1dGZTQmFtX20zc19qZm5NcllXNjZEbmc#gid=0

So, let's improve it

--- There is a **[$10 open bounty](https://www.bountysource.com/issues/914105-hierarchy-of-znc-commands-by-kult?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github)** on this issue. Add to the bounty at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github).
The current separate command lists in /znc and in various modules may be hard to use for newbies and for people coming from other bouncers Kult wrote up this new hierarchy of commands: https://docs.google.com/spreadsheet/ccc?key=0AjDbfLqX2pk1dGZTQmFtX20zc19qZm5NcllXNjZEbmc#gid=0 So, let's improve it ## <bountysource-plugin> --- There is a **[$10 open bounty](https://www.bountysource.com/issues/914105-hierarchy-of-znc-commands-by-kult?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github)** on this issue. Add to the bounty at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github). </bountysource-plugin> <!-- github-sync-id:19524927 -->
Author
Owner

IMHO both *status and *controlpanel are overloaded with commands. There's overlap between the two, and it's difficult to remember which one provides which command. Instead of making the command hierarchy deeper, an alternative option could be to use logically named receivers; *user(s) for user management, *network(s) for network management, and so on.

IMHO both *status and *controlpanel are overloaded with commands. There's overlap between the two, and it's difficult to remember which one provides which command. Instead of making the command hierarchy deeper, an alternative option could be to use logically named receivers; *user(s) for user management, *network(s) for network management, and so on. <!-- github-comment-id:58795571 -->
Author
Owner

There's overlap between the two, and it's difficult to remember which one provides which command.

👍

*user(s) for user management, *network(s) for network management, and so on.

Do you mean *user controlling yourself and *users for also controlling other users and network controlling current network etc.?

> There's overlap between the two, and it's difficult to remember which one provides which command. :+1: > *user(s) for user management, *network(s) for network management, and so on. Do you mean *user controlling yourself and *users for also controlling other users and network controlling current network etc.? <!-- github-comment-id:58797852 -->
Author
Owner

Do you mean *user controlling yourself and *users for also controlling other users and network controlling current network etc.?

Yeah, exactly. If they would be implemented as modules, *network (get, set...) would be a network module, and *networks (list, add, remove...) would be supposedly a user module.

*user and *network would be convenient for managing your own settings and the current network. You could also load modules without the need of specifying --type=user or --type=network.

> Do you mean *user controlling yourself and *users for also controlling other users and network controlling current network etc.? Yeah, exactly. If they would be implemented as modules, *network (get, set...) would be a network module, and *networks (list, add, remove...) would be supposedly a user module. *user and *network would be convenient for managing your own settings and the current network. You could also load modules without the need of specifying --type=user or --type=network. <!-- github-comment-id:58803522 -->
Author
Owner

So there will be overlap between *status and *user ?

So there will be overlap between *status and *user ? <!-- github-comment-id:58805364 -->
Author
Owner

Why leave duplicate *status commands at all? The amount of commands should be reduced to make it easier to grasp.

Why leave duplicate *status commands at all? The amount of commands should be reduced to make it easier to grasp. <!-- github-comment-id:58819914 -->
Author
Owner

For example, LoadModule needs to be there, if *user module is not loaded.

For example, LoadModule needs to be there, if *user module is not loaded. <!-- github-comment-id:59668684 -->
Author
Owner

They could be static/built-in/unloadable modules or maybe even integrated to core to avoid that.

It's just to get a nice logical hierarchy that is easier to use. It's not that different from Kult's proposal, just avoids having to build hierarchical levels within *status, and should nicely reduce the amount of arguments:

/msg *status defaults set bindhost znc.in

vs.

/msg *user set bindhost znc.in

or

/msg *status networks set $user $network bindhost znc.in

vs.

/msg *network set bindhost znc.in
They could be static/built-in/unloadable modules or maybe even integrated to core to avoid that. It's just to get a nice logical hierarchy that is easier to use. It's not that different from Kult's proposal, just avoids having to build hierarchical levels within *status, and should nicely reduce the amount of arguments: ``` /msg *status defaults set bindhost znc.in vs. /msg *user set bindhost znc.in ``` or ``` /msg *status networks set $user $network bindhost znc.in vs. /msg *network set bindhost znc.in ``` <!-- github-comment-id:60043935 -->
Author
Owner
Related: https://github.com/jpnurmi/znc-admin <!-- github-comment-id:127402275 -->
Author
Owner

Another proposal:

*znc (former *status)

  - Uptime
  - Version

  - Connect [server]
  - Disconnect [message]
  - Jump <network>

  - Attach <#chan|query>
  - Detach <#chan|query>

  - Replay <#chan|query>
  - Clear <#chan|query>


*admin (global)

  - List [filter]
  - Get <variable>
  - Set <variable> <value>
  - Reset <variable>

  - Restart [message]
  - Shutdown [message]
  - Broadcast [message]
  - SaveConfig
  - Rehash

  - AddPort <...>
  - DelPort <...>
  - ListPorts [filter]

  - AddUser <username> <password>
  - DelUser <username>
  - ListUsers [filter]

  - LoadMod <module> [args]
  - ReloadMod <module> [args]
  - UpdateMod <module>
  - UnloadMod <module>
  - ListMods [filter]

  - ListClients [filter]

  - Traffic [filter]


**user

  - List [filter]
  - Get <variable>
  - Set <variable> <value>
  - Reset <variable>

  - CloneUser <user>

  - AddNetwork <network>
  - DelNetwork <network>
  - ListNetworks [filter]

  - ListClients [filter]

  - LoadMod <module> [args]
  - ReloadMod <module> [args]
  - UnloadMod <module>
  - ListMods [filter]

  - Traffic [filter]


**network

  - List [filter]
  - Get <variable>
  - Set <variable> <value>
  - Reset <variable>

  - CloneNetwork <network> [user]

  - Connect [server]
  - Disconnect [message]

  - AddServer <...>
  - DelServer <...>
  - ListServers [filter]

  - ListChans [filter]

  - LoadMod <module> [args]
  - ReloadMod <module> [args]
  - UnloadMod <module>
  - ListMods [filter]

  - Traffic


**#chan

  - List [filter]
  - Get <variable>
  - Set <variable> <value>
  - Reset <variable>


removed:

  - ListAvailMods
  - Topics
  - ListNicks
  - ClearAllBuffers (/msg *znc clearbuffer *)
  - ClearAllChannelBuffers (/msg *znc clearbuffer #*)
  - ClearAllQueryBuffers
  - SetBuffer (/msg **user set chanbuffersize 123)
  - AddBindHost
  - DelBindHost
  - ListBindHosts
  - SetBindHost (/msg **network set bindhost foo.bar)
  - ClearBindHost (/msg **network reset bindhost)
  - SetUserBindHost (/msg **user set bindhost foo.bar)
  - ClearUserBindHost (/msg **user reset bindhost)
  - ShowBindHost (/msg **network get bindhost)
  - ListAllUserNetworks (/msg **user listnetworks)
  - ShowMotd (/msg *admin get motd)
  - AddMotd (/msg *admin set motd foo)
  - SetMotd
  - ClearMotd (/msg *admin reset motd)
  - JumpNetwork (/msg *znc jump <network>)
  - AddCTCP (/msg **user set ctcpreply version foo)
  - DelCTCP (/msg **user set ctcpreply version)
  - ListCTCPs (/msg **user get ctcpreply)
  - AddTrustedServerFingerprint (/msg **network set TrustedServerFingerprint <fp>)
  - DelTrustedServerFingerprint (/msg **network reset TrustedServerFingerprint)
  - ListTrustedServerFingerprints (/msg **network get TrustedServerFingerprint)
Another proposal: ``` *znc (former *status) - Uptime - Version - Connect [server] - Disconnect [message] - Jump <network> - Attach <#chan|query> - Detach <#chan|query> - Replay <#chan|query> - Clear <#chan|query> *admin (global) - List [filter] - Get <variable> - Set <variable> <value> - Reset <variable> - Restart [message] - Shutdown [message] - Broadcast [message] - SaveConfig - Rehash - AddPort <...> - DelPort <...> - ListPorts [filter] - AddUser <username> <password> - DelUser <username> - ListUsers [filter] - LoadMod <module> [args] - ReloadMod <module> [args] - UpdateMod <module> - UnloadMod <module> - ListMods [filter] - ListClients [filter] - Traffic [filter] **user - List [filter] - Get <variable> - Set <variable> <value> - Reset <variable> - CloneUser <user> - AddNetwork <network> - DelNetwork <network> - ListNetworks [filter] - ListClients [filter] - LoadMod <module> [args] - ReloadMod <module> [args] - UnloadMod <module> - ListMods [filter] - Traffic [filter] **network - List [filter] - Get <variable> - Set <variable> <value> - Reset <variable> - CloneNetwork <network> [user] - Connect [server] - Disconnect [message] - AddServer <...> - DelServer <...> - ListServers [filter] - ListChans [filter] - LoadMod <module> [args] - ReloadMod <module> [args] - UnloadMod <module> - ListMods [filter] - Traffic **#chan - List [filter] - Get <variable> - Set <variable> <value> - Reset <variable> removed: - ListAvailMods - Topics - ListNicks - ClearAllBuffers (/msg *znc clearbuffer *) - ClearAllChannelBuffers (/msg *znc clearbuffer #*) - ClearAllQueryBuffers - SetBuffer (/msg **user set chanbuffersize 123) - AddBindHost - DelBindHost - ListBindHosts - SetBindHost (/msg **network set bindhost foo.bar) - ClearBindHost (/msg **network reset bindhost) - SetUserBindHost (/msg **user set bindhost foo.bar) - ClearUserBindHost (/msg **user reset bindhost) - ShowBindHost (/msg **network get bindhost) - ListAllUserNetworks (/msg **user listnetworks) - ShowMotd (/msg *admin get motd) - AddMotd (/msg *admin set motd foo) - SetMotd - ClearMotd (/msg *admin reset motd) - JumpNetwork (/msg *znc jump <network>) - AddCTCP (/msg **user set ctcpreply version foo) - DelCTCP (/msg **user set ctcpreply version) - ListCTCPs (/msg **user get ctcpreply) - AddTrustedServerFingerprint (/msg **network set TrustedServerFingerprint <fp>) - DelTrustedServerFingerprint (/msg **network reset TrustedServerFingerprint) - ListTrustedServerFingerprints (/msg **network get TrustedServerFingerprint) ``` <!-- github-comment-id:127802836 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/znc#261