spox-mod_spox 0.3.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.
- data/CHANGELOG +174 -0
- data/INSTALL +15 -0
- data/LICENSE +674 -0
- data/README.rdoc +73 -0
- data/bin/mod_spox +112 -0
- data/data/mod_spox/extras/AOLSpeak.rb +257 -0
- data/data/mod_spox/extras/AutoKick.rb +152 -0
- data/data/mod_spox/extras/AutoMode.rb +122 -0
- data/data/mod_spox/extras/AutoRejoin.rb +37 -0
- data/data/mod_spox/extras/Bash.rb +55 -0
- data/data/mod_spox/extras/Bouncer.rb +220 -0
- data/data/mod_spox/extras/Bullshit.rb +19 -0
- data/data/mod_spox/extras/Bytes.rb +11 -0
- data/data/mod_spox/extras/Confess.rb +244 -0
- data/data/mod_spox/extras/DCC.rb +182 -0
- data/data/mod_spox/extras/DevWatch.rb +153 -0
- data/data/mod_spox/extras/DownForEveryoneOrJustMe.rb +47 -0
- data/data/mod_spox/extras/EightBall.rb +33 -0
- data/data/mod_spox/extras/FML.rb +35 -0
- data/data/mod_spox/extras/FloodKicker.rb +129 -0
- data/data/mod_spox/extras/Fortune.rb +76 -0
- data/data/mod_spox/extras/GoogleIt.rb +13 -0
- data/data/mod_spox/extras/Headers.rb +59 -0
- data/data/mod_spox/extras/Karma.rb +302 -0
- data/data/mod_spox/extras/Locator.rb +44 -0
- data/data/mod_spox/extras/Logger.rb +182 -0
- data/data/mod_spox/extras/LolSpeak.rb +21 -0
- data/data/mod_spox/extras/NickServ.rb +84 -0
- data/data/mod_spox/extras/PhpCli.rb +308 -0
- data/data/mod_spox/extras/PhpFuncLookup.rb +297 -0
- data/data/mod_spox/extras/Pinger.rb +11 -0
- data/data/mod_spox/extras/Quotes.rb +79 -0
- data/data/mod_spox/extras/RegexTracker.rb +158 -0
- data/data/mod_spox/extras/Roulette.rb +267 -0
- data/data/mod_spox/extras/RubyCli.rb +93 -0
- data/data/mod_spox/extras/Search.rb +49 -0
- data/data/mod_spox/extras/Seen.rb +150 -0
- data/data/mod_spox/extras/Slashdot.rb +35 -0
- data/data/mod_spox/extras/SlashdotHeadlineGenerator.rb +500 -0
- data/data/mod_spox/extras/Talk.rb +32 -0
- data/data/mod_spox/extras/Topten.rb +103 -0
- data/data/mod_spox/extras/TracTicket.rb +66 -0
- data/data/mod_spox/extras/Translate.rb +132 -0
- data/data/mod_spox/extras/Twitter.rb +458 -0
- data/data/mod_spox/extras/UrbanDictionary.rb +55 -0
- data/data/mod_spox/extras/Weather.rb +55 -0
- data/data/mod_spox/plugins/Authenticator.rb +289 -0
- data/data/mod_spox/plugins/Banner.rb +585 -0
- data/data/mod_spox/plugins/BotNick.rb +18 -0
- data/data/mod_spox/plugins/Helper.rb +49 -0
- data/data/mod_spox/plugins/Initializer.rb +35 -0
- data/data/mod_spox/plugins/Joiner.rb +23 -0
- data/data/mod_spox/plugins/Nicker.rb +14 -0
- data/data/mod_spox/plugins/Parter.rb +23 -0
- data/data/mod_spox/plugins/Permissions.rb +60 -0
- data/data/mod_spox/plugins/PluginLoader.rb +180 -0
- data/data/mod_spox/plugins/Ponger.rb +70 -0
- data/data/mod_spox/plugins/PoolConfig.rb +52 -0
- data/data/mod_spox/plugins/Quitter.rb +15 -0
- data/data/mod_spox/plugins/Servers.rb +57 -0
- data/data/mod_spox/plugins/Status.rb +31 -0
- data/data/mod_spox/plugins/Triggers.rb +85 -0
- data/lib/mod_spox/BaseConfig.rb +51 -0
- data/lib/mod_spox/Bot.rb +604 -0
- data/lib/mod_spox/BotConfig.rb +65 -0
- data/lib/mod_spox/ConfigurationWizard.rb +180 -0
- data/lib/mod_spox/Database.rb +51 -0
- data/lib/mod_spox/Exceptions.rb +84 -0
- data/lib/mod_spox/Helpers.rb +122 -0
- data/lib/mod_spox/Loader.rb +60 -0
- data/lib/mod_spox/Logger.rb +37 -0
- data/lib/mod_spox/MessageFactory.rb +112 -0
- data/lib/mod_spox/Pipeline.rb +207 -0
- data/lib/mod_spox/Plugin.rb +97 -0
- data/lib/mod_spox/PluginHolder.rb +22 -0
- data/lib/mod_spox/PluginManager.rb +257 -0
- data/lib/mod_spox/PriorityQueue.rb +69 -0
- data/lib/mod_spox/Socket.rb +201 -0
- data/lib/mod_spox/Sockets.rb +226 -0
- data/lib/mod_spox/Timer.rb +60 -0
- data/lib/mod_spox/Version.rb +14 -0
- data/lib/mod_spox/handlers/BadNick.rb +19 -0
- data/lib/mod_spox/handlers/Bounce.rb +24 -0
- data/lib/mod_spox/handlers/Created.rb +27 -0
- data/lib/mod_spox/handlers/Handler.rb +39 -0
- data/lib/mod_spox/handlers/Invite.rb +28 -0
- data/lib/mod_spox/handlers/Join.rb +38 -0
- data/lib/mod_spox/handlers/Kick.rb +36 -0
- data/lib/mod_spox/handlers/LuserChannels.rb +19 -0
- data/lib/mod_spox/handlers/LuserClient.rb +18 -0
- data/lib/mod_spox/handlers/LuserMe.rb +16 -0
- data/lib/mod_spox/handlers/LuserOp.rb +19 -0
- data/lib/mod_spox/handlers/LuserUnknown.rb +19 -0
- data/lib/mod_spox/handlers/Mode.rb +62 -0
- data/lib/mod_spox/handlers/Motd.rb +38 -0
- data/lib/mod_spox/handlers/MyInfo.rb +24 -0
- data/lib/mod_spox/handlers/Names.rb +86 -0
- data/lib/mod_spox/handlers/Nick.rb +50 -0
- data/lib/mod_spox/handlers/NickInUse.rb +19 -0
- data/lib/mod_spox/handlers/Notice.rb +35 -0
- data/lib/mod_spox/handlers/Part.rb +39 -0
- data/lib/mod_spox/handlers/Ping.rb +25 -0
- data/lib/mod_spox/handlers/Pong.rb +23 -0
- data/lib/mod_spox/handlers/Privmsg.rb +39 -0
- data/lib/mod_spox/handlers/Quit.rb +29 -0
- data/lib/mod_spox/handlers/Topic.rb +38 -0
- data/lib/mod_spox/handlers/Welcome.rb +30 -0
- data/lib/mod_spox/handlers/Who.rb +83 -0
- data/lib/mod_spox/handlers/Whois.rb +117 -0
- data/lib/mod_spox/handlers/YourHost.rb +20 -0
- data/lib/mod_spox/messages/Messages.rb +6 -0
- data/lib/mod_spox/messages/incoming/BadNick.rb +16 -0
- data/lib/mod_spox/messages/incoming/Bounce.rb +18 -0
- data/lib/mod_spox/messages/incoming/Created.rb +15 -0
- data/lib/mod_spox/messages/incoming/Invite.rb +21 -0
- data/lib/mod_spox/messages/incoming/Join.rb +19 -0
- data/lib/mod_spox/messages/incoming/Kick.rb +26 -0
- data/lib/mod_spox/messages/incoming/LuserChannels.rb +15 -0
- data/lib/mod_spox/messages/incoming/LuserClient.rb +24 -0
- data/lib/mod_spox/messages/incoming/LuserMe.rb +18 -0
- data/lib/mod_spox/messages/incoming/LuserOp.rb +15 -0
- data/lib/mod_spox/messages/incoming/LuserUnknown.rb +15 -0
- data/lib/mod_spox/messages/incoming/Message.rb +22 -0
- data/lib/mod_spox/messages/incoming/Mode.rb +42 -0
- data/lib/mod_spox/messages/incoming/Motd.rb +18 -0
- data/lib/mod_spox/messages/incoming/MyInfo.rb +24 -0
- data/lib/mod_spox/messages/incoming/Names.rb +24 -0
- data/lib/mod_spox/messages/incoming/Nick.rb +26 -0
- data/lib/mod_spox/messages/incoming/NickInUse.rb +15 -0
- data/lib/mod_spox/messages/incoming/Notice.rb +9 -0
- data/lib/mod_spox/messages/incoming/Part.rb +21 -0
- data/lib/mod_spox/messages/incoming/Ping.rb +18 -0
- data/lib/mod_spox/messages/incoming/Pong.rb +9 -0
- data/lib/mod_spox/messages/incoming/Privmsg.rb +90 -0
- data/lib/mod_spox/messages/incoming/Quit.rb +18 -0
- data/lib/mod_spox/messages/incoming/Topic.rb +21 -0
- data/lib/mod_spox/messages/incoming/TopicInfo.rb +21 -0
- data/lib/mod_spox/messages/incoming/Welcome.rb +27 -0
- data/lib/mod_spox/messages/incoming/Who.rb +18 -0
- data/lib/mod_spox/messages/incoming/Whois.rb +49 -0
- data/lib/mod_spox/messages/incoming/YourHost.rb +18 -0
- data/lib/mod_spox/messages/internal/BotInitialized.rb +11 -0
- data/lib/mod_spox/messages/internal/ChangeNick.rb +15 -0
- data/lib/mod_spox/messages/internal/Connected.rb +20 -0
- data/lib/mod_spox/messages/internal/ConnectionFailed.rb +23 -0
- data/lib/mod_spox/messages/internal/DCCListener.rb +12 -0
- data/lib/mod_spox/messages/internal/DCCRequest.rb +12 -0
- data/lib/mod_spox/messages/internal/DCCSocket.rb +19 -0
- data/lib/mod_spox/messages/internal/Disconnected.rb +8 -0
- data/lib/mod_spox/messages/internal/Disconnecting.rb +8 -0
- data/lib/mod_spox/messages/internal/EstablishConnection.rb +22 -0
- data/lib/mod_spox/messages/internal/HaltBot.rb +8 -0
- data/lib/mod_spox/messages/internal/NickRequest.rb +9 -0
- data/lib/mod_spox/messages/internal/NickResponse.rb +15 -0
- data/lib/mod_spox/messages/internal/PluginLoadRequest.rb +21 -0
- data/lib/mod_spox/messages/internal/PluginLoadResponse.rb +17 -0
- data/lib/mod_spox/messages/internal/PluginModuleRequest.rb +14 -0
- data/lib/mod_spox/messages/internal/PluginModuleResponse.rb +18 -0
- data/lib/mod_spox/messages/internal/PluginReload.rb +18 -0
- data/lib/mod_spox/messages/internal/PluginRequest.rb +18 -0
- data/lib/mod_spox/messages/internal/PluginResponse.rb +21 -0
- data/lib/mod_spox/messages/internal/PluginUnloadRequest.rb +9 -0
- data/lib/mod_spox/messages/internal/PluginUnloadResponse.rb +9 -0
- data/lib/mod_spox/messages/internal/PluginsReady.rb +10 -0
- data/lib/mod_spox/messages/internal/QueueSocket.rb +8 -0
- data/lib/mod_spox/messages/internal/Reconnect.rb +8 -0
- data/lib/mod_spox/messages/internal/Request.rb +15 -0
- data/lib/mod_spox/messages/internal/Response.rb +15 -0
- data/lib/mod_spox/messages/internal/Shutdown.rb +8 -0
- data/lib/mod_spox/messages/internal/SignaturesUpdate.rb +8 -0
- data/lib/mod_spox/messages/internal/StatusRequest.rb +10 -0
- data/lib/mod_spox/messages/internal/StatusResponse.rb +18 -0
- data/lib/mod_spox/messages/internal/TimerAdd.rb +36 -0
- data/lib/mod_spox/messages/internal/TimerClear.rb +16 -0
- data/lib/mod_spox/messages/internal/TimerRemove.rb +23 -0
- data/lib/mod_spox/messages/internal/TimerResponse.rb +34 -0
- data/lib/mod_spox/messages/internal/TriggersUpdate.rb +8 -0
- data/lib/mod_spox/messages/internal/UnqueueSocket.rb +8 -0
- data/lib/mod_spox/messages/outgoing/Admin.rb +15 -0
- data/lib/mod_spox/messages/outgoing/Away.rb +11 -0
- data/lib/mod_spox/messages/outgoing/ChannelMode.rb +25 -0
- data/lib/mod_spox/messages/outgoing/Connect.rb +24 -0
- data/lib/mod_spox/messages/outgoing/Die.rb +9 -0
- data/lib/mod_spox/messages/outgoing/Info.rb +15 -0
- data/lib/mod_spox/messages/outgoing/Invite.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Ison.rb +15 -0
- data/lib/mod_spox/messages/outgoing/Join.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Kick.rb +23 -0
- data/lib/mod_spox/messages/outgoing/Kill.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Links.rb +19 -0
- data/lib/mod_spox/messages/outgoing/List.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Lusers.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Motd.rb +16 -0
- data/lib/mod_spox/messages/outgoing/Names.rb +20 -0
- data/lib/mod_spox/messages/outgoing/Nick.rb +16 -0
- data/lib/mod_spox/messages/outgoing/Notice.rb +12 -0
- data/lib/mod_spox/messages/outgoing/Oper.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Part.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Pass.rb +16 -0
- data/lib/mod_spox/messages/outgoing/Ping.rb +11 -0
- data/lib/mod_spox/messages/outgoing/Pong.rb +17 -0
- data/lib/mod_spox/messages/outgoing/Privmsg.rb +43 -0
- data/lib/mod_spox/messages/outgoing/Quit.rb +11 -0
- data/lib/mod_spox/messages/outgoing/Raw.rb +16 -0
- data/lib/mod_spox/messages/outgoing/Rehash.rb +9 -0
- data/lib/mod_spox/messages/outgoing/Restart.rb +9 -0
- data/lib/mod_spox/messages/outgoing/ServList.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Simple.rb +12 -0
- data/lib/mod_spox/messages/outgoing/Squery.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Squit.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Stats.rb +18 -0
- data/lib/mod_spox/messages/outgoing/Summon.rb +23 -0
- data/lib/mod_spox/messages/outgoing/Time.rb +15 -0
- data/lib/mod_spox/messages/outgoing/Topic.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Trace.rb +15 -0
- data/lib/mod_spox/messages/outgoing/Unaway.rb +9 -0
- data/lib/mod_spox/messages/outgoing/User.rb +23 -0
- data/lib/mod_spox/messages/outgoing/UserHost.rb +15 -0
- data/lib/mod_spox/messages/outgoing/UserMode.rb +19 -0
- data/lib/mod_spox/messages/outgoing/Users.rb +15 -0
- data/lib/mod_spox/messages/outgoing/Version.rb +16 -0
- data/lib/mod_spox/messages/outgoing/Who.rb +23 -0
- data/lib/mod_spox/messages/outgoing/WhoWas.rb +23 -0
- data/lib/mod_spox/messages/outgoing/Whois.rb +19 -0
- data/lib/mod_spox/migrations/001_initialize_models.rb +115 -0
- data/lib/mod_spox/migrations/002_persistent_sigs.rb +14 -0
- data/lib/mod_spox/migrations/003_auth_restructure.rb +31 -0
- data/lib/mod_spox/migrations/004_mode_index_fix.rb +18 -0
- data/lib/mod_spox/migrations/005_nick_mode_nopark.rb +18 -0
- data/lib/mod_spox/models/Auth.rb +65 -0
- data/lib/mod_spox/models/AuthMask.rb +13 -0
- data/lib/mod_spox/models/Channel.rb +89 -0
- data/lib/mod_spox/models/Config.rb +30 -0
- data/lib/mod_spox/models/Group.rb +30 -0
- data/lib/mod_spox/models/Models.rb +4 -0
- data/lib/mod_spox/models/Nick.rb +195 -0
- data/lib/mod_spox/models/NickMode.rb +32 -0
- data/lib/mod_spox/models/Server.rb +27 -0
- data/lib/mod_spox/models/Setting.rb +52 -0
- data/lib/mod_spox/models/Signature.rb +52 -0
- data/lib/mod_spox/models/Trigger.rb +9 -0
- data/lib/mod_spox/rfc2812.rb +49 -0
- data/populate_gemspec.rb +15 -0
- data/tests/BotHolder.rb +24 -0
- data/tests/handlers/tc_BadNick.rb +21 -0
- data/tests/handlers/tc_Created.rb +24 -0
- data/tests/handlers/tc_Invite.rb +50 -0
- data/tests/handlers/tc_Join.rb +33 -0
- data/tests/handlers/tc_Kick.rb +32 -0
- data/tests/handlers/tc_Mode.rb +85 -0
- data/tests/handlers/tc_Names.rb +35 -0
- data/tests/handlers/tc_Nick.rb +55 -0
- data/tests/handlers/tc_Part.rb +44 -0
- data/tests/handlers/tc_Ping.rb +40 -0
- data/tests/handlers/tc_Pong.rb +28 -0
- data/tests/handlers/tc_Privmsg.rb +85 -0
- data/tests/handlers/tc_Quit.rb +40 -0
- data/tests/handlers/tc_Who.rb +50 -0
- data/tests/handlers/tc_Whois.rb +61 -0
- data/tests/models/tc_Auth.rb +39 -0
- data/tests/models/tc_Channel.rb +52 -0
- data/tests/models/tc_Config.rb +19 -0
- data/tests/models/tc_Nick.rb +144 -0
- data/tests/models/tc_NickMode.rb +40 -0
- data/tests/models/tc_Setting.rb +21 -0
- data/tests/models/tc_Signature.rb +14 -0
- data/tests/run_tests.rb +6 -0
- metadata +362 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class Part < Message
|
6
|
+
# channel user parted from
|
7
|
+
attr_reader :channel
|
8
|
+
# nick that parted from channel
|
9
|
+
attr_reader :nick
|
10
|
+
# reason for parting
|
11
|
+
attr_reader :reason
|
12
|
+
def initialize(raw, channel, nick, reason)
|
13
|
+
super(raw)
|
14
|
+
@channel = channel
|
15
|
+
@nick = nick
|
16
|
+
@reason = reason
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class Ping < Message
|
6
|
+
# server of origin
|
7
|
+
attr_reader :server
|
8
|
+
# string
|
9
|
+
attr_reader :string
|
10
|
+
def initialize(raw, server, string)
|
11
|
+
super(raw)
|
12
|
+
@server = server
|
13
|
+
@string = string
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class Privmsg < Message
|
6
|
+
|
7
|
+
# source of the message
|
8
|
+
attr_reader :source
|
9
|
+
# target of the message
|
10
|
+
attr_reader :target
|
11
|
+
# message is CTCP
|
12
|
+
attr_reader :ctcp
|
13
|
+
# message CTCP type
|
14
|
+
attr_reader :ctcp_type
|
15
|
+
def initialize(raw, source, target, message)
|
16
|
+
super(raw)
|
17
|
+
@source = source
|
18
|
+
@target = target
|
19
|
+
@ctcp = false
|
20
|
+
@ctcp_type = nil
|
21
|
+
@action = false
|
22
|
+
if(@raw_content =~ /\x01(\S+)\s(.+)\x01/)
|
23
|
+
@ctcp = true
|
24
|
+
@ctcp_type = $1
|
25
|
+
@message = $2
|
26
|
+
@action = @ctcp_type.downcase == 'action'
|
27
|
+
else
|
28
|
+
@message = message
|
29
|
+
end
|
30
|
+
botnick = Models::Nick.filter(:botnick => true).first
|
31
|
+
if(botnick)
|
32
|
+
@addressed = @message =~ /^#{botnick.nick}/i
|
33
|
+
else
|
34
|
+
@addressed = false
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Is message addressing the bot
|
39
|
+
def addressed?
|
40
|
+
return @addressed || is_private?
|
41
|
+
end
|
42
|
+
|
43
|
+
# Is this is private message
|
44
|
+
def is_private?
|
45
|
+
return !is_public?
|
46
|
+
end
|
47
|
+
|
48
|
+
# Is this a DCC message
|
49
|
+
def is_dcc?
|
50
|
+
return @target.is_a?(String)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Is this a public message
|
54
|
+
def is_public?
|
55
|
+
return @target.is_a?(Models::Channel)
|
56
|
+
end
|
57
|
+
|
58
|
+
# Does the message contain colors
|
59
|
+
def is_colored?
|
60
|
+
return @message =~ /\cC\d\d?(?:,\d\d?)?/
|
61
|
+
end
|
62
|
+
|
63
|
+
# Message with coloring stripped
|
64
|
+
def message_nocolor
|
65
|
+
return @message.gsub(/\cC\d\d?(?:,\d\d?)?/, '').tr("\x00-\x1f", '')
|
66
|
+
end
|
67
|
+
|
68
|
+
# the message sent
|
69
|
+
def message(color=false)
|
70
|
+
return color ? @message : message_nocolor
|
71
|
+
end
|
72
|
+
|
73
|
+
# Is this message an action message
|
74
|
+
def is_action?
|
75
|
+
@action
|
76
|
+
end
|
77
|
+
|
78
|
+
def is_ctcp?
|
79
|
+
@ctcp
|
80
|
+
end
|
81
|
+
|
82
|
+
# Convinence method for replying to the correct place
|
83
|
+
def replyto
|
84
|
+
return is_public? || is_dcc? ? @target : @source
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class Quit < Message
|
6
|
+
# nick that quit
|
7
|
+
attr_reader :nick
|
8
|
+
# quit message
|
9
|
+
attr_reader :message
|
10
|
+
def initialize(raw, nick, message)
|
11
|
+
super(raw)
|
12
|
+
@nick = nick
|
13
|
+
@message = message
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class Topic < Message
|
6
|
+
|
7
|
+
# channel topic was set
|
8
|
+
attr_reader :channel
|
9
|
+
# topic messages
|
10
|
+
attr_reader :topic
|
11
|
+
|
12
|
+
def initialize(raw, channel, topic)
|
13
|
+
super(raw)
|
14
|
+
@channel = @channel
|
15
|
+
@topic = @topic
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class TopicInfo < Message
|
6
|
+
# channel topic info is for
|
7
|
+
attr_reader :channel
|
8
|
+
# last nick to set topic
|
9
|
+
attr_reader :nick
|
10
|
+
# time topic was set
|
11
|
+
attr_reader :time
|
12
|
+
def initialize(raw, channel, nick, time)
|
13
|
+
super(raw)
|
14
|
+
@channel = channel
|
15
|
+
@nick = nick
|
16
|
+
@time = time
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class Welcome < Message
|
6
|
+
# server bot is connected to
|
7
|
+
attr_reader :server
|
8
|
+
# welcome message from server
|
9
|
+
attr_reader :message
|
10
|
+
# nick of the bot
|
11
|
+
attr_reader :nick
|
12
|
+
# username of the bot
|
13
|
+
attr_reader :username
|
14
|
+
# hostname of the bot
|
15
|
+
attr_reader :hostname
|
16
|
+
def initialize(raw, server, message, nick, username, hostname)
|
17
|
+
super(raw)
|
18
|
+
@server = server
|
19
|
+
@message = message
|
20
|
+
@nick = nick
|
21
|
+
@username = username
|
22
|
+
@hostname = hostname
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class Who < Message
|
6
|
+
# array of nicks
|
7
|
+
attr_reader :nicks
|
8
|
+
# where nicks are from (channel if who'd a channel, nick if who'd a single nick)
|
9
|
+
attr_reader :location
|
10
|
+
def initialize(raw, location, nicks)
|
11
|
+
super(raw)
|
12
|
+
@location = location
|
13
|
+
@nicks = nicks
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class Whois < Message
|
6
|
+
# Nick of user
|
7
|
+
attr_reader :nick
|
8
|
+
# Channels user is found in
|
9
|
+
attr_accessor :channels
|
10
|
+
# Raw whois string
|
11
|
+
attr_accessor :raw
|
12
|
+
|
13
|
+
def initialize(nick)
|
14
|
+
@nick = nick
|
15
|
+
@channels = Array.new
|
16
|
+
@raw = Array.new
|
17
|
+
@locked = false
|
18
|
+
end
|
19
|
+
|
20
|
+
# channel:: Channel
|
21
|
+
# Adds channel to list
|
22
|
+
def channels_push(channel)
|
23
|
+
restricted if @locked
|
24
|
+
@channels << channel
|
25
|
+
end
|
26
|
+
|
27
|
+
# string:: string
|
28
|
+
# Adds string to raw whois info
|
29
|
+
def raw_push(string)
|
30
|
+
restricted if @locked
|
31
|
+
@raw << string
|
32
|
+
end
|
33
|
+
|
34
|
+
# Locks the object's custom methods
|
35
|
+
def lock
|
36
|
+
@locked = true
|
37
|
+
@raw_content = @raw.join("\n")
|
38
|
+
@nick.refresh
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def restricted
|
44
|
+
raise Exceptions::LockedObject.new('Whois message can no longer be modified')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'mod_spox/messages/incoming/Message'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Incoming
|
5
|
+
class YourHost < Message
|
6
|
+
# name of server bot is connected to
|
7
|
+
attr_reader :servername
|
8
|
+
# version of server bot is connected to
|
9
|
+
attr_reader :version
|
10
|
+
def initialize(raw, server, version)
|
11
|
+
super(raw)
|
12
|
+
@servername = server
|
13
|
+
@version = version
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
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,19 @@
|
|
1
|
+
module ModSpox
|
2
|
+
module Messages
|
3
|
+
module Internal
|
4
|
+
class DCCSocket
|
5
|
+
# ID of the contained socket
|
6
|
+
attr_reader :socket_id
|
7
|
+
# Models::Nick this socket is connected to
|
8
|
+
attr_reader :nick
|
9
|
+
# socket
|
10
|
+
attr_reader :socket
|
11
|
+
def initialize(id, nick, socket)
|
12
|
+
@socket_id = id
|
13
|
+
@nick = nick
|
14
|
+
@socket = socket
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
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=nil, port=nil, password=nil)
|
15
|
+
@server = server
|
16
|
+
@port = port
|
17
|
+
@password = password
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'mod_spox/messages/internal/Response'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Internal
|
5
|
+
class NickResponse < Response
|
6
|
+
# nick of the bot (model)
|
7
|
+
attr_reader :nick
|
8
|
+
def initialize(origin, nick)
|
9
|
+
super(origin)
|
10
|
+
@nick = nick
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'mod_spox/messages/internal/Request'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Internal
|
5
|
+
class PluginLoadRequest < Request
|
6
|
+
# path to plugin file
|
7
|
+
attr_reader :path
|
8
|
+
# file name for plugin
|
9
|
+
attr_reader :name
|
10
|
+
# object:: object requesting the load
|
11
|
+
# path:: path to plugin file to be loaded
|
12
|
+
# Loads a plugin located at the given path
|
13
|
+
def initialize(object, path, name=nil)
|
14
|
+
super(object)
|
15
|
+
@path = path
|
16
|
+
@name = name
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'mod_spox/messages/internal/Response'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Internal
|
5
|
+
class PluginLoadResponse < Response
|
6
|
+
# success of loading
|
7
|
+
attr_reader :success
|
8
|
+
# successful:: load was successful
|
9
|
+
# Notifies requesting object if load was successful
|
10
|
+
def initialize(object, successful)
|
11
|
+
super(object)
|
12
|
+
@success = successful
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'mod_spox/messages/internal/Request'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Internal
|
5
|
+
class PluginModuleRequest < Request
|
6
|
+
# object:: object requesting the load
|
7
|
+
# Requests the plugin module
|
8
|
+
def initialize(object)
|
9
|
+
super(object)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'mod_spox/messages/internal/Response'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Internal
|
5
|
+
class PluginModuleResponse < Response
|
6
|
+
# plugins module
|
7
|
+
attr_reader :module
|
8
|
+
# plugin:: Plugin to send to requester
|
9
|
+
# Sends the plugins module to the requester
|
10
|
+
def initialize(object, mod)
|
11
|
+
super(object)
|
12
|
+
@module = mod
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module ModSpox
|
2
|
+
module Messages
|
3
|
+
module Internal
|
4
|
+
# Sends message to reload plugin. If new and stale
|
5
|
+
# attributes are set, only that plugin will be reloaded
|
6
|
+
class PluginReload
|
7
|
+
# Path to new plugin to load
|
8
|
+
attr_reader :fresh
|
9
|
+
# Path to stale plugin to remove
|
10
|
+
attr_reader :stale
|
11
|
+
def initialize(fresh=nil, stale=nil)
|
12
|
+
@fresh = fresh
|
13
|
+
@stale = stale
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'mod_spox/messages/internal/Request'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Internal
|
5
|
+
class PluginRequest < Request
|
6
|
+
# plugin requested
|
7
|
+
attr_reader :plugin
|
8
|
+
# object:: object requesting
|
9
|
+
# name:: Name of plugin
|
10
|
+
# Request plugin from bot
|
11
|
+
def initialize(object, name)
|
12
|
+
super(object)
|
13
|
+
@plugin = name.is_a?(Symbol) ? name : name.to_sym
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'mod_spox/messages/internal/Response'
|
2
|
+
module ModSpox
|
3
|
+
module Messages
|
4
|
+
module Internal
|
5
|
+
class PluginResponse < Response
|
6
|
+
# plugin object
|
7
|
+
attr_reader :plugin
|
8
|
+
# plugin:: Plugin to send to requester
|
9
|
+
# Sends a plugin to requesting object
|
10
|
+
def initialize(object, plugin)
|
11
|
+
super(object)
|
12
|
+
@plugin = plugin
|
13
|
+
end
|
14
|
+
|
15
|
+
def found?
|
16
|
+
return !@plugin.nil?
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|