Un outil pour surveiller les projets Kickstarter/Ulule

Salut,
Pendant le Kickstarter de Conan, j'avais fait un petit programme pour détecter si un EB se libérait. Ça a permis à plusieurs personnes d'en chopper un, et hier je me suis dit qu'il serait cool d'étendre ce programme à tous les projets KS. C'est chose faite ! :)
Screen : http://puu.sh/ihCpO/01d6df1ec8.png
Comment ça fonctionne ?
Il vous suffit simplement de rentrer l'URL complète du projet KS/Ulule que vous souhaitez surveiller, et les informations essentielles du projet s'affichent. Si vous cochez un pledge (en double cliquant sur la ligne correspondante) et que celui-ci se libère, un bip se fera entendre pour vous prévenir. A noter que vous pouvez cocher plusieurs pledges à la fois.
Lien de téléchargement : https://mega.nz/#!MWRFGCQS!-V7ub1PZKpNT5Fv3vgzLFY4V4yPGuWA2oeq2C9hYV_g
(pas besoin de s'inscrire sur Dropbox, vous pouvez fermer la popup)
Comment installer ?
Téléchargez le fichier .rar, extrayez le dossier qu'il contient, et dans celui-ci, vous exécutez le fichier "MoniteurKickstarter". Ne DÉPLACEZ PAS ce fichier, par contre vous pouvez parfaitement créer un raccourci à mettre où vous voulez.
Vérifiez que vous avez bien Java à jour.
Je suis bien conscient que le design du programme est tout juste acceptable (voire complètement dégueulasse), mais je n'ai pas du tout l'âme d'un designer et j'ai préféré vous donner ça rapidement.
N'hésitez pas à proposer des améliorations ou des retouches sur ce topic (pas en MP, ils sont bordéliques et pas très visibles, sauf si vous avez quelque chose de personnel à me demander, ce dont je doute (?) ), je ferai des mises à jour avec vos suggestions le plus rapidement possible.
En espérant que ça pourra vous être utile. :)

Merci à toi pour le partage !
Par contre ça balance des requêtes à quelle fréquence ?
Si on est un certain nombre à utiliser ça, y a pas un risque de se faire choper et bannir de KS ?

L'update du tableau se fait toutes les 200 millisecondes afin d'être le plus réactif possible. Et je doute fortement que ça puisse entrainer un ban IP (et encore moins un ban du compte), puisque ça voudrait dire qu'ils bannissent également ceux qui font F5 comme des porcs pendant des jours.
Cela dit, si jamais ça vous fait stresser, je peux faire en sorte de vous laisser modifier le temps de rafraichissement. :)
Edit : Je viens de vérifier, et Kickstarter est doté d'un système (Rack::Attack) pour limiter les connexions intempestives. Ca confirme ce que je pensais : ils se contentent de limiter les connexions trop fréquentes (ils parlent de plusieurs dizaines de connexions par seconde, mon programme en fait "seulement" 5)

excellent ton outil !

