net-irc 0.0.6 → 0.0.7
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 +6 -0
- data/examples/hatena-star-stream.rb +1 -1
- data/examples/hig.rb +1 -0
- data/examples/lig.rb +5 -5
- data/examples/lingr.rb +1 -1
- data/examples/tig.rb +20 -32
- data/examples/wig.rb +1 -1
- data/lib/net/irc.rb +1 -1
- data/lib/net/irc/message.rb +1 -1
- data/spec/net-irc_spec.rb +2 -3
- metadata +2 -2
data/ChangeLog
CHANGED
@@ -92,7 +92,7 @@ class HatenaStarStream < Net::IRC::Server::Session
|
|
92
92
|
@log.info "getting report..."
|
93
93
|
@ua.get("http://s.hatena.ne.jp/#{@real}/report")
|
94
94
|
entries = @ua.page.root.search("#main span.entry-title a").map {|a|
|
95
|
-
a[
|
95
|
+
a['href']
|
96
96
|
}
|
97
97
|
|
98
98
|
@log.info "getting stars... #{entries.length}"
|
data/examples/hig.rb
CHANGED
data/examples/lig.rb
CHANGED
@@ -521,17 +521,17 @@ if __FILE__ == $0
|
|
521
521
|
opts[:logger].level = opts[:debug] ? Logger::DEBUG : Logger::INFO
|
522
522
|
|
523
523
|
def daemonize(foreground=false)
|
524
|
-
|
525
|
-
|
526
|
-
|
524
|
+
[:INT, :TERM, :HUP].each do |sig|
|
525
|
+
Signal.trap sig, "EXIT"
|
526
|
+
end
|
527
527
|
return yield if $DEBUG || foreground
|
528
528
|
Process.fork do
|
529
529
|
Process.setsid
|
530
530
|
Dir.chdir "/"
|
531
531
|
File.open("/dev/null") {|f|
|
532
532
|
STDIN.reopen f
|
533
|
-
STDOUT.reopen f,
|
534
|
-
STDERR.reopen f,
|
533
|
+
STDOUT.reopen f, "w"
|
534
|
+
STDERR.reopen f, "w"
|
535
535
|
}
|
536
536
|
yield
|
537
537
|
end
|
data/examples/lingr.rb
CHANGED
@@ -275,7 +275,7 @@ module Lingr
|
|
275
275
|
|
276
276
|
def post(url, params)
|
277
277
|
if !params.find {|p| p[1].is_a?(Hash)}
|
278
|
-
|
278
|
+
params = params.inject({}){|hash,(k,v)| hash[k.to_s] = v; hash}
|
279
279
|
parse_result Net::HTTP.post_form(URI.parse(url), params)
|
280
280
|
else
|
281
281
|
boundary = 'lingr-api-client' + (0x1000000 + rand(0x1000000).to_s(16))
|
data/examples/tig.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# vim:fileencoding=utf-8:
|
3
|
+
# -*- coding: utf-8 -*-
|
2
4
|
=begin
|
3
5
|
|
4
6
|
# tig.rb
|
@@ -115,7 +117,7 @@ Force SSL for API.
|
|
115
117
|
|
116
118
|
### in (location)
|
117
119
|
|
118
|
-
/me in Tokyo, Japan
|
120
|
+
/me in Sugamo, Tokyo, Japan
|
119
121
|
|
120
122
|
### reply (re)
|
121
123
|
|
@@ -125,6 +127,14 @@ Force SSL for API.
|
|
125
127
|
|
126
128
|
/me utf7
|
127
129
|
|
130
|
+
### name
|
131
|
+
|
132
|
+
/me name My Name
|
133
|
+
|
134
|
+
### description (desc)
|
135
|
+
|
136
|
+
/me description blah, blah...
|
137
|
+
|
128
138
|
## License
|
129
139
|
|
130
140
|
Ruby's by cho45
|
@@ -230,7 +240,6 @@ class TwitterIrcGateway < Net::IRC::Server::Session
|
|
230
240
|
@check_rate_limit_thread = Thread.start do
|
231
241
|
loop do
|
232
242
|
begin
|
233
|
-
check_downtime
|
234
243
|
check_rate_limit
|
235
244
|
rescue ApiFailed => e
|
236
245
|
@log.error e.inspect
|
@@ -323,7 +332,7 @@ class TwitterIrcGateway < Net::IRC::Server::Session
|
|
323
332
|
retry_count = 3
|
324
333
|
ret = nil
|
325
334
|
target, message = *m.params
|
326
|
-
message = Iconv.iconv("UTF-7", "UTF-8", message).join if @utf7
|
335
|
+
message = Iconv.iconv("UTF-7", "UTF-8", message).join.force_encoding("ASCII-8BIT") if @utf7
|
327
336
|
begin
|
328
337
|
if target =~ /^#/
|
329
338
|
if @opts.key?("alwaysim") && @im && @im.connected? # in jabber mode, using jabber post
|
@@ -612,7 +621,7 @@ class TwitterIrcGateway < Net::IRC::Server::Session
|
|
612
621
|
|
613
622
|
begin
|
614
623
|
require "iconv"
|
615
|
-
mesg = mesg.sub(/^.+ > |^.+/) {|str| Iconv.iconv("UTF-8", "UTF-7", str).join }
|
624
|
+
mesg = mesg.sub(/^.+ > |^.+/) {|str| Iconv.iconv("UTF-8", "UTF-7", str).join }
|
616
625
|
mesg = "[utf7]: #{mesg}" if body =~ /[^a-z0-9\s]/i
|
617
626
|
rescue LoadError
|
618
627
|
rescue Iconv::IllegalSequence
|
@@ -698,21 +707,6 @@ class TwitterIrcGateway < Net::IRC::Server::Session
|
|
698
707
|
# rate_limit["reset_time_in_seconds"] - Time.now.to_i
|
699
708
|
end
|
700
709
|
|
701
|
-
def check_downtime
|
702
|
-
@prev_downtime ||= nil
|
703
|
-
schedule = api("help/downtime_schedule", {}, { :suppress_errors => true })["error"]
|
704
|
-
if @prev_downtime != schedule && @prev_downtime = schedule
|
705
|
-
msg = schedule.gsub(%r{[\r\n]|<style(?:\s[^>]*)?>.*?</style\s*>}m, "")
|
706
|
-
uris = URI.extract(msg)
|
707
|
-
uris.each do |uri|
|
708
|
-
msg << " #{uri}"
|
709
|
-
end
|
710
|
-
msg.gsub!(/<[^>]+>/, "")
|
711
|
-
log "\002\037#{msg}\017"
|
712
|
-
# TODO: sleeping for the downtime
|
713
|
-
end
|
714
|
-
end
|
715
|
-
|
716
710
|
def freq(ratio)
|
717
711
|
max = (@opts["maxlimit"] || 100).to_i
|
718
712
|
limit = @hourly_limit < max ? @hourly_limit : max
|
@@ -869,7 +863,7 @@ class TwitterIrcGateway < Net::IRC::Server::Session
|
|
869
863
|
end
|
870
864
|
|
871
865
|
def log(str)
|
872
|
-
str.gsub!(/\r
|
866
|
+
str.gsub!(/\r\n|[\r\n]/, " ")
|
873
867
|
post server_name, NOTICE, main_channel, str
|
874
868
|
end
|
875
869
|
|
@@ -992,18 +986,16 @@ if __FILE__ == $0
|
|
992
986
|
opts[:logger].level = opts[:debug] ? Logger::DEBUG : Logger::INFO
|
993
987
|
|
994
988
|
# def daemonize(foreground = false)
|
995
|
-
#
|
996
|
-
#
|
997
|
-
#
|
989
|
+
# [:INT, :TERM, :HUP].each do |sig|
|
990
|
+
# Signal.trap sig, "EXIT"
|
991
|
+
# end
|
998
992
|
# return yield if $DEBUG || foreground
|
999
993
|
# Process.fork do
|
1000
994
|
# Process.setsid
|
1001
995
|
# Dir.chdir "/"
|
1002
|
-
#
|
1003
|
-
#
|
1004
|
-
#
|
1005
|
-
# STDERR.reopen f
|
1006
|
-
# }
|
996
|
+
# STDIN.reopen "/dev/null"
|
997
|
+
# STDOUT.reopen "/dev/null", "a"
|
998
|
+
# STDERR.reopen STDOUT
|
1007
999
|
# yield
|
1008
1000
|
# end
|
1009
1001
|
# exit! 0
|
@@ -1013,7 +1005,3 @@ if __FILE__ == $0
|
|
1013
1005
|
Net::IRC::Server.new(opts[:host], opts[:port], TwitterIrcGateway, opts).start
|
1014
1006
|
# end
|
1015
1007
|
end
|
1016
|
-
|
1017
|
-
# Local Variables:
|
1018
|
-
# coding: utf-8
|
1019
|
-
# End:
|
data/examples/wig.rb
CHANGED
@@ -259,7 +259,7 @@ class WassrIrcGateway < Net::IRC::Server::Session
|
|
259
259
|
if target =~ /^#(.+)/
|
260
260
|
channel = Regexp.last_match[1]
|
261
261
|
reply = message[/\s+>(.+)$/, 1]
|
262
|
-
message = Iconv.iconv("UTF-7", "UTF-8", message).join if @utf7
|
262
|
+
message = Iconv.iconv("UTF-7", "UTF-8", message).join.force_encoding("ASCII-8BIT") if @utf7
|
263
263
|
if !reply && @opts.key?("alwaysim") && @im && @im.connected? # in jabber mode, using jabber post
|
264
264
|
message = "##{channel} #{message}" unless "##{channel}" == main_channel
|
265
265
|
ret = @im.deliver(jabber_bot_id, message)
|
data/lib/net/irc.rb
CHANGED
data/lib/net/irc/message.rb
CHANGED
data/spec/net-irc_spec.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-irc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cho45
|
@@ -9,7 +9,7 @@ autorequire: ""
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-02-
|
12
|
+
date: 2009-02-19 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|