mod_spox 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. data/CHANGELOG +2 -0
  2. data/INSTALL +9 -0
  3. data/README +33 -0
  4. data/bin/mod_spox +60 -0
  5. data/data/mod_spox/extras/Tester.rb +14 -0
  6. data/data/mod_spox/plugins/Authenticator.rb +245 -0
  7. data/data/mod_spox/plugins/BotNick.rb +18 -0
  8. data/data/mod_spox/plugins/Initializer.rb +41 -0
  9. data/data/mod_spox/plugins/Joiner.rb +13 -0
  10. data/data/mod_spox/plugins/Parter.rb +22 -0
  11. data/data/mod_spox/plugins/PluginLoader.rb +136 -0
  12. data/data/mod_spox/plugins/Ponger.rb +14 -0
  13. data/data/mod_spox/plugins/Quitter.rb +14 -0
  14. data/lib/mod_spox/Action.rb +73 -0
  15. data/lib/mod_spox/BaseConfig.rb +48 -0
  16. data/lib/mod_spox/Bot.rb +472 -0
  17. data/lib/mod_spox/BotConfig.rb +54 -0
  18. data/lib/mod_spox/ConfigurationWizard.rb +178 -0
  19. data/lib/mod_spox/Database.rb +25 -0
  20. data/lib/mod_spox/Exceptions.rb +35 -0
  21. data/lib/mod_spox/Helpers.rb +35 -0
  22. data/lib/mod_spox/Loader.rb +79 -0
  23. data/lib/mod_spox/Logger.rb +31 -0
  24. data/lib/mod_spox/MessageFactory.rb +73 -0
  25. data/lib/mod_spox/Monitors.rb +59 -0
  26. data/lib/mod_spox/Pipeline.rb +148 -0
  27. data/lib/mod_spox/Plugin.rb +18 -0
  28. data/lib/mod_spox/PluginManager.rb +105 -0
  29. data/lib/mod_spox/Pool.rb +50 -0
  30. data/lib/mod_spox/Socket.rb +171 -0
  31. data/lib/mod_spox/Timer.rb +138 -0
  32. data/lib/mod_spox/handlers/BadNick.rb +16 -0
  33. data/lib/mod_spox/handlers/Bounce.rb +15 -0
  34. data/lib/mod_spox/handlers/Created.rb +16 -0
  35. data/lib/mod_spox/handlers/Handler.rb +31 -0
  36. data/lib/mod_spox/handlers/Invite.rb +19 -0
  37. data/lib/mod_spox/handlers/Join.rb +30 -0
  38. data/lib/mod_spox/handlers/Kick.rb +24 -0
  39. data/lib/mod_spox/handlers/LuserChannels.rb +16 -0
  40. data/lib/mod_spox/handlers/LuserClient.rb +16 -0
  41. data/lib/mod_spox/handlers/LuserMe.rb +14 -0
  42. data/lib/mod_spox/handlers/LuserOp.rb +16 -0
  43. data/lib/mod_spox/handlers/LuserUnknown.rb +16 -0
  44. data/lib/mod_spox/handlers/Mode.rb +47 -0
  45. data/lib/mod_spox/handlers/Motd.rb +30 -0
  46. data/lib/mod_spox/handlers/MyInfo.rb +21 -0
  47. data/lib/mod_spox/handlers/Names.rb +54 -0
  48. data/lib/mod_spox/handlers/Nick.rb +24 -0
  49. data/lib/mod_spox/handlers/NickInUse.rb +16 -0
  50. data/lib/mod_spox/handlers/Notice.rb +32 -0
  51. data/lib/mod_spox/handlers/Part.rb +19 -0
  52. data/lib/mod_spox/handlers/Ping.rb +16 -0
  53. data/lib/mod_spox/handlers/Pong.rb +16 -0
  54. data/lib/mod_spox/handlers/Privmsg.rb +27 -0
  55. data/lib/mod_spox/handlers/Quit.rb +21 -0
  56. data/lib/mod_spox/handlers/Topic.rb +29 -0
  57. data/lib/mod_spox/handlers/Welcome.rb +34 -0
  58. data/lib/mod_spox/handlers/Who.rb +60 -0
  59. data/lib/mod_spox/handlers/Whois.rb +63 -0
  60. data/lib/mod_spox/handlers/YourHost.rb +17 -0
  61. data/lib/mod_spox/messages/incoming/BadNick.rb +15 -0
  62. data/lib/mod_spox/messages/incoming/Bounce.rb +17 -0
  63. data/lib/mod_spox/messages/incoming/Created.rb +14 -0
  64. data/lib/mod_spox/messages/incoming/Invite.rb +20 -0
  65. data/lib/mod_spox/messages/incoming/Join.rb +18 -0
  66. data/lib/mod_spox/messages/incoming/Kick.rb +25 -0
  67. data/lib/mod_spox/messages/incoming/LuserChannels.rb +14 -0
  68. data/lib/mod_spox/messages/incoming/LuserClient.rb +23 -0
  69. data/lib/mod_spox/messages/incoming/LuserMe.rb +17 -0
  70. data/lib/mod_spox/messages/incoming/LuserOp.rb +14 -0
  71. data/lib/mod_spox/messages/incoming/LuserUnknown.rb +14 -0
  72. data/lib/mod_spox/messages/incoming/Message.rb +22 -0
  73. data/lib/mod_spox/messages/incoming/Mode.rb +41 -0
  74. data/lib/mod_spox/messages/incoming/Motd.rb +17 -0
  75. data/lib/mod_spox/messages/incoming/MyInfo.rb +23 -0
  76. data/lib/mod_spox/messages/incoming/Names.rb +23 -0
  77. data/lib/mod_spox/messages/incoming/Nick.rb +25 -0
  78. data/lib/mod_spox/messages/incoming/NickInUse.rb +14 -0
  79. data/lib/mod_spox/messages/incoming/Notice.rb +8 -0
  80. data/lib/mod_spox/messages/incoming/Part.rb +20 -0
  81. data/lib/mod_spox/messages/incoming/Ping.rb +17 -0
  82. data/lib/mod_spox/messages/incoming/Pong.rb +8 -0
  83. data/lib/mod_spox/messages/incoming/Privmsg.rb +64 -0
  84. data/lib/mod_spox/messages/incoming/Quit.rb +17 -0
  85. data/lib/mod_spox/messages/incoming/Topic.rb +20 -0
  86. data/lib/mod_spox/messages/incoming/TopicInfo.rb +20 -0
  87. data/lib/mod_spox/messages/incoming/Welcome.rb +26 -0
  88. data/lib/mod_spox/messages/incoming/Who.rb +17 -0
  89. data/lib/mod_spox/messages/incoming/Whois.rb +47 -0
  90. data/lib/mod_spox/messages/incoming/YourHost.rb +17 -0
  91. data/lib/mod_spox/messages/internal/BotInitialized.rb +11 -0
  92. data/lib/mod_spox/messages/internal/ChangeNick.rb +15 -0
  93. data/lib/mod_spox/messages/internal/Connected.rb +20 -0
  94. data/lib/mod_spox/messages/internal/ConnectionFailed.rb +23 -0
  95. data/lib/mod_spox/messages/internal/Disconnected.rb +8 -0
  96. data/lib/mod_spox/messages/internal/Disconnecting.rb +8 -0
  97. data/lib/mod_spox/messages/internal/EstablishConnection.rb +22 -0
  98. data/lib/mod_spox/messages/internal/HaltBot.rb +8 -0
  99. data/lib/mod_spox/messages/internal/NickRequest.rb +8 -0
  100. data/lib/mod_spox/messages/internal/NickResponse.rb +14 -0
  101. data/lib/mod_spox/messages/internal/PluginLoadRequest.rb +20 -0
  102. data/lib/mod_spox/messages/internal/PluginLoadResponse.rb +16 -0
  103. data/lib/mod_spox/messages/internal/PluginModuleRequest.rb +13 -0
  104. data/lib/mod_spox/messages/internal/PluginModuleResponse.rb +17 -0
  105. data/lib/mod_spox/messages/internal/PluginReload.rb +8 -0
  106. data/lib/mod_spox/messages/internal/PluginRequest.rb +17 -0
  107. data/lib/mod_spox/messages/internal/PluginResponse.rb +20 -0
  108. data/lib/mod_spox/messages/internal/PluginUnloadRequest.rb +8 -0
  109. data/lib/mod_spox/messages/internal/PluginUnloadResponse.rb +8 -0
  110. data/lib/mod_spox/messages/internal/Request.rb +15 -0
  111. data/lib/mod_spox/messages/internal/Response.rb +15 -0
  112. data/lib/mod_spox/messages/internal/Shutdown.rb +8 -0
  113. data/lib/mod_spox/messages/internal/SignaturesUpdate.rb +8 -0
  114. data/lib/mod_spox/messages/internal/StatusRequest.rb +9 -0
  115. data/lib/mod_spox/messages/internal/StatusResponse.rb +17 -0
  116. data/lib/mod_spox/messages/internal/TimerAdd.rb +27 -0
  117. data/lib/mod_spox/messages/internal/TimerClear.rb +8 -0
  118. data/lib/mod_spox/messages/internal/TimerRemove.rb +15 -0
  119. data/lib/mod_spox/messages/internal/TimerResponse.rb +26 -0
  120. data/lib/mod_spox/messages/internal/TriggersUpdate.rb +8 -0
  121. data/lib/mod_spox/messages/outgoing/Admin.rb +15 -0
  122. data/lib/mod_spox/messages/outgoing/Away.rb +10 -0
  123. data/lib/mod_spox/messages/outgoing/ChannelMode.rb +25 -0
  124. data/lib/mod_spox/messages/outgoing/Connect.rb +24 -0
  125. data/lib/mod_spox/messages/outgoing/Die.rb +9 -0
  126. data/lib/mod_spox/messages/outgoing/Info.rb +15 -0
  127. data/lib/mod_spox/messages/outgoing/Invite.rb +19 -0
  128. data/lib/mod_spox/messages/outgoing/Ison.rb +15 -0
  129. data/lib/mod_spox/messages/outgoing/Join.rb +19 -0
  130. data/lib/mod_spox/messages/outgoing/Kick.rb +23 -0
  131. data/lib/mod_spox/messages/outgoing/Kill.rb +19 -0
  132. data/lib/mod_spox/messages/outgoing/Links.rb +19 -0
  133. data/lib/mod_spox/messages/outgoing/List.rb +19 -0
  134. data/lib/mod_spox/messages/outgoing/Lusers.rb +19 -0
  135. data/lib/mod_spox/messages/outgoing/Motd.rb +16 -0
  136. data/lib/mod_spox/messages/outgoing/Names.rb +20 -0
  137. data/lib/mod_spox/messages/outgoing/Nick.rb +16 -0
  138. data/lib/mod_spox/messages/outgoing/Notice.rb +11 -0
  139. data/lib/mod_spox/messages/outgoing/Oper.rb +19 -0
  140. data/lib/mod_spox/messages/outgoing/Part.rb +19 -0
  141. data/lib/mod_spox/messages/outgoing/Pass.rb +16 -0
  142. data/lib/mod_spox/messages/outgoing/Ping.rb +10 -0
  143. data/lib/mod_spox/messages/outgoing/Pong.rb +17 -0
  144. data/lib/mod_spox/messages/outgoing/Privmsg.rb +19 -0
  145. data/lib/mod_spox/messages/outgoing/Quit.rb +10 -0
  146. data/lib/mod_spox/messages/outgoing/Rehash.rb +9 -0
  147. data/lib/mod_spox/messages/outgoing/Restart.rb +9 -0
  148. data/lib/mod_spox/messages/outgoing/ServList.rb +19 -0
  149. data/lib/mod_spox/messages/outgoing/Simple.rb +12 -0
  150. data/lib/mod_spox/messages/outgoing/Squery.rb +19 -0
  151. data/lib/mod_spox/messages/outgoing/Squit.rb +19 -0
  152. data/lib/mod_spox/messages/outgoing/Stats.rb +18 -0
  153. data/lib/mod_spox/messages/outgoing/Summon.rb +23 -0
  154. data/lib/mod_spox/messages/outgoing/Time.rb +15 -0
  155. data/lib/mod_spox/messages/outgoing/Topic.rb +19 -0
  156. data/lib/mod_spox/messages/outgoing/Trace.rb +15 -0
  157. data/lib/mod_spox/messages/outgoing/Unaway.rb +9 -0
  158. data/lib/mod_spox/messages/outgoing/User.rb +23 -0
  159. data/lib/mod_spox/messages/outgoing/UserHost.rb +15 -0
  160. data/lib/mod_spox/messages/outgoing/UserMode.rb +19 -0
  161. data/lib/mod_spox/messages/outgoing/Users.rb +15 -0
  162. data/lib/mod_spox/messages/outgoing/Version.rb +16 -0
  163. data/lib/mod_spox/messages/outgoing/Who.rb +19 -0
  164. data/lib/mod_spox/messages/outgoing/WhoWas.rb +23 -0
  165. data/lib/mod_spox/messages/outgoing/Whois.rb +19 -0
  166. data/lib/mod_spox/migration/001_create_auths.rb +13 -0
  167. data/lib/mod_spox/migration/001_create_channel.rb +13 -0
  168. data/lib/mod_spox/migration/001_create_channel_modes.rb +13 -0
  169. data/lib/mod_spox/migration/001_create_config.rb +13 -0
  170. data/lib/mod_spox/migration/001_create_nick_channels.rb +13 -0
  171. data/lib/mod_spox/migration/001_create_nick_modes.rb +13 -0
  172. data/lib/mod_spox/migration/001_create_nicks.rb +13 -0
  173. data/lib/mod_spox/migration/001_create_servers.rb +13 -0
  174. data/lib/mod_spox/migration/001_create_settings.rb +13 -0
  175. data/lib/mod_spox/migration/001_create_signatures.rb +13 -0
  176. data/lib/mod_spox/migration/001_create_triggers.rb +13 -0
  177. data/lib/mod_spox/models/Auth.rb +79 -0
  178. data/lib/mod_spox/models/AuthGroup.rb +15 -0
  179. data/lib/mod_spox/models/Channel.rb +47 -0
  180. data/lib/mod_spox/models/ChannelMode.rb +14 -0
  181. data/lib/mod_spox/models/Config.rb +31 -0
  182. data/lib/mod_spox/models/Group.rb +13 -0
  183. data/lib/mod_spox/models/Nick.rb +110 -0
  184. data/lib/mod_spox/models/NickChannel.rb +43 -0
  185. data/lib/mod_spox/models/NickMode.rb +18 -0
  186. data/lib/mod_spox/models/Server.rb +12 -0
  187. data/lib/mod_spox/models/Setting.rb +40 -0
  188. data/lib/mod_spox/models/Signature.rb +30 -0
  189. data/lib/mod_spox/models/Trigger.rb +9 -0
  190. data/lib/mod_spox/rfc2812.rb +171 -0
  191. metadata +261 -0
