openpkg.rc 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. ##
  2. ## ~/.irc/openpkg -- ircII run-commands for OpenPKG Foundation settings
  3. ## Copyright (c) 2005 Ralf S. Engelschall <rse@engelschall.com>
  4. ##
  5. # Banner
  6. ^set display off
  7. echo *** Loading ircII configuration: openpkg (OpenPKG Foundation)
  8. # Convenience Ratbox Services Login
  9. # Usage: /login [[[<nickname>] <username>] <password>]
  10. alias login {
  11. # determine command line arguments
  12. if ([$2] != [] && [$3] == []) {
  13. ^assign login.nickname $0
  14. ^assign login.username $1
  15. ^assign login.password $2
  16. }
  17. if ([$1] != [] && [$2] == []) {
  18. ^assign login.username $0
  19. ^assign login.password $1
  20. }
  21. if ([$0] != [] && [$1] == []) {
  22. ^assign login.password $0
  23. }
  24. # optionally determine nickname
  25. if ([$login.nickname] == []) {
  26. ^assign login.nickname $IRC_LOGIN_NICKNAME
  27. if ([$login.nickname] == []) {
  28. ^assign login.nickname $IRCNICK
  29. if ([$login.nickname] == []) {
  30. ^assign login.nickname $N
  31. }
  32. }
  33. }
  34. if ([$login.nickname] == []) {
  35. echo *** login:ERROR: IRC authentication nickname not known
  36. echo *** login:ERROR: (set shell $IRC_LOGIN_NICKNAME, shell $IRCNICK, ircII $login.nickname or use /nick)
  37. }
  38. # optionally determine username
  39. if ([$login.username] == []) {
  40. ^assign login.username $IRC_LOGIN_USERNAME
  41. if ([$login.username] == []) {
  42. ^assign login.username $IRCUSER
  43. if ([$login.username] == []) {
  44. ^assign login.username $login.nickname
  45. }
  46. }
  47. }
  48. if ([$login.username] == []) {
  49. echo *** login:ERROR: IRC authentication username not known
  50. echo *** login:ERROR: (set shell $IRC_LOGIN_USERNAME, shell $IRCUSER, or ircII $login.username)
  51. }
  52. # optionally determine password
  53. if ([$login.password] == []) {
  54. ^assign login.password $IRC_LOGIN_PASSWORD
  55. if ([$login.password] == []) {
  56. ^assign login.password $IRCPASS
  57. }
  58. }
  59. if ([$login.password] == []) {
  60. echo *** login:ERROR: IRC authentication password not known
  61. echo *** login:ERROR: (set shell $IRC_LOGIN_PASSWORD, shell $IRCPASS, or ircII $login.password)
  62. }
  63. if ([$login.nickname] == [] || [$login.username] == [] || [$login.password] == []) {
  64. echo *** login:ERROR: Unable to authenticate you because of missing information.
  65. __login_cleanup
  66. }{
  67. __login_step1
  68. }
  69. }
  70. alias __login_step1 {
  71. # communicating to UserServ
  72. if ([$login.nickname] == [$login.username]) {
  73. echo *** login: authenticating to UserServ with username ${login.username}
  74. }
  75. ^msg USERSERV login $login.username $login.password
  76. if ([$N] != [$login.nickname]) {
  77. timer 2 __login_step2
  78. }{
  79. __login_cleanup
  80. }
  81. }
  82. alias __login_step2 {
  83. # communicating to NickServ
  84. echo *** login: requesting to NickServ the regaining of nickname ${login.nickname}
  85. ^msg NICKSERV regain $login.nickname
  86. timer 2 __login_step3
  87. }
  88. alias __login_step3 {
  89. # communicating to IRC
  90. echo *** login: resurrecting nickname ${login.nickname}
  91. nick $login.nickname
  92. timer 2 nick
  93. __login_cleanup
  94. }
  95. alias __login_cleanup {
  96. ^assign -login.nickname
  97. ^assign -login.username
  98. ^assign -login.password
  99. }
  100. # Flexible Channel Joining
  101. # Usage: /join [<channel>]
  102. alias join {
  103. ^assign alias.join.channel $0
  104. ^on -473 "*Cannot join channel*+i*" {
  105. msg CHANSERV invite $alias.join.channel
  106. timer 2 __join_repeat
  107. }
  108. //join $alias.join.channel
  109. timer 4 __join_cleanup
  110. }
  111. alias __join_repeat {
  112. ^on -473 -"*Cannot join channel*+i*"
  113. //^join $alias.join.channel
  114. }
  115. alias __join_cleanup {
  116. ^assign -alias.join.channel
  117. ^on -473 -"*Cannot join channel*+i*"
  118. }
  119. # Convenience Operator Privilege Regaining
  120. # Usage: /opme
  121. alias opme {
  122. msg CHANSERV op $C
  123. }
  124. # Convenience Voice Management
  125. # (for moderated channels)
  126. # Usage: /voice [[+]|- <nickname>]
  127. alias voice {
  128. if ([$0] == []) {
  129. if (#alias.voice.nick == 0) {
  130. echo *** voice: (none)
  131. }{
  132. @ tmp = [$alias.voice.nick]
  133. while (#tmp > 0) {
  134. @ nick = pop(tmp);
  135. echo *** voice: granted to $nick
  136. }
  137. ^assign -tmp
  138. ^assign -nick
  139. }
  140. }{
  141. ^assign op +
  142. ^assign nick $0
  143. if (left(1 $nick) == [-] || left(1 $nick) == [+]) {
  144. ^assign op $left(1 $nick)
  145. ^assign nick $strip([+-] $nick)
  146. }
  147. if ([$op] == [+]) {
  148. echo *** voice: granting to $nick
  149. mode $C +v $nick
  150. @ alias.voice.nick = pluck(alias.voice.nick $nick)
  151. @ alias.voice.nick = [$alias.voice.nick $nick]
  152. }{
  153. if ([$nick] = [all]) {
  154. @ tmp = [$alias.voice.nick]
  155. while (#tmp > 0) {
  156. @ nick = pop(tmp);
  157. echo *** voice: taking from $nick
  158. mode $C -v $nick
  159. }
  160. ^assign -tmp
  161. ^assign -nick
  162. @ alias.voice.nick = []
  163. }{
  164. echo *** voice: taking from $nick
  165. mode $C -v $nick
  166. @ alias.voice.nick = pluck(alias.voice.nick $nick)
  167. }
  168. }
  169. }
  170. }
  171. # Convenience All-In-One Session Setup
  172. alias session {
  173. clear
  174. echo ::: session: preparing main window
  175. window name main
  176. echo ::: session: logging in
  177. login
  178. echo ::: session: spawning other windows
  179. timer 2 __session_step2
  180. timer 8 __session_step3
  181. timer 14 __session_step4
  182. }
  183. alias __session_step2 {
  184. window new name foundation
  185. window refnum foundation
  186. clear
  187. echo ::: session: preparing foundation window
  188. timer 1 join \#foundation
  189. }
  190. alias __session_step3 {
  191. window new name community
  192. window refnum community
  193. clear
  194. echo ::: session: preparing community window
  195. timer 1 join \#community
  196. }
  197. alias __session_step4 {
  198. window refnum main
  199. window balance
  200. echo ::: session: established.
  201. list
  202. join
  203. }
  204. # End of Configuration
  205. ^set display on