twitter-vine 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NmFmODM2MWY5NDVlZmI1OGE4YTljYzVlOWRiNzgwNDNkOTliOGM4Mw==
4
+ NDM4NDZmZWExMWQ3ZTU5ODBhZjZhNzJhYzFjMDg4YjU4Zjc2ZDVhZQ==
5
5
  data.tar.gz: !binary |-
6
- NzYzNTBkNzE5M2ViNGM1YzdlYzAwMDhlZTVhMTA4MmQ2NzVkNTU3OQ==
6
+ ZjZhMTg3NTRkZjM4NjAwMjM2MTIyMmNjNjIyMDc5ZGYwN2U3N2MyNg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTRjZGVlYjU1NmIxNmMyMWExY2ViNDQ0MWI1MWVjODRhNmRlYTdmM2M0OTRi
10
- ZTE5NDVmZDYyZTYyM2Q0NDY4M2E2MWUwZWM2MzJiYzY1NjRjZjE0NWFjYzlm
11
- NzkyYTZkMWY4ZGNjNTA4ZjU0MjQwYTBlYzc3YjZjYTkyYzA1ODg=
9
+ MWEyNzdiYzI3NGE4NzE3YmE3NjZkNzIzZTQxMmQ4ZWZkMDdiZTY2Mzc1Yzc5
10
+ ZGRlNGVjOGNkODIwMzFhMDJkOGJhOTlhNTUyMGMzMjkyMjcxZThjNDYzMjE0
11
+ N2QwMmU5YTBmMDg3ZDRlODcxZmRjZTI4YjlkMDI5MmFiYmVjMTY=
12
12
  data.tar.gz: !binary |-
13
- Y2FhYzgwOThhNDlmMmQ2MDk0YWU2MTBjZTZmYjhkNjlkYWQzNTg1MDkzZWRh
14
- YjU0ZDU2YWNmNzk5YTE2MjUwMmU3ZDU3NWRhZDMzNjg0MWM1YThjMmVlYWUw
15
- M2Q4NjI0YjU4NDdkN2ZhMmU3NjAzOTBhNTQ5ODFjMzRmY2FjMmU=
13
+ ODRiYWQ4YjBjNGE5MzQxODhiODZjNzkyYTljZjBlMGQ3ZDFiYTNlNGVmNzIy
14
+ MmZjOTc5YzgzMjBkOWM4ZmE2ODgxZjIyZTk4NzU2ZjJlMDgzZGI1OTc5YWQy
15
+ MTc1MWE5Yzk4YjkwMGQyZDdjYzcyNGE0ODhjMTAzOGQ5OTA2YTA=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- twitter-vine (0.1.1)
4
+ twitter-vine (0.1.2)
5
5
  nokogiri (>= 1.6.0)
6
6
  twitter (~> 5.1.1)
7
7
 
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'
@@ -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
- vine_url = r.urls.map do |u|
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
- vine_url: vine_url,
55
- vine_author_thumbnail: doc.css(".avatar-container img").first[:src],
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
@@ -1,3 +1,3 @@
1
1
  module TwitterVine
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
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
+
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter-vine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Hicks