[..] Questions sur possibilites Web d'autoIt

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
autoeX
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 avr. 2008 18:01
Status : Hors ligne

[..] Questions sur possibilites Web d'autoIt

#1

Message par autoeX »

bonjour,

étant completement newbi sur autoit j'aurai voulu avoir l'avi des connaisseurs à savoir;

si auto it peut gerer des cookies/loginHTTP

en gros je voudrais automatiser une récuperation de page derriere un login/mdp http avec gestion des cookies, n'y arrivant pas avec wget et curl (en cmd sous dows)..
http://www.url.com/index.html ou php
form username et mdp qui pointent vers http://www.url.com/redirect.php?action=login
http://www.url.com/home.php url du user apres login

j'espere avoir été compréhensible :roll:

merci à tous
Modifié en dernier par Tlem le dim. 20 avr. 2008 21:26, modifié 1 fois.
Raison : Ajout de la balise [..] dans le titre.
Firefox2
Niveau 2
Niveau 2
Messages : 23
Enregistré le : lun. 31 mars 2008 20:28
Status : Hors ligne

Re: Questions sur possibilites d'auto it

#2

Message par Firefox2 »

A mon avis, ce que tu dis doit être possible car AutoIt offre un accès complet aux fonctions d'IE ;)

Et sinon tu peux utiliser quelque chose comme ça:

Code : Tout sélectionner

TCPStartup()

Func HTTP($SITE, $page, $donnees = -1)
    
    Local Const $IP = TCPNameToIP($SITE)
    Local Const $SOCKET = TCPConnect($IP, 80)
    
    If $donnees <> -1 Then
        TCPSend($SOCKET, "POST " & $page & " HTTP/1.0" & @CRLF & _
                        "HOST: " & $SITE & @CRLF & _
                        "Content-Type: application/x-www-form-urlencoded" & @CRLF & _
                        "Content-Length: " & StringLen($donnees) & @CRLF & _
                        @CRLF & _
                        $donnees)
    Else
        TCPSend($SOCKET, "GET " & $page & " HTTP/1.0" & @CRLF & _
                        "HOST: " & $SITE & @CRLF & @CRLF)
    EndIf
    
    Local $recv
    Do
        $recv &= TCPRecv($SOCKET, 1024)
    Until @error
    
    Return $recv
    
EndFunc

MsgBox(64, "TEST", HTTP("localhost", "/test2.php?test=ok", "a=bcd&e=fgh")) ; GET + POST
MsgBox(64, "TEST", HTTP("localhost", "/test2.php?test2=oui")) ; GET seulement

TCPShutdown()
 
Si tu as besoin d'explications plus détaillées, tu n'as qu'à demander :D
autoeX
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 avr. 2008 18:01
Status : Hors ligne

Re: Questions sur possibilites d'auto it

#3

Message par autoeX »

Firefox a écrit :A mon avis, ce que tu dis doit être possible car AutoIt offre un accès complet aux fonctions d'IE ;)

Si tu as besoin d'explications plus détaillées, tu n'as qu'à demander :D


Coucou Firefox,
super sympa ton boulot didonc mais je t'avou que je souhaite surtout comprendre, d'une par la synthaxe, et aussi, la logique de developpement sur auto it.
alors, j'ai pas regardé encore les files d'aides traduites et autre, mais ceci dit, je pense que ton bou de code me sera utilise lorsque j'aurai un minimum de connaissances.
En tout cas merci à toi.

:arrow:
auto it permet de scripter et faire des taches d'automatisation, alors que mon besoin,
c'est automatiser la recuperation de + de 300.000 pages (ou plus precisement 16 champs sur chaque page..)bref recuperer ces 300.000pages.
le probleme, cest que demain jaurai 310.000 et apres demain 320.000...., donc comme vous pouvez le comprendre c'est une base qui recoi des infos en permanence.
Donc il faut recuperer ses pages de la derniere aux toutes premieres, pourquoi ?
Car comme je l'expliquai plus haut, il faut juste 16 champs du code html de chaque page
et chaque champs est incrémenté comme il faut :
à savoir la derniere page : 300.000eme a son 16eme champ Id=1 alors que le 1er de la meme 300.000eme page sera id=16
donc grosso modo, j'ai besoin de recup tout cela et je ne sais pas si auto it permettra tout cela:
connection site/login http gestion cookies / maintenir la connection ] phase 1
recup lurl à spécifier par raport à ce qu'on a deja en local (admettons que j'ai recup 1 page la veille.. donc ya un trie intelligent à faire ] phase 2

