Advertisement
anon

feelslike

Jan 13th, 2014
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 8.04 KB | None | 0 0
  1. On *:START: {
  2.   if (!$hget(feelslike)) { hmake feelslike 20 }
  3.   if ($isfile(feelslike.hsh)) { hload -s feelslike feelslike.hsh }
  4. }
  5.  
  6. on *:LOAD: {
  7.   if (!$hget(feelslike)) { hmake feelslike 20 }
  8.   if ($isfile(feelslike.hsh)) { hload -s feelslike feelslike.hsh }
  9. }
  10.  
  11. ;====================
  12. ; Add or Remove Users
  13. ;====================
  14.  
  15. on *:TEXT:!fladd *:#: {
  16.   hadd -m feelslike $nick $2
  17.   .notice $nick You've been added to the hash table with code $2
  18.   hsave -s feelslike feelslike.hsh
  19.   msg # Added, use !fl
  20. }
  21.  
  22. on *:TEXT:!fldel *:#: {
  23.   if (($nick == $2) || ($nick == CriminalMind)) {
  24.     hdel feelslike $nick $2
  25.     msg # User deleted successfully.
  26.   }
  27.   else { msg # Permission Denied. }
  28. }
  29.  
  30. ;==============================
  31. ; Main Trigger, set search vars
  32. ;==============================
  33.  
  34. on *:TEXT:!fl*:#:{
  35.   .ignore -cu5 $nick 2
  36.   if ($sock(feelslike)) sockclose feelslike
  37.   if ($1 == !flx) {
  38.     set %fl.trig extra
  39.   }
  40.   if ($1 == !fl) {
  41.     set %fl.trig fl
  42.   }
  43.   if ($1 == !flf) {
  44.     set %fl.trig cond
  45.   }
  46.   if ($2) {
  47.     if ($hget(feelslike,$2) == $null) {
  48.       msg # No location specified for $2 $+ .
  49.     }
  50.     else {
  51.       set %userloc $hget(feelslike,$2)
  52.       sockopen feelslike www.intellicast.com 80
  53.       sockmark feelslike msg #
  54.       set %fl.nick $2
  55.     }
  56.   }
  57.   if (!$2) {
  58.     if ($hget(feelslike,$nick) == $null) {
  59.       msg # No location specified for $nick $+ .
  60.     }
  61.     else {
  62.       set %userloc $hget(feelslike,$nick)
  63.       sockopen feelslike www.intellicast.com 80
  64.       sockmark feelslike msg #
  65.       set %fl.nick $nick
  66.     }
  67.   }
  68. }
  69.  
  70. ;===============================
  71. ; Open socket, retrieve the info
  72. ;===============================
  73.  
  74. on *:SOCKOPEN:feelslike: {
  75.   sockwrite -nt $sockname GET /Local/Weather.aspx?location= $+ %userloc HTTP/1.1
  76.   sockwrite -nt $sockname Host: www.intellicast.com
  77.   sockwrite -nt $sockname Connection: close
  78.   sockwrite -nt $sockname $crlf
  79. }
  80.  
  81. on *:SOCKREAD:feelslike: {
  82.   if ($sockerr) { $sock(feelslike).mark Socket Error: $sock(feelslike).wsmsg }
  83.   var %sockreader
  84.   sockread %sockreader
  85.  
  86.   ;==================
  87.   ; Set the info vars
  88.   ;==================
  89.  
  90.   if (%fl.trig == fl) {
  91.     if (*Feels Like:* iswm %sockreader) {
  92.       set %fl.t $remove($gettok(%sockreader,7,32),&deg;</a>,</div>) $+ °
  93.       set %fl.tc $round($calc(($remove(%fl.t) - 32) * (5/9)), 2) $+ °C
  94.       set %fl.r $round($calc($remove($gettok(%sockreader,7,32),&deg;</a>) + 459.66), 2) $+ °
  95.     }
  96.     if (*Weather Report in* iswm %sockreader) {
  97.       set %fl.locmsg $remove($gettok(%sockreader,2-,32),Weather Report in, -)
  98.     }
  99.     if (*Heat Index* iswm %sockreader) {
  100.       sockread %sockreader
  101.       set %fl.hi $replace($remove(%sockreader,<td>,</td>),&deg;,°F)
  102.       set %fl.hic $round($calc(($remove(%fl.hi) - 32) * (5/9)), 2) $+ °C
  103.     }
  104.     if (*Visibility* iswm %sockreader) {
  105.       sockread %sockreader
  106.       set %fl.vis $replace($remove(%sockreader,<td>,</td>),&deg;,°)
  107.       set %fl.visk $round($calc($remove(%fl.vis,mi)*1.61), 2) $+ km
  108.     }
  109.     if (*Dew Point* iswm %sockreader) {
  110.       sockread %sockreader
  111.       set %fl.dew $replace($remove(%sockreader,<td>,</td>),&deg;,°)F
  112.       set %fl.dewc $round($calc(($remove(%fl.dew) - 32) * (5/9)), 2) $+ °C
  113.     }
  114.     if (*Wind: </a>* iswm %sockreader) {
  115.       sockread %sockreader
  116.       set %fl.wind $remove(%sockreader,<td>,</td>)
  117.       set %fl.windk $round($calc($remove(%fl.wind,mph)*1.61), 2) $+ km/h
  118.     }
  119.     if (*Direction: </a>* iswm %sockreader) {
  120.       sockread %sockreader
  121.       set %fl.dir $replace($remove(%sockreader,<td style="white-space:nowrap;">,</td>),&deg;,°)
  122.     }
  123.     if (*Humidity: </a>* iswm %sockreader) {
  124.       sockread %sockreader
  125.       set %fl.hum $remove(%sockreader,<td>,</td>)
  126.     }
  127.     if (*Pressure: </a>* iswm %sockreader) {
  128.       sockread %sockreader
  129.       set %fl.pre $remove(%sockreader,<td>,</td>)
  130.       set %fl.prek $round($calc($remove(%fl.pre,") * 33.86), 2) $+ mb
  131.     }
  132.     if (*Gusts: </a>* iswm %sockreader) {
  133.       sockread %sockreader
  134.       set %fl.gusts $remove(%sockreader,<td>,</td>)
  135.       set %fl.gustsk $round($calc($remove(%fl.gusts,mph)*1.61), 2) $+ km/h
  136.     }
  137.     if (*As of* iswm %sockreader) {
  138.       set %fl.time $remove($left(%sockreader,16),As of)
  139.     }
  140.     if (*<td colspan="2" style="padding-bottom:10px;white-space:nowrap;">* iswm %sockreader) {
  141.       sockread %sockreader
  142.       set %fl.conditions $nohtml(%sockreader)
  143.     }
  144.   }
  145.   if (%fl.trig == extra) {
  146.     if (*UV Index:* iswm %sockreader) {
  147.       set %fl.uvindex %sockreader
  148.     }
  149.     if (*Relative Humidity:* iswm %sockreader) {
  150.       set %fl.relhum %sockreader
  151.     }
  152.     if (*Precipitation:* iswm %sockreader) {
  153.       set %fl.precip %sockreader
  154.     }
  155.     if (*Snow:* iswm %sockreader) && ($right(%sockname,1) == %) {
  156.       set %fl.snow %sockreader
  157.     }
  158.     if (*Cloud Coverage:* iswm %sockreader) {
  159.       set %fl.clco %sockreader
  160.     }
  161.     if (*<table class="Gauge">* iswm %sockreader) {
  162.       set %fl.desc $remove(%sockreader,<strong>,</strong>,<table class="Gauge">)
  163.     }
  164.     if (*<strong>Sunrise:</strong>* iswm %sockreader) {
  165.       set %fl.sunr $remove(%sockreader,<strong>,</strong>,<br />)
  166.     }
  167.     if (*<strong>Sunset:</strong>* iswm %sockreader) {
  168.       set %fl.suns $remove(%sockreader,<strong>,</strong>)
  169.     }
  170.     if (*<strong>Moonrise:</strong>* iswm %sockreader) {
  171.       set %fl.moonr $remove(%sockreader,<strong>,</strong>,<br />)
  172.     }
  173.     if (*<strong>Moonset:</strong>* iswm %sockreader) {
  174.       set %fl.moons $remove(%sockreader,<strong>,</strong>)
  175.     }
  176.     if (*<strong>Moonphase:</strong><br />* iswm %sockreader) {
  177.       sockread %sockreader
  178.       set %fl.moonp $remove(%sockreader,<strong>,</strong>,<br />)
  179.     }
  180.   }
  181.   if (%fl.trig == cond) {
  182.     if (id="detail0" isin %sockreader) {
  183.       sockread %sockreader
  184.       sockread %sockreader
  185.       sockread %sockreader
  186.       sockread %sockreader
  187.       sockread %sockreader
  188.       if (evening isin %sockreader) {
  189.         sockread %sockreader
  190.         set %fl.condi $regsubex($nohtml(%sockreader),/( -?(\d+)F)/g,$+(\1,$chr(32),$chr(40),$round($calc((\2 - 32)*(5/9)),2),C,$chr(41)))
  191.       }
  192.       sockread %sockreader
  193.       set %fl.condi $regsubex($nohtml(%sockreader),/( -?(\d+)F)/g,$+(\1,$chr(32),$chr(40),$round($calc((\2 - 32)*(5/9)),2),C,$chr(41)))
  194.       sockread %sockreader
  195.       if (evening isin %sockreader) {
  196.         set %fl.condie $regsubex($nohtml(%sockreader),/( -?(\d+)F)/g,$+(\1,$chr(32),$chr(40),$round($calc((\2 - 32)*(5/9)),2),C,$chr(41)))
  197.       }
  198.     }
  199.   }
  200. }
  201.  
  202. ;===================================
  203. ; Close the socket, message the info
  204. ;===================================
  205.  
  206. on *:SOCKCLOSE:feelslike: {
  207.   if (%fl.trig == fl) {
  208.     $sock(feelslike).mark 7Currently for %fl.nick $+ : %fl.conditions & %fl.tc ( $+ %fl.t $+ ) :: 7Heat Index: %fl.hic ( $+ $remove(%fl.hi,$chr(32)) $+ ) :: 7Humidity: %fl.hum :: 7Wind: %fl.windk ( $+ $remove(%fl.wind,$chr(32)) $+ ) :: 7Wind Dir: %fl.dir :: 7Gusts: %fl.gustsk ( $+ $remove(%fl.gusts,$chr(32)) $+ ) ::  7Visibility: %fl.visk ( $+ $remove(%fl.vis,$chr(32)) $+ ) :: 7Dew Point: %fl.dewc ( $+ $remove(%fl.dew,$chr(32)) $+ ) :: 7Pressure: %fl.prek ( $+ $remove(%fl.pre,$chr(32)) $+ ) :: 7Updated: %fl.time
  209.     unset %fl.*
  210.     unset %userloc
  211.   }
  212.   if (%fl.trig == extra) {
  213.     $sock(feelslike).mark 7Currently for %fl.nick $+ : %fl.uvindex :: %fl.relhum :: %fl.precip :: %fl.snow :: %fl.clco :: %fl.sunr :: %fl.suns :: %fl.moonr :: %fl.moons : Moonphase: %fl.moonp
  214.     unset %fl.*
  215.     unset %userloc
  216.   }
  217.   if (%fl.trig == cond) {
  218.     if (%fl.condie == $null) {
  219.       $sock(feelslike).mark Forecast: %fl.condi
  220.     }
  221.     if (%fl.condie != $null) {
  222.       $sock(feelslike).mark Forecast: %fl.condi %fl.condie
  223.     }
  224.     unset %fl.*
  225.     unset %f.x
  226.     unset %userloc
  227.   }
  228. }
  229. ;===================================
  230. ; Aliases
  231. ;===================================
  232. alias -l nohtml {
  233.   var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
  234.   return %x
  235. }
  236.  
  237. on *:EXIT: {
  238.   if ($hget(feelslike))
  239.   hfree feelslike
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement