twitter2jabber 0.8.0 → 0.8.1
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.
- checksums.yaml +4 -4
- data/ChangeLog +8 -0
- data/README +1 -1
- data/TODO +0 -2
- data/lib/twitter2jabber/{jabber.rb → jabber_client.rb} +11 -2
- data/lib/twitter2jabber/{twitter.rb → twitter_client.rb} +22 -4
- data/lib/twitter2jabber/version.rb +1 -1
- data/lib/twitter2jabber.rb +14 -4
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22d1efa034a7df52c0417d0122d5a6cfc86ac732
|
4
|
+
data.tar.gz: 679a722cd4e6384fb5fbd1e52a9ea78d689b867f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34e9362d7eefa5aeb5fff91f850d0cb08df52e85f3f5855edbd954b00c6fa8b6863d27e6912056d13d711650c1405be210a81f02206956652d889944a05b079d
|
7
|
+
data.tar.gz: 85a22de2e19cb87a963b2479da076ca59dda43d3d735e9aeceb8520e607c776d0ee8803939ed989d50096bf60444f6ecc31f400b8b09ad2d9f60a36b79264539
|
data/ChangeLog
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
|
3
3
|
= Revision history for twitter2jabber
|
4
4
|
|
5
|
+
== 0.8.1 [2014-04-25]
|
6
|
+
|
7
|
+
* Exhaust the Twitter stream by buffering all tweets received since the last
|
8
|
+
time, or one batch when run for the first time.
|
9
|
+
* Relies on the order in Twitter::REST::Client#home_timeline (descending by
|
10
|
+
ID).
|
11
|
+
* Disconnects Twitter and Jabber clients when finished.
|
12
|
+
|
5
13
|
== 0.8.0 [2014-04-15]
|
6
14
|
|
7
15
|
* Dropped "write" functionality. Only forwards Twitter messages to Jabber.
|
data/README
CHANGED
data/TODO
CHANGED
@@ -68,6 +68,11 @@ class Twitter2Jabber
|
|
68
68
|
raise "Can't connect to Jabber with JID '#{spec}': #{err}"
|
69
69
|
end
|
70
70
|
|
71
|
+
def disconnect
|
72
|
+
close if @client
|
73
|
+
log 'disconnected'
|
74
|
+
end
|
75
|
+
|
71
76
|
def format(tweet)
|
72
77
|
user = tweet.user
|
73
78
|
text = @erb.result(binding)
|
@@ -113,14 +118,18 @@ class Twitter2Jabber
|
|
113
118
|
rescue Errno::EPIPE, IOError
|
114
119
|
raise if attempts > 3
|
115
120
|
|
121
|
+
close
|
122
|
+
sleep 1
|
123
|
+
retry
|
124
|
+
end
|
125
|
+
|
126
|
+
def close
|
116
127
|
begin
|
117
128
|
@client.close
|
118
129
|
rescue Errno::EPIPE, IOError
|
119
130
|
end
|
120
131
|
|
121
132
|
@client = nil
|
122
|
-
sleep 1
|
123
|
-
retry
|
124
133
|
end
|
125
134
|
|
126
135
|
def log(msg)
|
@@ -31,6 +31,8 @@ class Twitter2Jabber
|
|
31
31
|
|
32
32
|
class TwitterClient
|
33
33
|
|
34
|
+
BATCH_SIZE = Twitter::REST::Timelines::MAX_TWEETS_PER_REQUEST
|
35
|
+
|
34
36
|
def initialize(gw, config)
|
35
37
|
@gw, @config, @client = gw, config, Twitter::REST::Client.new(
|
36
38
|
consumer_key: @spec = config[:consumer_token],
|
@@ -49,11 +51,13 @@ class Twitter2Jabber
|
|
49
51
|
raise "Can't connect to Twitter with ID '#{spec}': #{err}"
|
50
52
|
end
|
51
53
|
|
52
|
-
def
|
53
|
-
|
54
|
-
|
54
|
+
def disconnect
|
55
|
+
@client = nil
|
56
|
+
log 'disconnected'
|
57
|
+
end
|
55
58
|
|
56
|
-
|
59
|
+
def tweets(since_id = nil)
|
60
|
+
get_tweets(since_id).reverse_each { |tweet|
|
57
61
|
log since_id = tweet.id
|
58
62
|
yield tweet
|
59
63
|
sleep 1
|
@@ -80,6 +84,20 @@ class Twitter2Jabber
|
|
80
84
|
|
81
85
|
private
|
82
86
|
|
87
|
+
def get_tweets(since_id = nil)
|
88
|
+
options, buffer = { count: BATCH_SIZE }, []
|
89
|
+
options[:since_id] = since_id if since_id
|
90
|
+
|
91
|
+
loop {
|
92
|
+
buffer.concat(batch = client.home_timeline(options))
|
93
|
+
|
94
|
+
break if batch.empty? || !since_id ||
|
95
|
+
since_id >= options[:max_id] = batch.last.id - 1
|
96
|
+
}
|
97
|
+
|
98
|
+
buffer
|
99
|
+
end
|
100
|
+
|
83
101
|
def log(msg)
|
84
102
|
@gw.log("TWITTER #{msg}")
|
85
103
|
end
|
data/lib/twitter2jabber.rb
CHANGED
@@ -29,7 +29,7 @@ class Twitter2Jabber
|
|
29
29
|
class << self
|
30
30
|
|
31
31
|
def run(options, since_id = nil)
|
32
|
-
new(options).connect.deliver_tweets(since_id)
|
32
|
+
new(options).connect.deliver_tweets(since_id).disconnect
|
33
33
|
end
|
34
34
|
|
35
35
|
def client(client)
|
@@ -54,6 +54,8 @@ class Twitter2Jabber
|
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
+
attr_reader :twitter, :jabber, :debug
|
58
|
+
|
57
59
|
def connect
|
58
60
|
log 'Connecting...'
|
59
61
|
|
@@ -63,10 +65,18 @@ class Twitter2Jabber
|
|
63
65
|
self
|
64
66
|
end
|
65
67
|
|
66
|
-
|
68
|
+
def disconnect
|
69
|
+
log 'Disconnecting...'
|
70
|
+
|
71
|
+
twitter.disconnect
|
72
|
+
jabber.disconnect
|
73
|
+
|
74
|
+
self
|
75
|
+
end
|
67
76
|
|
68
77
|
def deliver_tweets(since_id = nil)
|
69
78
|
twitter.tweets(since_id) { |tweet| jabber.deliver(tweet) }
|
79
|
+
self
|
70
80
|
end
|
71
81
|
|
72
82
|
def log(msg)
|
@@ -84,5 +94,5 @@ class Twitter2Jabber
|
|
84
94
|
end
|
85
95
|
|
86
96
|
require_relative 'twitter2jabber/version'
|
87
|
-
require_relative 'twitter2jabber/
|
88
|
-
require_relative 'twitter2jabber/
|
97
|
+
require_relative 'twitter2jabber/twitter_client'
|
98
|
+
require_relative 'twitter2jabber/jabber_client'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitter2jabber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jens Wille
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cyclops
|
@@ -115,8 +115,8 @@ files:
|
|
115
115
|
- example/templates/tweet.txt
|
116
116
|
- lib/twitter2jabber.rb
|
117
117
|
- lib/twitter2jabber/cli.rb
|
118
|
-
- lib/twitter2jabber/
|
119
|
-
- lib/twitter2jabber/
|
118
|
+
- lib/twitter2jabber/jabber_client.rb
|
119
|
+
- lib/twitter2jabber/twitter_client.rb
|
120
120
|
- lib/twitter2jabber/version.rb
|
121
121
|
homepage: http://github.com/blackwinter/twitter2jabber
|
122
122
|
licenses:
|
@@ -124,16 +124,17 @@ licenses:
|
|
124
124
|
metadata: {}
|
125
125
|
post_install_message: |2+
|
126
126
|
|
127
|
-
twitter2jabber-0.8.
|
127
|
+
twitter2jabber-0.8.1 [2014-04-25]:
|
128
128
|
|
129
|
-
*
|
130
|
-
|
131
|
-
*
|
132
|
-
|
129
|
+
* Exhaust the Twitter stream by buffering all tweets received since the last
|
130
|
+
time, or one batch when run for the first time.
|
131
|
+
* Relies on the order in Twitter::REST::Client#home_timeline (descending by
|
132
|
+
ID).
|
133
|
+
* Disconnects Twitter and Jabber clients when finished.
|
133
134
|
|
134
135
|
rdoc_options:
|
135
136
|
- "--title"
|
136
|
-
- twitter2jabber Application documentation (v0.8.
|
137
|
+
- twitter2jabber Application documentation (v0.8.1)
|
137
138
|
- "--charset"
|
138
139
|
- UTF-8
|
139
140
|
- "--line-numbers"
|
@@ -154,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
155
|
version: '0'
|
155
156
|
requirements: []
|
156
157
|
rubyforge_project:
|
157
|
-
rubygems_version: 2.2.2
|
158
|
+
rubygems_version: 2.2.2.x
|
158
159
|
signing_key:
|
159
160
|
specification_version: 4
|
160
161
|
summary: Twitter-to-Jabber gateway.
|