bref je sais pas si c'est très clair,

au debut je voulais faire tout ce que j'ai décri plus haut, avec une simple page html, une saisie url, et un bouton pour l'envoie, à l'aide d'XmlHttpRequest mais c'est pas viable car ca ne peut que etre sur le meme domaine cette requete Ajax.
Apres j'ai regardé wget et curl avec lesquels je n'ai pas reussi à me logguer.(en cmd)
voila j'en vien a auto it now :
tout ca pour eviter une appli VB.NET ou c# qui je pense gerent tous mon cahier des charges.

Merci aux légionnaires qu'auront tenu jusqu'à la fin (si yen a) :mrgreen:
sinon goto :arrow:
Firefox2
Niveau 2
Niveau 2
Messages : 23
Enregistré le : lun. 31 mars 2008 20:28
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#4

Message par Firefox2 »

Bon alors je vais de décortiquer ce que j'ai écrit et après je vais un essayer de voir comment on pourrait faire ce dont tu as besoin.
Déjà TCPStartup() démarre les services TCP et TCPShutdown() les arrête.
Ensuite je crée une fonction HTTP qui aura pour paramètres:
- le site de destination
- la page à ouvrir (avec, si on le désire, des données GET)
- et, optionnellement, des données POST à transmettre
Au début, on transforme l'adresse du site en adresse IP et on se connecte au port 80.
On vérifie ensuite si il faut envoyer des données POST et si oui, on envoie les headers nécessaires et on transmet les données avec la méthode POST.
Si il n'y en a pas, on emploie la méthode GET.
Enfin, on récupère les données envoyées par le serveur et on les renvoie à l'endroit où la fonction à été appelée, en l'occurrence, dans une MsgBox.
La première MsgBox fait une requête avec des données POST (et GET mais ça c'est transparent).
Le deuxième fait une requêtes sans données POST (mais avec des données GET, c'est toujours transparent).
Pour rappel, les données GET sont celles à la fin des URL: http://url.com?champ=valeur&champ2=valeur2&champN=valeurN
Les données POST sont celles qui ne peuvent/doivent pas être transmises via l'URL.
Dans la plupart des cas, la méthode GET ou POST est spécifiée dans la balise <form> de la page ou il y a le formulaire (ex: <form action="..." method="POST">). Si elle n'est pas spécifiée, il faut utiliser GET.

Bon beh maintenant je vais me pencher en détail sur ce que tu veux faire...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#5

Message par Tlem »

Je me demande, si il ne serait pas plus simple de récupérer chaque ID de page, puis de mémoriser l'adresse de la page dans un fichier texte (Pour ne pas la rechargée).
Je suppose que l'adresse de chaque page inclus un indice qui nous donne le numéro de page ou similaire, et donc en prenant la dernière ligne du fichier de texte (L'adresse du dernier téléchargement) et en incrémentant le fameux indice, je télécharge la deuxième page puis ainsi de suite jusqu'à ce qu'il n'y ait plus de page à télécharger (Erreur 404).

Lors d'une mise à jour, le script charge le dernier lien du fichier texte, et recommence l'opération jusqu'à l'erreur 404.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
autoeX
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 avr. 2008 18:01
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#6

Message par autoeX »

firefox merci beaucoup pour tes explications franchement c'est super cool de ta part deja! je vais etudier ce que tu as mis deja ca va peut etre mavancer.

Ensuite Merci Tlem également, cependant je pense qu'enregistrer les page avec un id (incrémenté sans doute pour marquer la continuité de l'historisation) n'est pas une bonne chose du fait que la base bouge en temps réel :

Je m'explique en schématisant sur ce cas concret :

1page = 16 champs à recuperer et (pour un traitement pro) à mettre dans une db (mais ca cest ultérieur biensur..)

Exemple1:
jour X heure X: Nb pages sur le serveur au jour X heure X : 300.000pages

cest à dire que la 300.000 est la plus vieille la 1ere page la plus récente

partie html
page 300.000 | page 1

id=16 id=300.000
id=15 id=299.999
.. ..
.. ..
id=1 id=299984



Exemple2:

jour X+1 heure X: Nb pages sur le serveur au jour X+1 heure X : 310.000pages

donc la 300.000page au jour X devient 310.000 au jour X+1
mais c'est pas grave car le code html identifie les 16 parties a recuperer en id=X.. comme je l'expliquais plus haut.

