tinderbot 0.0.9 → 0.0.10

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0b1dad2f25741d25506da64708cc3f69d28d0ca
4
- data.tar.gz: 0fe61ce02894fd540ef5c1d11d18868beee4ff3a
3
+ metadata.gz: 7996ea7e4ff30a49b7ad49ab8406297e99f2e69e
4
+ data.tar.gz: cdcd1fca2d274daf3502bd9158a86c7a6351981d
5
5
  SHA512:
6
- metadata.gz: 823af092d67c3dcf228d287069b18b46278490dde1db484f205389ba303e007dff2aa373d062638a8f5229075ac97e234bd7567fc6d515c47b75b29f5a9e7396
7
- data.tar.gz: ce02442f5e268715b347cbffe7d4399a72a648686048ed89fc0fee78dcb1184ef7177a35d208c8bdeef35055a5be2feb04b50e1fa62a7a343cb5355ff56f771b
6
+ metadata.gz: c26988c78c633378fd7def83ae8ac253d59ff35766777f04eae3966a12722eb13add88032d461cb3ae39069f55525813bc7f0960e824519c688d08516af08729
7
+ data.tar.gz: bcdccdc21ecd381ccef1946b60e43e4d5ee3441937fd261c276226bce26b781a5caf508b64fae070d52975f57d2fcfaa7f59827063cdf7068c3c33ed46589f97
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # Tinderbot
2
2
 
