Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
METEOCONSULT
Information sur la source
Description
Bon ben vala ce que je suis ammené a faire quand l'ennui me prend Voici un pti addon pour consulter la météo a 5 jours partout en France Je me base sur le site de wanadoo qui lui meme tire ses infos du site de MeteoConsult. Le code est en socket based et l'interface utilise mdx.dll et nhtml.dll
Source
- dialog meteo {
- title "MeteoConsult v1.0"
- size -1 -1 360 446
- option pixels
- button "", 1, 3 29 355 415
- text "Selectionnez une zone:", 2, 4 8 117 17
- combo 3, 125 6 153 70, drop
- button "Afficher", 4, 286 7 71 17
- }
- on 1:dialog:meteo:init:0: {
- if ($exists($scriptdirmeteo) == $false) .mkdir $+(",$scriptdirmeteo,")
- $iif($findfile(meteo,*.gif,0,0,.remove $+(",$1-,")),)
- $iif($findfile(meteo,*.meteo,0,0,.remove $+(",$1-,")),)
- did -ac $dname 3 France
- var %n 1
- while (%n <= $lines($scriptdirlist.txt)) { did -a $dname 3 $read($scriptdirlist.txt,%n) | inc %n }
- if ($window(@meteo)) close -@ @meteo
- mdx SetMircVersion $version
- mdx MarkDialog $dname
- mdx SetControlMDX $dname 1 Window > $scriptdirdialog.mdx
- window -ahk0 +dL @meteo 0 0 320 320
- did -i $dname 1 1 grab $window(@meteo).hwnd @meteo
- if ($exists($scriptdirmeteo\load.meteo) == $true) .remove $+(",$scriptdirmeteo\load.meteo,")
- if ($exists($scriptdirmeteo\select.meteo) == $true) .remove $+(",$scriptdirmeteo\select.meteo,")
- write $+(",$scriptdirmeteo\load.meteo,") <html><head></head><body><p valign="center" align="center"><font face="Tahoma" size="3">Loading...</font></p></body></html>
- write $+(",$scriptdirmeteo\select.meteo,") <html><head></head><body><p valign="center" align="center"><font face="Tahoma" size="3">MeteoConsult v1.0<br><br>by Seregon</font></p></body></html>
- nhtml attach $window(@meteo).hwnd
- nhtml select $window(@meteo).hwnd
- nhtml navigate $scriptdirmeteo\select.meteo
- }
- alias -l nhtml dll $+(",$scriptdirnHTMLn_2.93.dll,") $1-
- alias -l mdx dll $+(",$scriptdirmdx.dll,") $1-
- on 1:dialog:meteo:sclick:4: {
- meteo $iif($calc(128 + $did($dname,3).sel) == 129,map1,city $calc(128 + $did($dname,3).sel))
- did -b $dname 4
- }
- alias -l meteo {
- if ($1 != getimg) {
- if (!$sock(meteo)) { sockopen meteo meteo.wanadoo.fr 80 | sockmark meteo $1- }
- else { sockmark meteo $1- | .signal meteo }
- }
- else {
- var %n = 4
- while (%n >= 0) {
- set $+($eval(%meteo.getst.,0),%n) 1
- if ($exists($+($scriptdirmeteo\icn,%n,.gif)) == $true) .remove $+(",$scriptdirmeteo\icn,%n,.gif")
- sockopen meteoget. $+ %n meteo.wanadoo.fr 80
- dec %n
- }
- }
- nhtml navigate $scriptdirmeteo\load.meteo
- }
- on 1:sockopen:meteo: {
- if (map? iswm $sock($sockname).mark) {
- if ($exists($scriptdirmeteo\mapfr.gif) == $true) .remove $+(",$scriptdirmeteo\mapfr.gif")
- sockwrite -n $sockname GET /Images/france0.gif HTTP/ 1.1
- }
- elseif (city ??? iswm $sock($sockname).mark) sockwrite -n $sockname GET $+(/data/city/FR/,$gettok($sock($sockname).mark,2,32),.html) HTTP/ 1.1
- elseif (4days ??? iswm $sock($sockname).mark) sockwrite -n $sockname GET $+(/data/city/FR/,$gettok($sock($sockname).mark,2,32),_4d.html) HTTP/ 1.1
- sockwrite -n $sockname Host: meteo.wanadoo.fr
- sockwrite -n $sockname Connection: Keep-Alive
- sockwrite -n $sockname
- }
- on 1:signal:meteo: {
- if (map? iswm $sock(meteo).mark) {
- if ($exists($scriptdirmeteo\mapfr.gif) == $true) .remove $+(",$scriptdirmeteo\mapfr.gif")
- sockwrite -n meteo GET /Images/france0.gif HTTP/ 1.1
- }
- elseif (city ??? iswm $sock(meteo).mark) sockwrite -n meteo GET $+(/data/city/FR/,$gettok($sock(meteo).mark,2,32),.html) HTTP/ 1.1
- elseif (4days ??? iswm $sock(meteo).mark) sockwrite -n meteo GET $+(/data/city/FR/,$gettok($sock(meteo).mark,2,32),_4d.html) HTTP/ 1.1
- sockwrite -n meteo Host: meteo.wanadoo.fr
- sockwrite -n meteo Connection: Keep-Alive
- sockwrite -n meteo
- }
- on 1:sockopen:meteoget.?: {
- set %meteo.getst 1
- sockwrite -n $sockname GET $eval($+($eval(%meteo.icn,0),$gettok($sockname,2,46)),2) HTTP/ 1.1
- sockwrite -n $sockname Host: meteo.wanadoo.fr
- sockwrite -n $sockname Connection: Close
- sockwrite -n $sockname
- inc %meteo.n 1
- }
- on 1:sockread:meteo: {
- if ($sockerr > 0) || (!$sock($sockname)) { unset %meteo | halt }
- :meteo
- if (map? iswm $sock($sockname).mark) {
- if (map1 == $sock($sockname).mark) { unset %meteomapf | sockread %meteo | if ($gettok(%meteo,1,32) == Content-Length:) { set %meteo.mapfrl $gettok(%meteo,2,32) } | if (!%meteo) { sockmark meteo map2 } | if ($exists($scriptdirmeteo\mapfr.gif) == $true) { .remove $+(",$scriptdirmeteo\mapfr.gif,") } }
- elseif (map2 == $sock($sockname).mark) { sockread &meteo | bwrite $+(",$scriptdirmeteo\mapfr.gif") -1 &meteo | if ($file($scriptdirmeteo\mapfr.gif).size == %meteo.mapfrl) { inc %meteomapf 1 | if (%meteomapf == 2) { if ($exists($scriptdirmeteo\rapport.meteo) == $true) { .remove $+(",$scriptdirmeteo\rapport.meteo,") } | write $+(",$scriptdirmeteo\rapport.meteo,") <html><head></head><body><img src="mapfr.gif"></body></html> | nhtml navigate $scriptdirmeteo\rapport.meteo | did -e meteo 4 | unset %meteo* | dialog -t meteo MeteoConsult v1.0 } } }
- }
- elseif (city ??? iswm $sock($sockname).mark) {
- sockread %meteo
- if ($left($gettok(%meteo,1,32),5) == $str($chr(9),5)) {
- tokenize 32 %meteo
- if (<td class=titlecity isin $1-) set %meteo.city $gettok($gettok($1-,3,62),1,60)
- elseif (<td class=subtitlecity isin $1-) set %meteo.date0 $gettok($gettok($1-,3,62),1,60)
- elseif (<td class=cityprev isin $1-) { set %meteo.icn0 $+(/,$deltok($gettok($gettok($gettok($1-,3,62),1,60),2-,47),-1,32)) | set %meteo.weather0 $gettok($gettok($1-,5,62),1,60) | set %meteo.pm0 $gettok($gettok($1-,7,62),1,32) | set %meteo.am0 $gettok($gettok($1-,8,62),1,32) }
- }
- elseif (%meteo == 0) { %meteo.end = 1 }
- if (%meteo.end) inc %meteo.end 1
- if (%meteo.end >= 3) { unset %meteo.end | set %meteo.day 0 | .timer 1 5 meteo 4days $gettok($sock($sockname).mark,2,32) }
- }
- elseif (4days ??? iswm $sock($sockname).mark) {
- sockread %meteo
- if ($left(%meteo,11) == $str($chr(9),11)) {
- tokenize 32 %meteo
- if (<td class=subtitlecity4d isin $1-) { inc %meteo.day 1 | set $+($eval(%meteo.date,0),%meteo.day) $gettok($gettok($1-,2,62),1,60) }
- elseif (<td class=cityprev isin $1-) { set $+($eval(%meteo.icn,0),%meteo.day) $gettok($gettok($gettok($1-,2,62),2,32),2,61) | set $+($eval(%meteo.weather,0),%meteo.day) $gettok($gettok($1-,-1,62),1,60) }
- elseif (<td class=citytemp isin $1-) {
- set $+($eval(%meteo.am,0),%meteo.day) $+($gettok($gettok($1-,2,38),-1,62),°C)
- set $+($eval(%meteo.pm,0),%meteo.day) $+($gettok($gettok($1-,1,38),-1,62),°C)
- if (%meteo.day == 4) { unset %meteo.day | set %meteo.n 0 | meteo getimg }
- }
- }
- }
- if ($sockbr > 0) goto meteo
- unset %meteo
- }
- on 1:sockread:meteoget.?: {
- :meteoget
- if ($eval($+($eval(%meteo.getst.,0),$gettok($sockname,2,46)),2)) {
- sockread %meteoget
- if (!%meteoget) unset $+($eval(%meteo.getst.,0),$gettok($sockname,2,46))
- }
- else { sockread &meteoget | bwrite $+(",$scriptdirmeteo\icn,$gettok($sockname,2,46),.gif") -1 &meteoget }
- if ($sockbr > 0) goto meteoget
- }
- on 1:sockclose:meteoget.?: {
- inc %meteoget.end 1
- if (%meteoget.end == 4) {
- var %rp = $scriptdirmeteo\rapport.meteo
- if ($exists(%rp) == $true) .remove $+(",%rp,")
- write $+(",%rp,") <html><head></head><body><table border="1" cellpading="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="320" height="320">
- var %i = 0
- while (%i <= 4) {
- write $+(",%rp,") $+(<tr width="100%" height="64"><td width="75" height="64"><img border="0" src="icn,%i,.gif"></td>)
- write $+(",%rp,") $+(<td width="245" height="64"><p align="center" valign="top"><font face="Tahoma" style="font-size: 11"><b>,$eval($+($eval(%meteo.date,0),%i),2),</b></p>)
- write $+(",%rp,") $+(<p align="center" valign="top"><font face="Tahoma" style="font-size: 11">,$eval($+($eval(%meteo.weather,0),%i),2),</p>)
- write $+(",%rp,") $+(<p align="center" valign="top"><b>AM:</b> $eval($+($eval(%meteo.am,0),%i),2) <b>-</b> <b>PM:</b> $eval($+($eval(%meteo.pm,0),%i),2),</p></font>)
- write $+(",%rp,") </td></tr>
- inc %i
- }
- write $+(",%rp,") </table></body></html>
- did -e meteo 4
- dialog -t meteo MeteoConsult v1.0 - %meteo.city
- unset %meteo*
- nhtml navigate $scriptdirmeteo\rapport.meteo
- }
- }
- on 1:exit:$iif($findfile(meteo,*.gif,0,0,.remove $+(",$1-,")),)
dialog meteo {
title "MeteoConsult v1.0"
size -1 -1 360 446
option pixels
button "", 1, 3 29 355 415
text "Selectionnez une zone:", 2, 4 8 117 17
combo 3, 125 6 153 70, drop
button "Afficher", 4, 286 7 71 17
}
on 1:dialog:meteo:init:0: {
if ($exists($scriptdirmeteo) == $false) .mkdir $+(",$scriptdirmeteo,")
$iif($findfile(meteo,*.gif,0,0,.remove $+(",$1-,")),)
$iif($findfile(meteo,*.meteo,0,0,.remove $+(",$1-,")),)
did -ac $dname 3 France
var %n 1
while (%n <= $lines($scriptdirlist.txt)) { did -a $dname 3 $read($scriptdirlist.txt,%n) | inc %n }
if ($window(@meteo)) close -@ @meteo
mdx SetMircVersion $version
mdx MarkDialog $dname
mdx SetControlMDX $dname 1 Window > $scriptdirdialog.mdx
window -ahk0 +dL @meteo 0 0 320 320
did -i $dname 1 1 grab $window(@meteo).hwnd @meteo
if ($exists($scriptdirmeteo\load.meteo) == $true) .remove $+(",$scriptdirmeteo\load.meteo,")
if ($exists($scriptdirmeteo\select.meteo) == $true) .remove $+(",$scriptdirmeteo\select.meteo,")
write $+(",$scriptdirmeteo\load.meteo,") <html><head></head><body><p valign="center" align="center"><font face="Tahoma" size="3">Loading...</font></p></body></html>
write $+(",$scriptdirmeteo\select.meteo,") <html><head></head><body><p valign="center" align="center"><font face="Tahoma" size="3">MeteoConsult v1.0<br><br>by Seregon</font></p></body></html>
nhtml attach $window(@meteo).hwnd
nhtml select $window(@meteo).hwnd
nhtml navigate $scriptdirmeteo\select.meteo
}
alias -l nhtml dll $+(",$scriptdirnHTMLn_2.93.dll,") $1-
alias -l mdx dll $+(",$scriptdirmdx.dll,") $1-
on 1:dialog:meteo:sclick:4: {
meteo $iif($calc(128 + $did($dname,3).sel) == 129,map1,city $calc(128 + $did($dname,3).sel))
did -b $dname 4
}
alias -l meteo {
if ($1 != getimg) {
if (!$sock(meteo)) { sockopen meteo meteo.wanadoo.fr 80 | sockmark meteo $1- }
else { sockmark meteo $1- | .signal meteo }
}
else {
var %n = 4
while (%n >= 0) {
set $+($eval(%meteo.getst.,0),%n) 1
if ($exists($+($scriptdirmeteo\icn,%n,.gif)) == $true) .remove $+(",$scriptdirmeteo\icn,%n,.gif")
sockopen meteoget. $+ %n meteo.wanadoo.fr 80
dec %n
}
}
nhtml navigate $scriptdirmeteo\load.meteo
}
on 1:sockopen:meteo: {
if (map? iswm $sock($sockname).mark) {
if ($exists($scriptdirmeteo\mapfr.gif) == $true) .remove $+(",$scriptdirmeteo\mapfr.gif")
sockwrite -n $sockname GET /Images/france0.gif HTTP/ 1.1
}
elseif (city ??? iswm $sock($sockname).mark) sockwrite -n $sockname GET $+(/data/city/FR/,$gettok($sock($sockname).mark,2,32),.html) HTTP/ 1.1
elseif (4days ??? iswm $sock($sockname).mark) sockwrite -n $sockname GET $+(/data/city/FR/,$gettok($sock($sockname).mark,2,32),_4d.html) HTTP/ 1.1
sockwrite -n $sockname Host: meteo.wanadoo.fr
sockwrite -n $sockname Connection: Keep-Alive
sockwrite -n $sockname
}
on 1:signal:meteo: {
if (map? iswm $sock(meteo).mark) {
if ($exists($scriptdirmeteo\mapfr.gif) == $true) .remove $+(",$scriptdirmeteo\mapfr.gif")
sockwrite -n meteo GET /Images/france0.gif HTTP/ 1.1
}
elseif (city ??? iswm $sock(meteo).mark) sockwrite -n meteo GET $+(/data/city/FR/,$gettok($sock(meteo).mark,2,32),.html) HTTP/ 1.1
elseif (4days ??? iswm $sock(meteo).mark) sockwrite -n meteo GET $+(/data/city/FR/,$gettok($sock(meteo).mark,2,32),_4d.html) HTTP/ 1.1
sockwrite -n meteo Host: meteo.wanadoo.fr
sockwrite -n meteo Connection: Keep-Alive
sockwrite -n meteo
}
on 1:sockopen:meteoget.?: {
set %meteo.getst 1
sockwrite -n $sockname GET $eval($+($eval(%meteo.icn,0),$gettok($sockname,2,46)),2) HTTP/ 1.1
sockwrite -n $sockname Host: meteo.wanadoo.fr
sockwrite -n $sockname Connection: Close
sockwrite -n $sockname
inc %meteo.n 1
}
on 1:sockread:meteo: {
if ($sockerr > 0) || (!$sock($sockname)) { unset %meteo | halt }
:meteo
if (map? iswm $sock($sockname).mark) {
if (map1 == $sock($sockname).mark) { unset %meteomapf | sockread %meteo | if ($gettok(%meteo,1,32) == Content-Length:) { set %meteo.mapfrl $gettok(%meteo,2,32) } | if (!%meteo) { sockmark meteo map2 } | if ($exists($scriptdirmeteo\mapfr.gif) == $true) { .remove $+(",$scriptdirmeteo\mapfr.gif,") } }
elseif (map2 == $sock($sockname).mark) { sockread &meteo | bwrite $+(",$scriptdirmeteo\mapfr.gif") -1 &meteo | if ($file($scriptdirmeteo\mapfr.gif).size == %meteo.mapfrl) { inc %meteomapf 1 | if (%meteomapf == 2) { if ($exists($scriptdirmeteo\rapport.meteo) == $true) { .remove $+(",$scriptdirmeteo\rapport.meteo,") } | write $+(",$scriptdirmeteo\rapport.meteo,") <html><head></head><body><img src="mapfr.gif"></body></html> | nhtml navigate $scriptdirmeteo\rapport.meteo | did -e meteo 4 | unset %meteo* | dialog -t meteo MeteoConsult v1.0 } } }
}
elseif (city ??? iswm $sock($sockname).mark) {
sockread %meteo
if ($left($gettok(%meteo,1,32),5) == $str($chr(9),5)) {
tokenize 32 %meteo
if (<td class=titlecity isin $1-) set %meteo.city $gettok($gettok($1-,3,62),1,60)
elseif (<td class=subtitlecity isin $1-) set %meteo.date0 $gettok($gettok($1-,3,62),1,60)
elseif (<td class=cityprev isin $1-) { set %meteo.icn0 $+(/,$deltok($gettok($gettok($gettok($1-,3,62),1,60),2-,47),-1,32)) | set %meteo.weather0 $gettok($gettok($1-,5,62),1,60) | set %meteo.pm0 $gettok($gettok($1-,7,62),1,32) | set %meteo.am0 $gettok($gettok($1-,8,62),1,32) }
}
elseif (%meteo == 0) { %meteo.end = 1 }
if (%meteo.end) inc %meteo.end 1
if (%meteo.end >= 3) { unset %meteo.end | set %meteo.day 0 | .timer 1 5 meteo 4days $gettok($sock($sockname).mark,2,32) }
}
elseif (4days ??? iswm $sock($sockname).mark) {
sockread %meteo
if ($left(%meteo,11) == $str($chr(9),11)) {
tokenize 32 %meteo
if (<td class=subtitlecity4d isin $1-) { inc %meteo.day 1 | set $+($eval(%meteo.date,0),%meteo.day) $gettok($gettok($1-,2,62),1,60) }
elseif (<td class=cityprev isin $1-) { set $+($eval(%meteo.icn,0),%meteo.day) $gettok($gettok($gettok($1-,2,62),2,32),2,61) | set $+($eval(%meteo.weather,0),%meteo.day) $gettok($gettok($1-,-1,62),1,60) }
elseif (<td class=citytemp isin $1-) {
set $+($eval(%meteo.am,0),%meteo.day) $+($gettok($gettok($1-,2,38),-1,62),°C)
set $+($eval(%meteo.pm,0),%meteo.day) $+($gettok($gettok($1-,1,38),-1,62),°C)
if (%meteo.day == 4) { unset %meteo.day | set %meteo.n 0 | meteo getimg }
}
}
}
if ($sockbr > 0) goto meteo
unset %meteo
}
on 1:sockread:meteoget.?: {
:meteoget
if ($eval($+($eval(%meteo.getst.,0),$gettok($sockname,2,46)),2)) {
sockread %meteoget
if (!%meteoget) unset $+($eval(%meteo.getst.,0),$gettok($sockname,2,46))
}
else { sockread &meteoget | bwrite $+(",$scriptdirmeteo\icn,$gettok($sockname,2,46),.gif") -1 &meteoget }
if ($sockbr > 0) goto meteoget
}
on 1:sockclose:meteoget.?: {
inc %meteoget.end 1
if (%meteoget.end == 4) {
var %rp = $scriptdirmeteo\rapport.meteo
if ($exists(%rp) == $true) .remove $+(",%rp,")
write $+(",%rp,") <html><head></head><body><table border="1" cellpading="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="320" height="320">
var %i = 0
while (%i <= 4) {
write $+(",%rp,") $+(<tr width="100%" height="64"><td width="75" height="64"><img border="0" src="icn,%i,.gif"></td>)
write $+(",%rp,") $+(<td width="245" height="64"><p align="center" valign="top"><font face="Tahoma" style="font-size: 11"><b>,$eval($+($eval(%meteo.date,0),%i),2),</b></p>)
write $+(",%rp,") $+(<p align="center" valign="top"><font face="Tahoma" style="font-size: 11">,$eval($+($eval(%meteo.weather,0),%i),2),</p>)
write $+(",%rp,") $+(<p align="center" valign="top"><b>AM:</b> $eval($+($eval(%meteo.am,0),%i),2) <b>-</b> <b>PM:</b> $eval($+($eval(%meteo.pm,0),%i),2),</p></font>)
write $+(",%rp,") </td></tr>
inc %i
}
write $+(",%rp,") </table></body></html>
did -e meteo 4
dialog -t meteo MeteoConsult v1.0 - %meteo.city
unset %meteo*
nhtml navigate $scriptdirmeteo\rapport.meteo
}
}
on 1:exit:$iif($findfile(meteo,*.gif,0,0,.remove $+(",$1-,")),)
Conclusion
Zinkietez pas okune update n'est prévue lol jvais me concentrer sur des projets un peu plus intéressants
Sources de la même categorie
Commentaires
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
|
|