twitter_search_photos 0.0.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 ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MjExNWNlYTY2YWIwNWMwOTBlNmM2NTI2YzRkNjk3OGZmNzZkYmYxOQ==
5
+ data.tar.gz: !binary |-
6
+ Y2Q4ZGVkZTljNWU5YWZlYWZjODI5NzRhZmYxYmFhYjBlZGIyMjlmZQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NzU0YTI3MzRhYTA0YzJmYzJlYzBjMGFiMjk2YTlkYTNiZjBlYjQzMzdiOGJi
10
+ YzViZWYyZDA4NTU2YzlmMjY1ODRiZWVlNzMxMjgyYzhmNTM2NTdlZDg2NTBm
11
+ MWFhNmVlM2RjNjY2NzEwY2I5ZWNlMzM2MjkwZDA4MTI1ZTM3YjU=
12
+ data.tar.gz: !binary |-
13
+ OWIyZDE1ZGIxODRjYTE4MDU0ODk1NTgwY2FjMTM3ZGNmMTk3ODA4MGI1YWQ2
14
+ YTE1Y2ZjYzQ1ZWM5NmYyZTE4ZTAzYmE3MDc2MDk4MzI1ODJjNDBhNTA3OTli
15
+ NjdkODU1OTE4ZTZmNjE1ZjZkYzFlNzQwNjRiMGJlMzJkYTgwZGM=
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,3 @@
1
+ ���@,�������,�ɭ���=�I O����O�
2
+ �
3
+ 5�Xr���3��r����f%+�r*�����#�*Ë��"���1Op�RNwR-�����[���[Z�Z�,N�|��'*�~�*o��GlMpakf0��-��.^�ɐk�B�5�b���b���5
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .env
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'httparty', '~> 0.11.0'
6
+
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Barry Hoggard
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,60 @@
1
+ # TwitterSearchPhotos
2
+
3
+ ## Installation
4
+
5
+ Add this line to your application's Gemfile:
6
+
7
+ gem 'twitter_search_photos'
8
+
9
+ And then execute:
10
+
11
+ $ bundle
12
+
13
+ Or install it yourself as:
14
+
15
+ $ gem install twitter_search_photos
16
+
17
+ ## Usage
18
+
19
+ require 'twitter_search_photos'
20
+
21
+ Set up the following keys for ENV:
22
+
23
+ TWITTER_CONSUMER_KEY
24
+ TWITTER_CONSUMER_SECRET
25
+ TWITTER_OAUTH_TOKEN
26
+ TWITTER_OAUTH_TOKEN_SECRET
27
+
28
+ # look for photos with #art in tweet
29
+ response = TwitterSearchPhotos.search('#art')
30
+
31
+ # get ID we can use when we search again to only get new ones
32
+ max_id = response.max_id
33
+
34
+ # get list of results
35
+ results = response.results
36
+
37
+ # get first result
38
+ first = results.first
39
+
40
+ # individual elements of the result
41
+ first.media_url
42
+ first.display_url
43
+ first.screen_name
44
+
45
+ # do another call, passing in the since ID:
46
+ response = TwitterSearchPhotos('#art', since_id: max_id)
47
+
48
+
49
+ ## Contributing
50
+
51
+ 1. Fork it
52
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
53
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
54
+ 4. Push to the branch (`git push origin my-new-feature`)
55
+ 5. Create new Pull Request
56
+
57
+ ## Thanks
58
+
59
+ Some of the code is based on https://github.com/scottwb/twitter-image-search.
60
+
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+ require 'dotenv/tasks'
4
+ require 'dotenv'
5
+ Dotenv.load
6
+
7
+ Rake::TestTask.new do |t|
8
+ t.test_files = FileList['test/*_test.rb']
9
+ t.ruby_opts = ['-rubygems'] if defined? Gem
10
+ t.ruby_opts << '-I.'
11
+ t.verbose = true
12
+ end
13
+
14
+ task :default => :test
@@ -0,0 +1,3 @@
1
+ module TwitterSearchPhotos
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,44 @@
1
+ require "twitter_search_photos/version"
2
+ require "ostruct"
3
+ require "twitter"
4
+
5
+ module TwitterSearchPhotos
6
+
7
+ Twitter.configure do |config|
8
+ config.consumer_key = ENV["TWITTER_CONSUMER_KEY"]
9
+ config.consumer_secret = ENV["TWITTER_CONSUMER_SECRET"]
10
+ config.oauth_token = ENV["TWITTER_OAUTH_TOKEN"]
11
+ config.oauth_token_secret = ENV["TWITTER_OAUTH_TOKEN_SECRET"]
12
+ end
13
+
14
+ # Can be optionally called with since_id: max_id
15
+ def self.search(query, options = {})
16
+ options.merge!(include_entities: 1, result_type: 'recent')
17
+ search = Twitter.search(query, options)
18
+ results = make_results(search.results)
19
+ response = OpenStruct.new(max_id: search.max_id, results: results)
20
+ end
21
+
22
+ # make our results structure
23
+ def self.make_results(tweets)
24
+
25
+ results = []
26
+
27
+ tweets.each do |tweet|
28
+ tweet.media.each do |media|
29
+ if media.is_a?(Twitter::Media::Photo)
30
+ result = OpenStruct.new(
31
+ media_url: media.media_url,
32
+ display_url: "https://#{media.display_url}",
33
+ screen_name: tweet.user.screen_name
34
+ )
35
+ results << result
36
+ end
37
+ end
38
+ end
39
+
40
+ results
41
+
42
+ end
43
+
44
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,10 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+ require 'minitest/autorun'
3
+
4
+ testdir = File.dirname(__FILE__)
5
+ $LOAD_PATH.unshift testdir unless $LOAD_PATH.include?(testdir)
6
+
7
+ libdir = File.dirname(File.dirname(__FILE__)) + '/lib'
8
+ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include?(libdir)
9
+
10
+ require "twitter_search_photos"
@@ -0,0 +1,36 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ describe TwitterSearchPhotos do
4
+
5
+ def setup
6
+ @response = TwitterSearchPhotos.search('#art')
7
+ @photo = @response.results.first
8
+ end
9
+
10
+ it "has a version" do
11
+ TwitterSearchPhotos::VERSION.wont_be_nil
12
+ end
13
+
14
+ it 'returns a response for #art' do
15
+ @response.wont_be_nil
16
+ end
17
+
18
+ it 'provides a max_id' do
19
+ @response.max_id.wont_be_nil
20
+ end
21
+
22
+ it 'returns at least one image' do
23
+ @photo.media_url.must_match /^http/
24
+ end
25
+
26
+ it 'returns display_url for image' do
27
+ @photo.display_url.must_match /^http/
28
+ end
29
+
30
+ it 'returns a responce when called with since_id' do
31
+ @max_id = @response.max_id
32
+ @since_response = TwitterSearchPhotos.search('#art', since_id: @max_id)
33
+ @since_response.max_id.wont_equal @max_id
34
+ end
35
+
36
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'twitter_search_photos/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "twitter_search_photos"
8
+ spec.version = TwitterSearchPhotos::VERSION
9
+ spec.authors = ["Barry Hoggard"]
10
+ spec.email = ["barry@tristanmedia.com"]
11
+ spec.description = %q{Ruby gem to find photos on Twitter with a search query}
12
+ spec.summary = spec.description
13
+ spec.homepage = "https://github.com/bhoggard/twitter_search_photos"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.signing_key = File.expand_path("~/.gem/gem-private_key.pem")
22
+ spec.cert_chain = [ File.expand_path("~/.gem/gem-public_cert.pem") ]
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "fakeweb", "~> 1.3.0"
27
+ spec.add_development_dependency "dotenv-rails"
28
+ end
data.tar.gz.sig ADDED
@@ -0,0 +1 @@
1
+ >��a�sA� qk �g_�b�婀�[:l�,��Q<�a��ͨ�7�`۫�1&Q�V��RX! ?мx� ��cb�8Y�`44o��G����� o�|��y��aK��J��K�f���ŋ�Y�Bh- �5��j��Q�9N.�4L2�i��,�iJk�U�Y���)�I���`�a�g�����6{��z�3��|+ٴ (�Vw�܆�"H8
metadata ADDED
@@ -0,0 +1,142 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: twitter_search_photos
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Barry Hoggard
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - !binary |-
12
+ LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURnRENDQW1pZ0F3SUJB
13
+ Z0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREJETVE0d0RBWURWUVFEREFWaVlY
14
+ SnkKZVRFY01Cb0dDZ21TSm9tVDhpeGtBUmtXREhSeWFYTjBZVzV0WldScFlU
15
+ RVRNQkVHQ2dtU0pvbVQ4aXhrQVJrVwpBMk52YlRBZUZ3MHhNekEwTVRVeU1U
16
+ UTVNalJhRncweE5EQTBNVFV5TVRRNU1qUmFNRU14RGpBTUJnTlZCQU1NCkJX
17
+ Smhjbko1TVJ3d0dnWUtDWkltaVpQeUxHUUJHUllNZEhKcGMzUmhibTFsWkds
18
+ aE1STXdFUVlLQ1pJbWlaUHkKTEdRQkdSWURZMjl0TUlJQklqQU5CZ2txaGtp
19
+ Rzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF5WEIyQzVadwpzTUV5dngx
20
+ VXlZSFJJVTZFS0N4UlVQaWlaUU4raXVNOUh3cWRsK3pObTY2eWpmMlowSGg2
21
+ Z2R3RC9FVE93K1FwCmRUVFhnR3RzS2J4V3JQSWErMmRKZVl0L0dYZ09ma0dQ
22
+ aHZ1ZjZMeWF0Z2lZQ1ZGVlVEV2NwYUR5cGxnZERWMysKeWVxcUc4MFdGMVJT
23
+ VmJ0MWloZitGdHQ5cDVaeFM0ZkwveUxlMXVCaFNWT3FTb0VHbFJneS9ldjBq
24
+ Ry9pVDAvcwpTM29XUENVRTY3RldTWDdOTm5KQzJZZ2pHTWdiWGE4bHlxSE5W
25
+ R09iN3BkTDBramdnVHh5dUFNaDJwYkpYbXAwCnJTVG44WllXb1Job2RCTzJP
26
+ Rm04OUcwM0dqS2xUMFVSbndXNEF2QlJRcTJDOVRsL2JuVU1mZkZidUMxZGNv
27
+ ZnkKWFpvQkl4L1BCYnloOHdJREFRQUJvMzh3ZlRBSkJnTlZIUk1FQWpBQU1B
28
+ c0dBMVVkRHdRRUF3SUVzREFkQmdOVgpIUTRFRmdRVVVGbU5mUGVCaVJzUGRs
29
+ M3hLUWJZUXVPNERvWXdJUVlEVlIwUkJCb3dHSUVXWW1GeWNubEFkSEpwCmMz
30
+ UmhibTFsWkdsaExtTnZiVEFoQmdOVkhSSUVHakFZZ1JaaVlYSnllVUIwY21s
31
+ emRHRnViV1ZrYVdFdVkyOXQKTUEwR0NTcUdTSWIzRFFFQkJRVUFBNElCQVFC
32
+ Q0sxRTVkSUhIUDc0R01FY3BQQUswWFhkb3FacVRuRkRXcnd4VwpEKzZ2SjdQ
33
+ M0drVE1PZExrNXdlTGpqNnRhSi9zZS80YVI4T211d1RUQVhMMnZ1cWlRVUZn
34
+ YnlpT000ZnVYSC8vClFqZXBnOEQxQWtvTCsrc2c1ZEJrN1I0ODRUdVdlSDBx
35
+ U29yWVlvN1RjSitwV2xDWVRoS3BTSktZeFBOSzRCZVUKcGlSTHBsSjluelpW
36
+ RW9nOW5hNFNaTlZ6ZHlyZHVmYytOWjJFMnlJSk54anZFenliYU05dkxwZjc1
37
+ R0Nya1VPMwp6K0FMcXc1a1FrZWdhL0dtQVZicklwVkkrZ0p4RDQwQ3Y3VmZ1
38
+ azhUM0MzbExRejNkWWFVSWViWDF5Z25JdzFrClg0STNvMVlHdTJRMUJpL3hC
39
+ Ri93MGhMeTY3MGgrNHA1MFlxMDgvSEkxN0JPbVlXcwotLS0tLUVORCBDRVJU
40
+ SUZJQ0FURS0tLS0tCg==
41
+ date: 2013-04-15 00:00:00.000000000 Z
42
+ dependencies:
43
+ - !ruby/object:Gem::Dependency
44
+ name: bundler
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ~>
48
+ - !ruby/object:Gem::Version
49
+ version: '1.3'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: '1.3'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rake
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: fakeweb
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.3.0
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ~>
83
+ - !ruby/object:Gem::Version
84
+ version: 1.3.0
85
+ - !ruby/object:Gem::Dependency
86
+ name: dotenv-rails
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ description: Ruby gem to find photos on Twitter with a search query
100
+ email:
101
+ - barry@tristanmedia.com
102
+ executables: []
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - .gitignore
107
+ - Gemfile
108
+ - LICENSE.txt
109
+ - README.md
110
+ - Rakefile
111
+ - lib/twitter_search_photos.rb
112
+ - lib/twitter_search_photos/version.rb
113
+ - test/helper.rb
114
+ - test/twitter_search_photos_test.rb
115
+ - twitter_search_photos.gemspec
116
+ homepage: https://github.com/bhoggard/twitter_search_photos
117
+ licenses:
118
+ - MIT
119
+ metadata: {}
120
+ post_install_message:
121
+ rdoc_options: []
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubyforge_project:
136
+ rubygems_version: 2.0.3
137
+ signing_key:
138
+ specification_version: 4
139
+ summary: Ruby gem to find photos on Twitter with a search query
140
+ test_files:
141
+ - test/helper.rb
142
+ - test/twitter_search_photos_test.rb
metadata.gz.sig ADDED
@@ -0,0 +1,3 @@
1
+ 6u��i k����Ƨ�|]p�!/-d%��ٵ���h˕��� "��1ݖ�h��)�•��Zf\.�􁥔<4�>4T�c��N��_����vLܗ�ִ��S�ڽK ^}����1o佟�0�}r�\ف?�W�]�t��R)~u(�$�4��t�,���joV4���� �X_p�`�!M‰K�x�fH#�Mg�jR���{Je=��7S'm
2
+ ��v_
3
+ >�D�S��fnCU��B�q�1