atig 0.0.1 → 0.3.3

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.
@@ -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