Téléchargement d'images avec sockets

Résolu
cs_ababi Messages postés 19 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juillet 2006 - 20 juil. 2005 à 16:09
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008 - 21 juil. 2005 à 22:57
Bonjour,

je suis novice dans l'utilisation de sockets et ne connait pas grand chose non plus à l'utilisation des &binvar, et je patauge donc un peu...

je cherche à télécharger des images de sites web depuis mon client IRC (mIRC), et ce via l'utilisation de sockets. J'ai vu le [tuto de Zova http://www.ircfr.com/tutorial.aspx?ID=119] mais je rencontre quelques difficultés sur certaines images, je pense à cause de leur taille.

Est-il possible de récupérer une image sur un site, quelqu'en soit la taille, ou est-on limités par des caractéristiques de &binvar, /sockread ou autre ?
la taille limite des images que j'arrive à télécharger semble être autour de 3ko. D'après l'aide de mIRC, j'ai vu qu'apparement il existait une limite de 4ko pour /sockread, mais je ne suis pas sur d'avoir bien compris...

Si quelqu'un avait quelques tuyaux à me donner, ce serait sympa ;)

Merci par avance.

7 réponses

S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
21 juil. 2005 à 22:57
En effet, le snippet marche parfaitement.



l'alias s'utilisait comme ça : //echo -a $addrimg(http://i3.microsoft.com/h/en-us/i/attachments_4_10.jpg)

et ça retournait : i3.microsoft.com h/en-us/i/attachments_4_10.jpg



sockread &temp ; on lit les informations de la socket

bcopy &temp2 1 &temp $iif($bfind(&temp,1,10 13) != 0, $calc($bfind(&temp,1,10 13)+3), 1) -1

on copie tout ce qui se trouve dans la variable &steam après le
caractère $crlf (chr 10 et 13 qui est répété 2 fois. je le cherche avec
$bfind et j'ajoute 3 pour 13 10 13)



bwrite babi.jpg -1 -1 &temp2 ;j'écris ensuite les information dans le fichier.



Ce qui est contenu avant les 2 $crlf(10 13 10 13) sont les informations
sur le fichier : Taille, nom, type de fichier. si tu veux les voir mets
ça :

echo -a $bvar(&temp,1, $bfind(&temp,1,10 13))

ca retourne un truc du genre :



HTTP/1.1 200 OK

Cache-Control: max-age=86400

Content-Length: 4112

Content-Type: image/gif

Last-Modified: Mon, 12 Jul 2004 01:34:44 GMT

Accept-Ranges: bytes

ETag: "8660969b067c41:2bd" etc...
--------------------------------
Signature des parents :
3
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
20 juil. 2005 à 17:48
J'ai téléchargé l'image que tu avais mis entre les balises [img] :

on *:sockopen:img:{

if ($sockerr) { echo -a erreur | halt }

sockwrite -n img GET http://alexandre.babilotte.free.fr/images/banni%e8re%20ababi.jpg

}

on *:sockread:img:{

sockread &temp

bwrite babi.jpg -1 -1 &temp

}



puis: //sockopen img alexandre.babilotte.free.fr 80



Ton image fait 70,0Ko et je n'ai pas eu de mal à la télécharger.

Peut-être qu'il y avait des espaces ou caractères spéciaux dans le chemin, comme pour ton image.

%E9 = é

%E8 = è

%20 = espace



-----------------------------------------
Signature des parents :
0
cs_ababi Messages postés 19 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juillet 2006
20 juil. 2005 à 18:38
oups, désolé pour la mise en page de mon message qui a foiré...:/



ok merci S333, je vais tester avec ce que tu m'as mis, et voir ce qui clochait
0
cs_ababi Messages postés 19 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juillet 2006
21 juil. 2005 à 12:19
bon, apparement, ca ne marche pas sur tous les sites :(

pour ma bannière, pas de problème, sur d'autres sites non plus, mais sur le site de microsoft, pour avoir cette image :
http://i3.microsoft.com/h/en-us/i/attachments_4_10.jpg
ça ne marche pas :'(

Y a-t-il des paramètres à spécifier, mettre un autre port, etc ? Ou alors est-ce que certains sites ne sont pas accessibles, protégés ou autres, via les sockets ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
21 juil. 2005 à 18:13
on *:sockopen:img:{

if ($sockerr) { echo -a erreur | halt }

sockwrite -n img GET /h/en-us/i/attachments_4_10.jpg HTTP/1.0

sockwrite -n img Host: i3.microsoft.com

sockwrite -n img $crlf

}

on *:sockread:img:{

sockread &temp

bcopy &temp2 1 &temp $iif($bfind(&temp,1,10 13) != 0, $calc($bfind(&temp,1,10 13)+3), 1) -1

bwrite babi.jpg -1 -1 &temp2

}



j'ai testé avec l'image microsoft, celle de ton précédent post puis le souriceau de Ircfr :)

Alias pour avoir ce que l'on doit mettre dans sockopen et dans GET:

alias addrimg { return $gettok($remove($1-,http://),1,47) $gettok($remove($1-,http://),2-,47) }

Utilisation : $addrimg(http://i3.microsoft.com/h/en-us/i/attachments_4_10.jpg)

retour : i3.microsoft.com h/en-us/i/attachments_4_10.jpg



Si tu veux, je peux t'expliquer la source du sockread.
-----------------------------------------
Signature des parents :
0
cs_ababi Messages postés 19 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juillet 2006
21 juil. 2005 à 21:02
si tu pouvais m'expliquer la source du sockread ouais, ce serait sympa, parce que je capte pas grand chose :/



comment on fait pour utiliser l'alias aussi ? il faut taper $addrimg()
où ? j'ai essayé différentes méthode ( /addrimg $addrimg() ; $addrimg()
; etc) mais sans résultats...je n'ai jamais utilisé ce genre
d'identifieur comme ça pour lancer un alias, je suis perdu ^^
0
cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
21 juil. 2005 à 21:25
http://scriptsdb.org/comments.php?id=312



regardes ce snippet ça devrait t'aider il est commenté et marche niquel d'ap les comments.
-1337 connexion-
0
Rejoignez-nous