Tout ca pour dire que faire une méthode qui enregistre les pages est faisable mais le probleme c'est que quand je relance le script Jour X+1 il faut maj la recup de la veille donc modifier tous les fichiers localement ce qui rend le traitement compliqué ou du moins lourd...

le formulaire de connection user sur le site est le suivant :


form action="redirect.php?action=login" method="post" name="form_login"

input name="login" type="text" value="email" size="10" maxlength="120" style="height:15px" class=i onfocus="loginBox(this.form)" style="color:#5e5d5e"

input name="password" type="text" value="mot de passe" size="10" maxlength="120" style="height:15px" class=i onfocus="loginBox(this.form)" style="color:#5e5d5e"


le script de gestion des cookies :

/*script
if (getCookie ('r') == 1) {
var url = 'redirect.php?login='+getCookie ('l')+'&pass='+getCookie ('p')
window.location = url;
}
script
*/

je sais pas si c'est utile mais bon..

Merci à tous
Modifié en dernier par autoeX le lun. 21 avr. 2008 16:57, modifié 3 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#7

Message par Tlem »

Hummm je comprend ce que vous voulez expliquer :

La page N°1 du jour X devient la page N°2 du jour X+1 (Du moins pour schématiser)

Par contre dans ce cas, je ne vois pas quel genre de repère va vous aider pour la récupération de chacune de ces images (Sauf si elles ont un nom différent à chaque fois).

Sans aucun repère, la récupération de ces images ne sera probablement pas possible.
Regarder dans la source de la page si aucune indication n'est disponible, pour 'indexer' les pages, et éviter de devoir les recharger.

Si un 'index' est disponible, ou le nom des images différent, servez vous en pour savoir quand vous devez arrêter la récupération des données.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
autoeX
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 avr. 2008 18:01
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#8

Message par autoeX »

Tlem a écrit :Hummm je comprend ce que vous voulez expliquer :

La page N°1 du jour X devient la page N°2 du jour X+1 (Du moins pour schématiser)
-exactement! :)


Par contre dans ce cas, je ne vois pas quel genre de repère va vous aider pour la récupération de chacune de ces images (Sauf si elles ont un nom différent à chaque fois).

-si, je vous disai les 16 balises à recuperer son identifiées par un id unique incrémenté, mais c'est niveau code source html...

Sans aucun repère, la récupération de ces images ne sera probablement pas possible.
Regarder dans la source de la page si aucune indication n'est disponible, pour 'indexer' les pages, et éviter de devoir les recharger.

