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 !

METEO EN PICWIN (FRANCE ET DOM-TOM)


Information sur la source

Catégorie :AddOns Classé sous : meteo, picwin, temps, france, domtom Niveau : Initié Date de création : 04/02/2007 Date de mise à jour : 28/07/2007 17:44:16 Vu / téléchargé: 7 067 / 128

Note :
Aucune note

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Ce code présente la météo française ainsi que celle des DOM-TOM dans une PicWin interactive.
Il dispose d'une champ de recherche et peut donner des prévisions au niveau régional, en plus de donner des éphémérides et températures d'une ville.
Il donne également la carte de vigilance au niveau de la France.

Il tire ses informations du site www.lachainemeteo.com qui donne Matin + Aprem de 0 à 3 jours, Journée au-delà.
Visitez ce site pour comprendre comment fonctionnent les prévisions et comment elles sont présentées.

C'est assez simple, et étant donné qu'une aide est incluse, je ne vais pas tout expliquer ici.

Pour l'installer, vous devez avoir les deux .mrc chargés, GUI-ArKanis est indispensable.
Mettez les deux fichiers directement dans le dossier mIRC et tapez /load -rs Meteo-By-ArKanis.mrc (le deuxième devrait se charger automatiquement)
Tapez ensuite /meteo pour lncer la PicWin
 