Très sympa, merci beaucoup !
(en plus on peut se faire une petite ambiance sous-marin en cochant un pledge qui n'est pas limité :pouicboulet: )

Très utile en effet pour d'autres usages... mais j'ai un soucis... il beep toutes les 1 seconde en gros... alors que rien bouge... c'est normal ?
[EDIT : arf ca beep pas quand ca se libere mais quand on peut pledge :( bon tant pis ca fait pas ce que je voulais :p ]

jmt-974 dit:Très utile en effet pour d'autres usages... mais j'ai un soucis... il beep toutes les 1 seconde en gros... alors que rien bouge... c'est normal ?
[EDIT : arf ca beep pas quand ca se libere mais quand on peut pledge :( bon tant pis ca fait pas ce que je voulais :p ]

Il est jamais content celui-là !! :D
Je vais aller voir ce que t'as posté sur Zombicide :P

Non mais je voulais détourner l'usage... la il fait parfaitement son taff ;) (pour lequel il est prévu)

Bon, vu que c'est à moi de jouer les rabat-joies, je rappelle ce que j'ai déjà dit sur le sujet:
Le traitement d'une requête fait travailler le site web. Recevoir des requêtes plus vite qu'il ne peut les traiter fait ramer puis potentiellement d'effondrer un site.
Donc, du point de vue du site cible, un outil qui génère automatiquement des requêtes en rafale est vu comme une tentative de déni de service. 5 requêtes par seconde x 1000 personnes qui utilisent l'outil = ?
Donc oui, le risque de ban de votre IP est élevé.
Je vous conseille de mettre une fréquence de l'ordre d'1 ou 2 par minute, ce qui est largement assez pour chopper un EB, hors période de grosse activité (pas dans les 2 derniers jours du KS, quoi).
Pour mémoire:
Article 323-2 : Le fait d'entraver ou de fausser le fonctionnement d'un système de traitement automatisé de données est puni de cinq ans d'emprisonnement et de 75 000 euros d'amende.
Article 323-3-1 : Le fait, sans motif légitime, d'importer, de détenir, d'offrir, de céder ou de mettre à disposition un équipement, un instrument, un programme informatique ou toute donnée conçus ou spécialement adaptés pour commettre une ou plusieurs des infractions prévues par les articles 323-1 à 323-3 est puni des peines prévues respectivement pour l'infraction elle-même ou pour l'infraction la plus sévèrement réprimée.

Perso je pense que 10 secondes serait largement assez... mais bon...
@Khaali : désolé de te contredire mais ces articles ne concernent que les outils ayant une intention de nuire... la on est pas dans ce cas donc absolument pas concerné (j'ai meme vu un cas ou avec intention de nuire ca a été au final considéré comme un "usage abusif" et juste demandé d'arreter... lol)

Si khaali fait les rabat-joies, je peux faire les rabat-rabat-joies ? :mrgreen:
1 requete par minute... Même un humain en fait plus ^^ 1 requête par seconde pourquoi pas, même à 1.000 bots, ça changera rien pour le site (on parle de kickstarter.com qui est sur un Nginx + Varnish pas d'un matatafaitdestartes.siteperso.fr). Il se fait déjà bien scraper comme il faut par plusieurs scrapers sur tous les projets (avec ce programme, on parle d'une pauvre requete par 200 ms sur un projet, pas tous les projets).
Ensuite, la loi appliquée est celle du territoire, donc ça ne marche pas ici (ils se sont cachés derrière un serveur "Européen" et non "Français") à moins que tu n'aies cité des lois Européennes.
Puis, prouvé que l'on a abusé de requêtes, c'est extrêmement difficile au point où quasiment aucun si ce n'est aucun web scraper n'a pu être condamné à ce jour.
Maintenant on parle d'individus avec un pauvre programme qui lance quelques requêtes : indétectable XD
Conclusion :
Aucun ban-IP possible et aucun problème avec la loi

babyazerty dit:
Conclusion :
Aucun ban-IP possible et aucun problème avec la loi

Ah ben ca si... ca c'est le proxy qui décide (ou l'admin) et si il en prends de plusieurs centaines de users qui font la meme requete il est probable qu'il finisse par prendre ca pour une attaque...
Et je pense que 200ms y'a quand meme un risque perso si beaucoup de monde l'utilise... 10 seconde aucun par contre...
;)

Dans ce cas, il faudrait passer par l'API KS - les API étant plus permissives en général x-)
Le point que je remets vraiment en question c'est : A quoi ça sert d'être tenu au courant aussi rapidement ?
Le seul moment où je F5 c'est lors du launch d'un projet auquel cas, il est pertinent d'être tenu au courant sous les 60 secondes (tous les EB qui partent en moins de 60 secondes, c'est du jamais vu encore :pouicboulet: même avec zombicide). Une fois tous les EB partis, plus personne ne s'affole sur la touche de rafraichissement, ils font juste un check de temps à autres.

helelo dit:Comment installer ?
Téléchargez le fichier .rar, extrayez le dossier qu'il contient, et dans celui-ci, vous exécutez le fichier "MoniteurKickstarter". Ne DÉPLACEZ PAS ce fichier, par contre vous pouvez parfaitement créer un raccourci à mettre où vous voulez.
Vérifiez que vous avez bien Java à jour.

Précision : je suis sous Ubuntu 14.04.
J'ai un fichier en .jar et quand j'essaie de l'ouvrir j'ai une fenêtre Blocked: /usr/bin/java -jar avec comme message :
"The file '/home/alexandre/Bureau/Moniteur Kickstarter/MoniteurKickstarter.jar' is not marked as executable. If this was downloaded or copied from an untrusted source, it may be dangerous to run. For more details, read about the executable bit."
J'ai indiqué que je voulais lancer l'application, j'ai un "sablier" et ensuite ... rien. Une idée de l'origine du problème ?

Réccuperer un EB qui se libere... 10s ca me parrait bien pour ca ;)

Sympa le programme et merci pour le partage !
Je pense que tu devrais aussi mettre la variable du nb de requêtes / secondes éditables par n'importe qui...après chacun assume ce qu'il fait :p Si le gars met une requête toutes les 10ms...faudra pas s'étonner s'il se fait bannir !

