mitten 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +2 -2
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/{server → client} +2 -2
- data/bin/daemon +1 -1
- data/lib/mitten.rb +2 -2
- data/mitten.gemspec +5 -5
- data/plugins/gmail.rb +18 -13
- data/plugins/openpne_new_diary_check.rb +19 -13
- data/spec/mitten_spec.rb +3 -3
- metadata +6 -6
data/README.rdoc
CHANGED
@@ -20,7 +20,7 @@ Mitten is A Ruby IRC Bot Pluggable Framework.
|
|
20
20
|
|
21
21
|
1. Usage
|
22
22
|
|
23
|
-
$ ./bin/
|
23
|
+
$ ./bin/client -h
|
24
24
|
$ ./bin/daemon run -- -h
|
25
25
|
|
26
26
|
2. Start
|
@@ -41,7 +41,7 @@ Mitten is A Ruby IRC Bot Pluggable Framework.
|
|
41
41
|
|
42
42
|
6. Run on the top(not daemonize)
|
43
43
|
|
44
|
-
$ ./bin/
|
44
|
+
$ ./bin/client
|
45
45
|
$ ./bin/daemon run
|
46
46
|
|
47
47
|
|
data/Rakefile
CHANGED
@@ -8,7 +8,7 @@ begin
|
|
8
8
|
gem.summary = 'IRC Bot Framework'
|
9
9
|
gem.description = 'Mitten is A Ruby IRC Bot Pluggable Framework'
|
10
10
|
gem.email = 'tomohiro.t@gmail.com'
|
11
|
-
gem.homepage = 'http://
|
11
|
+
gem.homepage = 'http://rubygems.org/gems/mitten'
|
12
12
|
gem.authors = ['Tomohiro, TAIRA']
|
13
13
|
gem.add_dependency 'net-irc', '>= 0.0.9'
|
14
14
|
gem.add_dependency 'daemons', '>= 1.0.10'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
data/bin/{server → client}
RENAMED
data/bin/daemon
CHANGED
data/lib/mitten.rb
CHANGED
@@ -16,7 +16,7 @@ require 'lib/plugin'
|
|
16
16
|
module Mitten
|
17
17
|
DEFAULT_CONFIG_FILE_PATH = 'configs/environment.yaml'
|
18
18
|
|
19
|
-
class
|
19
|
+
class Bot < Net::IRC::Client
|
20
20
|
def self.boot
|
21
21
|
new.boot
|
22
22
|
end
|
@@ -43,7 +43,7 @@ module Mitten
|
|
43
43
|
o.parse!
|
44
44
|
end
|
45
45
|
|
46
|
-
@config = OpenStruct.new(
|
46
|
+
@config = OpenStruct.new(YAML.load_file config_file)
|
47
47
|
@server = @config.method(@mode).call
|
48
48
|
end
|
49
49
|
|
data/mitten.gemspec
CHANGED
@@ -5,14 +5,14 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mitten}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tomohiro, TAIRA"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-03-16}
|
13
13
|
s.description = %q{Mitten is A Ruby IRC Bot Pluggable Framework}
|
14
14
|
s.email = %q{tomohiro.t@gmail.com}
|
15
|
-
s.executables = ["daemon", "
|
15
|
+
s.executables = ["daemon", "client"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE",
|
18
18
|
"README.rdoc"
|
@@ -24,8 +24,8 @@ Gem::Specification.new do |s|
|
|
24
24
|
"README.rdoc",
|
25
25
|
"Rakefile",
|
26
26
|
"VERSION",
|
27
|
+
"bin/client",
|
27
28
|
"bin/daemon",
|
28
|
-
"bin/server",
|
29
29
|
"configs/example_environment.yaml",
|
30
30
|
"configs/time_call.yaml",
|
31
31
|
"configs/twitter_bot.yaml",
|
@@ -61,7 +61,7 @@ Gem::Specification.new do |s|
|
|
61
61
|
"spec/spec.opts",
|
62
62
|
"spec/spec_helper.rb"
|
63
63
|
]
|
64
|
-
s.homepage = %q{http://
|
64
|
+
s.homepage = %q{http://rubygems.org/gems/mitten}
|
65
65
|
s.rdoc_options = ["--charset=UTF-8"]
|
66
66
|
s.require_paths = ["lib"]
|
67
67
|
s.rubygems_version = %q{1.3.6}
|
data/plugins/gmail.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'net/https'
|
2
|
+
require 'sdbm'
|
2
3
|
require 'nokogiri'
|
3
4
|
|
4
5
|
=begin
|
@@ -25,7 +26,6 @@ class Gmail < Mitten::Plugin
|
|
25
26
|
else
|
26
27
|
@https = Net::HTTP.new('mail.google.com', 443)
|
27
28
|
end
|
28
|
-
@mail_cache = {}
|
29
29
|
end
|
30
30
|
|
31
31
|
def before_hook
|
@@ -40,20 +40,25 @@ class Gmail < Mitten::Plugin
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def main
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
43
|
+
begin
|
44
|
+
db = SDBM.open("/tmp/gmail_#{@account}.db")
|
45
|
+
mail_list = Nokogiri::XML(@https.request(@request).body)
|
46
|
+
(mail_list/'entry').each do |entry|
|
47
|
+
id = entry.at('id').content
|
48
|
+
unless db.include? id
|
49
|
+
db[id] = '1'
|
50
|
+
title = entry.at('title').text
|
51
|
+
name = entry.at('name').text
|
52
|
+
link = entry.at('link')['href']
|
53
|
+
|
54
|
+
@channels.each do |channel|
|
55
|
+
notice(channel, "Gmail: (#{name}) #{title} #{URI.short(link)}")
|
56
|
+
sleep 5
|
57
|
+
end
|
55
58
|
end
|
56
59
|
end
|
60
|
+
ensure
|
61
|
+
db.close
|
57
62
|
end
|
58
63
|
end
|
59
64
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'sdbm'
|
1
2
|
require 'mechanize'
|
2
3
|
require 'nokogiri'
|
3
4
|
|
@@ -20,7 +21,6 @@ class OpenPNENewDiaryCheck < Mitten::Plugin
|
|
20
21
|
@uri = @config['uri']
|
21
22
|
@username = @config['username']
|
22
23
|
@password = @config['password']
|
23
|
-
@diaries = {}
|
24
24
|
end
|
25
25
|
|
26
26
|
def before_hook
|
@@ -38,23 +38,29 @@ class OpenPNENewDiaryCheck < Mitten::Plugin
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def main
|
41
|
-
|
42
|
-
|
41
|
+
begin
|
42
|
+
db = SDBM.open("/tmp/openpnenewdiarycheck_#{@username}.db")
|
43
|
+
diary_page = @agent.get "#{@uri}/?m=pc&a=page_h_diary_list_all"
|
44
|
+
diaries = Nokogiri::HTML(diary_page.body)/'div.item'
|
43
45
|
|
44
|
-
|
45
|
-
|
46
|
-
|
46
|
+
diaries[1...diaries.size].each do |diary|
|
47
|
+
uri = "#{@uri}/#{(diary/'td.photo/a').first.attributes['href']}"
|
48
|
+
redo if uri == nil or uri == ''
|
47
49
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
unless db.include? uri
|
51
|
+
db[uri] = '1'
|
52
|
+
nick = ((diary/'td').to_a)[1].text.gsub(/ \(.*\)$/, '')
|
53
|
+
title = ((diary/'td').to_a)[2].text.gsub(/ \([0-9].?\)/, '')
|
54
|
+
message = "#{nick}さんが「#{title}」を投稿しました! (#{uri})"
|
53
55
|
|
54
|
-
|
55
|
-
|
56
|
+
@channels.each do |channel|
|
57
|
+
notice(channel, message)
|
58
|
+
sleep 5
|
59
|
+
end
|
56
60
|
end
|
57
61
|
end
|
62
|
+
ensure
|
63
|
+
db.close
|
58
64
|
end
|
59
65
|
end
|
60
66
|
end
|
data/spec/mitten_spec.rb
CHANGED
@@ -2,10 +2,10 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
|
3
3
|
describe "Mitten" do
|
4
4
|
before(:all) do
|
5
|
-
@mitten = Mitten::
|
5
|
+
@mitten = Mitten::Bot.new
|
6
6
|
end
|
7
7
|
|
8
|
-
it 'Mitten::
|
9
|
-
@mitten.class.should == Mitten::
|
8
|
+
it 'Mitten::Bot Instantiation' do
|
9
|
+
@mitten.class.should == Mitten::Bot
|
10
10
|
end
|
11
11
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Tomohiro, TAIRA
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-03-16 00:00:00 +09:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -91,7 +91,7 @@ description: Mitten is A Ruby IRC Bot Pluggable Framework
|
|
91
91
|
email: tomohiro.t@gmail.com
|
92
92
|
executables:
|
93
93
|
- daemon
|
94
|
-
-
|
94
|
+
- client
|
95
95
|
extensions: []
|
96
96
|
|
97
97
|
extra_rdoc_files:
|
@@ -104,8 +104,8 @@ files:
|
|
104
104
|
- README.rdoc
|
105
105
|
- Rakefile
|
106
106
|
- VERSION
|
107
|
+
- bin/client
|
107
108
|
- bin/daemon
|
108
|
-
- bin/server
|
109
109
|
- configs/example_environment.yaml
|
110
110
|
- configs/time_call.yaml
|
111
111
|
- configs/twitter_bot.yaml
|
@@ -141,7 +141,7 @@ files:
|
|
141
141
|
- spec/spec.opts
|
142
142
|
- spec/spec_helper.rb
|
143
143
|
has_rdoc: true
|
144
|
-
homepage: http://
|
144
|
+
homepage: http://rubygems.org/gems/mitten
|
145
145
|
licenses: []
|
146
146
|
|
147
147
|
post_install_message:
|