Source

  • ;************************
  • ; Meteo
  • ; By ArKanis
  • ; http://www.arkanis.eu
  • ;************************
  • ; Version 1.3
  • ; Powered by
  • ; www.lachainemeteo.com
  • alias meteo {
  • if (($exists(GUI-ArKanis.mrc)) && (!$script(GUI-ArKanis.mrc))) {
  • .load -rs GUI-ArKanis.mrc
  • echo 2 -a * Chargement du fichier GUI-ArKanis.mrc effectué
  • }
  • if (!$isalias(²picwin)) {
  • echo 2 -a * Erreur : il faut avoir chargé le fichier GUI-ArKanis.mrc
  • if ($isalias(pw.dl)) {
  • if ($input.request.y.n(Voulez-vous télécharger le fichier GUI-ArKanis.mrc ?)) pw.dl
  • }
  • return
  • }
  • ²picwin @Meteo 500 500 "Meteo"
  • titlebar @Meteo By ArKanis
  • ²newmenu @Meteo Consulter la météo
  • ²newitem @Meteo En France:²meteo.sel France,DOM TOM:²meteo.sel,$chr(9),Changer le jour:²meteo.selday,$chr(9),Fermer:²close @Meteo
  • ²newmenu @Meteo Autres écrans
  • ²newitem @Meteo Vigilance:²meteo.vigilance,Recherche:²meteo.rech
  • ²newmenu @Meteo ?
  • ²newitem @Meteo Aide:²meteo.aide,Crédits:²meteo.credits,Désinstaller:²meteo.delete
  • ²drawmenu @Meteo $iif($isdir(Meteo),1 1,3 1)
  • ²description @Meteo Temps 400
  • ²ref @Meteo
  • }
  • alias ²meteo.sel {
  • if (!$window(@Meteo)) return
  • if ($hget(Meteo,Jour) !isnum 0-9) hadd -m Meteo Jour 0
  • if ($1) {
  • hadd -m Meteo Link $+(index.php?langue=fr&echeance=,$hget(Meteo,Jour))
  • ²meteoopen France
  • }
  • else {
  • ²centre @Meteo -b 40 Sélection d'un DOM-TOM
  • ²centre @Meteo 225 Sélectionnez votre DOM-TOM
  • ²select @Meteo 100 150 245 200 30 Guadeloupe¥Martinique¥Guyane¥La Réunion¥St Pierre et Miquelon¥Mayotte¥Polynésie Française¥Nouvelle Calédonie¥Wallis et Futuna
  • ²button @Meteo 101 200 280 100 20 Sélectionner
  • ²description @Meteo 100 Change la région sélectionnée dans une permutation circulaire
  • ²description @Meteo 101 Affiche la météo de la région choisie
  • }
  • }
  • alias ²meteo.selday {
  • if (!$window(@Meteo)) return
  • ²centre @Meteo -b 40 Sélection du jour
  • var %l = 0¥1¥2¥3¥4¥5¥6
  • if ($hget(Meteo,Jour) isnum 0-6) {
  • while ($left(%l,1) != $hget(Meteo,Jour)) var %l = $addtok($deltok(%l,1,165),$left(%l,1),165)
  • }
  • ²select @Meteo 102 200 245 100 30 %l
  • ²button @Meteo 103 200 280 100 20 Sélectionner
  • ²description @Meteo 103 Donne la météo prévue pour dans X jours pour toutes les demandes à venir
  • }
  • alias ²meteo.rech {
  • ²centre @Meteo -b 40 Recherche
  • ²centre @Meteo 70 Entrez le nom de la ville ou son code postal
  • ²edit @Meteo 8 200 110 100 20
  • ²button @Meteo 9 200 135 100 20 Rechercher
  • ²description @Meteo 9 Etablie une liste des résultats trouvés pour sélectionner rapidement une ville
  • }
  • alias meteo.answer if ($1 == ²meteo.rech) meteo.sclick 9 $2
  • alias ²meteo.delete {
  • noop $findfile(Meteo/,*,0,.remove $qt($1-))
  • .rmdir Meteo
  • ²close @Meteo
  • window -a "Status Window"
  • if ($?!="Souhaitez-vous décharger le fichier $script (contient la Météo) ?") {
  • if (!$?!="Voulez-vous GARDER le fichier ?") .timer 1 1 .remove $qt($script)
  • .timer 1 1 .unload -rs $qt($script)
  • }
  • }
  • ;**************
  • ;Données du GUI
  • ;**************
  • alias meteo.menu {
  • sockclose meteo*
  • if (($1) && ($hget(MeteoLocation))) hfree MeteoLocation
  • }
  • alias meteo.close {
  • hfree -w Meteo*
  • if ($window(@Meteo.copyVilles)) window -c @Meteo.copyVilles
  • }
  • on *:close:@Meteo:meteo.close
  • alias meteo.mouse {
  • if (!$window(@Meteo)) return
  • var %x = $1, %y = $2, %g
  • var %f = $hget(Meteo,Origin), %ox = $gettok(%f,1,32), %oy = $gettok(%f,2,32), %dx = $gettok(%f,3,32), %dy = $gettok(%f,4,32)
  • if (($inrect(%x,%y,%ox,%oy,%dx,%dy)) && ($hget(MeteoLocation)) && ($hget(Meteo,Ready))) {
  • var %t = 1, %l = MeteoLocation
  • while $hget(%l,%t).item {
  • var %i = $ifmatch, %d = $hget(%l,%i)
  • tokenize 32 %d
  • if ($inrect(%x,%y,$1,$2,35,28)) {
  • var %g = 1
  • if ($hget(MeteoTemp,Loc) == %i) break
  • hadd -m MeteoTemp Loc %i
  • .²backup @Meteo Villes
  • if (!$window(@Meteo.copyVilles)) ²svg @Meteo Villes
  • var %ht = $+(MeteoVille,$hget(Meteo,Period))
  • var %t1 = $replace(%i,$chr(165),$chr(32)), %t2 = T° : $gettok($hget(%ht,%i),3,32), %dy = 32
  • if (%t2 == T° : ø) var %t2, %dy = $calc(%dy - 14)
  • var %w = $max($width(%t1,Tahoma,10),$width(%t2,Tahoma,10)), %ox = $calc($1 -4 - %w / 2), %oy = $calc($2 -26)
  • drawrect -nr @Meteo 0 1 $calc($1 - %w) %oy $calc(%w +6) %dy
  • drawrect -fnr @Meteo 16761024 1 $calc($1 - %w +1) $calc(%oy +1) $calc(%w +4) $calc(%dy -2)
  • drawtext -nr @Meteo 0 Tahoma 10 $calc($1 -%w + (%w +6- $width(%t1,Tahoma,10)) /2) $calc(%oy + 2) %t1
  • if (%t2) drawtext -nr @Meteo 0 Tahoma 10 $calc($1 -%w + (%w +6- $width(%t2,Tahoma,10)) /2) $calc(%oy +17) %t2
  • ²ref @Meteo
  • break
  • }
  • inc %t
  • }
  • if (%g) return
  • }
  • if ((!%g) && ($hget(MeteoTemp,Loc))) {
  • hdel MeteoTemp Loc
  • ²backup @Meteo Villes
  • }
  • if ((!$hget(MeteoVille,Vigilance)) && ($hget(Meteo,Jour) <= 2) && ($hget(Meteo,Ready)) && (!$hget(@Meteo,Main))) {
  • if (($inrect(%x,%y,49,471,56,23)) && ($hget(Meteo,Period) != 0)) {
  • hadd -m Meteo Period 0
  • ²efface @Meteo 25 60 450 410
  • .meteo.fond.apply Meteo/Backup.png
  • meteo.fond.apply
  • }
  • elseif (($inrect(%x,%y,371,471,79,23)) && ($hget(Meteo,Period) != 1)) {
  • hadd -m Meteo Period 1
  • ²efface @Meteo 25 60 450 410
  • .meteo.fond.apply Meteo/Backup.png
  • meteo.fond.apply
  • }
  • }
  • }
  • alias meteo.sclick {
  • if (!$window(@Meteo)) return
  • if ($1 == 101) {
  • var %g = $calc(96 + $findtok(Guadeloupe¥Martinique¥Guyane¥La Réunion¥St Pierre et Miquelon¥Mayotte¥Polynésie Française¥Nouvelle Calédonie¥Wallis et Futuna,$²did(@Meteo,100),1,165))
  • hadd -m Meteo Link $+(index.php?langue=fr&echeance=,$hget(Meteo,Jour),&domtom=,%g)
  • ²meteoopen $²did(@Meteo,100)
  • }
  • elseif ($1 == 103) {
  • hadd -m Meteo Jour $²did(@Meteo,102)
  • ²drawmenu @Meteo 1 1
  • }
  • elseif ($hget(MeteoTemp,Loc)) {
  • hadd -m Meteo Link $+(index_detail.php?langue=fr&echeance=,$hget(Meteo,Jour),&num_ville=,$gettok($hget($+(MeteoVille,$hget(Meteo,Period)),$ifmatch),5,32))
  • ²meteoopen $hget(MeteoTemp,Loc)
  • }
  • elseif ($1 == 9) {
  • if ($²did(@Meteo,8)) {
  • hadd -m Meteo Link $+(moteur_recherche.php?langue=fr&txt_search=,$ifmatch)
  • .meteo.wait
  • .²meteoopen
  • }
  • }
  • elseif ($1 == 11) {
  • var %v = $replace($²did(@Meteo,10),$chr(32),$chr(165))
  • hadd -m Meteo Link $+(index_detail.php?langue=fr&echeance=,$hget(Meteo,Jour),&num_ville=,$hget(MeteoVille,%v))
  • ²meteoopen $deltok(%v,-1,165)
  • }
  • }
  • ;*******
  • ;Sockets
  • ;*******
  • alias ²meteoopen {
  • if (!$window(@Meteo)) return
  • if ($window(@Meteo.copyVilles)) window -c $ifmatch
  • if ($show) {
  • meteo.wait
  • ²centre @Meteo -b 40 $1- $meteo.date($hget(Meteo,Jour))
  • if ($hget(Meteo,Jour) <= 2) {
  • var %p = 51
  • while %p < 451 {
  • drawline -nr @Meteo $rgb($calc(30 + %p /2),250,$calc(255 - %p /2)) 2 %p 471 %p 494
  • inc %p 2
  • }
  • drawrect -nr @Meteo 0 1 49 470 402 26
  • drawtext -nr @Meteo 8388608 Tahoma 12 60 475 MATIN
  • drawtext -nr @Meteo 8388608 Tahoma 12 376 475 APRES-MIDI
  • }
  • }
  • sockclose meteo
  • sockopen meteo www.lachainemeteo.com 80
  • }
  • alias -l meteo.date {
  • var %d = $+($chr(40),$date($calc($ctime + 86400 * $1)),$chr(41))
  • if ($1 == 0) return aujourd'hui %d
  • if ($1 == 1) return demain %d
  • if ($1 == 2) return après-demain %d
  • else return dans $1 jours %d
  • }
  • on *:sockopen:meteo:{
  • if ($hget(MeteoQueue)) hfree MeteoQueue
  • hfree -w MeteoVille*
  • hfree -w MeteoTemp
  • hadd -m Meteo Period 0
  • sockwrite -n $sockname GET $+(http://www.lachainemeteo.com/,$$hget(Meteo,Link)) HTTP/1.0
  • sockwrite -n $sockname $+(Host: lachainemeteo.com,$str($crlf,2)))
  • }
  • on *:sockread:meteo:{
  • var %a
  • sockread %a
  • if ($gettok(%a,1,9) == .Fond_Carte) sockmark $sockname FOND
  • elseif (($regex(%a,/background-image:url\('(.+)'\)/gi)) && ($sock($sockname).mark == FOND)) {
  • fond.meteo $regml(1)
  • sockmark $sockname 0
  • }
  • elseif ($regex(%a,Menu_Periode_200_([0-9])_J([0-9]))) {
  • if ($regml(2) != $hget(Meteo,Jour)) sockmark $sockname 0
  • else {
  • hadd -m MeteoTemp Heure $regml(1)
  • sockmark $sockname VILLES
  • if ($exists(Meteo/Backup.png)) drawpic -n @Meteo 50 70 Meteo/Backup.png
  • drawrect -nr @Meteo 0 1 49 69 402 402
  • ²centre @Meteo 240 Chargement en cours ...
  • }
  • }
  • elseif ($regex(%a,bloc_ephem_j([0-9]))) {
  • if ($regml(1) == $hget(Meteo,Jour)) sockmark $sockname Ephemerides
  • }
  • elseif ($sock($sockname).mark == Ephemerides) {
  • if ($regex(%a,/height: 30px;.+>([^>]+)</div>$/i)) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($regml(1),$chr(32),$chr(165))
  • elseif ($regex(%a,(-?[0-9]+)°C)) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($+($regml(1),°C),$chr(32),$chr(165))
  • elseif ($regex(%a,/height: 13px;.+">(.+)</div>/U)) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($regml(1),<br>,$chr(165),$chr(32),$chr(165))
  • elseif ($regex(%a,/(Lever|Coucher) : <[^>]+>([^<]+)</span></div>/i)) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($regml(2),$chr(32),$chr(165))
  • elseif ($regex(%a,/info([0-9])_ephem/i)) {
  • if (($regml(1) isnum 2-) && ($regex(H,%a,/>([^>]+)</div>/i))) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($regml(H,1),$chr(32),$chr(165))
  • }
  • }
  • elseif ($regex(%a,/num_ville=([0-9]+)".+class="Liste_Elt_href">(.+)</a>/gU)) {
  • hadd -m MeteoVille Rech $addtok($hget(MeteoVille,Rech),$regml(2),165)
  • hadd -m MeteoVille $replace($regml(2),$chr(32),$chr(165)) $regml(1)
  • }
  • elseif ($regex(%a,/src="/image/logo/lachainemeteo/lcm_60x40.gif"/i)) sockmark $sockname VILLES
  • elseif ($sock($sockname).mark == VILLES) {
  • if ($regex(%a,/Periode_Temps_([0-1])/i)) hadd -m MeteoTemp Heure $regml(1)
  • if ($regex(%a,(-?[0-9]+) &\#176;)) hadd -m $+(MeteoVille,$hget(MeteoTemp,Heure)) $hget(MeteoTemp,Ville) $regml(1) $hget(MeteoTemp,Pic) $hget(MeteoTemp,CP)
  • elseif ($regex(%a,num_ville=([0-9]+))) hadd -m MeteoTemp CP $regml(1)
  • else {
  • if ($regex(%a,src="(.+)" class='Lien_Icone')) {
  • var %i = $regml(1), %f = $gettok(%i,-1,47)
  • if (!$exists($+(Meteo/,%f))) dl.meteo %i 1
  • hadd -m MeteoTemp Pic %f
  • }
  • var %r = /left\:([0-9]+\.?[0-9]?)px\;top\:([0-9]+\.?[0-9]?)px.+'(.+)'/ig
  • if ($regex(%a,%r)) hadd -m MeteoTemp Ville $remove($replace($regml(3),&eacute;,é,&egrave;,è,&ccedil;,ç,$chr(32),$chr(165),#039;,',&iuml;,ï),&amp;) $regml(1) $regml(2)
  • }
  • }
  • }
  • on *:sockclose:meteo:{
  • if ($hget(Meteo,Link)) hdel Meteo Link
  • if ($hget(MeteoVille,Rech)) {
  • ²list @Meteo 10 150 200 200 200 $hget(MeteoVille,Rech)
  • ²button @Meteo 11 150 405 200 20 Sélectionner
  • }
  • }
  • alias -l fond.meteo {
  • if (!$isdir(Meteo)) mkdir Meteo
  • var %f = $+(Meteo/fond.,$extension($1-))
  • if ($exists(%f)) .remove %f
  • hadd -m Meteo Fond $1-
  • hadd -m Meteo Fond2 %f
  • sockclose MeteoFond
  • sockopen MeteoFond www.lachainemeteo.com 80
  • }
  • on *:sockopen:MeteoFond:{
  • sockwrite -n $sockname GET $$hget(Meteo,Fond) HTTP/1.0
  • sockwrite -n $sockname $+(Host: lachainemeteo.com,$str($crlf,2)))
  • }
  • on *:sockread:MeteoFond:{
  • var %a
  • sockread &a
  • if ((!$sock($sockname).mark) && ($bfind(&a, 1,$str($crlf,2)))) {
  • bcopy &b 1 &a $calc($ifmatch +4) -1
  • if ($bvar(&b,0)) bwrite $hget(Meteo,Fond2) -1 -1 &b
  • sockmark $sockname 1
  • }
  • elseif ($bvar(&a,0)) bwrite $hget(Meteo,Fond2) -1 -1 &a
  • }
  • on *:sockclose:MeteoFond:meteo.fond.apply
  • alias -l meteo.fond.apply {
  • if (!$window(@Meteo)) return
  • var %f = $hget(Meteo,Fond2)
  • if ($1-) var %f = $1-
  • elseif (!%f) var %f = Meteo/fond.png
  • if (!$exists(%f)) return
  • var %x = $pic(%f).width, %y = $pic(%f).height, %ox = $calc(250 - %x / 2), %oy = $calc(270 - %y /2)
  • drawrect -nr @Meteo 0 1 $calc(%ox -1) $calc(%oy -1) $calc(%x +2) $calc(%y +2)
  • drawpic -n @Meteo %ox %oy $shortfn(%f)
  • if ($show) {
  • hdel -w Meteo Fond*
  • hadd -m Meteo Origin %ox %oy %x %y
  • if ((!$sock(Meteo.dl)) && (!$hget(MeteoQueue,0).item)) meteo.generate
  • }
  • }
  • alias -l dl.meteo {
  • hadd -m MeteoQueue $1-
  • if ($exists($+(Meteo/,$gettok($1,-1,47)))) .remove $+(Meteo/,$gettok($1,-1,47))
  • if ($sock(dl.meteo)) return
  • .timer -h 1 500 dl.meteo.do
  • }
  • alias -l dl.meteo.do {
  • var %f = $hget(MeteoQueue,1).item
  • if (!%f) {
  • if (!$sock(MeteoFond)) meteo.generate
  • return
  • }
  • hadd -m MeteoTemp DL %f
  • hadd -m MeteoTemp DLName $+(Meteo/,$gettok(%f,-1,47))
  • sockclose Meteo.dl
  • sockopen Meteo.dl www.lachainemeteo.com 80
  • }
  • on *:sockopen:Meteo.dl:{
  • sockwrite -n $sockname GET $$hget(MeteoTemp,DL) HTTP/1.0
  • sockwrite -n $sockname $+(Host: lachainemeteo.com,$str($crlf,2)))
  • }
  • on *:sockread:Meteo.dl:{
  • sockread &a
  • if ((!$sock($sockname).mark) && ($bfind(&a, 1,$str($crlf,2)))) {
  • bcopy &b 1 &a $calc($ifmatch +4) -1
  • if ($bvar(&b,0)) bwrite $$hget(MeteoTemp,DLName) -1 -1 &b
  • sockmark $sockname 1
  • }
  • elseif ($bvar(&a,0)) bwrite $$hget(MeteoTemp,DLName) -1 -1 &a
  • }
  • on *:sockclose:Meteo.dl:{
  • hdel MeteoQueue $hget(MeteoTemp,DL)
  • hdel -w MeteoTemp DL*
  • dl.meteo.do
  • }
  • alias -l meteo.generate {
  • if (!$window(@Meteo)) return
  • if ($window(@Meteo.copyVilles)) window -c @Meteo.copyVilles
  • var %t = 1, %p = MeteoLocation
  • if ($hget(%p)) hfree %p
  • var %ht = $+(MeteoVille,$hget(Meteo,Period)), %f = $hget(Meteo,Origin), %ox = $gettok(%f,1,32), %oy = $gettok(%f,2,32), %x = $gettok(%f,3,32)
  • if ($pic(Meteo/fond.png).width > 350) .copy -o $qt(Meteo/fond.png) "Meteo/Backup.png"
  • while $hget(%ht,%t).item {
  • var %i = $ifmatch, %d = $hget(%ht,%i)
  • tokenize 32 %d
  • if (anim !isin $4) drawpic -tn @Meteo 0 $calc($1 + %ox) $calc($2 + %oy) $shortfn($+(Meteo/,$4))
  • else drawpic -ctn @Meteo 16777215 $calc($1 + %ox) $calc($2 + %oy) $shortfn($+(Meteo/,$4))
  • if ($3 != ø) drawtext -nr @Meteo 0 Tahoma 10 $calc($1 + %ox + 15) $calc($2 + %oy + 25) $+($3,°)
  • hadd -m %p %i $calc($1 + %ox) $calc($2 + %oy)
  • inc %t
  • }
  • if (!$hget(MeteoVille,Vigilance)) {
  • var %te = $meteo.translate($puttok($asctime(dd mm yyyy),$calc($asctime(dd) + $hget(Meteo,Jour)),1,32)) $iif($hget(Meteo,Jour) <= 2,$iif(!$hget(Meteo,Period),Matin,Après-Midi))
  • ²surligne @Meteo 10 $calc(%ox +2) $calc(%oy +2) %te
  • }
  • if ($hget(MeteoVille,Eph)) {
  • tokenize 32 $replace($gettok($ifmatch,$+($calc($hget(Meteo,Period) +1),-),32),&nbsp;,$chr(165))
  • ²surligne @Meteo 12 70 375 $replace($1,$chr(165),$chr(32))
  • ²surligne @Meteo -l 12 430 375 $replace($3,$chr(165),$chr(32))
  • ²surligne @Meteo 12 70 395 $replace($5,$chr(165),$chr(32))
  • ²surligne @Meteo 12 70 415 Lever du soleil : $replace($gettok($1-,-3,32),$chr(165),$chr(32))
  • ²surligne @Meteo 12 70 435 Coucher du soleil : $replace($gettok($1-,-2,32),$chr(165),$chr(32))
  • ²surligne @Meteo -l 12 430 395 Lune : $replace($gettok($1-,-1,32),$chr(165),$chr(32))
  • }
  • hadd -m Meteo Ready 1
  • ²ref @Meteo
  • }
  • ;*************
  • ;Autres écrans
  • ;*************
  • alias ²meteo.vigilance {
  • if (!$window(@Meteo)) return
  • ²centre @Meteo -b 40 Carte de vigilance
  • meteo.wait
  • if ($hget(MeteoLocation)) hfree MeteoLocation
  • if ($hget(Meteo,Period) != $null) hdel Meteo Period
  • hfree -w MeteoVille*
  • hadd -m MeteoVille Vigilance 0 0 ø vigilance.gif
  • fond.meteo /image/carte/vigilance/vigilance_fond.gif
  • dl.meteo /image/carte/vigilance/vigilance.gif
  • hadd -m MeteoTemp Carte Vigilance
  • }
  • alias ²meteo.aide {
  • if (!$window(@Meteo)) return
  • ²centre @Meteo -b 40 Aide
  • var %d = drawtext -nr @Meteo 0 Tahoma 12 30
  • %d 120 Bienvenue sur l'aide de Meteo (codé par ArKanis)
  • %d 140 Cette version très simple permet de connaître la météo en France
  • %d 160 ou ses DOM-TOMs et ce de un à six jours.
  • %d 180 Pour commencer, choisissez où regarder la météo.
  • %d 220 Vous obtiendrez plus d'informations et passant la souris sur une ville
  • %d 240 et en cliquant dessus
  • }
  • alias ²meteo.credits {
  • if (!$window(@Meteo)) return
  • ²centre @Meteo -b 40 Crédits
  • var %d = drawtext -pnr @Meteo 0 Tahoma 12 40
  • %d 105 Utilitaire codé par ArKanis
  • %d 125 Mon Site :
  • ²link @Meteo 96 213 125 "www.arkanis.eu" www.arkanis.eu
  • %d 145 Météo, images provenant de :
  • ²link @Meteo 97 213 145 "www.lachainemeteo.com" www.lachainemeteo.com
  • drawtext -onr @Meteo 0 Tahoma 12 40 220 Remerciements :
  • %d 240 A mes testeurs, NeoBlaster et Panthouffle
  • %d 260 A mes amis (non cités car trop nombreux pour l'être sans oubli :D)
  • %d 280 A ma famille
  • %d 325 Deux sites de scripting mIRC :
  • ²link @Meteo 98 204 325 "www.ircfr.com" IRCfr
  • drawtext -nr @Meteo 0 Tahoma 12 233 325 et
  • ²link @Meteo 99 247 325 "www.scriptsdb.org" ScriptsDB
  • ²centre @Meteo 355 Codé le 03/02/07 et 04/02/07
  • }
  • ;******
  • ;Divers
  • ;******
  • alias -l meteo.wait {
  • if ($show) ²clear @Meteo
  • hadd -m Meteo Ready 0
  • ²centre @Meteo 240 Chargement en cours ...
  • ²ref @Meteo
  • }
  • ;**************
  • ;Aliases utiles
  • ;**************
  • alias -l min return $calc(($1 + $2 - $abs($calc($1 - $2)))/2)
  • alias -l max return $calc(($1 + $2 + $abs($calc($1 - $2)))/2)
  • alias -l extension return $regsubex($1,(.+)\.([^\.]+)$,\2)
  • alias -l meteo.translate {
  • tokenize 32 $1-
  • if (!$3) return
  • var %j = $1, %m = $2, %a = $3
  • if (%m < 3) var %n = $calc($int($calc(365.25*(%a - 1))) + $int($calc(30.6*(%m + 13))) + %j - 621049)
  • else var %n = $calc($int($calc(365.25 * %a)) + $int($calc(30.6*(%m +1))) + %j - 621049)
  • var %d = $iif($calc(%n % 7),$ifmatch,7)
  • return $gettok(Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche,%d,32)
  • }
  • ;End Of File
;************************
;         Meteo
;      By  ArKanis
; http://www.arkanis.eu
;************************
; Version 1.3

;      Powered  by
; www.lachainemeteo.com

alias meteo {
  if (($exists(GUI-ArKanis.mrc)) && (!$script(GUI-ArKanis.mrc))) {
    .load -rs GUI-ArKanis.mrc
    echo 2 -a * Chargement du fichier GUI-ArKanis.mrc effectué
  }
  if (!$isalias(²picwin)) {
    echo 2 -a * Erreur : il faut avoir chargé le fichier GUI-ArKanis.mrc
    if ($isalias(pw.dl)) {
      if ($input.request.y.n(Voulez-vous télécharger le fichier GUI-ArKanis.mrc ?)) pw.dl
    }
    return
  }
  ²picwin @Meteo 500 500 "Meteo"
  titlebar @Meteo By ArKanis
  ²newmenu @Meteo Consulter la météo
  ²newitem @Meteo En France:²meteo.sel France,DOM TOM:²meteo.sel,$chr(9),Changer le jour:²meteo.selday,$chr(9),Fermer:²close @Meteo
  ²newmenu @Meteo Autres écrans
  ²newitem @Meteo Vigilance:²meteo.vigilance,Recherche:²meteo.rech
  ²newmenu @Meteo ?
  ²newitem @Meteo Aide:²meteo.aide,Crédits:²meteo.credits,Désinstaller:²meteo.delete
  ²drawmenu @Meteo $iif($isdir(Meteo),1 1,3 1)
  ²description @Meteo Temps 400
  ²ref @Meteo
}

alias ²meteo.sel {
  if (!$window(@Meteo)) return
  if ($hget(Meteo,Jour) !isnum 0-9) hadd -m Meteo Jour 0
  if ($1) {
    hadd -m Meteo Link $+(index.php?langue=fr&echeance=,$hget(Meteo,Jour))
    ²meteoopen France
  }
  else {
    ²centre @Meteo -b 40 Sélection d'un DOM-TOM
    ²centre @Meteo 225 Sélectionnez votre DOM-TOM
    ²select @Meteo 100 150 245 200 30 Guadeloupe¥Martinique¥Guyane¥La Réunion¥St Pierre et Miquelon¥Mayotte¥Polynésie Française¥Nouvelle Calédonie¥Wallis et Futuna
    ²button @Meteo 101 200 280 100 20 Sélectionner
    ²description @Meteo 100 Change la région sélectionnée dans une permutation circulaire
    ²description @Meteo 101 Affiche la météo de la région choisie
  }
}

alias ²meteo.selday {
  if (!$window(@Meteo)) return
  ²centre @Meteo -b 40 Sélection du jour
  var %l = 0¥1¥2¥3¥4¥5¥6
  if ($hget(Meteo,Jour) isnum 0-6) {
    while ($left(%l,1) != $hget(Meteo,Jour)) var %l = $addtok($deltok(%l,1,165),$left(%l,1),165)
  }
  ²select @Meteo 102 200 245 100 30 %l
  ²button @Meteo 103 200 280 100 20 Sélectionner
  ²description @Meteo 103 Donne la météo prévue pour dans X jours pour toutes les demandes à venir
}
alias ²meteo.rech {
  ²centre @Meteo -b 40 Recherche
  ²centre @Meteo 70 Entrez le nom de la ville ou son code postal
  ²edit @Meteo 8 200 110 100 20
  ²button @Meteo 9 200 135 100 20 Rechercher
  ²description @Meteo 9 Etablie une liste des résultats trouvés pour sélectionner rapidement une ville
}
alias meteo.answer if ($1 == ²meteo.rech) meteo.sclick 9 $2
alias ²meteo.delete {
  noop $findfile(Meteo/,*,0,.remove $qt($1-))
  .rmdir Meteo
  ²close @Meteo
  window -a "Status Window"
  if ($?!="Souhaitez-vous décharger le fichier $script (contient la Météo) ?") {
    if (!$?!="Voulez-vous GARDER le fichier ?") .timer 1 1 .remove $qt($script)
    .timer 1 1 .unload -rs $qt($script)
  }
}
;**************
;Données du GUI
;**************
alias meteo.menu {
  sockclose meteo*
  if (($1) && ($hget(MeteoLocation))) hfree MeteoLocation
}
alias meteo.close {
  hfree -w Meteo*
  if ($window(@Meteo.copyVilles)) window -c @Meteo.copyVilles
}
on *:close:@Meteo:meteo.close

alias meteo.mouse {
  if (!$window(@Meteo)) return
  var %x = $1, %y = $2, %g
  var %f = $hget(Meteo,Origin), %ox = $gettok(%f,1,32), %oy = $gettok(%f,2,32), %dx = $gettok(%f,3,32), %dy = $gettok(%f,4,32)
  if (($inrect(%x,%y,%ox,%oy,%dx,%dy)) && ($hget(MeteoLocation)) && ($hget(Meteo,Ready))) {
    var %t = 1, %l = MeteoLocation
    while $hget(%l,%t).item {
      var %i = $ifmatch, %d = $hget(%l,%i)
      tokenize 32 %d
      if ($inrect(%x,%y,$1,$2,35,28)) {
        var %g = 1
        if ($hget(MeteoTemp,Loc) == %i) break
        hadd -m MeteoTemp Loc %i
        .²backup @Meteo Villes
        if (!$window(@Meteo.copyVilles)) ²svg @Meteo Villes
        var %ht = $+(MeteoVille,$hget(Meteo,Period))
        var %t1 = $replace(%i,$chr(165),$chr(32)), %t2 = T° : $gettok($hget(%ht,%i),3,32), %dy = 32
        if (%t2 == T° : ø) var %t2, %dy = $calc(%dy - 14)
        var %w = $max($width(%t1,Tahoma,10),$width(%t2,Tahoma,10)), %ox = $calc($1 -4 - %w / 2), %oy = $calc($2 -26)
        drawrect -nr @Meteo 0 1 $calc($1 - %w) %oy $calc(%w +6) %dy
        drawrect -fnr @Meteo 16761024 1 $calc($1 - %w +1) $calc(%oy +1) $calc(%w +4) $calc(%dy -2)
        drawtext -nr @Meteo 0 Tahoma 10 $calc($1 -%w + (%w +6- $width(%t1,Tahoma,10)) /2) $calc(%oy + 2) %t1
        if (%t2) drawtext -nr @Meteo 0 Tahoma 10 $calc($1 -%w + (%w +6- $width(%t2,Tahoma,10)) /2) $calc(%oy +17) %t2
        ²ref @Meteo
        break
      }
      inc %t
    }
    if (%g) return
  }
  if ((!%g) && ($hget(MeteoTemp,Loc))) {
    hdel MeteoTemp Loc
    ²backup @Meteo Villes
  }
  if ((!$hget(MeteoVille,Vigilance)) && ($hget(Meteo,Jour) <= 2) && ($hget(Meteo,Ready)) && (!$hget(@Meteo,Main))) {
    if (($inrect(%x,%y,49,471,56,23)) && ($hget(Meteo,Period) != 0)) {
      hadd -m Meteo Period 0
      ²efface @Meteo 25 60 450 410
      .meteo.fond.apply Meteo/Backup.png
      meteo.fond.apply
    }
    elseif (($inrect(%x,%y,371,471,79,23)) && ($hget(Meteo,Period) != 1)) {
      hadd -m Meteo Period 1
      ²efface @Meteo 25 60 450 410
      .meteo.fond.apply Meteo/Backup.png
      meteo.fond.apply
    }
  }
}

alias meteo.sclick {
  if (!$window(@Meteo)) return
  if ($1 == 101) {
    var %g = $calc(96 + $findtok(Guadeloupe¥Martinique¥Guyane¥La Réunion¥St Pierre et Miquelon¥Mayotte¥Polynésie Française¥Nouvelle Calédonie¥Wallis et Futuna,$²did(@Meteo,100),1,165))
    hadd -m Meteo Link $+(index.php?langue=fr&echeance=,$hget(Meteo,Jour),&domtom=,%g)
    ²meteoopen $²did(@Meteo,100)
  }
  elseif ($1 == 103) {
    hadd -m Meteo Jour $²did(@Meteo,102)
    ²drawmenu @Meteo 1 1
  }
  elseif ($hget(MeteoTemp,Loc)) {
    hadd -m Meteo Link $+(index_detail.php?langue=fr&echeance=,$hget(Meteo,Jour),&num_ville=,$gettok($hget($+(MeteoVille,$hget(Meteo,Period)),$ifmatch),5,32))
    ²meteoopen $hget(MeteoTemp,Loc)
  }
  elseif ($1 == 9) {
    if ($²did(@Meteo,8)) {
      hadd -m Meteo Link $+(moteur_recherche.php?langue=fr&txt_search=,$ifmatch)
      .meteo.wait
      .²meteoopen
    }
  }
  elseif ($1 == 11) {
    var %v = $replace($²did(@Meteo,10),$chr(32),$chr(165))
    hadd -m Meteo Link $+(index_detail.php?langue=fr&echeance=,$hget(Meteo,Jour),&num_ville=,$hget(MeteoVille,%v))
    ²meteoopen $deltok(%v,-1,165)
  }
}
;*******
;Sockets
;*******
alias ²meteoopen {
  if (!$window(@Meteo)) return
  if ($window(@Meteo.copyVilles)) window -c $ifmatch
  if ($show) {
    meteo.wait
    ²centre @Meteo -b 40 $1- $meteo.date($hget(Meteo,Jour))
    if ($hget(Meteo,Jour) <= 2) {
      var %p = 51
      while %p < 451 {
        drawline -nr @Meteo $rgb($calc(30 + %p /2),250,$calc(255 - %p /2)) 2 %p 471 %p 494
        inc %p 2
      }
      drawrect -nr @Meteo 0 1 49 470 402 26
      drawtext -nr @Meteo 8388608 Tahoma 12 60 475 MATIN
      drawtext -nr @Meteo 8388608 Tahoma 12 376 475 APRES-MIDI
    }
  }
  sockclose meteo
  sockopen meteo www.lachainemeteo.com 80
}
alias -l meteo.date {
  var %d = $+($chr(40),$date($calc($ctime + 86400 * $1)),$chr(41))
  if ($1 == 0) return aujourd'hui %d
  if ($1 == 1) return demain %d
  if ($1 == 2) return après-demain %d
  else return dans $1 jours %d
}
on *:sockopen:meteo:{
  if ($hget(MeteoQueue)) hfree MeteoQueue
  hfree -w MeteoVille*
  hfree -w MeteoTemp
  hadd -m Meteo Period 0
  sockwrite -n $sockname GET $+(http://www.lachainemeteo.com/,$$hget(Meteo,Link)) HTTP/1.0
  sockwrite -n $sockname $+(Host: lachainemeteo.com,$str($crlf,2)))
}

on *:sockread:meteo:{
  var %a
  sockread %a
  if ($gettok(%a,1,9) == .Fond_Carte) sockmark $sockname FOND
  elseif (($regex(%a,/background-image:url\('(.+)'\)/gi)) && ($sock($sockname).mark == FOND)) {
    fond.meteo $regml(1)
    sockmark $sockname 0
  }
  elseif ($regex(%a,Menu_Periode_200_([0-9])_J([0-9]))) {
    if ($regml(2) != $hget(Meteo,Jour)) sockmark $sockname 0
    else {
      hadd -m MeteoTemp Heure $regml(1)
      sockmark $sockname VILLES
      if ($exists(Meteo/Backup.png)) drawpic -n @Meteo 50 70 Meteo/Backup.png
      drawrect -nr @Meteo 0 1 49 69 402 402
      ²centre @Meteo 240 Chargement en cours ...
    }
  }
  elseif ($regex(%a,bloc_ephem_j([0-9]))) {
    if ($regml(1) == $hget(Meteo,Jour)) sockmark $sockname Ephemerides
  }
  elseif ($sock($sockname).mark == Ephemerides) {
    if ($regex(%a,/height: 30px;.+>([^>]+)</div>$/i)) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($regml(1),$chr(32),$chr(165))
    elseif ($regex(%a,(-?[0-9]+)°C)) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($+($regml(1),°C),$chr(32),$chr(165))
    elseif ($regex(%a,/height: 13px;.+">(.+)</div>/U)) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($regml(1),<br>,$chr(165),$chr(32),$chr(165))
    elseif ($regex(%a,/(Lever|Coucher) : <[^>]+>([^<]+)</span></div>/i)) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($regml(2),$chr(32),$chr(165))
    elseif ($regex(%a,/info([0-9])_ephem/i)) {
      if (($regml(1) isnum 2-) && ($regex(H,%a,/>([^>]+)</div>/i))) hadd -m MeteoVille Eph $hget(MeteoVille,Eph) $replace($regml(H,1),$chr(32),$chr(165))
    }
  }
  elseif ($regex(%a,/num_ville=([0-9]+)".+class="Liste_Elt_href">(.+)</a>/gU)) {
    hadd -m MeteoVille Rech $addtok($hget(MeteoVille,Rech),$regml(2),165)
    hadd -m MeteoVille $replace($regml(2),$chr(32),$chr(165)) $regml(1)
  }
  elseif ($regex(%a,/src="/image/logo/lachainemeteo/lcm_60x40.gif"/i)) sockmark $sockname VILLES
  elseif ($sock($sockname).mark == VILLES) {
    if ($regex(%a,/Periode_Temps_([0-1])/i)) hadd -m MeteoTemp Heure $regml(1)
    if ($regex(%a,(-?[0-9]+) &\#176;)) hadd -m $+(MeteoVille,$hget(MeteoTemp,Heure)) $hget(MeteoTemp,Ville) $regml(1) $hget(MeteoTemp,Pic) $hget(MeteoTemp,CP)
    elseif ($regex(%a,num_ville=([0-9]+))) hadd -m MeteoTemp CP $regml(1)
    else {
      if ($regex(%a,src="(.+)" class='Lien_Icone')) {
        var %i = $regml(1), %f = $gettok(%i,-1,47)
        if (!$exists($+(Meteo/,%f))) dl.meteo %i 1
        hadd -m MeteoTemp Pic %f
      }
      var %r = /left\:([0-9]+\.?[0-9]?)px\;top\:([0-9]+\.?[0-9]?)px.+'(.+)'/ig
      if ($regex(%a,%r)) hadd -m MeteoTemp Ville $remove($replace($regml(3),&eacute;,é,&egrave;,è,&ccedil;,ç,$chr(32),$chr(165),#039;,',&iuml;,ï),&amp;) $regml(1) $regml(2)
    }
  }
}
on *:sockclose:meteo:{
  if ($hget(Meteo,Link)) hdel Meteo Link
  if ($hget(MeteoVille,Rech)) {
    ²list @Meteo 10 150 200 200 200 $hget(MeteoVille,Rech)
    ²button @Meteo 11 150 405 200 20 Sélectionner
  }
}

alias -l fond.meteo {
  if (!$isdir(Meteo)) mkdir Meteo
  var %f = $+(Meteo/fond.,$extension($1-))
  if ($exists(%f)) .remove %f
  hadd -m Meteo Fond $1-
  hadd -m Meteo Fond2 %f
  sockclose MeteoFond
  sockopen MeteoFond www.lachainemeteo.com 80
}
on *:sockopen:MeteoFond:{
  sockwrite -n $sockname GET $$hget(Meteo,Fond) HTTP/1.0
  sockwrite -n $sockname $+(Host: lachainemeteo.com,$str($crlf,2)))
}

on *:sockread:MeteoFond:{
  var %a
  sockread &a
  if ((!$sock($sockname).mark) && ($bfind(&a, 1,$str($crlf,2)))) {
    bcopy &b 1 &a $calc($ifmatch +4) -1
    if ($bvar(&b,0)) bwrite $hget(Meteo,Fond2) -1 -1 &b
    sockmark $sockname 1
  }
  elseif ($bvar(&a,0)) bwrite $hget(Meteo,Fond2) -1 -1 &a
}
on *:sockclose:MeteoFond:meteo.fond.apply
alias -l meteo.fond.apply {
  if (!$window(@Meteo)) return
  var %f = $hget(Meteo,Fond2)
  if ($1-) var %f = $1-
  elseif (!%f) var %f = Meteo/fond.png
  if (!$exists(%f)) return
  var %x = $pic(%f).width, %y = $pic(%f).height, %ox = $calc(250 - %x / 2), %oy = $calc(270 - %y /2)
  drawrect -nr @Meteo 0 1 $calc(%ox -1) $calc(%oy -1) $calc(%x +2) $calc(%y +2)
  drawpic -n @Meteo %ox %oy $shortfn(%f)
  if ($show) {
    hdel -w Meteo Fond*
    hadd -m Meteo Origin %ox %oy %x %y
    if ((!$sock(Meteo.dl)) && (!$hget(MeteoQueue,0).item)) meteo.generate
  }
}

alias -l dl.meteo {
  hadd -m MeteoQueue $1-
  if ($exists($+(Meteo/,$gettok($1,-1,47)))) .remove $+(Meteo/,$gettok($1,-1,47))
  if ($sock(dl.meteo)) return
  .timer -h 1 500 dl.meteo.do
}
alias -l dl.meteo.do {
  var %f = $hget(MeteoQueue,1).item
  if (!%f) {
    if (!$sock(MeteoFond)) meteo.generate
    return
  }
  hadd -m MeteoTemp DL %f
  hadd -m MeteoTemp DLName $+(Meteo/,$gettok(%f,-1,47))
  sockclose Meteo.dl
  sockopen Meteo.dl www.lachainemeteo.com 80
}
on *:sockopen:Meteo.dl:{
  sockwrite -n $sockname GET $$hget(MeteoTemp,DL) HTTP/1.0
  sockwrite -n $sockname $+(Host: lachainemeteo.com,$str($crlf,2)))
}
on *:sockread:Meteo.dl:{
  sockread &a
  if ((!$sock($sockname).mark) && ($bfind(&a, 1,$str($crlf,2)))) {
    bcopy &b 1 &a $calc($ifmatch +4) -1
    if ($bvar(&b,0)) bwrite $$hget(MeteoTemp,DLName) -1 -1 &b
    sockmark $sockname 1
  }
  elseif ($bvar(&a,0)) bwrite $$hget(MeteoTemp,DLName) -1 -1 &a
}
on *:sockclose:Meteo.dl:{
  hdel MeteoQueue $hget(MeteoTemp,DL)
  hdel -w MeteoTemp DL*
  dl.meteo.do
}

alias -l meteo.generate {
  if (!$window(@Meteo)) return
  if ($window(@Meteo.copyVilles)) window -c @Meteo.copyVilles
  var %t = 1, %p = MeteoLocation
  if ($hget(%p)) hfree %p
  var %ht = $+(MeteoVille,$hget(Meteo,Period)), %f = $hget(Meteo,Origin), %ox = $gettok(%f,1,32), %oy = $gettok(%f,2,32), %x = $gettok(%f,3,32)
  if ($pic(Meteo/fond.png).width > 350) .copy -o $qt(Meteo/fond.png) "Meteo/Backup.png"
  while $hget(%ht,%t).item {
    var %i = $ifmatch, %d = $hget(%ht,%i)
    tokenize 32 %d
    if (anim !isin $4) drawpic -tn @Meteo 0 $calc($1 + %ox) $calc($2 + %oy) $shortfn($+(Meteo/,$4))
    else drawpic -ctn @Meteo 16777215 $calc($1 + %ox) $calc($2 + %oy) $shortfn($+(Meteo/,$4))
    if ($3 != ø) drawtext -nr @Meteo 0 Tahoma 10 $calc($1 + %ox + 15) $calc($2 + %oy + 25) $+($3,°)
    hadd -m %p %i $calc($1 + %ox) $calc($2 + %oy)
    inc %t
  }
  if (!$hget(MeteoVille,Vigilance)) {
    var %te = $meteo.translate($puttok($asctime(dd mm yyyy),$calc($asctime(dd) + $hget(Meteo,Jour)),1,32)) $iif($hget(Meteo,Jour) <= 2,$iif(!$hget(Meteo,Period),Matin,Après-Midi))
    ²surligne @Meteo 10 $calc(%ox +2) $calc(%oy +2) %te
  }
  if ($hget(MeteoVille,Eph)) {
    tokenize 32 $replace($gettok($ifmatch,$+($calc($hget(Meteo,Period) +1),-),32),&nbsp;,$chr(165))
    ²surligne @Meteo 12 70 375 $replace($1,$chr(165),$chr(32))
    ²surligne @Meteo -l 12 430 375 $replace($3,$chr(165),$chr(32))
    ²surligne @Meteo 12 70 395 $replace($5,$chr(165),$chr(32))
    ²surligne @Meteo 12 70 415 Lever du soleil : $replace($gettok($1-,-3,32),$chr(165),$chr(32))
    ²surligne @Meteo 12 70 435 Coucher du soleil : $replace($gettok($1-,-2,32),$chr(165),$chr(32))
    ²surligne @Meteo -l 12 430 395 Lune : $replace($gettok($1-,-1,32),$chr(165),$chr(32))
  }
  hadd -m Meteo Ready 1
  ²ref @Meteo
}

;*************
;Autres écrans
;*************
alias ²meteo.vigilance {
  if (!$window(@Meteo)) return
  ²centre @Meteo -b 40 Carte de vigilance
  meteo.wait
  if ($hget(MeteoLocation)) hfree MeteoLocation
  if ($hget(Meteo,Period) != $null) hdel Meteo Period
  hfree -w MeteoVille*
  hadd -m MeteoVille Vigilance 0 0 ø vigilance.gif
  fond.meteo /image/carte/vigilance/vigilance_fond.gif
  dl.meteo /image/carte/vigilance/vigilance.gif
  hadd -m MeteoTemp Carte Vigilance
}


alias ²meteo.aide {
  if (!$window(@Meteo)) return
  ²centre @Meteo -b 40 Aide
  var %d = drawtext -nr @Meteo 0 Tahoma 12 30
  %d 120 Bienvenue sur l'aide de Meteo (codé par ArKanis)
  %d 140 Cette version très simple permet de connaître la météo en France
  %d 160 ou ses DOM-TOMs et ce de un à six jours.
  %d 180 Pour commencer, choisissez où regarder la météo.
  %d 220 Vous obtiendrez plus d'informations et passant la souris sur une ville
  %d 240 et en cliquant dessus
}
alias ²meteo.credits {
  if (!$window(@Meteo)) return
  ²centre @Meteo -b 40 Crédits
  var %d = drawtext -pnr @Meteo 0 Tahoma 12 40 
  %d 105 Utilitaire codé par ArKanis
  %d 125 Mon Site :
  ²link @Meteo 96 213 125 "www.arkanis.eu" www.arkanis.eu
  %d 145 Météo, images provenant de :
  ²link @Meteo 97 213 145 "www.lachainemeteo.com" www.lachainemeteo.com
  drawtext -onr @Meteo 0 Tahoma 12 40 220 Remerciements :
  %d 240 A mes testeurs, NeoBlaster et Panthouffle
  %d 260 A mes amis (non cités car trop nombreux pour l'être sans oubli :D)
  %d 280 A ma famille
  %d 325 Deux sites de scripting mIRC :
  ²link @Meteo 98 204 325 "www.ircfr.com" IRCfr
  drawtext -nr @Meteo 0 Tahoma 12 233 325 et
  ²link @Meteo 99 247 325 "www.scriptsdb.org" ScriptsDB
  ²centre @Meteo 355 Codé le 03/02/07 et 04/02/07
}

;******
;Divers
;******
alias -l meteo.wait {
  if ($show) ²clear @Meteo
  hadd -m Meteo Ready 0
  ²centre @Meteo 240 Chargement en cours ...
  ²ref @Meteo
}

;**************
;Aliases utiles
;**************
alias -l min return $calc(($1 + $2 - $abs($calc($1 - $2)))/2)
alias -l max return $calc(($1 + $2 + $abs($calc($1 - $2)))/2)
alias -l extension return $regsubex($1,(.+)\.([^\.]+)$,\2)
alias -l meteo.translate {
  tokenize 32 $1-
  if (!$3) return
  var %j = $1, %m = $2, %a = $3
  if (%m < 3) var %n = $calc($int($calc(365.25*(%a - 1))) + $int($calc(30.6*(%m + 13))) + %j - 621049)
  else var %n = $calc($int($calc(365.25 * %a)) + $int($calc(30.6*(%m +1))) + %j - 621049)
  var %d = $iif($calc(%n % 7),$ifmatch,7)
  return $gettok(Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche,%d,32)
}
;End Of File

Conclusion

J'ai fait ce code car le site www.lachainemeteo.com avait changé la méthode de travail, et celle-ci permet un résultat bien plus beau je trouve :)

Merci à NeoBlaster et Panthouffle pour leur test
Merci à Wims pour son débogage

Le GUI n'est pas tout à fait fini, mais il suffit très largement pour cette Meteo

Il est nécessaire d'avoir AU MOINS mIRC 6.17 , 6.21 est conseillée
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

04 février 2007 18:42:43 :
une parenthèse dans le ON LOAD
10 février 2007 21:31:56 :
Mise à jour du $sockread (qui n'existe pas) - Ajout de var %a pour les sockreads - Plus de texte donnant le jour (France aujourd'hui (10/02/07)) - Correction au niveau de l'affichage des images alors que toutes les infos ne sont pas recueillies - Mise à jour du screenshot et de la description - Correction du traitement des données pour la première ville de la liste venant du site (Montpellier au niveau de la France par exemple)
28 juillet 2007 17:40:31 :
Correction de l'information "Lever/Coucher du Soleil" qui ne fonctionnait plus car le site avait rajouté des balises
28 juillet 2007 17:44:16 :
Mise à jour de la rubrique "Votre code"

Commentaires et avis

signaler à un administrateur
Commentaire de RCA ArKanis le 04/02/2007 18:36:47

j'oubliais : il faut au minimum la version 6.17 de mIRC pour que ça fonctionne
La 6.17 ayant des problèmes avec le drawtext -p, la version 6.2 (ou 6.21) est conseillée

signaler à un administrateur
Commentaire de wims le 04/02/2007 21:40:15

nan, la version 6.21 aussi en contient encore un, esperons que ton code ne l'exploite pas : http://trout.snt.utwente.nl/ubbthreads/ubbthreads.php?ubb=showflat&Number=169720&page=1#Post169720
En fouillant j'ai eu ça :
* No such identifier: $sockopen (line 289, Meteo-By-ArKanis.mrc)
-
* No such identifier: $sockopen (line 282, Meteo-By-ArKanis.mrc)

c'est dès que j'essaye d'afficher la carte vigilance ( sois disant la derniere mais j'en ai encore jamais vu )

quand je cherche "paris" dans Autre écran > recherche, il y a plusieur correspondance dont deux fois "paris", c'est le site qui veux ca ? quel diff :] ?

Quand je fait : consulter la meteo : en france : il me dis France dans 0 jour :\ ( idem pour les dom-tom )

faudrait demandé le nombre de jour si il n'existe pas.
et puis france dans X jour, ca le fait pas, t'aurais pu te basé sur $day et faire correpondre le jour en francais avec la date :
ex : France - Mardi 6 février 2007

L'effet de fermeture, j'aime pas trop :( ( tu devrais faire en sorte que ca se centre autour du ArKanis ( nom de la picwin )

Donc si tu pouvais corrigé ce $sockopen, car je recupere des cartes mais sans légende :x

dans le menu de recherche, pourquoi le curseur de l'edit est a droite :) ?

( dsl si ca fait double post mais comme quand j'envoie le msg, le site bug, on c'est pas si le msg passe ou pas )

signaler à un administrateur
Commentaire de RCA ArKanis le 06/02/2007 10:33:16

Mouais bon pour le bug obtenu, c'est pas catastrophique ... Le bug avec la 6.17 est bien plus grave : on est obligé d'assigner un fond dès qu'on met le -p alors qu'il devrait apparaître qu'avec le -b

Pour l'erreur, c'est ta protection de mIRC (moisie au passage) qui fait arrêter le code. Effectivement, $sockopen n'existe pas, remplace $sockopen par $sock, ça devrait marcher. C'est ça de ne pas coder pendant plusieurs mois :) Je corrigerai Samedi

La différence entre les plusieurs possibilités pour Paris, j'pense que ça dépend de la station de mesures. Il doit y en avoir plusieurs. Si tu veux connaître la météo de chez toi, il faut choisir la plus proche. C'est en tout cas ce que je pense :)

"faudrait demandé le nombre de jour si il n'existe pas."
Quand il n'existe pas, il est automatiquement assigné à 0 (jour d'aujourd'hui, quoi), et ça parraît normal

Le coup du "France dans 0 jour", tu remarqueras que sur la carte en haut à gauche j'ai fait écrire le jour de la météo (en plus de la période de la journée).
C'est vrai que c'est pas super beau, mais bon ... Quand je serai de retour chez moi je mettrai "demain", "après-demain", ...

L'animation de fermeture est un choix personnel. Ce n'est pas la seconde de plus où l'on voit "ArKanis" qui est la plus importante :p

Puis, pour le curseur à droite dans l'édit, je trouve ça original, et ça m'a été plus simple à coder, donc pourquoi pas ?

Sinon tu n'as même pas dit ce que t'en pensais :(

signaler à un administrateur
Commentaire de wims le 06/02/2007 20:16:51

L'option de mirc qui affiche une erreur lorsque l'on essaye d'utiliser un $identifieur qui existe pas est une tres bonne option, la preuve : dans ton code ( inconnu pour moi ) je sais direct d'ou viens l'erreur avec la ligne sans avoir cherché une seconde et c'est la même pour le codeur, pas besoin de galéré 20 ans a debut le code :)

c'est beaucoup mieux avec $sock :]
je n'avais donc pas vu que ça écrivait le jour et la periode de la journée

L'animation, bah tant pis, j'aime pas ;(

J'aime tjs les menus, mais je n'aime pas le gui en general ( ou du moins pas ces couleurs la )

tu n'avais pas déja fais ce genre de code ?

un truc : dans le menu, les premieres lettres sont soulignées mais le raccourci, c'est quoi :\ ?

un deuxieme truc ( je m'en rend compte au fur et a mesure que j'test ) : il n'y a aucune difference entre la carte qu'on recois avec la premiere correspondance pour "paris" et la deuxieme.
Les tooltip correpondant au nom de ville, ils ne commencent pas au pointeur de la souris ( petit detail mais ca serait mieux ) et surtout, il servent a quoi ?
Quand on charge une page apres avoir recherché, ca n'efface pas la carte d'avant ( celle de la meteo general )

troisieme truc : le compteur ( celui du haut ) pour changer les jours, devrait incrémenter la valeur mais il décremente comme celui du bas

dernier : dans tes event on sockread, parfois, tu sockread %a sans déclaré la var, ce qui te donne une var globale %a, sinon, super bien codé :]

Le code n'a que tres peu d'interet pour moi étant donné qu'il me servira pas mais s'il peux servir, je prefere ca qu'autre chose

signaler à un administrateur
Commentaire de RCA ArKanis le 10/02/2007 13:04:17

"tu n'avais pas déja fais ce genre de code ?"
si, mais disons que l'ancien ne fonctionne plus étant donné qu'ils ont changé leur méthode de présentation. Il s'agissait avant d'une simple image représentant la France, mais désormais il s'agit de l'arrière plan, sur lequel on y superpose des images à certaines coordonnées (cf www.lachainemeteo.com pour comprendre un peu mieux)

"aucune difference entre la carte qu'on recois avec la premiere correspondance pour "paris" et la deuxieme."
ça j'pense bien, mais à mon avis il devrait y avoir une différence entre les températures, peut-être même entre les heures de lever/coucher de soleil (à quelques minutes)

"Les tooltip correpondant au nom de ville, ils ne commencent pas au pointeur de la souris ( petit detail mais ca serait mieux ) et surtout, il servent a quoi ?"
je préfère mettre le tooltip à côté, histoire qu'il ne cache pas l'icone de météo. En plus si tu bouges la souris, au moins il ne sera pas obligé de redessiner le rectangle. Il sert à donner le nom de la ville, et du coup, tu sais vraiment où tu cliques.

"Quand on charge une page apres avoir recherché, ca n'efface pas la carte d'avant ( celle de la meteo general )"
Tu parles du fond que je fais rajouter pour rendre la picwin plus jolie ? :)

"troisieme truc : le compteur ( celui du haut ) pour changer les jours, devrait incrémenter la valeur mais il décremente comme celui du bas"
si tu cliques sur l'ascenseur, effectivement ça décroit (y'a des flêches vers le haut), mais si tu cliques à gauche (dans le rectangle où y'a le texte), ça croît

je vais corriger le sockread %a

merci pour ce commentaire :)
dommage d'ailleurs qu'il n'y en ait pas un peu plus :(

signaler à un administrateur
Commentaire de kayou87 le 01/03/2007 10:45:39

Je trouve sa bien mes un peu de couleur sa seré mieu :-) bye

signaler à un administrateur
Commentaire de RCA ArKanis le 01/03/2007 11:24:48

Hum, quoi comme couleurs ? Tu as des idées ?
J'suis codeur, pas designer, j'ai beaucoup de mal à faire de belles PicWins (esthétiquement quoi) :(

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Communiquer de script à script, sans serveur... [ par Alerion ] Question de servitude.Je suis, comme beaucoup, c'est à la mode ces temps-ci, en réseau avec ma femme.Elle a son script, j'ai mon script, on se connect Dégradé [ par Bloock ] Bon voila, je vais faire un lecteur mp3 en picwin, et j'aimerai savoir comment on fait [/b]un dégradé dans une fenêtre Picwin[/b]! Merci d'avance <img Bannir quelqu'un pour un temps précis [ par djrems ] Salut :)Je n'ai pas trouvé ce que je cherche ( ou alors j'ai mal cherché ).Donc, j'aimerais kick-ban quelqu'un pour un temps précis ( disons 2mn ) si Graffiti [ par Naza ] Salut, je viens de trouver un site, par hasard, qui offre la possibilité de créer ces graffitis en très peu de temps. C'est un générateur en ligne, j Aide Socket & picwin [ par _VeSpArO_ ] Salut tout le monde je voulai savoir comment stocker un fichier txt d'un site dans un fichier .txt ou autre dans mon mirc.CAD: telecharger par exemple Picwin je pense lol jsuis meme pas sur du nom :s [ par Panther007 ] Salut :) Bon je vous dit en quoi j'aimerais me faire aider , j'aimerais me fabriquer un jeu de Ping pong mais avant il faut que je sache comment utili Dialog + Picwin [ par DiGhan ] Bonjour,Voilà , j'ai plusieurs dialog, dans lequel je voudrais inclure des picwin.J'aimerais savoir comment faire pour bouger le dialog quand la title auto replay apres un certain temps [ par Nunrg ] le titre c'est simple a faire ma question est un peu plus compliqué...comment faire pour qu'il y ai un message envoyer a un utilisateur admeton apres Savoir le temps en ligne dun personne [ par AwayZ ] J'aimerais savoir comment faire pour récuperer le temps connecté d'une personne a un serveur quelques question [ par KiNdErMaXi ] voila, j'ai quelques questions a vous poser:*1) est-il possible de faire apparaitre un petit truc. Je m'explique, pointez de la souris la croix en hau


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,671 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.