twitter-vine 0.1.1 → 0.1.2
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 +8 -8
- data/Gemfile.lock +1 -1
- data/lib/twitter-vine.rb +21 -0
- data/lib/twitter-vine/client.rb +5 -16
- data/lib/twitter-vine/version.rb +1 -1
- data/spec/spec_helper.rb +6 -0
- data/spec/twitter-vine_spec.rb +11 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDM4NDZmZWExMWQ3ZTU5ODBhZjZhNzJhYzFjMDg4YjU4Zjc2ZDVhZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjZhMTg3NTRkZjM4NjAwMjM2MTIyMmNjNjIyMDc5ZGYwN2U3N2MyNg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MWEyNzdiYzI3NGE4NzE3YmE3NjZkNzIzZTQxMmQ4ZWZkMDdiZTY2Mzc1Yzc5
|
10
|
+
ZGRlNGVjOGNkODIwMzFhMDJkOGJhOTlhNTUyMGMzMjkyMjcxZThjNDYzMjE0
|
11
|
+
N2QwMmU5YTBmMDg3ZDRlODcxZmRjZTI4YjlkMDI5MmFiYmVjMTY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODRiYWQ4YjBjNGE5MzQxODhiODZjNzkyYTljZjBlMGQ3ZDFiYTNlNGVmNzIy
|
14
|
+
MmZjOTc5YzgzMjBkOWM4ZmE2ODgxZjIyZTk4NzU2ZjJlMDgzZGI1OTc5YWQy
|
15
|
+
MTc1MWE5Yzk4YjkwMGQyZDdjYzcyNGE0ODhjMTAzOGQ5OTA2YTA=
|
data/Gemfile.lock
CHANGED
data/lib/twitter-vine.rb
CHANGED
@@ -3,6 +3,7 @@ require 'twitter'
|
|
3
3
|
require 'nokogiri'
|
4
4
|
|
5
5
|
module TwitterVine
|
6
|
+
DEBUG = false
|
6
7
|
|
7
8
|
def self.api_key; @@api_key; end
|
8
9
|
def self.api_key=(val); @@api_key=val; end
|
@@ -21,6 +22,26 @@ module TwitterVine
|
|
21
22
|
def self.setup
|
22
23
|
yield self
|
23
24
|
end
|
25
|
+
|
26
|
+
def self.build_vine_map(twitter_result)
|
27
|
+
vine_url = twitter_result.urls.map do |u|
|
28
|
+
if u[:display_url] =~ /vine\.co\/v/
|
29
|
+
u[:expanded_url].to_s
|
30
|
+
end
|
31
|
+
end.compact.first
|
32
|
+
puts "Got vine_url [#{vine_url}]" if DEBUG
|
33
|
+
doc = Nokogiri::HTML(open(vine_url))
|
34
|
+
{
|
35
|
+
vine_id: vine_url.match(/.*\/(.*)/)[1],
|
36
|
+
vine_url: vine_url,
|
37
|
+
vine_author_thumbnail: doc.css(".avatar-container img").first[:src],
|
38
|
+
vine_author: doc.css("p.username").text,
|
39
|
+
vine_description: doc.css("p.description").text.gsub(/\s+/," ").strip,
|
40
|
+
vine_src: doc.css("video source").first[:src],
|
41
|
+
vine_type: doc.css("video source").first[:type]
|
42
|
+
}
|
43
|
+
|
44
|
+
end
|
24
45
|
end
|
25
46
|
|
26
47
|
require 'twitter-vine/client'
|
data/lib/twitter-vine/client.rb
CHANGED
@@ -2,7 +2,6 @@ require 'open-uri'
|
|
2
2
|
|
3
3
|
module TwitterVine
|
4
4
|
module Client
|
5
|
-
DEBUG = false
|
6
5
|
|
7
6
|
#
|
8
7
|
# OPTIONS:
|
@@ -25,20 +24,16 @@ module TwitterVine
|
|
25
24
|
opts[:lang] ||= "en"
|
26
25
|
opts[:count] ||= 10
|
27
26
|
vine_criteria = "\"vine.co/v/\" #{q} -RT"
|
28
|
-
puts "Using search criteria [#{vine_criteria}]" if DEBUG
|
27
|
+
puts "Using search criteria [#{vine_criteria}]" if TwitterVine::DEBUG
|
29
28
|
_normalize(tc.search(vine_criteria, opts))
|
30
29
|
end
|
31
30
|
|
31
|
+
|
32
32
|
private
|
33
33
|
# Does the processing inplace...
|
34
34
|
def self._normalize(results)
|
35
35
|
results.entries.map do |r|
|
36
|
-
|
37
|
-
if u[:display_url] =~ /vine\.co\/v/
|
38
|
-
u[:expanded_url].to_s
|
39
|
-
end
|
40
|
-
end.compact.first
|
41
|
-
doc = Nokogiri::HTML(open(vine_url))
|
36
|
+
vine_map = TwitterVine.build_vine_map(r)
|
42
37
|
{
|
43
38
|
time: r.created_at,
|
44
39
|
id: r.id,
|
@@ -51,14 +46,8 @@ module TwitterVine
|
|
51
46
|
friends_count: r.user.friends_count,
|
52
47
|
followers_count: r.user.followers_count,
|
53
48
|
# media: r.media.map{|m| m.media_uri.to_s},
|
54
|
-
|
55
|
-
|
56
|
-
vine_author: doc.css("p.username").text,
|
57
|
-
vine_description: doc.css("p.description").text.gsub(/\s+/," ").strip,
|
58
|
-
vine_src: doc.css("video source").first[:src],
|
59
|
-
vine_type: doc.css("video source").first[:type]
|
60
|
-
}
|
61
|
-
end
|
49
|
+
}.merge(vine_map)
|
50
|
+
end.compact
|
62
51
|
end
|
63
52
|
|
64
53
|
end
|
data/lib/twitter-vine/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -20,3 +20,9 @@ TwitterVine.setup do |c|
|
|
20
20
|
c.oauth_secret = ENV["BT_TWITTER_OAUTH_TOKEN_SECRET"]
|
21
21
|
end
|
22
22
|
|
23
|
+
class MockTweet
|
24
|
+
def url;"https://twitter.com/DesliParra/status/407413145792413696";end
|
25
|
+
def urls;[{display_url:"vine.co/v/hF7WOEl76T1", expanded_url:"https://vine.co/v/hF7WOEl76T1"}];end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
data/spec/twitter-vine_spec.rb
CHANGED
@@ -16,4 +16,15 @@ describe TwitterVine do
|
|
16
16
|
# expect(l.size).to be > 0
|
17
17
|
# end
|
18
18
|
|
19
|
+
it "should be able to scrape Vine metadata" do
|
20
|
+
vine_map = TwitterVine.build_vine_map(MockTweet.new)
|
21
|
+
puts vine_map
|
22
|
+
vine_map[:vine_id].should_not be nil
|
23
|
+
vine_map[:vine_url].should_not be nil
|
24
|
+
vine_map[:vine_author_thumbnail].should_not be nil
|
25
|
+
vine_map[:vine_author].should_not be nil
|
26
|
+
vine_map[:vine_description].should_not be nil
|
27
|
+
vine_map[:vine_src].should_not be nil
|
28
|
+
vine_map[:vine_type].should_not be nil
|
29
|
+
end
|
19
30
|
end
|