atig 0.0.1 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,7 +15,7 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Atig::VERSION
17
17
 
18
- gem.add_dependency 'sqlite3-ruby', ['~> 1.2.5']
18
+ gem.add_dependency 'sqlite3', ['>= 1.3.2']
19
19
  gem.add_dependency 'net-irc', ['>= 0']
20
20
  gem.add_dependency 'oauth', ['>= 0']
21
21
 
data/bin/atig CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # stolen from termtter
3
4
  self_file =
4
5
  if File.symlink?(__FILE__)
5
6
  require 'pathname'
@@ -9,66 +10,5 @@ self_file =
9
10
  end
10
11
  $:.unshift(File.dirname(self_file) + "/../lib")
11
12
 
12
- require "optparse"
13
-
14
- opts = {
15
- :port => 16668,
16
- :host => "localhost",
17
- :log => nil,
18
- :debug => false,
19
- :foreground => false,
20
- :conf => '~/.atig/config',
21
- }
22
-
23
- OptionParser.new do |parser|
24
- parser.instance_eval do
25
- self.banner = <<EOB.gsub(/^\t+/, "")
26
- age: #{$0} [opts]
27
- EOB
28
- separator ""
29
-
30
- separator "Options:"
31
- on("-p", "--port [PORT=#{opts[:port]}]", "port number to listen") do |port|
32
- opts[:port] = port
33
- end
34
-
35
- on("-h", "--host [HOST=#{opts[:host]}]", "host name or IP address to listen") do |host|
36
- opts[:host] = host
37
- end
38
-
39
- on("-l", "--log LOG", "log file") do |log|
40
- opts[:log] = log
41
- end
42
-
43
- on("--debug", "Enable debug mode") do |debug|
44
- opts[:log] ||= $stderr
45
- opts[:debug] = true
46
- end
47
-
48
- on("--memprof", "Enable memory profiler") do|_|
49
- require 'memory_profiler'
50
- require 'fileutils'
51
- FileUtils.mkdir_p "log"
52
- MemoryProfiler.start(:string_debug => true)
53
- end
54
-
55
- on("-c","--conf [file=#{opts[:conf]}]", "atig configuration file; default is '~/.atig/config'") do|name|
56
- opts[:conf] = name
57
- end
58
-
59
- parse!(ARGV)
60
- end
61
- end
62
-
63
- require 'logger'
64
- opts[:logger] = Logger.new(opts[:log], "weekly")
65
- opts[:logger].level = opts[:debug] ? Logger::DEBUG : Logger::INFO
66
-
67
- conf = File.expand_path opts[:conf]
68
- if File.exist? conf then
69
- opts[:logger].info "Loading #{conf}"
70
- load conf
71
- end
72
-
73
13
  require 'atig'
74
- Net::IRC::Server.new(opts[:host], opts[:port], Atig::Gateway::Session, opts).start
14
+ Atig::Client.run
@@ -1,7 +1,27 @@
1
1
  更新履歴
2
2
  ==============
3
3
 
4
- v0.3.2(2010-10-10)
4
+ v0.3.3(2012-01-24)
5
+ ------------------------------
6
+ http://github.com/mzp/atig/tree/v0.3.3
7
+
8
+ 機能追加
9
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10
+ - gem コマンドでインストールできるようにしました
11
+
12
+ 機能修正
13
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14
+ - Ruby 1.9 に対応しました
15
+ - SQLite3-1.3.5 に対応しました
16
+ - bundler に対応しました
17
+ - HTTP アクセス時の media-range から Quality 指定を削除しました
18
+ - bit.ly の API 変更に追従しました
19
+
20
+ バグ修正
21
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22
+ - 非公式RTが実行できない不具合を修正
23
+
24
+ v0.3.2(2010-10-10)
5
25
  ------------------------------
6
26
  http://github.com/mzp/atig/tree/v0.3.2
7
27
 
@@ -9,6 +9,8 @@ require 'json'
9
9
 
10
10
  require 'atig/version'
11
11
  require 'atig/monkey'
12
+ require 'atig/optparse'
13
+ require 'atig/client'
12
14
  require 'atig/twitter'
13
15
  require 'atig/scheduler'
14
16
  require 'atig/agent'
@@ -0,0 +1,22 @@
1
+ require 'logger'
2
+
3
+ module Atig
4
+ module Client
5
+ class << self
6
+ def run
7
+ opts = Atig::OptParser.parse!(ARGV)
8
+
9
+ opts[:logger] = Logger.new(opts[:log], "weekly")
10
+ opts[:logger].level = opts[:debug] ? Logger::DEBUG : Logger::INFO
11
+
12
+ conf = File.expand_path opts[:conf]
13
+ if File.exist? conf then
14
+ opts[:logger].info "Loading #{conf}"
15
+ load conf
16
+ end
17
+
18
+ Net::IRC::Server.new(opts[:host], opts[:port], Atig::Gateway::Session, opts).start
19
+ end
20
+ end
21
+ end
22
+ end
@@ -70,6 +70,10 @@ module Atig
70
70
  end
71
71
  end
72
72
 
73
+ def bool(b)
74
+ if b then 1 else 0 end
75
+ end
76
+
73
77
  def update(users)
74
78
  @db.execute do|db|
75
79
  may_notify :join, users.select{|u|
@@ -90,7 +94,7 @@ module Atig
90
94
  may_notify :mode, users.select{|u|
91
95
  exists?(db,
92
96
  "screen_name = ? AND (protected != ? OR only != ?)",
93
- u.screen_name, u.protected, u.only)
97
+ u.screen_name, bool(u.protected), bool(u.only))
94
98
  }
95
99
 
96
100
  users.each do|user|
