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