lespagnol9393
Messages postés33Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention22 juillet 2007
-
12 juil. 2007 à 09:34
lespagnol9393 -
28 févr. 2016 à 23:11
Bonjour à tous.
Dans le cadre d'un petit projet personnel, je souhaiterai, suite à une commade tapée sur un channel irc, comme par exemple !getsource , récuperer dans un fichier texte le code source de la page html passée en paramètre.
Cela est-il faisable ?
Bien évidement , je ne demande pas un script tout fait, mais de petites pistes pour y arriver
Merci à tous ceux qui prendront la peine et le temps de m'aider.
lespagnol9393
Messages postés33Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention22 juillet 2007 13 juil. 2007 à 07:45
Merci Wims de t'être donné tant de mal ;)
En gros il faut maintenant juste réussir à dégager l'en tête HTML contenue dans la variable &a, et après bwrite.
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 13 juil. 2007 à 08:09
J'ai déja réussis a faire cela, en passant par les variables simple mais ça ne marche pas, ce qu'il faut c'est trouvé la place de content-type dans la binvar &a et commencé a bwrite apres le $crlf ou le $cr ou le $lf (j'sais plus) et ensuite bwrite la fin, je n'y arrive pas :]
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 13 juil. 2007 à 09:09
Bon, après une petite nuit blanche et 2 3h dessus, j'ai finis par trouvé =/ :
on *:sockread:cinemotions: {
sockread &a
;Si la variable existe, c'est la deuxieme fois que on /sockread et il faut toutes les données
if (%bwrite) bwrite cinemotions.gif -1 -1 &a
;sinon, alors il faut copié la partie de la binvar &a a partir de la place ou l'on trouve ;'content-type: '. le +27 correspond au fait que il y est un petit peu de texte apres ce mot :
; "Content-Type: image/gif" + 2 $crlf et le -1 veux dire qu'on copy tout depuis cette ;position sur la binvar &b a la position 1, et ensuite on bwrite puis on stock; ;temporairement une var pour pouvoir validé le if plus haut
else {
bcopy &b 1 &a $calc($bfind(&a,1,content-type: ) + 27) -1
bwrite cinemotions.gif -1 -1 &b
set -u5 %bwrite 1
}
}
J'espere que la manière de disposer le texte marchera pour les commentaire,
Je doute que tu puisse comprendre le code mais en tout cas, pour une fois qu'on demande pas un on text et que ya du boulot derrière :)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 13 juil. 2007 à 12:18
"
Bon, après une petite nuit blanche et 2 3h dessus, j'ai finis par trouvé =/ "
Ahahah :p Si j'ai bien compris, c'est pour savoir où couper et à partir d'où /bwrite pour virer les en-têtes HTTP de réponse...
J'avais inclus une soluce dans ma source "Aspirateur de sites" dispo ici, ca t'aurait épargné une nuit blanche peut-être. Et si ca n'est pas la même façon de faire (je regarderai ce soir), ca serait intéressant de comparer !
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 13 juil. 2007 à 13:02
Nop, tu as tout a fait raison, c'est exactement le même principe : en mattant ton code, j'ai trouvé ça
<li> ;coupure des en têtes
</li><li> if $bfind(&a, 1,$+($cr,$lf,$cr,$lf)) {
</li><li> bcopy -z &b 1 &a $calc($ifmatch + 4) -1
</li><li> bunset &a
</li><li> if $bvar(&b,0) {
</li><li> bcopy &a 1 &b 1 -1</li>
En fait, j'ai beaucoup cherché ce qu'étais ce char mystique entre les entête et les valeur que l'on veut, ce n'est qu'apres un echo sur une partie de la binvar que mirc ma affiché les 4 carré correspondant au $crlf,$crlf, mais j'ai fait une autre methode, au lieu de me basé sur ce $crlf,$crlf, jme suis basé sur le texte avant et fait un calcul (+27,qui correspond a ton +4) en cherchant a taton jusqu'a tomber sur le bon truc après il suffit effectivement de copié la binvar (je suis surpris que bwrite ne permet pas directement cela) et de la bwrite.
Tkt pas pour la nuit blanche, elle devait se passé de toute façon donc autant que ça soit sur mirc, et ça m'a permis de taté les binvar, chose pas si simple :)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 13 juil. 2007 à 13:14
La même manip marcherais, mais le même code non, là j'ai fait en sorte que cela marche pour cette image spécifique, regarde avec l'aspirateur de Pada (sur ce meme site) si tu peux récup nimporte quel image (je pense qu'il va aussi pouvoir répondre ;))
lespagnol9393
Messages postés33Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention22 juillet 2007 13 juil. 2007 à 13:25
Parce que, en fait, j'était parti d'un cas précis, mais la finalité est
de réussir à enregistrer n'importe quelle image, et si possible .jpg
(que j'aurai au préalable passé en parametre...) ça se complique ?
Là c'est dejà génial, ça fonctionne avec un .gif :)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 13 juil. 2007 à 16:33
A priori, le mien fonctionne avec n'importe quel type d'image, puisque je cherche la fin des headers (le premier CR-LF-CR-LF) et que je coupe juste après. Donc ca ne dépend pas du contenu du header ni de la suite. A priori...
@Wims: ok ;o) j'trouve ca étonnant aussi que ce genre de chose ne soit pas inclus directement..
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 14 juil. 2007 à 19:51
Étant donné que le nom de sortie est le dernier params, cela nimporte peu qu'il y est des espace ou non, il suffit de trouvé l'endroit ou il /write ou /bwrite ou autre et de cherché le repertoire, qui devrais etre $3- .Peux être il n'y a que $3, peux être que c'est stocké en variable, faut mettre des " " autour du repertoire a espace, ( $qt() ), essaye de voir tout ça ;)
lespagnol9393
Messages postés33Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention22 juillet 2007 15 juil. 2007 à 01:12
En fait le nom de sortie doit être, pour être plus précis, C:/Program Files/EasyPHP1-8/www/mesimages/mon_image.jpg.
Je ne peux donc pas me permettre de mettre ces images dans un autre
repertoire, qui lui serait sans espaces, sinon le site web ne sera pas
capable d'aller les chercher.
Car en effet, "C:/Program Files/EasyPHP1-8/www/mesimages/mon_image.jpg" correspond à "http://127.0.0.1/mesimages/"
En ce qui concerne la fonction $qt, Wims, je n'ai pas réussit a trouver de la doc utile.
Et pour ce qui est des guillements, il me les prends comme u n caractère à part entière.
Même en essayant de bidouiller avec set %dest_path
$addtok(C:/Program,Files/EasyPHP1-8/TEMP/,32), ça met bien l'espace
mais le path n'est tjrs pas valide :)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 15 juil. 2007 à 02:28
bwrite $h(img_path) -1 -1 &a
C'est ici qu'il bwrite donc $h(img_path) represente le repertoire, donc il me faudrait l'alias h qui va avec car c'est dans cette alias qu'on modifie la chose ^^