-ce ne sont pas des images mais du texte.(peut d'importance)
-ensuite pour eviter les doublon il faut une moulinette qui, quand je recupere une page,capte les 16 elements et leur id et verifie sur la base en local.
ce qui permet, etant donné que se sont des pages de 16 elements, de savoir quel page demander meme j+1


Si un 'index' est disponible, ou le nom des images différent, servez vous en pour savoir quand vous devez arrêter la récupération des données.
Merci Encore Msieur!
Firefox2
Niveau 2
Niveau 2
Messages : 23
Enregistré le : lun. 31 mars 2008 20:28
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#9

Message par Firefox2 »

Déjà, à ce qu'on peut voir, le login ne va pas être un problème, mais une fois loggé, comment accède-t-on à ces 300'000 pages ?
Est-ce une série de lien ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#10

Message par Tlem »

Puisque les balises de chaque éléments à sauvegarder est unique, pas de problème.
Trouvez une solution pour récupérer vos 16 éléments par page, puis indexez les dans un fichier avec leur N° de balises.

Lors de la récupération de vos éléments le jour X+Y, vous récupèrerez les 16 éléments de chaque nouvelle page (Commencez à la page 1 puis la 2 puis ...) jusqu'à retrouver un N° de balise indexé.
Et ainsi de suite pour chaque fois ou vous voulez récupérer les données.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
autoeX
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 avr. 2008 18:01
Status : Hors ligne

1

#11

Message par autoeX »

Firefox a écrit :Déjà, à ce qu'on peut voir, le login ne va pas être un problème, mais une fois loggé, comment accède-t-on à ces 300'000 pages ?
Est-ce une série de lien ?
une foi loggué on est sur http://www.url.com/home.php
pour recup ce quil faut, il suffit de changer lurl à savoir: http://www.url.com/mail.php?cat=1&page=1 messages arrivant en temps reels
http://www.url.com/mail.php?cat=1&page=300000 message il y a 6mois (par ex)

je recupere la page souhaité sans autres contraintes que les cookies.
Tlem a écrit :Puisque les balises de chaque éléments à sauvegarder est unique, pas de problème.
Trouvez une solution pour récupérer vos 16 éléments par page, puis indexez les dans un fichier avec leur N° de balises.
-c'est exactement ca que je souhaite faire, recuperer les 16 éléments de chaque page

Lors de la récupération de vos éléments le jour X+Y, vous récupèrerez les 16 éléments de chaque nouvelle page (Commencez à la page 1 puis la 2 puis ...) jusqu'à retrouver un N° de balise indexé.
Et ainsi de suite pour chaque fois ou vous voulez récupérer les données.
moi j'aurai commencé par la derniere sur le serveur donc la 300.000eme page
id=16
id=15
..
id=1

je recupere mes 16 champs et le dernier de la page (id=1) sera noté msg_title=1 par ex
le id=16 msg_title=16 (ca c'est pour la derniere page sur le serveur)


ce qui me laisse penser que c'est la fin qui ne bouge pas, donc pour moi, je recupere la fin dabord !?! page 300.000 sur ma base local sera page 1 etc...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#12

Message par Tlem »

C'est vous qui voyez ... :D
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Firefox2
Niveau 2
Niveau 2
Messages : 23
Enregistré le : lun. 31 mars 2008 20:28
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#13

Message par Firefox2 »

Bonjour !
Moi, je suis reparti dans mon code pour que les cookies marchent mais j'ai pas encore regardé comment il va falloir faire pour récupérer chaque page...
Voilà déjà le code qui récupère les cookies envoyés par le serveur (première utilisation de la fonction HTTP) et qui lui renvoie (2ème utilisation).

Code : Tout sélectionner

#include <Array.au3>

TCPStartup()

Func HTTP($SITE, $page = "/", $cookie = "", $donnees = -1)
    
    Local Const $IP = TCPNameToIP($SITE)
    Local Const $SOCKET = TCPConnect($IP, 80)
    If $cookie <> "" Then Cookie($cookie)
    
    If $donnees <> -1 Then
        TCPSend($SOCKET, "POST " & $page & " HTTP/1.0" & @CRLF & _
                        "HOST: " & $SITE & @CRLF & _
                        $cookie & _
                        "Content-Type: application/x-www-form-urlencoded" & @CRLF & _
                        "Content-Length: " & StringLen($donnees) & @CRLF & _
                        @CRLF & _
                        $donnees)
    Else
        TCPSend($SOCKET, "GET " & $page & " HTTP/1.0" & @CRLF & _
                        $cookie & _
                        "HOST: " & $SITE & @CRLF & @CRLF)
    EndIf
    
    Local $recv
    Do
        $recv &= TCPRecv($SOCKET, 1024)
    Until @error
    
    Return $recv
    
EndFunc

Func Cookie(ByRef $cookie)
    
    If Not IsArray($cookie) Then
        
        $cookie = "Cookie: " & $cookie & @CRLF
        
    Else
        
        Local $tmp
        
        For $i = 1 To $cookie[0]
            $tmp &= $cookie[$i] & ";"
        Next
        
        $cookie = "Cookie: " & $tmp & @CRLF
        
    EndIf

EndFunc

Global $page = HTTP("localhost", "/test2.php")
Global $tmp = StringSplit($page, @CRLF & @CRLF, 1)
Global $html = _ArrayToString($tmp, @CRLF & @CRLF, 2)
Global $headers = StringSplit($tmp[1], @CRLF)
Global $cookies[UBound($headers)]
Global $n_cookies = 0

For $i = 1 To $headers[0]
    
    If StringLeft($headers[$i], 12) = "Set-Cookie: " Then
        
        $n_cookies = $n_cookies + 1
        $tmp = StringSplit($headers[$i], "Set-Cookie: ", 1)
        $tmp = StringSplit($tmp[2], ";")
        $cookies[$n_cookies] = $tmp[1]
        
    EndIf
    
Next

$cookies[0] = $n_cookies

MsgBox(64, "", HTTP("localhost", "/test2.php", $cookies))

TCPShutdown()
Je commence à me perdre dans mes variables (raah ces cookies :evil: , ils auraient pas pu faire plus simple...) :mrgreen:

EDIT: Concernant les pages à récupérer, y a-t-il un endroit ou le nombre total est marqué et pourrais-tu nous donner un exemple de page à récup. pour voir comment ça se présente... A moins que tu veuille récupérer simplement la page et l'enregistrer sur ton disque dur ?
autoeX
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 avr. 2008 18:01
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#14

Message par autoeX »

Firefox a écrit :EDIT: Concernant les pages à récupérer, y a-t-il un endroit ou le nombre total est marqué et pourrais-tu nous donner un exemple de page à récup. pour voir comment ça se présente... A moins que tu veuille récupérer simplement la page et l'enregistrer sur ton disque dur ?

Coucou Firefox, encore merci pour ton soutien et tes explications!
concernant les pages à recup qd on se loggue je te disai on est sur home.php
les pages à recup sont url/mails.php?cat=3 <= page la plus récente
url/mails.php?cat=3&page=300 000 < derniere page

ensuite qd je suis sur mails.php?cat=3&page=.... en bas de la page j'ai le nombre de page courant avec (< 1 2 ...... 300.000 300.001 >)

pour revenir à la base :
le script autoit a mon avis permettra juste lautomatisation, je pense qu'il faut tout de meme creer une appli (nimporte quel type) pour gerer les 16 elements à recup dans une base.

EN faisant une base avec des containeurs de 16 c'est niquel car si mon script va recup ses champs et verif la base ca permet de savoir nimporte quand quelle page je doit aller chercher.
admettons:

jour x j'ai recup 1000 pages donc 1000 * 16champs

donc j'ai 1000 containeurs sur ma base local
donc ca me permet de calculé sur linstant t la page a demander...

Merci
Firefox2
Niveau 2
Niveau 2
Messages : 23
Enregistré le : lun. 31 mars 2008 20:28
Status : Hors ligne

Re: [..] Questions sur possibilites Web d'autoIt

#15

Message par Firefox2 »

Bonsoir !
J'ai un peu travaillé sur ce script et j'ai fait ça:

Code : Tout sélectionner

#include <Array.au3>

$site = 
$login = 
$pass = 
$pages = 

TCPStartup()

Func HTTP($SITE, $page = "/", $cookie = "", $donnees = -1)
    
    Local Const $IP = TCPNameToIP($SITE)
    Local Const $SOCKET = TCPConnect($IP, 80)
    If $cookie <> "" Then Cookie($cookie)
    
    If $donnees <> -1 Then
        TCPSend($SOCKET, "POST " & $page & " HTTP/1.0" & @CRLF & _
                        "HOST: " & $SITE & @CRLF & _
                        $cookie & _
                        "Content-Type: application/x-www-form-urlencoded" & @CRLF & _
                        "Content-Length: " & StringLen($donnees) & @CRLF & _
                        @CRLF & _
                        $donnees)
    Else
        TCPSend($SOCKET, "GET " & $page & " HTTP/1.0" & @CRLF & _
                        $cookie & _
                        "HOST: " & $SITE & @CRLF & @CRLF)
    EndIf
    
    Local $recv
    Do
        $recv &= TCPRecv($SOCKET, 1024)
    Until @error
    
    Return $recv
    
EndFunc

Func Cookie(ByRef $cookie)
    
    If Not IsArray($cookie) Then
        
        $cookie = "Cookie: " & $cookie & @CRLF
        
    Else
        
        Local $tmp
        
        For $i = 1 To $cookie[0]
            $tmp &= $cookie[$i] & ";"
        Next
        
        $cookie = "Cookie: " & $tmp & @CRLF
        
    EndIf

EndFunc

Global $cookies[4]
$cookies[0] = 3
$cookies[1] = "r=1"
$cookies[2] = "l=" & $login
$cookies[3] = "p=" & $pass

For $i = 1 To $pages
    
    $nom = "Page n°"
    $nom &= $pages - $i + 1
    $nom &= ".htm"
    
    $page = $site & "/mails.php?cat=3&page=" & $i
    
    Global $page = HTTP($site, $page)
    Global $page = StringSplit($page, @CRLF & @CRLF, 1)
    Global $page = _ArrayToString($tmp, @CRLF & @CRLF, 2)
    
    $h = FileOpen($nom, 2)
    FileWrite($h, $page)
    FileClose($h)
    
Next

TCPShutdown()
 
C'est assez basique, dans le fait que ça récupère juste toutes les pages en inversant la numérotation mais il faudrait déjà le tester pour voir si il marche, et donc il faut le lancer en lui donnant:
- le site (ex: http://www.url.com sans http://)
- le login
- le pass
- le nombre total de pages
autoeX
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 avr. 2008 18:01
Status : Hors ligne

Questions sur possibilites Web d'autoIt

#16

Message par autoeX »

on peut tester sur gchangetout.com par exemple sinon j'ai trouvé un truc interessant mais sans notion de login/cookies

ici
Répondre