mod_spox 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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