atig 0.0.1 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/atig.gemspec +1 -1
- data/bin/atig +2 -62
- data/docs/changelog.rst +21 -1
- data/lib/atig.rb +2 -0
- data/lib/atig/client.rb +22 -0
- data/lib/atig/db/followings.rb +9 -5
- data/lib/atig/optparse.rb +60 -0
- data/lib/atig/version.rb +1 -1
- metadata +25 -17
data/atig.gemspec
CHANGED
@@ -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
|
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
|
-
|
14
|
+
Atig::Client.run
|
data/docs/changelog.rst
CHANGED
@@ -1,7 +1,27 @@
|
|
1
1
|
更新履歴
|
2
2
|
==============
|
3
3
|
|
4
|
-
v0.3.
|
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
|
|
data/lib/atig.rb
CHANGED
data/lib/atig/client.rb
ADDED
@@ -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
|
data/lib/atig/db/followings.rb
CHANGED
@@ -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
|
data/lib/atig/version.rb
CHANGED
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.
|
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-
|
12
|
+
date: 2012-01-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name: sqlite3
|
16
|
-
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
|
21
|
+
version: 1.3.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70109117034800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: net-irc
|
27
|
-
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: *
|
35
|
+
version_requirements: *70109117051120
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: oauth
|
38
|
-
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: *
|
46
|
+
version_requirements: *70109117050100
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
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: *
|
57
|
+
version_requirements: *70109117071120
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: json
|
60
|
-
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: *
|
68
|
+
version_requirements: *70109117070540
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
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: *
|
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
|