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