@@ -0,0 +1,17 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Incoming
4
+ class Who < Message
5
+ # array of nicks
6
+ attr_reader :nicks
7
+ # where nicks are from (channel if who'd a channel, nick if who'd a single nick)
8
+ attr_reader :location
9
+ def initialize(raw, location, nicks)
10
+ super(raw)
11
+ @location = location
12
+ @nicks = nicks
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,47 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Incoming
4
+ class Whois < Message
5
+ # Nick of user
6
+ attr_reader :nick
7
+ # Channels user is found in
8
+ attr_accessor :channels
9
+ # Raw whois string
10
+ attr_accessor :raw
11
+
12
+ def initialize(nick)
13
+ @nick = nick
14
+ @channels = Array.new
15
+ @raw = Array.new
16
+ @locked = false
17
+ end
18
+
19
+ # channel:: Channel
20
+ # Adds channel to list
21
+ def channels_push(channel)
22
+ restricted if @locked
23
+ @channels << channel
24
+ end
25
+
26
+ # string:: string
27
+ # Adds string to raw whois info
28
+ def raw_push(string)
29
+ restricted if @locked
30
+ @raw << string
31
+ end
32
+
33
+ # Locks the object's custom methods
34
+ def lock
35
+ @locked = true
36
+ @raw_content = @raw.join("\n")
37
+ end
38
+
39
+ private
40
+
41
+ def restricted
42
+ raise Exceptions::LockedObject.new('Whois message can no longer be modified')
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,17 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Incoming
4
+ class YourHost < Message
5
+ # name of server bot is connected to
6
+ attr_reader :servername
7
+ # version of server bot is connected to
8
+ attr_reader :version
9
+ def initialize(raw, server, version)
10
+ super(raw)
11
+ @servername = server
12
+ @version = version
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ # This is a message to let the plugins know the
5
+ # bot is running and waiting for someone to tell
6
+ # it to do something
7
+ class BotInitialized
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class ChangeNick
5
+ # change bot's nick to this nick
6
+ attr_reader :new_nick
7
+ # new_nick: nick to change to
8
+ # Tells the bot it needs to change its nick
9
+ def initialize(new_nick)
10
+ @new_nick = new_nick
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class Connected
5
+ # server connected to
6
+ attr_reader :server
7
+ # port connected to
8
+ attr_reader :port
9
+ # server:: Server bot is connected to
10
+ # port:: Port bot connected to
11
+ # Used as notification that the bot has connected
12
+ # to the given server
13
+ def initialize(server, port)
14
+ @server = server
15
+ @port = port
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,23 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class ConnectionFailed
5
+ # server attempted
6
+ attr_reader :server
7
+ # port attempted
8
+ attr_reader :port
9
+ # reason for failure
10
+ attr_reader :reason
11
+ # server:: server attempted to connect
12
+ # port:: port attempted to connect on
13
+ # reason: reason for failed connection
14
+ # Failed connection to the server
15
+ def initialize(server, port, reason=nil)
16
+ @server = server
17
+ @port = port
18
+ @reason = reason
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class Disconnected
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class Disconnecting
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,22 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class EstablishConnection
5
+ # server to connect to
6
+ attr_reader :server
7
+ # port to connect to
8
+ attr_reader :port
9
+ # password for connection to server
10
+ attr_reader :password
11
+ # server:: Server to connect to
12
+ # port:: Port to connect to
13
+ # password:: password to connect
14
+ def initialize(server, port, password=nil)
15
+ @server = server
16
+ @port = port
17
+ @password = password
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class HaltBot
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class NickRequest < Request
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,14 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class NickResponse < Response
5
+ # nick of the bot (model)
6
+ attr_reader :nick
7
+ def initialize(origin, nick)
8
+ super(origin)
9
+ @nick = nick
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class PluginLoadRequest < Request
5
+ # path to plugin file
6
+ attr_reader :path
7
+ # file name for plugin
8
+ attr_reader :name
9
+ # object:: object requesting the load
10
+ # path:: path to plugin file to be loaded
11
+ # Loads a plugin located at the given path
12
+ def initialize(object, path, name=nil)
13
+ super(object)
14
+ @path = path
15
+ @name = name
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class PluginLoadResponse < Response
5
+ # success of loading
6
+ attr_reader :success
7
+ # successful:: load was successful
8
+ # Notifies requesting object if load was successful
9
+ def initialize(object, successful)
10
+ super(object)
11
+ @success = successful
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class PluginModuleRequest < Request
5
+ # object:: object requesting the load
6
+ # Requests the plugin module
7
+ def initialize(object)
8
+ super(object)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class PluginModuleResponse < Response
5
+ # plugins module
6
+ attr_reader :module
7
+ # plugin:: Plugin to send to requester
8
+ # Sends the plugins module to the requester
9
+ def initialize(object, mod)
10
+ super(object)
11
+ @module = mod
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class PluginReload
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,17 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class PluginRequest < Request
5
+ # plugin requested
6
+ attr_reader :plugin
7
+ # object:: object requesting
8
+ # name:: Name of plugin
9
+ # Request plugin from bot
10
+ def initialize(object, name)
11
+ super(object)
12
+ @name = name.is_a?(Symbol) ? name : name.to_sym
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,20 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class PluginResponse < Response
5
+ # plugin object
6
+ attr_reader :plugin
7
+ # plugin:: Plugin to send to requester
8
+ # Sends a plugin to requesting object
9
+ def initialize(object, plugin)
10
+ super(object)
11
+ @plugin = plugin
12
+ end
13
+
14
+ def found?
15
+ return !@plugin.nil?
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class PluginUnloadRequest < PluginLoadRequest
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class PluginUnloadResponse < PluginLoadResponse
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class Request
5
+ # object making request
6
+ attr_reader :requester
7
+ # requester:: object making request
8
+ # Request for information
9
+ def initialize(requester)
10
+ @requester = requester
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class Response
5
+ # object response is for
6
+ attr_reader :origin
7
+ # origin:: object that requested the information
8
+ # Response of information
9
+ def initialize(origin)
10
+ @origin = origin
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class Shutdown
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class SignaturesUpdate
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ # Request current bot status
5
+ class Status < Request
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,17 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class StatusResponse < Response
5
+ # Current status of the bot
6
+ attr_reader :status
7
+ # object:: Destination for response
8
+ # status:: Status of the bot
9
+ # Send status response to requester
10
+ def initialize(object, status)
11
+ super(object)
12
+ @status = status
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,27 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class TimerAdd < Request
5
+ # code block to execute
6
+ attr_reader :block
7
+ # data to supply to block
8
+ attr_reader :data
9
+ # interval between executions
10
+ attr_reader :period
11
+ # only execute block once
12
+ attr_reader :once
13
+ # period:: interval between executions
14
+ # once:: only run block once
15
+ # block:: code block
16
+ # Add repeating event to timer
17
+ def initialize(object, period, data=nil, once=false, &block)
18
+ super(object)
19
+ @data = data
20
+ @period = period
21
+ @once = once
22
+ @block = block
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class TimerClear
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class TimerRemove
5
+ # action to remove
6
+ attr_reader :action
7
+ # action:: action to remove from timer
8
+ # Remove action from timer
9
+ def initialize(action)
10
+ @action = action
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class TimerResponse < Response
5
+ # action from timer
6
+ attr_reader :action
7
+ # object:: object to send response to
8
+ # action:: action removed from timer
9
+ # Notification that action has been removed
10
+ def initialize(object, action, added)
11
+ super(object)
12
+ @action = action
13
+ @added = added
14
+ end
15
+ # Action was added to timer
16
+ def action_added?
17
+ return @added
18
+ end
19
+ # Action was removed from timer
20
+ def action_removed?
21
+ return !@added
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,8 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Internal
4
+ class TriggersUpdate
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Outgoing
4
+ class Admin
5
+ # target server
6
+ attr_reader :target
7
+ # target:: target server
8
+ # Request administrator info from target serve
9
+ def initialize(target)
10
+ @target = target
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Outgoing
4
+ # message:: away message
5
+ # Set away messages
6
+ class Away < Simple
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,25 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Outgoing
4
+ class ChannelMode
5
+ # channel to set mode
6
+ attr_reader :channel
7
+ # mode to set/unset
8
+ attr_reader :mode
9
+ # target of mode change
10
+ attr_reader :target
11
+ # channel:: channel to set mode in
12
+ # mode:: mode to set/unset
13
+ # target:: target of mode change
14
+ # Query/change channel modes. Target can also be used as mode
15
+ # options for cases like: MODE #chan +l 10 where the target
16
+ # would hold the limit value.
17
+ def initialize(channel, mode, target='')
18
+ @channel = channel
19
+ @mode = mode
20
+ @target = target
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Outgoing
4
+ class Connect
5
+ # server to connect to
6
+ attr_reader :target_server
7
+ # port to connec to
8
+ attr_reader :port
9
+ # remote server to connect to target
10
+ attr_reader :remote_server
11
+ # target_server:: server to connect to
12
+ # port:: target server port
13
+ # remote_server:: remote server to connect to target
14
+ # Request a server to try to establish a connection to
15
+ # another server. This is generally an oper command.
16
+ def initialize(target_server, port, remote_server='')
17
+ @target_server = target_server
18
+ @port = port
19
+ @remote_server = remote_server
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,9 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Outgoing
4
+ # Shutdown the server (oper command)
5
+ class Die
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ module ModSpox
2
+ module Messages
3
+ module Outgoing
4
+ class Info
5
+ # target server
6
+ attr_reader :target
7
+ # target:: target server
8
+ # Request information about target server
9
+ def initialize(target='')
10
+ @target = target
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end