@@ -98,8 +102,8 @@ module Atig
98
102
  if id then
99
103
  db.execute("UPDATE users SET screen_name = ?, protected = ?, only = ?, data = ? WHERE id = ?",
100
104
  user.screen_name,
101
- user.protected,
102
- user.only,
105
+ bool(user.protected),
106
+ bool(user.only),
103
107
  @db.dump(user),
104
108
  id)
105
109
  else
@@ -107,8 +111,8 @@ module Atig
107
111
  VALUES(NULL, :screen_name, :user_id, :protected, :only, :data)",
108
112
  :screen_name => user.screen_name,
109
113
  :user_id => user.id,
110
- :protected => user.protected,
111
- :only => user.only,
114
+ :protected => bool(user.protected),
115
+ :only => bool(user.only),
112
116
  :data => @db.dump(user))
113
117
  end
114
118
  end
@@ -0,0 +1,60 @@
1
+ require "optparse"
2
+
3
+ module Atig
4
+ module OptParser
5
+ class << self
6
+ def parse!(argv)
7
+ opts = {
8
+ :port => 16668,
9
+ :host => "localhost",
10
+ :log => nil,
11
+ :debug => false,
12
+ :foreground => false,
13
+ :conf => '~/.atig/config',
14
+ }
15
+
16
+ OptionParser.new do |parser|
17
+ parser.instance_eval do
18
+ self.banner = <<EOB.gsub(/^\t+/, "")
19
+ usage: #{$0} [opts]
20
+ EOB
21
+ separator ""
22
+
23
+ separator "Options:"
24
+ on("-p", "--port [PORT=#{opts[:port]}]", "port number to listen") do |port|
25
+ opts[:port] = port
26
+ end
27
+
28
+ on("-h", "--host [HOST=#{opts[:host]}]", "host name or IP address to listen") do |host|
29
+ opts[:host] = host
30
+ end
31
+
32
+ on("-l", "--log LOG", "log file") do |log|
33
+ opts[:log] = log
34
+ end
35
+
36
+ on("--debug", "Enable debug mode") do |debug|
37
+ opts[:log] ||= $stderr
38
+ opts[:debug] = true
39
+ end
40
+
41
+ on("--memprof", "Enable memory profiler") do|_|
42
+ require 'memory_profiler'
43
+ require 'fileutils'
44
+ FileUtils.mkdir_p "log"
45
+ MemoryProfiler.start(:string_debug => true)
46
+ end
47
+
48
+ on("-c","--conf [file=#{opts[:conf]}]", "atig configuration file; default is '~/.atig/config'") do|name|
49
+ opts[:conf] = name
50
+ end
51
+
52
+ parse!(argv)
53
+ end
54
+ end
55
+
56
+ opts
57
+ end
58
+ end
59
+ end
60
+ end
@@ -1,3 +1,3 @@
1
1
  module Atig
2
- VERSION = "0.0.1"
2
+ VERSION = "0.3.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-20 00:00:00.000000000 Z
12
+ date: 2012-01-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: sqlite3-ruby
16
- requirement: &70111072362400 !ruby/object:Gem::Requirement
15
+ name: sqlite3
16
+ requirement: &70109117034800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.2.5
21
+ version: 1.3.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70111072362400
24
+ version_requirements: *70109117034800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: net-irc
27
- requirement: &70111072361840 !ruby/object:Gem::Requirement
27
+ requirement: &70109117051120 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70111072361840
35
+ version_requirements: *70109117051120
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: oauth
38
- requirement: &70111072361120 !ruby/object:Gem::Requirement
38
+ requirement: &70109117050100 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70111072361120
46
+ version_requirements: *70109117050100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &70111072360260 !ruby/object:Gem::Requirement
49
+ requirement: &70109117071120 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70111072360260
57
+ version_requirements: *70109117071120
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: json
60
- requirement: &70111072359240 !ruby/object:Gem::Requirement
60
+ requirement: &70109117070540 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70111072359240
68
+ version_requirements: *70109117070540
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &70111072358620 !ruby/object:Gem::Requirement
71
+ requirement: &70109117069900 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70111072358620
79
+ version_requirements: *70109117069900
80
80
  description: Atig.rb is Twitter Irc Gateway.
81
81
  email:
82
82
  - shibata.hiroshi@gmail.com
@@ -143,6 +143,7 @@ files:
143
143
  - lib/atig/channel/mention.rb
144
144
  - lib/atig/channel/retweet.rb
145
145
  - lib/atig/channel/timeline.rb
146
+ - lib/atig/client.rb
146
147
  - lib/atig/command.rb
147
148
  - lib/atig/command/autofix.rb
148
149
  - lib/atig/command/command.rb
@@ -200,6 +201,7 @@ files:
200
201
  - lib/atig/ofilter/geo.rb
201
202
  - lib/atig/ofilter/short_url.rb
202
203
  - lib/atig/option.rb
204
+ - lib/atig/optparse.rb
203
205
  - lib/atig/scheduler.rb
204
206
  - lib/atig/search.rb
205
207
  - lib/atig/search_twitter.rb
@@ -268,12 +270,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
268
270
  - - ! '>='
269
271
  - !ruby/object:Gem::Version
270
272
  version: '0'
273
+ segments:
274
+ - 0
275
+ hash: 411555485053826307
271
276
  required_rubygems_version: !ruby/object:Gem::Requirement
272
277
  none: false
273
278
  requirements:
274
279
  - - ! '>='
275
280
  - !ruby/object:Gem::Version
276
281
  version: '0'
282
+ segments:
283
+ - 0
284
+ hash: 411555485053826307
277
285
  requirements: []
278
286
  rubyforge_project:
279
287
  rubygems_version: 1.8.15