Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
example python tinderbot
# encoding: utf8 1,1 Top# encoding: utf8
import argparse
from datetime import datetime
import json
from random import randint
import requests
import sys
from time import sleep
headers = {
'app_version': '3',
'platform': 'ios',
}
fb_id = '{ your fb user id here }'
fb_auth_token = '{ your fb auth token here }'
class User(object):
def __init__(self, data_dict):
self.d = data_dict
@property
def user_id(self):
return self.d['_id']
@property
def ago(self):
raw = self.d.get('ping_time')
if raw:
d = datetime.strptime(raw, '%Y-%m-%dT%H:%M:%S.%fZ')
secs_ago = int(datetime.now().strftime("%s")) - int(d.strftime("%s"))
if secs_ago > 86400:
return u'{days} days ago'.format(days=secs_ago / 86400)
elif secs_ago < 3600:
return u'{mins} mins ago'.format(mins=secs_ago / 60)
else:
return u'{hours} hours ago'.format(hours=secs_ago / 3600)
return '[unknown]'
@property
def bio(self):
try:
x = self.d['bio'].encode('ascii', 'ignore').replace('\n', '')[:50].strip()
except (UnicodeError, UnicodeEncodeError, UnicodeDecodeError):
return '[garbled]'
else:
return x
@property
def age(self):
raw = self.d.get('birth_date')
if raw:
d = datetime.strptime(raw, '%Y-%m-%dT%H:%M:%S.%fZ')
return datetime.now().year - int(d.strftime('%Y'))
return 0
def __unicode__(self):
return u'{name} ({age}), {distance}km, {ago}'.format(
name=self.d['name'],
age=self.age,
distance=self.d['distance_mi'],
ago=self.ago
)
def auth_token(fb_auth_token, fb_user_id):
h = headers
h.update({'content-type': 'application/json'})
req = requests.post(
'https://api.gotinder.com/auth',
headers=h,
data=json.dumps({'facebook_token': fb_auth_token, 'facebook_id': fb_user_id})
)
try:
return req.json()['token']
except:
return None
def recommendations(auth_token):
h = headers
h.update({'X-Auth-Token': auth_token})
r = requests.get('https://api.gotinder.com/user/recs', headers=h)
if r.status_code == 401 or r.status_code == 504:
raise Exception('Invalid code')
print r.content
if not 'results' in r.json():
print r.json()
for result in r.json()['results']:
yield User(result)
def like(user_id):
try:
u = 'https://api.gotinder.com/like/%s' % user_id
d = requests.get(u, headers=headers, timeout=0.7).json()
except KeyError:
raise
else:
return d['match']
def nope(user_id):
try:
u = 'https://api.gotinder.com/pass/%s' % user_id
requests.get(u, headers=headers, timeout=0.7).json()
except KeyError:
raise
def like_or_nope():
return 'nope' if randint(1, 100) == 31 else 'like'
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Tinder automated bot')
parser.add_argument('-l', '--log', type=str, default='activity.log', help='Log file destination')
args = parser.parse_args()
print 'Tinder bot'
print '----------'
matches = 0
liked = 0
nopes = 0
while True:
token = auth_token(fb_auth_token, fb_id)
if not token:
print 'could not get token'
sys.exit(0)
for user in recommendations(token):
if not user:
break
print unicode(user)
try:
action = like_or_nope()
if action == 'like':
print ' -> Like'
match = like(user.user_id)
if match:
print ' -> Match!'
with open('./liked.txt', 'a') as f:
f.write(user.user_id + u'\n')
else:
print ' -> random nope :('
nope(user.user_id)
except:
print 'networking error %s' % user.user_id
s = float(randint(250, 2500) / 1000)
sleep(s)
@ineedbotz

This comment has been minimized.

Show comment Hide comment
@ineedbotz

ineedbotz Sep 4, 2015

sweet. this will be cool to use to learn DIY style. Thanks for this creator :)

sweet. this will be cool to use to learn DIY style. Thanks for this creator :)

@ineedbotz

This comment has been minimized.

Show comment Hide comment
@ineedbotz

ineedbotz Sep 4, 2015

i was wondering what i would need to do to execute code like this? I am semi-familiar with using things like wamp server to kinda just copy and paste friends stuff and change variables and launch in a new URL. I know python is fairly more intricate and complicated though so I assume it can't be that easy with this :) any advice?

i was wondering what i would need to do to execute code like this? I am semi-familiar with using things like wamp server to kinda just copy and paste friends stuff and change variables and launch in a new URL. I know python is fairly more intricate and complicated though so I assume it can't be that easy with this :) any advice?

@physicalattraction

This comment has been minimized.

Show comment Hide comment
@physicalattraction

physicalattraction Feb 12, 2016

How do you get a Facebook ID and Facebook auth token?

How do you get a Facebook ID and Facebook auth token?

@umrashrf

This comment has been minimized.

Show comment Hide comment
@umrashrf

umrashrf May 9, 2016

You have to sniff to get Facebook ID and Facebook auth token. There is no other way.

umrashrf commented May 9, 2016

You have to sniff to get Facebook ID and Facebook auth token. There is no other way.

@datatalking