Xahendir dit:"The file '/home/alexandre/Bureau/Moniteur Kickstarter/MoniteurKickstarter.jar' is not marked as executable. If this was downloaded or copied from an untrusted source, it may be dangerous to run. For more details, read about the executable bit."
J'ai indiqué que je voulais lancer l'application, j'ai un "sablier" et ensuite ... rien. Une idée de l'origine du problème ?

Le message d'erreur dit tout :)
Tu dois modifier les droits du fichier JAR pour lui donner les droits d'exécution pour ton utilisateur (ou groupe d'utilisateurs si tu fais du multi-comptes).

Mais c'est ce que j'ai fait ensuit : propriétés --> lancer comme un programme.
Et il ne se passe rien.

Puis, prouvé que l'on a abusé de requêtes, c'est extrêmement difficile

Ensuite, la loi appliquée est celle du territoire, donc ça ne marche pas ici (ils se sont cachés derrière un serveur "Européen" et non "Français")

On ne va pas rentrer dans les détails complexes de droits international mais pour simplifier, quelqu'un qui réalise un déni de service sur un site américain à partir d'un ordinateur francais peut être poursuivi.
Kickstarter ne va évidemment pas s'amuser à poursuivre les gens qui utilisent des bots surveiller son site (ce qui prendrait des mois), c'est bien plus simple de bannir les IPs (et c'est instantané).
Si j'ai rappelé la loi, ce n'est pas pour dire que la police va frapper à votre porte demain matin si vous utilisez un outil de ce type, et encore moins pour décider de l'interprétation de la loi par le juge, mais pour informer que l'utilisation de ce type d'outil n'est pas anodin; leur impact est réel dès qu'ils sont utilisés en masse.
même à 1.000 bots, ça changera rien pour le site (on parle de kickstarter.com)

Bah justement, sur les grosses montées en charge le site de KS n'est pas brillant, n'importe qui qui a été sur KS au démarrage ou à la fin de très gros projets peut en témoigner (Pebble time).

Je vais clarifier mes propos : je ne dis pas qu'il ne faut pas utiliser ce genre d'outil (loin de là!)
Je dis juste qu'il faut le faire de manière raisonnable. Hors période "de stress" (démarrage et fin des projets), les EBs se libèrent de temps en temps (quelques-unes par jour/semaine) et restent disponibles plusieurs minutes.
Pour utiliser efficacement ce genre d'outil il suffit de mettre 1 requête par minute et le laisser tourner pendant que vous faites autre chose. Au bout de quelques heures, ca finit toujours par tomber, il faut être patient. Multiplier les requetes n'augmentera pas le nombre d'EB dispos, par contre ca multipliera les chances que KS réagisse contre vous !

Salut,
Je vois que l'outil fait réagir en bien comme en mal, je m'y attendais et je suis content qu'on puisse en discuter. Je comprends votre inquiétude sur la fréquence du call, mais 5 requêtes par seconde, c'est absolument négligable pour un site comme KS, sauf si mon programme est utilisé par 5000 personnes sur le même projet KS au même moment, ce qui n'arrivera jamais. J'ai mis un temps faible parce que pendant le KS de Conan, j'avais mis un call toutes les 2 secondes, et les gens loupaient leur EB (c'est dire à quel point les gens martèlent leur touche F5, autant que mon outil :) ). Avoir 200 ms a permis de changer la donne, et c'est à ce moment que les gens ont réussi à chopper leur précieux.
Ce que je trouve dommage par contre, c'est que vous vous inquiétez un peu trop. Pas la peine de parler de loi ou de poursuites, j'ai dit que je vous donnerai la possibilité de modifier la valeur du call vous-même. :)
D'ailleurs, utiliser l'API est une bonne idée, mais de ce que j'en ai vu elle est assez rudimentaire, et surtout privée. Je n'ai trouvé que des éléments en Perl sur Github, et j'ai donc préféré passer par Jsoup pour faire mes parses tout seul.
Ensuite, en ce qui concerne Ubuntu, je n'en ai absolument aucune idée, et je peux même te dire que j'ai séché tous mes cours de Linux de l'IUT donc c'est pas moi qui vais pouvoir t'aider ahah. Cependant, j'ai cherché un peu, et peut-être que ce topic pourrait t'aider : http://ubuntuforums.org/showthread.php?t=1479358 . Si tu n'arrives pas à régler le problème, contacte-moi en MP et en essayera de résoudre ça ensemble. :)
Enfin, dans la journée je posterai la nouvelle version du programme et j'implémenterai la mise à jour automatique au démarrage du programme, ça vous évitera de venir checker régulièrement ici si une maj a été faite.
N'hésitez pas si vous avez d'autres suggestions, comme d'habitude :)