Posted to tcl by hypnotoad at Wed Feb 13 00:49:16 GMT 2019view raw

  1. proc znc:request { nick host handle chan text } {
  2. global scriptCommandPrefix zncPasswordSecurityLevel zncPasswordLength zncnetworkname zncrealname zncquitmsg zncvhost zncDefaultUserModules zncDefaultNetworkModules usePreconfiguredNetworks
  3. set username [lindex $text 0]
  4. set email [lindex $text 1]
  5. if { [llength $email] < 2 || $email == ""} {
  6. puthelp "privmsg $chan :Syntax: \"${scriptCommandPrefix}request \<username> \<email> \<networkname> \<server> \<\+\port>\""
  7. return
  8. }
  9. if {[string tolower $networkname] in $bannednetworks} {
  10. putserv "PRIVMSG $chan :The network \002$networkname\002 is BANNED."
  11. return
  12. }
  13. set password [znc:helpfunction:generatePassword $zncPasswordSecurityLevel $zncPasswordLength ]
  14. if {[ adduser $username ]} {
  15. setuser $username COMMENT $email
  16. chattr $username +ZC
  17. znc:controlpanel:AddUser $username $password
  18. znc:controlpanel:Set realname $username $zncrealname
  19. znc:controlpanel:Set quitmsg $username $zncquitmsg
  20. znc:controlpanel:Set bindhost $username $zncvhost
  21. znc:blockuser:block $username
  22. znc:helpfunction:loadModuleList $username $zncDefaultUserModules
  23. } else {
  24. puthelp "privmsg $chan :Sry, but your wanted username is already in use..."
  25. }
  26. if {[llength $text]==2} return
  27. set networkname [lindex $text 2]
  28. set server [lindex $text 3]
  29. set port [lindex $text 4]
  30.  
  31. set preServer ""
  32. if { $usePreconfiguredNetworks } {
  33. set preServer [array names knownNetworks -exact [string tolower $networkname]]
  34. }
  35. znc:controlpanel:AddNetwork $username $networkname
  36. znc:helpfunction:loadNetModuleList $username $networkname $zncDefaultNetworkModules
  37. if { $preServer != "" } {
  38. foreach {networkname networkserver} [array get knownNetworks [string tolower $networkname]] {
  39. znc:controlpanel:AddServer $username $networkname $networkserver
  40. }
  41. } else {
  42. if {$port eq {} } {
  43. puthelp "privmsg $chan :Error: port is not known for $server you will have to provide it"
  44. return
  45. }
  46. znc:controlpanel:AddServer $username $networkname "$server $port"
  47. }
  48. puthelp "privmsg $chan :Success! Your new BNC (with ident: $username) will now be handled by a staff member. If your request is accepted, our bot will e-mail you with your new ZNC details and with login information."
  49. }