3
- [![Build](https://travis-ci.org/jvenezia/tinderbot.svg?branch=master)](https://travis-ci.org/jvenezia/tinderbot)
4
3
  [![Gem Version](https://badge.fury.io/rb/tinderbot.svg)](http://badge.fury.io/rb/tinderbot)
4
+ [![Build](https://travis-ci.org/jvenezia/tinderbot.svg?branch=master)](https://travis-ci.org/jvenezia/tinderbot)
5
+ [![Coverage Status](https://coveralls.io/repos/jvenezia/tinderbot/badge.png)](https://coveralls.io/r/jvenezia/tinderbot)
5
6
 
6
7
  Tinderbot is a ruby wrapper for the Tinder API.
7
8
 
@@ -45,7 +46,7 @@ Once you get your credentials, you can sign in to Tinder.
45
46
  facebook_authentication_token = 'your facebook authentication token'
46
47
  facebook_user_id = 'your facebook user id'
47
48
 
48
- tinder_client = Tinderbot::Tinder::Client.new
49
+ tinder_client = Tinderbot::Client.new
49
50
  tinder_authentication_token = tinder_client.get_authentication_token(facebook_authentication_token, facebook_user_id)
50
51
  tinder_client.sign_in tinder_authentication_token
51
52
  ```
@@ -61,9 +62,9 @@ user.birth_date #=> #<Date: 2014-05-01>
61
62
  user.gender #=> :male (or :female)
62
63
  user.photo_urls #=> ['http://photo_1_url.jpg', 'http://photo_2_url.jpg']
63
64
 
64
- user = tinder_client.user(user_id) #=> returns an instance of Tinderbot::Tinder::Models::User
65
+ user = tinder_client.user(user_id) #=> returns an instance of Tinderbot::Model::User
65
66
 
66
- users = tinder_client.recommended_users #=> returns an array of Tinderbot::Tinder::Models::User instances
67
+ users = tinder_client.recommended_users #=> returns an array of Tinderbot::Model::User instances
67
68
 
68
69
  tinder_client.updates #=> {...} original json from tinder's API
69
70
 
@@ -0,0 +1,17 @@
1
+ module Tinderbot
2
+ class Bot
3
+ attr_accessor :client
4
+
5
+ def initialize(client)
6
+ @client = client
7
+ end
8
+
9
+ def like_recommended_users
10
+ recommended_users = @client.recommended_users
11
+ while recommended_users
12
+ recommended_users.each { |user| @client.like user }
13
+ recommended_users = @client.recommended_users
14
+ end
15
+ end
16
+ end
17
+ end
@@ -58,7 +58,7 @@ module Tinderbot
58
58
  tinder_client = sign_in
59
59
 
60
60
  puts 'Starting likes...'
61
- tinder_bot = Tinderbot::Tinder::Bot.new tinder_client
61
+ tinder_bot = Tinderbot::Bot.new tinder_client
62
62
  tinder_bot.like_recommended_users
63
63
  end
64
64
 
@@ -66,7 +66,7 @@ module Tinderbot
66
66
 
67
67
  def sign_in
68
68
  puts 'Connecting to tinder...'
69
- tinder_client = Tinderbot::Tinder::Client.new logs_enabled: true
69
+ tinder_client = Tinderbot::Client.new logs_enabled: true
70
70
  store = PStore.new(FACEBOOK_CREDENTIALS_FILE)
71
71
  facebook_authentication_token, facebook_user_id = get_last_facebook_credentials(store)
72
72
  tinder_authentication_token = get_tinder_authentication_token(store, tinder_client, facebook_authentication_token, facebook_user_id)
@@ -0,0 +1,98 @@
1
+ module Tinderbot
2
+ class Client
3
+ TINDER_API_URL = 'https://api.gotinder.com'
4
+ CONNECTION_USER_AGENT = 'Tinder/3.0.4 (iPhone; iOS 7.1; Scale/2.00)'
5
+
6
+ attr_accessor :connection, :logs_enabled
7
+
8
+ def initialize(options = {})
9
+ @logs_enabled = options[:logs_enabled]
10
+ build_connection
11
+ end
12
+
13
+ def get_authentication_token(facebook_authentication_token, facebook_user_id)
14
+ JSON.parse(@connection.post('/auth', {facebook_token: facebook_authentication_token, facebook_id: facebook_user_id}).body)['token']
15
+ end
16
+
17
+ def sign_in(authentication_token)
18
+ @connection.token_auth(authentication_token)
19
+ @connection.headers['X-Auth-Token'] = authentication_token
20
+ end
21
+
22
+ def profile
23
+ Tinderbot::Model::User.build_from_tinder_json JSON.parse(@connection.get('profile').body)
24
+ end
25
+
26
+ def user(user_id)
27
+ Tinderbot::Model::User.build_from_tinder_json JSON.parse(@connection.get("user/#{user_id}").body)['results']
28
+ end
29
+
30
+ def updates
31
+ JSON.parse(@connection.post('updates').body)
32
+ end
33
+
34
+ def recommended_users
35
+ JSON.parse(@connection.post('user/recs').body)['results'].map { |r| Tinderbot::Model::User.build_from_tinder_json r }
36
+ end
37
+
38
+ def like(user_or_user_id)
39
+ if user_or_user_id.is_a? Tinderbot::Model::User
40
+ like_from_user_id(user_or_user_id.id)
41
+ puts "Liked #{user_or_user_id.id} (#{user_or_user_id.name})" if @logs_enabled
42
+ else
43
+ like_from_user_id(user_or_user_id)
44
+ puts "Liked #{user_or_user_id}" if @logs_enabled
45
+ end
46
+ end
47
+
48
+ def dislike(user_or_user_id)
49
+ if user_or_user_id.is_a? Tinderbot::Model::User
50
+ dislike_from_user_id(user_or_user_id.id)
51
+ puts "Disliked #{user_or_user_id.id} (#{user_or_user_id.name})" if @logs_enabled
52
+ else
53
+ dislike_from_user_id(user_or_user_id)
54
+ puts "Disliked #{user_or_user_id}" if @logs_enabled
55
+ end
56
+ end
57
+
58
+ def send_message(user_id, message)
59
+ @connection.post("user/matches/#{user_id}", {message: message})
60
+ puts "Sent message to #{user_id}" if @logs_enabled
61
+ end
62
+
63
+ def update_location(location)
64
+ latitude = location.split(',')[0]
65
+ longitude = location.split(',')[1]
66
+
67
+ if latitude && longitude
68
+ result = JSON.parse(@connection.post('user/ping', {lat: latitude, lon: longitude}).body)
69
+
70
+ if result['status'] == 200
71
+ puts "Location has been updated to #{location}" if @logs_enabled
72
+ else
73
+ puts result['error'] if @logs_enabled
74
+ end
75
+ else
76
+ raise Tinderbot::Error, 'Invalid location provided'
77
+ end
78
+ end
79
+
80
+ protected
81
+
82
+ def like_from_user_id(user_id)
83
+ @connection.get "like/#{user_id}"
84
+ end
85
+
86
+ def dislike_from_user_id(user_id)
87
+ @connection.get "pass/#{user_id}"
88
+ end
89
+
90
+ def build_connection
91
+ @connection = Faraday.new(url: TINDER_API_URL) do |faraday|
92
+ faraday.request :json
93
+ faraday.adapter Faraday.default_adapter
94
+ end
95
+ @connection.headers[:user_agent] = CONNECTION_USER_AGENT
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,33 @@
1
+ module Tinderbot
2
+ module Model
3
+ class User
4
+ attr_accessor :original_tinder_json, :id, :name, :bio, :birth_date, :gender, :photo_urls
5
+
6
+ def self.build_from_tinder_json(tinder_json)
7
+ user = self.new
8
+ user.original_tinder_json = tinder_json
9
+ user.id = tinder_json['_id']
10
+ user.name = tinder_json['name']
11
+ user.bio = tinder_json['bio']
12
+ user.birth_date = Date.parse tinder_json['birth_date']
13
+ user.gender = tinder_json['gender'] == 0 ? :male : :female
14
+ user.photo_urls = tinder_json['photos'].map { |t| t['url'] }
15
+ user
16
+ end
17
+
18
+ def to_yaml_properties
19
+ instance_variables - [:@original_tinder_json]
20
+ end
21
+
22
+ def ==(other)
23
+ other.class == self.class && other.state == self.state
24
+ end
25
+
26
+ protected
27
+
28
+ def state
29
+ self.instance_variables.reject { |item| item == :@original_tinder_json }.map { |variable| self.instance_variable_get variable }
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,3 +1,3 @@
1
1
  module Tinderbot
2
- VERSION = '0.0.9'
2
+ VERSION = '0.0.10'
3
3
  end
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Tinderbot::Tinder::Models::User do
3
+ describe Tinderbot::Model::User do
4
4
  describe '#build_from_tinder_json' do
5
5
  let(:user_tinder_json) { JSON.parse(open('spec/fixtures/user.json').read)['results'] }
6
6
 
7
- subject { Tinderbot::Tinder::Models::User.build_from_tinder_json user_tinder_json }
7
+ subject { Tinderbot::Model::User.build_from_tinder_json user_tinder_json }
8
8
 
9
9
  it { expect(subject.original_tinder_json).to eq user_tinder_json }
10
10
  it { expect(subject.id).to eq user_tinder_json['_id'] }
@@ -25,7 +25,7 @@ describe Tinderbot::Tinder::Models::User do
25
25
 
26
26
  describe '.to_yaml' do
27
27
  let(:user_tinder_json) { JSON.parse(open('spec/fixtures/user.json').read)['results'] }
28
- let(:user) { Tinderbot::Tinder::Models::User.build_from_tinder_json user_tinder_json }
28
+ let(:user) { Tinderbot::Model::User.build_from_tinder_json user_tinder_json }
29
29
 
30
30
  subject { user.to_yaml }
31
31
 
@@ -1,3 +1,6 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
1
4
  require 'bundler/setup'
2
5
  Bundler.setup
3
6
 
@@ -1,39 +1,39 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Tinderbot::Tinder::Bot do
4
- let(:tinder_client) { Tinderbot::Tinder::Client.new }
5
- let(:tinder_bot) { Tinderbot::Tinder::Bot.new(tinder_client) }
3
+ describe Tinderbot::Bot do
4
+ let(:tinder_client) { Tinderbot::Client.new }
5
+ let(:tinder_bot) { Tinderbot::Bot.new(tinder_client) }
6
6
 
7
7
  describe 'client' do
8
8
  it { expect(tinder_bot.client).to eq tinder_client }
9
9
  end
10
10
 
11
11
  describe '.like_recommended_people' do
12
- let(:recommended_users) { JSON.parse(open('spec/fixtures/recommended_users.json').read)['results'].each { |user| Tinderbot::Tinder::Models::User.build_from_tinder_json user } }
12
+ let(:recommended_users) { JSON.parse(open('spec/fixtures/recommended_users.json').read)['results'].each { |user| Tinderbot::Model::User.build_from_tinder_json user } }
13
13
 
14
14
  context 'there is no recommended people' do
15
- before { expect_any_instance_of(Tinderbot::Tinder::Client).to receive(:recommended_users).and_return(nil) }
15
+ before { expect_any_instance_of(Tinderbot::Client).to receive(:recommended_users).and_return(nil) }
16
16
 
17
- before { expect_any_instance_of(Tinderbot::Tinder::Client).not_to receive(:like_all) }
17
+ before { expect_any_instance_of(Tinderbot::Client).not_to receive(:like_all) }
18
18
 
19
19
  it { tinder_bot.like_recommended_users }
20
20
  end
21
21
 
22
22
  context 'there is one set of recommended people' do
23
- before { expect_any_instance_of(Tinderbot::Tinder::Client).to receive(:recommended_users).and_return(recommended_users) }
24
- before { expect_any_instance_of(Tinderbot::Tinder::Client).to receive(:recommended_users).and_return(nil) }
23
+ before { expect_any_instance_of(Tinderbot::Client).to receive(:recommended_users).and_return(recommended_users) }
24
+ before { expect_any_instance_of(Tinderbot::Client).to receive(:recommended_users).and_return(nil) }
25
25
 
26
- before { recommended_users.each { |user| expect_any_instance_of(Tinderbot::Tinder::Client).not_to receive(:like).with(user).exactly(1).times } }
26
+ before { recommended_users.each { |user| expect_any_instance_of(Tinderbot::Client).not_to receive(:like).with(user).exactly(1).times } }
27
27
 
28
28
  it { tinder_bot.like_recommended_users }
29
29
  end
30
30
 
31
31
  context 'there is two sets of recommended people' do
32
- before { expect_any_instance_of(Tinderbot::Tinder::Client).to receive(:recommended_users).and_return(recommended_users) }
33
- before { expect_any_instance_of(Tinderbot::Tinder::Client).to receive(:recommended_users).and_return(recommended_users) }
34
- before { expect_any_instance_of(Tinderbot::Tinder::Client).to receive(:recommended_users).and_return(nil) }
32
+ before { expect_any_instance_of(Tinderbot::Client).to receive(:recommended_users).and_return(recommended_users) }
33
+ before { expect_any_instance_of(Tinderbot::Client).to receive(:recommended_users).and_return(recommended_users) }
34
+ before { expect_any_instance_of(Tinderbot::Client).to receive(:recommended_users).and_return(nil) }
35
35
 
36
- before { recommended_users.each { |user| expect_any_instance_of(Tinderbot::Tinder::Client).not_to receive(:like).with(user).exactly(2).times } }
36
+ before { recommended_users.each { |user| expect_any_instance_of(Tinderbot::Client).not_to receive(:like).with(user).exactly(2).times } }
37
37
 
38
38
  it { tinder_bot.like_recommended_users }
39
39
  end
@@ -1,13 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Tinderbot::Tinder::Client do
4
- let(:tinder_client) { Tinderbot::Tinder::Client.new }
3
+ describe Tinderbot::Client do
4
+ let(:tinder_client) { Tinderbot::Client.new }
5
5
  let(:connection) { tinder_client.connection }
6
6
 
7
7
  describe '.connection' do
8
8
  it { expect(connection).to be_a(Faraday::Connection) }
9
- it { expect("#{connection.url_prefix.scheme}://#{connection.url_prefix.host}").to eq(Tinderbot::Tinder::Client::TINDER_API_URL) }
10
- it { expect(connection.headers[:user_agent]).to eq(Tinderbot::Tinder::Client::CONNECTION_USER_AGENT) }
9
+ it { expect("#{connection.url_prefix.scheme}://#{connection.url_prefix.host}").to eq(Tinderbot::Client::TINDER_API_URL) }
10
+ it { expect(connection.headers[:user_agent]).to eq(Tinderbot::Client::CONNECTION_USER_AGENT) }
11
11
  end
12
12
 
13
13
  describe '.profile' do
@@ -18,7 +18,7 @@ describe Tinderbot::Tinder::Client do
18
18
 
19
19
  subject { tinder_client.profile }
20
20
 
21
- it { should eql? Tinderbot::Tinder::Models::User.build_from_tinder_json(JSON.parse(me_tinder_raw_json)) }
21
+ it { should eq Tinderbot::Model::User.build_from_tinder_json(JSON.parse(me_tinder_raw_json)) }
22
22
  end
23
23
 
24
24
  describe '.user' do
@@ -30,7 +30,7 @@ describe Tinderbot::Tinder::Client do
30
30
 
31
31
  subject { tinder_client.user user_id }
32
32
 
33
- it { should eql? Tinderbot::Tinder::Models::User.build_from_tinder_json(JSON.parse(user_tinder_raw_json)['results']) }
33
+ it { should eq Tinderbot::Model::User.build_from_tinder_json(JSON.parse(user_tinder_raw_json)['results']) }
34
34
  end
35
35
 
36
36
  describe '.updates' do
@@ -52,7 +52,7 @@ describe Tinderbot::Tinder::Client do
52
52
 
53
53
  subject { tinder_client.recommended_users }
54
54
 
55
- it { should eql? JSON.parse(recommended_users_tinder_raw_json)['results'].map { |r| Tinderbot::Tinder::Models::User.build_from_tinder_json r } }
55
+ it { should eq JSON.parse(recommended_users_tinder_raw_json)['results'].map { |r| Tinderbot::Model::User.build_from_tinder_json r } }
56
56
  end
57
57
 
58
58
  describe '.like' do
@@ -66,7 +66,7 @@ describe Tinderbot::Tinder::Client do
66
66
 
67
67
  context 'from user model' do
68
68
  let(:user_tinder_json) { JSON.parse(open('spec/fixtures/user.json').read)['results'] }
69
- let(:user) { Tinderbot::Tinder::Models::User.build_from_tinder_json user_tinder_json }
69
+ let(:user) { Tinderbot::Model::User.build_from_tinder_json user_tinder_json }
70
70
 
71
71
  before { expect(connection).to receive(:get).with("like/#{user.id}") }
72
72
 
@@ -85,7 +85,7 @@ describe Tinderbot::Tinder::Client do
85
85
 
86
86
  context 'from user model' do
87
87
  let(:user_tinder_json) { JSON.parse(open('spec/fixtures/user.json').read)['results'] }
88
- let(:user) { Tinderbot::Tinder::Models::User.build_from_tinder_json user_tinder_json }
88
+ let(:user) { Tinderbot::Model::User.build_from_tinder_json user_tinder_json }
89
89
 
90
90
  before { expect(connection).to receive(:get).with("pass/#{user.id}") }
91
91
 
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency 'bundler', '~> 1.6'
22
22
  spec.add_development_dependency 'rake', '~> 10.3'
23
23
  spec.add_development_dependency 'rspec', '~> 3.0'
24
+ spec.add_development_dependency 'coveralls', '~> 0.7'
24
25
 
25
26
  spec.add_dependency 'thor', '~> 0'
26
27
  spec.add_dependency 'faraday', '~> 0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tinderbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Venezia
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.7'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.7'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: thor
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -138,12 +152,12 @@ files:
138
152
  - Rakefile
139
153
  - bin/tinderbot
140
154
  - lib/tinderbot.rb
155
+ - lib/tinderbot/bot.rb
141
156
  - lib/tinderbot/cli/application.rb
157
+ - lib/tinderbot/client.rb
142
158
  - lib/tinderbot/error.rb
143
159
  - lib/tinderbot/facebook.rb
144
- - lib/tinderbot/tinder/bot.rb
145
- - lib/tinderbot/tinder/client.rb
146
- - lib/tinderbot/tinder/models/user.rb
160
+ - lib/tinderbot/model/user.rb
147
161
  - lib/tinderbot/version.rb
148
162
  - spec/fixtures/profile.json
149
163
  - spec/fixtures/recommended_users.json
@@ -1,19 +0,0 @@
1
- module Tinderbot
2
- module Tinder
3
- class Bot
4
- attr_accessor :client
5
-
6
- def initialize(client)
7
- @client = client
8
- end
9
-
10
- def like_recommended_users
11
- recommended_users = @client.recommended_users
12
- while recommended_users
13
- recommended_users.each { |user| @client.like user }
14
- recommended_users = @client.recommended_users
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,100 +0,0 @@
1
- module Tinderbot
2
- module Tinder
3
- class Client
4
- TINDER_API_URL = 'https://api.gotinder.com'
5
- CONNECTION_USER_AGENT = 'Tinder/3.0.4 (iPhone; iOS 7.1; Scale/2.00)'
6
-
7
- attr_accessor :connection, :logs_enabled
8
-
9
- def initialize(options = {})
10
- @logs_enabled = options[:logs_enabled]
11
- build_connection
12
- end
13
-
14
- def get_authentication_token(facebook_authentication_token, facebook_user_id)
15
- JSON.parse(@connection.post('/auth', {facebook_token: facebook_authentication_token, facebook_id: facebook_user_id}).body)['token']
16
- end
17
-
18
- def sign_in(authentication_token)
19
- @connection.token_auth(authentication_token)
20
- @connection.headers['X-Auth-Token'] = authentication_token
21
- end
22
-
23
- def profile
24
- Tinderbot::Tinder::Models::User.build_from_tinder_json JSON.parse(@connection.get('profile').body)
25
- end
26
-
27
- def user(user_id)
28
- Tinderbot::Tinder::Models::User.build_from_tinder_json JSON.parse(@connection.get("user/#{user_id}").body)['results']
29
- end
30
-
31
- def updates
32
- JSON.parse(@connection.post('updates').body)
33
- end
34
-
35
- def recommended_users
36
- JSON.parse(@connection.post('user/recs').body)['results'].map { |r| Tinderbot::Tinder::Models::User.build_from_tinder_json r }
37
- end
38
-
39
- def like(user_or_user_id)
40
- if user_or_user_id.is_a? Tinderbot::Tinder::Models::User
41
- like_from_user_id(user_or_user_id.id)
42
- puts "Liked #{user_or_user_id.id} (#{user_or_user_id.name})" if @logs_enabled
43
- else
44
- like_from_user_id(user_or_user_id)
45
- puts "Liked #{user_or_user_id}" if @logs_enabled
46
- end
47
- end
48
-
49
- def dislike(user_or_user_id)
50
- if user_or_user_id.is_a? Tinderbot::Tinder::Models::User
51
- dislike_from_user_id(user_or_user_id.id)
52
- puts "Disliked #{user_or_user_id.id} (#{user_or_user_id.name})" if @logs_enabled
53
- else
54
- dislike_from_user_id(user_or_user_id)
55
- puts "Disliked #{user_or_user_id}" if @logs_enabled
56
- end
57
- end
58
-
59
- def send_message(user_id, message)
60
- @connection.post("user/matches/#{user_id}", {message: message})
61
- puts "Sent message to #{user_id}" if @logs_enabled
62
- end
63
-
64
- def update_location(location)
65
- latitude = location.split(',')[0]
66
- longitude = location.split(',')[1]
67
-
68
- if latitude && longitude
69
- result = JSON.parse(@connection.post('user/ping', {lat: latitude, lon: longitude}).body)
70
-
71
- if result['status'] == 200
72
- puts "Location has been updated to #{location}" if @logs_enabled
73
- else
74
- puts result['error'] if @logs_enabled
75
- end
76
- else
77
- raise Tinderbot::Error, 'Invalid location provided'
78
- end
79
- end
80
-
81
- protected
82
-
83
- def like_from_user_id(user_id)
84
- @connection.get "like/#{user_id}"
85
- end
86
-
87
- def dislike_from_user_id(user_id)
88
- @connection.get "pass/#{user_id}"
89
- end
90
-
91
- def build_connection
92
- @connection = Faraday.new(url: TINDER_API_URL) do |faraday|
93
- faraday.request :json
94
- faraday.adapter Faraday.default_adapter
95
- end
96
- @connection.headers[:user_agent] = CONNECTION_USER_AGENT
97
- end
98
- end
99
- end
100
- end
@@ -1,25 +0,0 @@
1
- module Tinderbot
2
- module Tinder
3
- module Models
4
- class User
5
- attr_accessor :original_tinder_json, :id, :name, :bio, :birth_date, :gender, :photo_urls
6
-
7
- def self.build_from_tinder_json(tinder_json)
8
- user = self.new
9
- user.original_tinder_json = tinder_json
10
- user.id = tinder_json['_id']
11
- user.name = tinder_json['name']
12
- user.bio = tinder_json['bio']
13
- user.birth_date = Date.parse tinder_json['birth_date']
14
- user.gender = tinder_json['gender'] == 0 ? :male : :female
15
- user.photo_urls = tinder_json['photos'].map { |t| t['url'] }
16
- user
17
- end
18
-
19
- def to_yaml_properties
20
- instance_variables - [:@original_tinder_json]
21
- end
22
- end
23
- end
24
- end
25
- end