This comment has been minimized.

Show comment Hide comment
@datatalking

datatalking Aug 30, 2016

umrashft, When you say sniff, you mean?

umrashft, When you say sniff, you mean?

@vegan22

This comment has been minimized.

Show comment Hide comment
@vegan22

vegan22 Dec 19, 2016

It doesn't work for me, why?

root@kali:~# ./gistfile1.py
from: can't read /var/mail/datetime
from: can't read /var/mail/random
from: can't read /var/mail/time
./gistfile1.py: line 11: headers: command not found
./gistfile1.py: line 12: app_version:: command not found
./gistfile1.py: line 13: platform:: command not found
./gistfile1.py: line 14: syntax error near unexpected token }' ./gistfile1.py: line 14:}'

Facebook ID and auth key is correct

vegan22 commented Dec 19, 2016

It doesn't work for me, why?

root@kali:~# ./gistfile1.py
from: can't read /var/mail/datetime
from: can't read /var/mail/random
from: can't read /var/mail/time
./gistfile1.py: line 11: headers: command not found
./gistfile1.py: line 12: app_version:: command not found
./gistfile1.py: line 13: platform:: command not found
./gistfile1.py: line 14: syntax error near unexpected token }' ./gistfile1.py: line 14:}'

Facebook ID and auth key is correct

@vegan22

This comment has been minimized.

Show comment Hide comment
@vegan22

vegan22 Dec 21, 2016

Just tried now again and got it working :-)
My FB_ID is extactly like this (untouched) > fb_id = '{ 12***91520 }'
and in the fb_auth_token I removed the { } from both sides, so it looks like that:

fb_auth_token = 'EAAGm0PX4ZCpsBADOHTeqmo5XQXLeQ73dDcHfZABUVqN14AmxmXHnNFEn5juZC1qynrInx9UpZAi5v0zrRn2ZArEZCUuiARwGIuMzmFaPvV5C114BuxhxqBinOuqHJtZBB*********************************************************************XsxnR3N8IonsOItFvHFuq9usZD'

vegan22 commented Dec 21, 2016

Just tried now again and got it working :-)
My FB_ID is extactly like this (untouched) > fb_id = '{ 12***91520 }'
and in the fb_auth_token I removed the { } from both sides, so it looks like that:

fb_auth_token = 'EAAGm0PX4ZCpsBADOHTeqmo5XQXLeQ73dDcHfZABUVqN14AmxmXHnNFEn5juZC1qynrInx9UpZAi5v0zrRn2ZArEZCUuiARwGIuMzmFaPvV5C114BuxhxqBinOuqHJtZBB*********************************************************************XsxnR3N8IonsOItFvHFuq9usZD'

@vegan22

This comment has been minimized.

Show comment Hide comment
@vegan22

vegan22 Dec 21, 2016

networking error tinder_rate_limited_id_1482280511118_0
Tinder Team (25), 1km, -301 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_1
Tinder Team (25), 1km, -300 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_2
Tinder Team (25), 1km, -300 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_3
Tinder Team (25), 1km, -300 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_4
Tinder Team (25), 1km, -300 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_5

Got this after like 2-3 minutes, how can I fix the script by adding some kind of sleep time ?
Edit: It's because it's a free user so the likes are limited, nothing to do with the script

vegan22 commented Dec 21, 2016

networking error tinder_rate_limited_id_1482280511118_0
Tinder Team (25), 1km, -301 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_1
Tinder Team (25), 1km, -300 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_2
Tinder Team (25), 1km, -300 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_3
Tinder Team (25), 1km, -300 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_4
Tinder Team (25), 1km, -300 mins ago
-> Like
networking error tinder_rate_limited_id_1482280511118_5

Got this after like 2-3 minutes, how can I fix the script by adding some kind of sleep time ?
Edit: It's because it's a free user so the likes are limited, nothing to do with the script

@rezasaju

This comment has been minimized.

Show comment Hide comment
@rezasaju

rezasaju Dec 28, 2016

hi i want to tinder boot

hi i want to tinder boot

@vegan22

This comment has been minimized.

Show comment Hide comment
@vegan22

vegan22 Jan 18, 2017

Why after a few minutes I get an error "could not get token" ?

and sometimes I get an error after a few minutes

{u'status': 500, u'error': u''}
Traceback (most recent call last):
File "gistfile1.py", line 141, in
for user in recommendations(token):
File "gistfile1.py", line 95, in recommendations
for result in r.json()['results']:
KeyError: 'results'

vegan22 commented Jan 18, 2017

Why after a few minutes I get an error "could not get token" ?

and sometimes I get an error after a few minutes

{u'status': 500, u'error': u''}
Traceback (most recent call last):
File "gistfile1.py", line 141, in
for user in recommendations(token):
File "gistfile1.py", line 95, in recommendations
for result in r.json()['results']:
KeyError: 'results'

@GraniteConsultingReviews

This comment has been minimized.

Show comment Hide comment
@GraniteConsultingReviews

GraniteConsultingReviews Aug 27, 2017

I m trying this code but compiler giving me error in user_id. Help me

I m trying this code but compiler giving me error in user_id. Help me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment