Meteo en picwin (france et dom-tom)

Description

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 / Exemple :


;************************
;         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),é,é,è,è,ç,ç,$chr(32),$chr(165),#039;,',ï,ï),&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

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.