Top

Weather Script w/5-day Forecast


mIRC Code
+ 11 likes
Please Register to submit score.
Bookmark and Share
Average Score  9.0 (of 15 scores)
Date Added  Apr 25, 2009
Last Updated  Jun 18, 2009
Tags  dialog  forecast  picture  weather  wunderground 

Introduction


Wunderground weather script with dialogs pictures and 5-day forecast.
This also has a trigger w/on-off switch. The trigger is !Forecast because I figure most people already have one thats !weather. Syntax for the trigger is !Forecast city state
or !Forecast country city or !wunderground zipcode or !Forecast airportcode.
You can find the dialogs on any menu and they are fairly self explanatory. One easy change you can make is the default city in the script. I have it set to my city.
To change it goto line 37.
It will look like this
Code:

On *:Dialog:CurrentConditions:init:*: { Wunderground Cincinnati Ohio }

Just change Cincinnati Ohio to your city state and it will always start there.
I've only tested this on my connection, which is pretty decent. I hope it works as good with slower connections.
05/01/2009 -- Changed Trigger From !Wunderground to !Forecast


Grab the Code

;Wunderground Weather Script by Ford_Lawnmower irc://irc.mindforge.org
dialog CurrentConditions {
  title "Current Conditions"
  size -1 -1 184 136
  option dbu
  text "", 1, 0 1 193 8
  icon 2, 8 16 23 23
  text "", 3, 40 24 41 16, center
  text "Humidity:", 4, 8 48 33 8
  text "Dew Point:", 5, 8 56 33 8
  text "Wind:", 6, 8 64 33 8
  text "Wind Gust:", 7, 8 72 33 8
  text "Pressure:", 8, 8 80 33 8
  text "Heat Index:", 9, 8 88 33 8
  text "Visibility:", 10, 8 96 33 8
  text "UV:", 11, 8 104 33 8
  text "Clouds:", 12, 8 112 33 8
  text "Elevation", 13, 8 120 33 8
  text "", 14, 40 48 49 8
  text "", 15, 40 56 49 8
  text "", 16, 40 64 49 8
  text "", 17, 40 72 49 8
  text "", 18, 40 80 49 8
  text "", 19, 40 88 49 8
  text "", 20, 40 96 49 8
  text "", 21, 40 104 49 8
  text "", 22, 40 112 109 8
  text "", 23, 40 120 49 8
  icon 24, 104 16 63 63
  button "5-Day Forecast", 25, 96 123 41 12, disable
  button "Close", 26, 144 123 37 12, cancel
  text "Enter City State or Zip Code", 27, 96 88 81 8, center
  edit "", 28, 96 96 82 10, autohs
  button "Search", 29, 152 107 29 12
  text "", 30, 8 128 81 8
}
On *:Dialog:CurrentConditions:init:*: { Wunderground Cincinnati Ohio }
On *:Dialog:CurrentConditions:Close:*: {
  hfree WundergroundDialog
}
On *:Dialog:CurrentConditions:Sclick:25: {
  if ($dialog(5-DayForecast)) {
    did -a 5-DayForecast 1 $hget(WundergroundDialog,location)
    var %5-days = $gettok($hget(WundergroundDialog,days),0,32)
    while (%5-days) {
      did -a 5-DayForecast $calc(%5-days + 1) $gettok($hget(WundergroundDialog,days),%5-days,32)
      did -g 5-DayForecast $calc(%5-days + 6) $+(Wunderground\,$nopath($hget(WundergroundDialog,$+(day,%5-days,pic))))
      did -a 5-DayForecast $calc(%5-days + 11) $+($hget(WundergroundDialog,$+(day,%5-days,high)),|,$hget(WundergroundDialog,$+(day,%5-days,low)))
      did -a 5-DayForecast $calc(%5-days + 16) $hget(WundergroundDialog,$+(day,%5-days,condition))         
      dec %5-days
    }
  }
  else { 5-Day }
}
On *:Dialog:CurrentConditions:Sclick:29: {
  if ($did(CurrentConditions,28).text) { Wunderground $did(CurrentConditions,28).text }
  else { did -a CurrentConditions 30 No search Item!! | .timer 1 3 did -a CurrentConditions 30 }
}
dialog 5-DayForecast {
  title "5-Day Forecast"
  size -1 -1 208 64
  option dbu
  text "", 1, 0 0 209 8, center
  text "", 2, 4 8 41 8, center
  text "", 3, 44 8 41 8, center
  text "", 4, 84 8 41 8, center
  text "", 5, 124 8 41 8, center
  text "", 6, 164 8 41 8, center
  icon 7, 16 16 15 15
  icon 8, 56 16 15 15
  icon 9, 96 16 15 15
  icon 10, 136 16 15 15
  icon 11, 176 16 15 15
  text "", 12, 4 32 41 8, center
  text "", 13, 44 32 41 8, center
  text "", 14, 84 32 41 8, center
  text "", 15, 124 32 41 8, center
  text "", 16, 164 32 41 8, center
  text "", 17, 4 40 41 24, center
  text "", 18, 44 40 41 24, center
  text "", 19, 84 40 41 24, center
  text "", 20, 124 40 41 24, center
  text "", 21, 164 40 41 24, center
}
On *:Dialog:5-DayForecast:init:*: {
  did -a 5-DayForecast 1 $hget(WundergroundDialog,location)
  var %5-days = $gettok($hget(WundergroundDialog,days),0,32)
  while (%5-days) {
    did -a 5-DayForecast $calc(%5-days + 1) $gettok($hget(WundergroundDialog,days),%5-days,32)
    did -g 5-DayForecast $calc(%5-days + 6) $+(Wunderground\,$nopath($hget(WundergroundDialog,$+(day,%5-days,pic))))
    did -a 5-DayForecast $calc(%5-days + 11) $+($hget(WundergroundDialog,$+(day,%5-days,high)),|,$hget(WundergroundDialog,$+(day,%5-days,low)))
    did -a 5-DayForecast $calc(%5-days + 16) $hget(WundergroundDialog,$+(day,%5-days,condition))         
    dec %5-days
  }
}
alias -l Wunderground.timeout {
  if (%Wunder.chan != dialog) { .msg %Wunder.chan Nothing Found... :( | if ($hget(%Wunder.name)) { hfree %Wunder.name } }
  else { did -a CurrentConditions 30 Nothing Found!! | .timer 1 3 did -a CurrentConditions 30 }
  Wunderground.clear
}
alias -l Wunderground.clear {
  sockclose %Wunder.name
  unset %getpic.*
  unset %Wunder*
  .timer-Wunderground off
  halt
}
alias Wunderground {
  set %Wunder.nick $me
  set %Wunder.chan dialog
  set %Wunder.name $+(Wunderground,%Wunder.chan)
  if ($hget(%Wunder.name)) { hfree %Wunder.name }
  if ($dialog(CurrentConditions)) { did -b CurrentConditions 25 }
  hmake %Wunder.name 5
  sockclose $+(Wunderground,%Wunder.chan) 
  set %Wunderurl $+(/cgi-bin/findweather/getForecast?query=,$replace($1-,$chr(32),$+(%,20)),&wuSelect=WEATHER)
  set %Wundersite www.wunderground.com
  sockopen %Wunder.name %Wundersite 80
  .timer-Wunderground 1 10 Wunderground.timeout
}
#Wunderground.trigger on
on *:TEXT:!Forecast*:# {
  if (%Wunder.inuse == 1) { .notice $nick Sorry, But Somebody else is already looking up their Weather. | halt }
  set %Wunder.inuse 1
  set %Wunder.nick $nick
  set %Wunder.chan $chan
  set %Wunder.name $+(Wunderground,%Wunder.chan)
  if (!$hget(%Wunder.name)) { hmake %Wunder.name 5 }
  sockclose %Wunder.name 
  set %Wunderurl $+(/cgi-bin/findweather/getForecast?query=,$replace($2-,$chr(32),$+(%,20)),&wuSelect=WEATHER)
  set %Wundersite www.wunderground.com
  sockopen $+(Wunderground,$chan) %Wundersite 80
  .msg $chan Weather Search in Progress. Please Wait.....
  .timer-Wunderground 1 10 Wunderground.timeout
}
#Wunderground.trigger end
on *:sockopen:Wunderground*: {
  sockwrite -n $sockname GET %Wunderurl HTTP/1.1
  sockwrite -n $sockname Host: %Wundersite $+ $CRLF $+ $CRLF
}
on *:sockread:Wunderground*: {
  if ($sockerr > 0) { echo -a >Socket Error< |  Wunderground.clear }
  else {
    var %Wundervar |  sockread %Wundervar
    if (Scroll down to view a list of all all cities isin %Wundervar) {
      if (%Wunder.chan == dialog) && ($dialog(CurrentConditions)) { did -a CurrentConditions 30 Country match. Be more Specific. | .timer 1 3 did -a CurrentConditions 30 }
      else { .msg %Wunder.chan You searched for a Country. Be more specific. | if ($hget(%Wunder.name)) { hfree %Wunder.name } }
      Wunderground.clear 
    }
    if (Click on a column heading to sort this information isin %Wundervar) {
      if (%Wunder.chan == dialog) && ($dialog(CurrentConditions)) { did -a CurrentConditions 30 Be more Specific. | .timer 1 3 did -a CurrentConditions 30 }
      else { .msg %Wunder.chan Too many results! Be more specific. | if ($hget(%Wunder.name)) { hfree %Wunder.name } }
      Wunderground.clear 
    }
    if (There has been an error isin %Wundervar) {
      if (%Wunder.chan == dialog) && ($dialog(CurrentConditions)) { did -a CurrentConditions 30 Location Doesn't exist | .timer 1 3 did -a CurrentConditions 30 }
      else { .msg %Wunder.chan Location Doesn't exist!! | if ($hget(%Wunder.name)) { hfree %Wunder.name } }
      Wunderground.clear 
    }
    if (<div id="curcondbox"> isin %Wundervar) { set %Wunder.Box On }
    if (5-Day Forecast isin %Wundervar) && ($dialog(CurrentConditions)) && (%Wunder.Chan == dialog) {
      hadd %Wunder.name 5-Day On
      did -e CurrentConditions 25
    }
    if ($between(%Wundervar,<img src="," height="140",1)) {
      if (jpg isin $right($between(%Wundervar,<img src="," height="140",1),3)) {
        hadd %Wunder.name radarlink $between(%Wundervar,<img src="," height="140",1)
        getrad $hget(%wunder.name,radarlink) $nopath($hget(%wunder.name,radarlink))
        if ($hget(%Wunder.name,radarlink)) && (%wunder.chan == dialog) {
          .timer 1 5 did -g Currentconditions 24 $+(Wunderground\,$nopath($hget(%Wunder.name,radarlink))) 
        }
      } 
      else {
        hadd %Wunder.name radarlink  temppic.gif
        getrad $between(%Wundervar,<img src="," height="140",1) temppic.gif
        if (%wunder.chan == dialog) {
          if ($hget(%Wunder.name,radarlink)) { .timer 1 5 did -g Currentconditions 24 $+(Wunderground\,temppic.gif) }
        }  
      }
    }
    if (%Wunder.Box == On) {
      if (Humidity: isin %Wundervar) { set %Wunder.Humidity On }
      if (Dew Point: isin %Wundervar) { set %Wunder.dewpoint On }
      if (Wind: isin %Wundervar) { set %Wunder.wind On }
      if (Wind Gust: isin %Wundervar) { set %Wunder.windgust On }
      if (Pressure: isin %Wundervar) { set %Wunder.pressure On }
      if (Heat Index: isin %Wundervar) { set %Wunder.heatindex On }
      if (Visibility: isin %Wundervar) { set %Wunder.visibility On }
      if (UV: isin %Wundervar) { set %Wunder.UV On }
      if (Clouds: isin %Wundervar) { set %Wunder.clouds On }
      if (Elevation: isin %Wundervar) { set %Wunder.elevation On }
      if ($between(%Wundervar,<div class="subG b">,</div>,1)) {
        hadd %Wunder.name location $between(%Wundervar,<div class="subG b">,</div>,1)
      }
      if (<span class="nobr"><span class="b"> isin %Wundervar) &&  (!$hget(%Wunder.name,temperature)) {
        hadd %Wunder.name temperature $deg($httpstrip(%Wundervar))
      }
      if ($between(%Wundervar,<td class="vaM taC"><img src="," width="42",1)) {
        hadd %Wunder.name ConditionLink $between(%Wundervar,<td class="vaM taC"><img src="," width="42",1)
        getpik $hget(%Wunder.name,Conditionlink) $nopath($hget(%Wunder.name,Conditionlink))
      }
      if ($between(%Wundervar,<div class="b" style="font-size: 14px;">,</div>,1)) {
        hadd %Wunder.name condition $between(%Wunder,<div class="b" style="font-size: 14px;">,</div>,1)
      }
      if (<span class="nobr"><span class="b"> isin %Wundervar) && (%Wunder.elevation) {
        hadd %Wunder.name elevation $httpstrip(%Wundervar)
        unset %Wunder.elevation
        unset %Wunder.Box
      }      
      if ($between(%Wundervar,<b>,</b>,1)) && (%Wunder.clouds) {
        hadd %Wunder.name clouds $between(%Wundervar,<b>,</b>,1)
        unset %Wunder.clouds
      }
      if ($between(%Wundervar,<td class="b">,</td>,1)) && (%Wunder.UV) {
        hadd %Wunder.name UV $httpstrip(%Wundervar)
        unset %Wunder.UV
      }
      if (<span class="nobr"><span class="b"> isin %Wundervar) && (%Wunder.visibility) {
        hadd %Wunder.name visibility $httpstrip(%Wundervar)
        unset %Wunder.visibility
      }      
      if (<span class="nobr"><span class="b"> isin %Wundervar) && (%Wunder.heatindex) {
        hadd %Wunder.name heatindex $deg($httpstrip(%Wundervar))
        unset %Wunder.heatindex
      }      
      if ($between(%Wundervar,<b>,</b>,1)) && (%Wunder.pressure) {
        hadd %Wunder.name pressure $httpstrip(%Wundervar)
        unset %Wunder.pressure
      }
      if (<span class="nobr"><span class="b"> isin %Wundervar) && (%Wunder.windgust) {
        hadd %Wunder.name windgust $httpstrip(%Wundervar)
        unset %Wunder.windgust
      }      
      if (<span class="nobr"><span class="b"> isin %Wundervar) && (%Wunder.wind) {
        hadd %Wunder.name wind $httpstrip(%Wundervar)
        unset %Wunder.wind
      }      
      if (<span class="nobr"><span class="b"> isin %Wundervar) && (%Wunder.dewpoint) {
        hadd %Wunder.name dewpoint $deg($httpstrip(%Wundervar))
        unset %Wunder.dewpoint
      }
      if ($between(%Wundervar,<td class="full b"><span class="pwsrt",</nobr></span></td>,1)) && (%Wunder.humidity) {
        hadd %Wunder.name humidity $httpstrip(%Wundervar)
        unset %Wunder.humidity
      }
    }
    if (<tr class="wHover noBorder"> isin %Wundervar) { set %Wunder.5-day On | unset %Wunder.Box }
    if (<td class="taC" style="width: isin %Wundervar) && (</td> isin %Wundervar) {
      hadd %Wunder.name days $hget(%Wunder.name,days) $httpstrip(%Wundervar)
    }
    if (<td>Enable</td> isin %Wundervar) {
      if (%Wunder.chan == dialog) && ($dialog(CurrentConditions)) {
        if ($hget(%Wunder.name,location)) { did -a Currentconditions 1 $hget(%Wunder.name,location) }
        if ($hget(%Wunder.name,temperature)) { did -a Currentconditions 3 $hget(%Wunder.name,temperature)  }
        if ($hget(%Wunder.name,humidity)) { did -a Currentconditions 14 $hget(%Wunder.name,humidity) }
        if ($hget(%Wunder.name,dewpoint)) { did -a Currentconditions 15 $hget(%Wunder.name,dewpoint) }
        if ($hget(%Wunder.name,wind)) { did -a Currentconditions 16 $hget(%Wunder.name,wind) }
        if ($hget(%Wunder.name,windgust)) { did -a Currentconditions 17 $hget(%Wunder.name,windgust) }
        if ($hget(%Wunder.name,pressure)) { did -a Currentconditions 18 $hget(%Wunder.name,pressure) }
        if ($hget(%Wunder.name,heatindex)) { did -a Currentconditions 19 $hget(%Wunder.name,heatindex) }
        if ($hget(%Wunder.name,visibility)) { did -a Currentconditions 20 $hget(%Wunder.name,visibility) }
        if ($hget(%Wunder.name,UV)) { did -a Currentconditions 21 $hget(%Wunder.name,UV) }
        if ($hget(%Wunder.name,clouds)) { did -a Currentconditions 22 $hget(%Wunder.name,clouds) }
        if ($hget(%Wunder.name,elevation)) { did -a Currentconditions 23 $hget(%Wunder.name,elevation) }
        if ($hget(%Wunder.name,conditionlink)) { .timer 1 5 did -g Currentconditions 2 $+(Wunderground\,$nopath($hget(%Wunder.name,conditionlink))) }
      }
      else {
        .msg %wunder.chan $colorz(Weather for $hget(%Wunder.name,location)  Temperature: $hget(%Wunder.name,temperature)  Humidity: $hget(%Wunder.name,humidity) $&
          Dew Point: $hget(%Wunder.name,dewpoint)  Wind: $hget(%Wunder.name,wind)  Pressure: $hget(%Wunder.name,pressure)  Heat Index: $&
          $hget(%Wunder.name,heatindex)  Visibility: $hget(%Wunder.name,visibility)  Clouds: $hget(%Wunder.name,clouds))
      }
    }
    if (<td class="full">Forecast for isin %Wundervar) {
      if (%Wunder.chan != dialog) { hfree %Wunder.name }
      Wunderground.clear
    }
    if (%Wunder.5-day == On) {
      if (<tr class="wHover noBorder"> isin %Wundervar) && ($hget(%Wunder.name,day5pic)) {
        if (%Wunder.chan == dialog) && $dialog(CurrentConditions) {
          WunderGround.Clear
        }
        else {
          .msg %wunder.chan $colorz(5-Day Forecast - $gettok($hget(%Wunder.name,days),1,32)  $hget(%Wunder.name,day1high)  $hget(%Wunder.name,day1low) $&
            $hget(%Wunder.name,day1condition) - $gettok($hget(%Wunder.name,days),2,32)  $hget(%Wunder.name,day2high)  $hget(%Wunder.name,day2low) $&
            $hget(%Wunder.name,day2condition) - $gettok($hget(%Wunder.name,days),3,32)  $hget(%Wunder.name,day3high)  $hget(%Wunder.name,day3low) $&
            $hget(%Wunder.name,day3condition) .)
          .msg %wunder.chan $colorz(5-Day Forecast - $gettok($hget(%Wunder.name,days),4,32)  $hget(%Wunder.name,day4high)  $hget(%Wunder.name,day4low) $&
            $hget(%Wunder.name,day4condition) - $gettok($hget(%Wunder.name,days),5,32)  $hget(%Wunder.name,day5high)  $hget(%Wunder.name,day5low) $&
            $hget(%Wunder.name,day5condition) .) 
          hfree %Wunder.name
        }
        wunderground.clear
      }
      if ($between(%Wundervar,<div><img src="," alt=",1)) && (!$hget(%Wunder.name,day5pic)) && ($hget(%Wunder.name,day4pic)) {
        hadd %Wunder.name day5pic $between(%Wundervar,<div><img src="," alt=",1)
        hadd %Wunder.name day5condition $between(%Wundervar,alt="," width="42",1)
        .timer 1 5 getpic $hget(%Wunder.name,day5pic) $nopath($hget(%Wunder.name,day5pic))
      }
      if ($between(%Wundervar,<span style="color: #900;">,</span>,1)) && (!$hget(%Wunder.name,day5high)) && ($hget(%Wunder.name,day4high)) {
        hadd %Wunder.name day5high $deg($between(%Wundervar,<span style="color: #900;">,</span>,1))
      }
      if ($between(%Wundervar,<span style="color: #009;">,</span>,1)) && (!$hget(%Wunder.name,day5low)) && ($hget(%Wunder.name,day4low)) {
        hadd %Wunder.name day5low $deg($between(%Wundervar,<span style="color: #009;">,</span>,1))
      }
      if ($between(%Wundervar,<div><img src="," alt=",1)) && (!$hget(%Wunder.name,day4pic)) && ($hget(%Wunder.name,day3pic)) {
        hadd %Wunder.name day4pic $between(%Wundervar,<div><img src="," alt=",1)
        hadd %Wunder.name day4condition $between(%Wundervar,alt="," width="42",1)
        .timer 1 4 getpic $hget(%Wunder.name,day4pic) $nopath($hget(%Wunder.name,day4pic))
      }
      if ($between(%Wundervar,<span style="color: #900;">,</span>,1)) && (!$hget(%Wunder.name,day4high)) && ($hget(%Wunder.name,day3high)) {
        hadd %Wunder.name day4high $deg($between(%Wundervar,<span style="color: #900;">,</span>,1))
      }
      if ($between(%Wundervar,<span style="color: #009;">,</span>,1)) && (!$hget(%Wunder.name,day4low)) && ($hget(%Wunder.name,day3low)) {
        hadd %Wunder.name day4low $deg($between(%Wundervar,<span style="color: #009;">,</span>,1))
      }
      if ($between(%Wundervar,<div><img src="," alt=",1)) && (!$hget(%Wunder.name,day3pic)) && ($hget(%Wunder.name,day2pic)) {
        hadd %Wunder.name day3pic $between(%Wundervar,<div><img src="," alt=",1)
        hadd %Wunder.name day3condition $between(%Wundervar,alt="," width="42",1)
        .timer 1 3 getpic $hget(%Wunder.name,day3pic) $nopath($hget(%Wunder.name,day3pic))
      }
      if ($between(%Wundervar,<span style="color: #900;">,</span>,1)) && (!$hget(%Wunder.name,day3high)) && ($hget(%Wunder.name,day2high)) {
        hadd %Wunder.name day3high $deg($between(%Wundervar,<span style="color: #900;">,</span>,1))
      }
      if ($between(%Wundervar,<span style="color: #009;">,</span>,1)) && (!$hget(%Wunder.name,day3low)) && ($hget(%Wunder.name,day2low)) {
        hadd %Wunder.name day3low $deg($between(%Wundervar,<span style="color: #009;">,</span>,1))
      }
      if ($between(%Wundervar,<div><img src="," alt=",1)) && (!$hget(%Wunder.name,day2pic)) && ($hget(%Wunder.name,day1pic)) {
        hadd %Wunder.name day2pic $between(%Wundervar,<div><img src="," alt=",1)
        hadd %Wunder.name day2condition $between(%Wundervar,alt="," width="42",1)
        .timer 1 2 getpic $hget(%Wunder.name,day2pic) $nopath($hget(%Wunder.name,day2pic))
      }
      if ($between(%Wundervar,<span style="color: #900;">,</span>,1)) && (!$hget(%Wunder.name,day2high)) && ($hget(%Wunder.name,day1high)) {
        hadd %Wunder.name day2high $deg($between(%Wundervar,<span style="color: #900;">,</span>,1))
      }
      if ($between(%Wundervar,<span style="color: #009;">,</span>,1)) && (!$hget(%Wunder.name,day2low)) && ($hget(%Wunder.name,day1low)) {
        hadd %Wunder.name day2low $deg($between(%Wundervar,<span style="color: #009;">,</span>,1))
      }
      if ($between(%Wundervar,<div><img src="," alt=",1)) && (!$hget(%Wunder.name,day1pic)) {
        hadd %Wunder.name day1pic $between(%Wundervar,<div><img src="," alt=",1)
        hadd %Wunder.name day1condition $between(%Wundervar,alt="," width="42",1)
        .timer 1 1 getpic $hget(%Wunder.name,day1pic) $nopath($hget(%Wunder.name,day1pic))
      }
      if ($between(%Wundervar,<span style="color: #900;">,</span>,1)) && (!$hget(%Wunder.name,day1high)) {
        hadd %Wunder.name day1high $deg($between(%Wundervar,<span style="color: #900;">,</span>,1)   )
      }
      if ($between(%Wundervar,<span style="color: #009;">,</span>,1)) && (!$hget(%Wunder.name,day1low)) {
        hadd %Wunder.name day1low $deg($between(%Wundervar,<span style="color: #009;">,</span>,1))
      }
    }
  }
}
alias -l deg { 
  return $replace($1-,&deg;,$chr(186),&#176;,$chr(176)) $iif(F isin $1-,$FtoC($remove($1-,&deg;,&#176;,F)),$CtoF($remove($1-,&deg;,&#176;,C)))
}
Alias  -l GetPic {
  if ($sock($+(getpic,$2))) { return }
  if ($isfile($+(wunderground\,$2))) { return }
  set %GetPic.Site $gettok($remove($1,http://),1,47)
  set %GetPic.URL $remove($1,$gettok($1,1,47),$gettok($1,2,47),//)
  set %GetPic.PicName $2
  if (!$isdir($+($mircdir,wunderground))) { mkdir wunderground }
  sockopen $+(GetPic,%getpic.picname) %getpic.site 80
}
On *:sockopen:GetPic*:{
  sockwrite -nt $sockname GET %getpic.url HTTP/1.0
  sockwrite $sockname Host: %getpic.site $+ $crlf $+ $crlf
}
On *:sockread:GetPic*:{
  if (!$sock($sockname).mark) {
    var %GetPic.var | sockread %GetPic.var
    if (%GetPic.var == $null) { sockmark $sockname 1 }
  }
  else {
    sockread &picture 
    bwrite $qt($+($mircdir,wunderground\,%getpic.picname)) -1 -1 &picture
  }
}
Alias -l GetPik {
  if ($isfile($+(wunderground\,$2))) { return }
  sockclose GetPik
  set %GetPik.Site $gettok($remove($1,http://),1,47)
  set %GetPik.URL $remove($1,$gettok($1,1,47),$gettok($1,2,47),//)
  set %GetPik.PicName $2
  if (!$isdir($+($mircdir,wunderground))) { mkdir wunderground }
  sockopen GetPik %GetPik.site 80
}
On *:sockopen:GetPik:{
  sockwrite -nt $sockname GET %GetPik.url HTTP/1.0
  sockwrite $sockname Host: %GetPik.site $+ $crlf $+ $crlf
}
On *:sockread:GetPik:{
  if (!$sock($sockname).mark) {
    var %GetPik.var | sockread %GetPik.var
    if (%GetPik.var == $null) { sockmark $sockname 1 }
  }
  else {
    sockread &pict 
    bwrite $qt($+($mircdir,wunderground\,%GetPik.picname)) -1 -1 &pict
  }
}
On *:sockclose:GetPik:{
  unset %GetPik.*
}
alias -l CurrentConditions {
  if ($dialog(CurrentConditions)) { dialog -v CurrentConditions CurrentConditions }
  else { dialog -m CurrentConditions CurrentConditions }
}
alias -l 5-Day {
  if ($dialog(5-DayForecast)) { dialog -v 5-DayForecast 5-DayForecast }
  else { dialog -m 5-DayForecast 5-DayForecast }
}
Alias -l GetRad {
  if ($isfile($+(wunderground\,$2))) { .remove $+(wunderground/,$2) }
  set %GetRad.Site $gettok($remove($1,http://),1,47)
  set %GetRad.URL $remove($1,$gettok($1,1,47),$gettok($1,2,47),//)
  set %GetRad.PicName $2
  if (!$isdir($+($mircdir,wunderground))) { mkdir wunderground }
  sockclose GetRad
  sockopen GetRad %GetRad.site 80
}
On *:sockopen:GetRad:{
  sockwrite -nt $sockname GET %GetRad.url HTTP/1.0
  sockwrite $sockname Host: %GetRad.site $+ $crlf $+ $crlf
}
On *:sockread:GetRad:{
  if (!$sock($sockname).mark) {
    var %GetRad.var | sockread %GetRad.var
    if (%GetRad.var == $null) { sockmark $sockname 1 }
  }
  else {
    sockread &pict 
    bwrite $qt($+($mircdir,wunderground\,%GetRad.picname)) -1 -1 &pict
  }
}  
On *:sockclose:GetRad:{
  unset %GetRad.*
}
;alias by Gummo
alias -l between { 
  noop $regex($1,/\Q $+ $2 $+ \E(.*?)\Q $+ $3 $+ \E/gi) 
  return $regml($4) 
}
alias -l httpstrip {
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;,$chr(9),$chr(13))
  return %x
}
alias -l colorz {
  var %string = $1-, %count = $gettok($1-,0,32), %counter = 1, %return
  var %c1 04 
  var %c2 04
  while (%counter <= %count) {
    if ($left($gettok(%string,%counter,32),1) isalpha) {
      %return = %return $+(,%c1,$left($gettok(%string,%counter,32),1),,%c2,$right($gettok(%string,%counter,32),$calc($len($gettok(%string,%counter,32)) - 1)),)
    }
    else { %return = %return $gettok(%string,%counter,32) }
    inc %counter
  }
  $iif($isid,return,say) %return
}
alias -l FtoC { $iif($isid,return,echo -a) $+($round($calc((5 / 9) * ($1 - 32)),0),°,C) }
alias -l CtoF { $iif($isid,return,echo -a) $+($round($calc(((9 / 5) * $1) + 32),0),°,F) }
menu * {
  Wunderground
  .Weather Dialogs:CurrentConditions
  .$iif($group(#Wunderground.Trigger) == On,$style(1)) Wunderground Trigger
  ..$iif($group(#Wunderground.Trigger) == On,$style(2)) On: .enable #Wunderground.Trigger
  ..$iif($group(#Wunderground.Trigger) == Off,$style(2)) Off: .disable #Wunderground.Trigger
  -
}

Comments

  (55)  RSS
Prelude
Comments: 99
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 25, 2009 3:08 pm
Man this is great, and i gave it a 10, which is my second 10 of the week ;o. I didn't test the BOT triggers but the dialogs worked fine. Thanks for posting.
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 25, 2009 3:17 pm
Thanks Prelude :)
Aucun50
Comments: 548
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 25, 2009 5:24 pm
Wow looks like you put a lot of time into this script, based on the picture you have it looks great can't test it atm tho.
andromeda
Comments: 26
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 25, 2009 6:59 pm
oh my, its going to rain LOL .. 10/10
hy71194
Comments: 16
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 26, 2009 1:51 pm
Nice!

A few bugs happened though.

Error 421: Unknown command: NOTICE$NICK
* /hfree: insufficient parameters (line 269, wunder.mrc)
* /did: invalid parameters
* /did: invalid parameters

I edited the script a little to notice it to the user, instead of sending to the chan. Is that where I went wrong? http://pastebin.torrentialstorm.net/104
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 26, 2009 2:00 pm
Yea, hy71194. Unfortunately your edit is causing the problem. Try re-pasting the script and editing it again. When you edit a line that is connected by $&, if you make a mistake,add a space, almost anything you do can cause the line not to work. Be very careful and only edit the .msg %wunder.chan and you should have no problem. The best way to do this would be to do a find and replace. Find --> .msg %wunder.chan Replace with -->> .notice %wunder.nick.
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 26, 2009 2:10 pm
Oh, I just looked up. Thanks andromeda :)
Yes Aucun50 , It did take quite a bit of time to design the dialogs and get the timing of the picture downloads right. Thanks for noticing :)
xt24
Comments: 5
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 26, 2009 11:53 pm
i like it
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 27, 2009 9:58 am
Thanks xt24 :)
ch7
Comments: 4
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 27, 2009 4:12 pm
Fantasic. Love it pitty there is no map icon of every area
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 27, 2009 4:55 pm
It's something I'm working on ch7. I'll update it when I have it perfected. It's a whole other socket script to get some of the pictures because they are realtime radar snapshots and only temporarily stored on the net. Also, these pictures will never be re-used, so the script needs to treat them differently and delete them after they are used.
I'll post a new comment when I get this part working :)
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 27, 2009 6:20 pm
Updated to temporarily download radar images from all countries.
ch7
Comments: 4
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 28, 2009 2:28 pm
/me goes to try :D



Tested and seems to work fine for me. Though all I can see is rain clouds where I live :(
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 28, 2009 6:03 pm
Just Rain here too ch7 ;/
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 30, 2009 7:53 pm
very very nicely done as per your usual standards. an easier trigger would be nice though.. !forecast or something like.. !wunderground is a bit of a handful to type heh. gets full 10 and a like from me.
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Apr 30, 2009 8:58 pm
Thank you Cheiron :) I left the long !wunderground trigger on there because I figured that most people already have a !weather of some sort. !forcast is a good suggestion though. I think I'll change that a little later.
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 1, 2009 1:55 am
many thanks for that. much easier to type too heh.
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 1, 2009 6:18 pm
i know what i was gonna ask about that was really bugging me... this script comes out multicolour. white and colour mixed in sentances and letters and all over the place. any chance might be able to make it all a fixed colour or at least 2 main colours.. eg dark green and dark blue.
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 1, 2009 9:03 pm
o.O oOOops! I didn't realize I had any colors on there ;/ I accidentally posted that color with a color alias that I wrote for a friend. Oh well, I went ahead and edited it so it would be easier to change the colors. Just change lines 446 nad 447 Cheiron.
This is inside the Colorz alias and will look like this.
Code:
  var %c1 04
  var %c2 04

%c1 is a highlight color for the first character of a word and %c2 is the color for the rest of the word. Just change them to the colors that you want. I have them both set to red, so all my words will be ALL red.
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 1, 2009 9:31 pm
the first letters were in white and the rest were in that ikky orange (ctrl + k 7)
and the temperatres were in different colours too heh
i notice it badly as i use black backgroud. i will have a look at the code and alter it now i been shown how. :D
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 2, 2009 1:45 am
**Laughs** @ ikky orange :D
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 2, 2009 5:08 am
ummmm.... 446 and 447 is this

Code:
while (%counter <= %count) {
    if ($left($gettok(%string,%counter,32),1) isalpha) {


so which bit in this block needs editing?

Code:

alias colorz {
  var %string = $3-, %count = $gettok($3-,0,32), %counter = 1, %return, %s = $1, %f = $2
  while (%counter <= %count) {
    if ($left($gettok(%string,%counter,32),1) isalpha) {
      %return = %return $+(,%s,$left($gettok(%string,%counter,32),1),,%f,$right($gettok(%string,%counter,32),$calc($len($gettok(%string,%counter,32)) - 1)),)
    }
    else { %return = %return $gettok(%string,%counter,32) }
    inc %counter
  }

PATX
Comments: 389
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 5, 2009 5:48 pm
ANOTHER awesome dailog and script w/ a point by FordLawnmower. 10/10
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 5, 2009 6:03 pm
@Cheiron Sorry I didn't notice your post till now :( The lines 446 and 447 were added to make it easier to edit the colors. If you have an older copy of the script it will be different. Sorry for the confusion. - If you paste the current copy of the script over top of the one you are using, you will see the color lines 446 and 447.
@PATX Thank You :)
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 5, 2009 7:21 pm
many thanks :)

right.. all text is indeed in red.. but... this is the real puzzle..

Quote:

12<20112:250am12> <Titan_Bot> Weather Search in Progress. Please Wait.....
12<20112:250am12> <Titan_Bot> 04W04eather 04f04or 04x04xxx 04xxxx, 04x04xxxx, 04E04AST 04S04USSEX (PWS) - 04T04emperature: 52.8°F - 04H04umidity: 84% 04D04ew 04P04oint: 48ºF - 04W04ind: 1.0mph - 04P04ressure: 30.10in - 04H04eat 04I04ndex: - 04V04isibility: 6.2miles - 04C04louds: 04M04ostly 04C04loudy
12<20112:250am12> <Titan_Bot> 5-Day 04F04orecast 04W04ednesday :: 59º 04F04 -|- 44º 04F04 - 04C04hance 04o04f 04R04ain - 04T04hursday :: 15º 04C04 -|- 7º 04C04 - 04C04hance 04o04f 04R04ain - 04F04riday :: 59º 04F04 -|- 44º 04F04 - 04C04hance 04o04f 04R04ain - 04S04aturday :: 15º 04C04 -|- 7º 04C04 - 04C04hance 04o04f 04R04ain - 04S04unday :: 60º 04F04 -|- 41º 04F04 - 

the first bit... weather search in progress is in white.. as are all the numerics oh wait... my bad. i use a black background and have spoken text in white ... lol it is all ok
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on May 5, 2009 8:36 pm
Oh, haha :DD Yea, it's made to do two colors so that is very Redundantly Red.
maverick_zero
Comments: 3
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 4, 2009 7:57 am
Just started using this yesterday, and I like it so far. However, I have some international users in the channel this is running in and was wondering if there was any way to have it display the temps in Celsius as well.
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 4, 2009 11:17 am
I'll take a look at it and see if I come up with a simple solution for this maverick_zero. It's displaying in Fahrenheit because the bot is in a country that uses Fahrenheit. If the bot was in Europe, for instance, it would automatically use Celsius and you would have the opposite problem.

The formulas are Tf = (9/5)*Tc+32 & Tc = (5/9)*(Tf-32) but I will have to take some time with the script to see how much of the code would have to change to add both of them.

Quick alias --->>
Code:

;syntax /FtoC TempinF - /CtoF TempinC  or you can use //say $FtoC(TempinF)
alias FtoC { $iif($isid,return,echo -a) $round($calc((5 / 9) * ($1 - 32)),0) }
alias CtoF { $iif($isid,return,echo -a) $round($calc((9 / 5) * $1 + 32),0) }


I'll look into changing the code a little later ;/
maverick_zero
Comments: 3
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 4, 2009 11:58 am
Thanks, I really appreciate it.
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 4, 2009 12:19 pm
Just Updated the Script to show both Fahrenheit and Celsius. :)
;/
I'm going to have to change the 5-day forecast dialog a little to fit both F and C. They still work, just over run their columns a little.

Trigger works fine :) I'll stretch the 5-day dialog a little later today.
maverick_zero
Comments: 3
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 4, 2009 12:57 pm
Fantastic! Thanks a ton. I only wish I could have been able to do it myself, but my mIRC scripting is pretty limited.
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 4, 2009 2:26 pm
Thank you maverick_zero :) Your suggestion improved the script.
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 4, 2009 3:18 pm
Just fixed/stretched the dialogs. It's a little bunched up but I added boxes around the days and a extra line for negative temps and temps over 2 digits.
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 18, 2009 3:11 pm
i have found another bug with this script FordLawnmower. line length exceed in mirc. forecast gets cut off
Quote:

12<20912:208pm12> <Sleeping_On_The_Job> !forecast chichester uk
12<20912:208pm12> <Titan_Bot> Weather Search in Progress. Please Wait.....
12<20912:208pm12> <Titan_Bot> 04W04eather 04f04or 04C04hichester, 04C04hichester, 04W04EST 04S04USSEX (PWS) - 04T04emperature: 61.3°F - 04H04umidity: 69% 04D04ew 04P04oint: 51ºF - 04W04ind: 2.5mph - 04P04ressure: 30.24in - 04H04eat 04I04ndex: - 04V04isibility: 6.2miles - 04C04louds: 04F04ew
12<20912:208pm12> <Titan_Bot> 5-Day 04F04orecast 04T04hursday :: 62º 04F04 -|- 50º 04F04 - 04S04cattered 04C04louds - 04F04riday :: 17º 04C04 -|- 10º 04C04 - 04C04lear - 04S04aturday :: 66º 04F04 -|- 50º 04F04 - 04C04hance 04o04f 04R04ain - 04S04unday :: 66º 04F04 -|- 10º 04C04 - 04C04hance 04o04f 04R04ain - 04M04onday :: 19º 04C04 -|- 50º 04F04 - 04C04hance 04o04f 04R
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 18, 2009 4:44 pm
I'll have a look at it tomorrow Cheiron. Just got in from work and I'm not feeling very well :( Thanks for the info though :)

Are you talking about the server line limit of 431 then?
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 18, 2009 4:52 pm
not sure.. but it cuts the sentance off on the last day so i would imagine yes it is hitting it. might need a bit of tweaking to streamline it a bit maybe?
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 18, 2009 8:06 pm
Thanks for pointing this out Cheiron :) It's probably been cutting off since I added the F to C Conversion.
I had to add a third line, but all is working good now :)
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 4:49 am
sweet as :) nice one and thankies
irchainscriptz
Comments: 125
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 7:30 am
Nice weather code there FordLawnMower, it worked great for me as i just added it and then tested it bam instant weather report for the montreal region :P 10/10

http://www.chainscriptz.com/images/weather_code.png
irchainscriptz
Comments: 125
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 12:49 pm
The only issue i have is in the dialogs theres no pictures.
irchainscriptz
Comments: 125
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 1:51 pm
ok nm i added the pics from the site and added them in the wunderground folder LOL :P
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 5:14 pm
@irchainscriptz The script should be downloading the pictures on it's own. I'll have a look at it later and see if something has changed on the wunderground page.
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 5:22 pm
i get an error with the dialogue side.. the dialogue main box closes but the 5day forecast box.. is a 50/50 whether the X shows to click or not.. if it doesnt i have to /quit/reconnect the bot
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 5:44 pm
What error are you getting Cheiron?
The 5day box only shows up if the socket returns information for the forecast. In some cases their is no forecast available. That's why I coded it that way.
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 6:01 pm
the box shows for my area on the 5day forecast when i use the dialogue. but the actual close doesnt always work.. the red x.. it is more often than not greyed out and unclickable. the one on the main dialogue "X's" fine.. it is just the 5day one that doesnt
irchainscriptz
Comments: 125
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 6:17 pm
Its ok FordLawnmower i added them in the folder in Wunderground and bingo they appeared!!


http://i20.photobucket.com/albums/b221/0nyX/2009-06-19_1534.png
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 6:39 pm
Oh ;/ That is very strange. It's nothing to do with the script then. mIRC is in control of that red X. I have a On Close event, but it only reacts to the closing of the dialog.
As far as I know, there is nothing I can do to stop mIRC from greying out the red x if it decides to do it for some reason.

I'm considering re-writing this whole script with binaries to speed it up. I might add a close button to the 5-day at that point.

Thanks for all the feedback Cheiron :)
Cheiron
Comments: 627
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 19, 2009 7:06 pm
no worries.. i think it might be where my bot is so heavily laden with security scripts constantly checking stuff in every room it is in also to blame. 6 rooms all configured differently. bot might be a bit flumoxed
irchainscriptz
Comments: 125
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 20, 2009 9:06 am
A Bit ya think LOL!!
SglCdnMade
Comments: 1
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Jun 20, 2009 9:20 am
I as of yet have not had any problem with the pics loading or the 5 day forecast dialog closing. Although, I did add a line of coding to close the 5 day forecast dialog when I pressed the close button on the main dialog.

On *:Dialog:CurrentConditions:Sclick:26: { dialog -x 5-DayForecast 5-DayForecast }
mnhead
Comments: 1
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Aug 7, 2009 2:28 pm
FordLawnmower,

i Absolutely love your weather script. One feature I've allays wanted to see in a weather script is the ability for the script to pick up rss weather watches and warnings maybe from this page, http://www.nws.noaa.gov/rss/ . As i am terrible at sockets i was wondering if you could add this feature to the script so it would msg the watches an warnings to the channels.

Very cool script.
Thnx,
FordLawnmower
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Aug 7, 2009 4:00 pm
Thanks mnhead :) I'll have a look at that site and see what I can do. It's probably not something that can be integrated into this script but perhaps there is another script there :)
RicJames
Comments: 26
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Sep 9, 2009 1:42 pm
excellent script as always. thanks fordlawnmower. quick suggestion if i may could maybe possibly make two triggers one for the 5 day forecast and one that shows the current temperature.
FordLawnmower
Comments: 412
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Sep 9, 2009 4:46 pm
Thanks RicJames :)
If I make any changes to this, I'll completely re-write it.
Since I added the trigger as an afterthought to the dialogs, it would just be a muddy mess if I tried to exclude some items from the results.
I'll add this to my list of scripts to re-write and I'll add some more options for trigger results then. :)
RicJames
Comments: 26
 
mIRC Snippet:  Weather Script w/5-day Forecast
Posted on Sep 13, 2009 5:23 am
Cool I'll keep an eye out in case you ever decide to do it.

Commenting Options

Register or Login to Hawkee.com or use your Facebook or Twitter account by clicking the corresponding button below.

  
Bottom