Il y avait un tel script bash dans l'essentiel. Si vous lancez Tinder sur Android et exécutez ceci, il semble que vous puissiez continuer à glisser vers la droite (: heart :).
while true; do
./adb shell input swipe 100 400 4000 400 400;
done
https://gist.github.com/lawloretienne/4f044bde3eb8de67e2ae
Comme c'est simple! être déplacé. J'ai décidé de démarrer Tinder immédiatement. Mais Tinder a une limite de balayage, dit-il. Si un utilisateur gratuit balaye environ 120 fois, il ne pourra pas faire glisser pendant un certain temps. Il semble que cette restriction sera supprimée si vous vous inscrivez à un rapport sexuel rémunéré. Environ 1000 yens par mois. Demain est un petit jeûne.
TinderBot
L'essentiel ci-dessus est simple et merveilleux. Personne ne pense que même si vous jouez à ça au travail, vous vous amusez avec Tinder. Tout comme un ninja.
Cependant, cela ne nous permet pas de mesurer quel genre de personnes sont dans Tinder et quel genre de personnes sont: cœur:. C'est le dire de Tom Demarco: «Je ne peux pas contrôler ce que je ne peux pas mesurer», et il n'est pas exagéré de dire que si vous ne pouvez pas contrôler les femmes qui affluent vers moi (bien sûr, c'est vrai?), C'est une honte pour un homme. Alors que devons-nous faire.
Frappez simplement l'API. C'était facile quand je l'ai imaginé. C'est loin d'être la simplicité de l'essentiel ci-dessus, mais j'ai trouvé un client pour Python que je connais, alors j'ai d'abord écrit un Bot qui enregistre les informations de la personne qui a glissé 10000 fois dans SQLite.
L'environnement de l'auteur est Ubuntu 14.04 LTS, il y a donc un peu de préparation. Quel gros problème.
$ sudo apt-get install build-essential python-dev libffi-dev libssl-dev
$ pip install pyopenssl ndg-httpsclient pyasn1 requests[security] python-datetimeutil SQLAlchemy
Ensuite, obtenez votre identifiant d'utilisateur Facebook et votre jeton d'accès.
L'ID utilisateur est ce site http://findmyfbid.com/
Le jeton d'accès peut maintenant être émis. Il vous suffit de copier l'URL de la barre d'adresse avant d'être redirigé. Le jeton d'accès est intégré dans le paramètre GET de l'URL. Ce jeton disparaîtra dans un court laps de temps (1 à 2 heures). https://www.facebook.com/dialog/oauth?client_id=464891386855067&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=basic_info,email,public_profile,user_about_me,user_activities,user_birthday,user_education_history,user_friends,user_interests,user_likes,user_location,user_photos,user_relationship_details&response_type=token
Si c'est réel, même une personne peut le faire: cœur: avec une préparation considérable, mais avec Tinder, cela peut être fait par: cœur: pour 10 000 personnes. Soit dit en passant, à ce stade, nous facturons et supprimons les restrictions sur la zone et l'âge. La distance et la différence d'âge ne sont pas liées à l'amour. À propos, cela prend le plus de temps pour penser à la phrase de profil jusqu'à présent.
from __future__ import unicode_literals
from datetime import datetime
from sqlalchemy import Column
from sqlalchemy import create_engine
from sqlalchemy import Date, DateTime
from sqlalchemy import Float, ForeignKey
from sqlalchemy import Integer
from sqlalchemy import SmallInteger
from sqlalchemy import String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy.orm import sessionmaker
import pynder
FBTOKEN = 'Jetons Facebook que j'ai'
FBID = 'J'ai mon identifiant Facebook'
engine = create_engine('sqlite:///tinder.sqlite3', echo=True)
Session = sessionmaker(bind=engine)
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
bio = Column(String)
age = Column(SmallInteger)
birth_date = Column(Date)
ping_time = Column(DateTime)
distance_km = Column(Float)
get_photos = relationship('Photo')
schools = relationship('School')
jobs = relationship('Job')
class Photo(Base):
__tablename__ = 'photos'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('users.id'))
url = Column(String)
class School(Base):
__tablename__ = 'schools'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('users.id'))
name = Column(String)
class Job(Base):
__tablename__ = 'jobs'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('users.id'))
name = Column(String)
def like_tinder_users(limit):
sql_session = Session()
session = pynder.Session(FBID, FBTOKEN)
nearby_users = session.nearby_users(limit)[:limit]
for user in nearby_users:
photos = [Photo(url=url) for url in user.get_photos(width='640')]
schools = [School(name=name) for name in user.schools]
jobs = [Job(name=name) for name in user.jobs]
sql_user = User(
name=user.name,
bio=user.bio,
age=user.age,
birth_date=user.birth_date,
ping_time=datetime.strptime(user.ping_time, '%Y-%m-%dT%H:%M:%S.%fZ'),
distance_km=user.distance_km,
get_photos=photos,
schools=schools,
jobs=jobs,
)
sql_session.add(sql_user)
user.like()
sql_session.commit()
sql_session.close()
if __name__ == '__main__':
Base.metadata.create_all(engine)
for i in range(1, 1001):
like_tinder_users(10)
print('I liked {} women xD'.format(i * 10))
En fait, j'ai écrit le code pour automatiser l'authentification avec Selenium + phantomjs, donc je n'ai pas confirmé l'opération, mais cela ressemble à ceci.
Je pense que la vitesse de saisie des caractères d'Android n'est qu'environ 10% plus rapide que celle de l'utilisation du clavier. En d'autres termes, si vous correspondez à beaucoup de femmes, la saisie de caractères peut devenir un goulot d'étranglement. De nombreux services de rencontres ont une version Web, ce n'est donc pas un problème, mais Tinder n'a pas de version Web. J'ai donc décidé de faire à nouveau appel à mon prédécesseur.
C'est une version de bureau non officielle. Il est fait avec NW.js au lieu du très populaire Electron. Mais il n'y a pas de version Linux? Ne t'inquiète pas. Je vais simplement changer le fichier de construction. Heureusement, il y avait une personne qui a fait ce correctif. J'ai cloné chaque master et réécrit selon le diff, et cela a parfaitement fonctionné avec Trusty. C'est égoïste et je suis prêt à le faire.
Quelle que soit la quantité de données mises dans la base de données, cela n'a aucun sens à moins que la ventilation ne soit connue. Je veux afficher rapidement de belles données avec seaborn. Mais pour le moment, le match est de 0,15% (toujours 0,05% de mieux que lorsque je l'ai publié pour la première fois), et quand j'ai pensé que la femme me parlait, c'était Amway (), donc je vais dormir un peu plus longtemps. Le week-end, j'aimerais relever le défi de la visualisation pendant que je suis occupé avec une visite des installations des religions émergentes et une session d'information sur Amway / art antique.
Recommended Posts