ichverstehe-isaac 0.0.3 → 0.0.4
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/isaac.gemspec +2 -2
- data/lib/isaac.rb +42 -4
- metadata +2 -2
data/isaac.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "isaac"
|
3
|
-
s.version = "0.0.
|
4
|
-
s.date = "
|
3
|
+
s.version = "0.0.4"
|
4
|
+
s.date = "2009-01-28"
|
5
5
|
s.summary = "The smallish DSL for writing IRC bots"
|
6
6
|
s.email = "ichverstehe@gmail.com"
|
7
7
|
s.homepage = "http://github.com/ichverstehe/isaac"
|
data/lib/isaac.rb
CHANGED
@@ -13,7 +13,7 @@ module Isaac
|
|
13
13
|
app.execute(params, &block)
|
14
14
|
end
|
15
15
|
|
16
|
-
Config = Struct.new(:nick, :server, :port, :username, :realname, :version, :verbose)
|
16
|
+
Config = Struct.new(:nick, :server, :port, :username, :realname, :version, :verbose, :password)
|
17
17
|
|
18
18
|
# These are top level methods you use to construct your bot.
|
19
19
|
class Application
|
@@ -91,7 +91,8 @@ module Isaac
|
|
91
91
|
puts "Connecting to #{@config.server} at port #{@config.port}"
|
92
92
|
@irc = TCPSocket.open(@config.server, @config.port)
|
93
93
|
puts "Connection established."
|
94
|
-
|
94
|
+
|
95
|
+
@irc.puts "PASS #{@config.password}" if @config.password
|
95
96
|
@irc.puts "NICK #{@config.nick}"
|
96
97
|
@irc.puts "USER #{@config.username} foobar foobar :#{@config.realname}"
|
97
98
|
|
@@ -138,7 +139,11 @@ module Isaac
|
|
138
139
|
end
|
139
140
|
when /^PING (\S+)/
|
140
141
|
#TODO not sure this is correct. Damned RFC.
|
141
|
-
|
142
|
+
if registered?
|
143
|
+
@queue << "PONG #{$1}"
|
144
|
+
else
|
145
|
+
@irc.puts "PONG #{$1}"
|
146
|
+
end
|
142
147
|
when /^:\S+ PONG \S+ :excess/
|
143
148
|
@queue.lock = false
|
144
149
|
end
|
@@ -223,7 +228,28 @@ module Isaac
|
|
223
228
|
def notice(recipient, text)
|
224
229
|
raw("PRIVMSG #{recipient} :#{text}")
|
225
230
|
end
|
226
|
-
|
231
|
+
|
232
|
+
# Set modes(s)
|
233
|
+
# mode "#awesome" "+im"
|
234
|
+
# mode "arnie" "+o-v"
|
235
|
+
# mode "#awesome" "+k" "password"
|
236
|
+
def mode(target, mode, option=nil)
|
237
|
+
option = " #{option}" if option
|
238
|
+
raw "MODE #{target} #{mode}#{option}"
|
239
|
+
end
|
240
|
+
|
241
|
+
# Ban a hostmask
|
242
|
+
# ban_mask "#awesome" "*!*@*"
|
243
|
+
def ban_mask(channel, mask)
|
244
|
+
mode channel, "+b", mask
|
245
|
+
end
|
246
|
+
|
247
|
+
# Unban a hostmask
|
248
|
+
# unban_mask "#awesome" "*!*@*"
|
249
|
+
def unban_mask(channel, mask)
|
250
|
+
mode channel, "-b", mask
|
251
|
+
end
|
252
|
+
|
227
253
|
# Join channel(s):
|
228
254
|
# join "#awesome_channel"
|
229
255
|
# join "#rollercoaster", "#j-lo"
|
@@ -248,6 +274,18 @@ module Isaac
|
|
248
274
|
def topic(channel, topic)
|
249
275
|
raw("TOPIC #{channel} :#{topic}")
|
250
276
|
end
|
277
|
+
|
278
|
+
# Invite nicks to channel
|
279
|
+
# invite "#awesome_channel", "arnie"
|
280
|
+
# invite "#awesome_channel", "arnie", "brigitte"
|
281
|
+
def invite(channel, *nicks)
|
282
|
+
nicks.each {|nick| raw("INVITE #{nick} #{channel}")}
|
283
|
+
end
|
284
|
+
|
285
|
+
# Change nickname
|
286
|
+
def set_nick(nickname)
|
287
|
+
raw("NICK #{nickname}")
|
288
|
+
end
|
251
289
|
end
|
252
290
|
end
|
253
291
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ichverstehe-isaac
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry Vangberg
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-01-28 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|