"feelslike" By anon (https://pastebin.com/u/anon) URL: https://pastebin.com/KrMZqmpu Created on: Friday 30th of January 2015 02:53:54 AM CDT Retrieved on: Friday 30 of October 2020 10:36:00 AM UTC On *:START: { if (!$hget(feelslike)) { hmake feelslike 20 } if ($isfile(feelslike.hsh)) { hload -s feelslike feelslike.hsh } } on *:LOAD: { if (!$hget(feelslike)) { hmake feelslike 20 } if ($isfile(feelslike.hsh)) { hload -s feelslike feelslike.hsh } } ;==================== ; Add or Remove Users ;==================== on *:TEXT:!fladd *:#: { hadd -m feelslike $nick $2 .notice $nick You've been added to the hash table with code $2 hsave -s feelslike feelslike.hsh msg # Added, use !fl } on *:TEXT:!fldel *:#: { if (($nick == $2) || ($nick == CriminalMind)) { hdel feelslike $nick $2 msg # User deleted successfully. } else { msg # Permission Denied. } } ;============================== ; Main Trigger, set search vars ;============================== on *:TEXT:!fl*:#:{ .ignore -cu5 $nick 2 if ($sock(feelslike)) sockclose feelslike if ($1 == !flx) { set %fl.trig extra } if ($1 == !fl) { set %fl.trig fl } if ($1 == !flf) { set %fl.trig cond } if ($2) { if ($hget(feelslike,$2) == $null) { msg # No location specified for $2 $+ . } else { set %userloc $hget(feelslike,$2) sockopen feelslike www.intellicast.com 80 sockmark feelslike msg # set %fl.nick $2 } } if (!$2) { if ($hget(feelslike,$nick) == $null) { msg # No location specified for $nick $+ . } else { set %userloc $hget(feelslike,$nick) sockopen feelslike www.intellicast.com 80 sockmark feelslike msg # set %fl.nick $nick } } } ;=============================== ; Open socket, retrieve the info ;=============================== on *:SOCKOPEN:feelslike: { sockwrite -nt $sockname GET /Local/Weather.aspx?location= $+ %userloc HTTP/1.1 sockwrite -nt $sockname Host: www.intellicast.com sockwrite -nt $sockname Connection: close sockwrite -nt $sockname $crlf } on *:SOCKREAD:feelslike: { if ($sockerr) { $sock(feelslike).mark Socket Error: $sock(feelslike).wsmsg } var %sockreader sockread %sockreader ;================== ; Set the info vars ;================== if (%fl.trig == fl) { if (*Feels Like:* iswm %sockreader) { set %fl.t $remove($gettok(%sockreader,7,32),°,) $+ ° set %fl.tc $round($calc(($remove(%fl.t,°) - 32) * (5/9)), 2) $+ °C set %fl.r $round($calc($remove($gettok(%sockreader,7,32),°) + 459.66), 2) $+ ° } if (*Weather Report in* iswm %sockreader) { set %fl.locmsg $remove($gettok(%sockreader,2-,32),Weather Report in, -) } if (*Heat Index: * iswm %sockreader) { sockread %sockreader set %fl.hi $replace($remove(%sockreader,,),°,°) set %fl.hic $round($calc(($remove(%fl.hi,°) - 32) * (5/9)), 2) $+ °C } if (*Visibility* iswm %sockreader) { sockread %sockreader set %fl.vis $replace($remove(%sockreader,,),°,°) set %fl.visk $round($calc($remove(%fl.vis,mi)*1.61), 2) $+ km } if (*Dew Point* iswm %sockreader) { sockread %sockreader set %fl.dew $replace($remove(%sockreader,,),°,°)F set %fl.dewc $round($calc(($remove(%fl.dew,°) - 32) * (5/9)), 2) $+ °C } if (*Wind: * iswm %sockreader) { sockread %sockreader set %fl.wind $remove(%sockreader,,) set %fl.windk $round($calc($remove(%fl.wind,mph)*1.61), 2) $+ km/h } if (*Direction: * iswm %sockreader) { sockread %sockreader set %fl.dir $replace($remove(%sockreader,,),°,°) } if (*Humidity: * iswm %sockreader) { sockread %sockreader set %fl.hum $remove(%sockreader,,) } if (*Pressure: * iswm %sockreader) { sockread %sockreader set %fl.pre $remove(%sockreader,,) set %fl.prek $round($calc($remove(%fl.pre,") * 33.86), 2) $+ mb } if (*Gusts: * iswm %sockreader) { sockread %sockreader set %fl.gusts $remove(%sockreader,,) set %fl.gustsk $round($calc($remove(%fl.gusts,mph)*1.61), 2) $+ km/h } if (*As of* iswm %sockreader) { set %fl.time $remove($left(%sockreader,16),As of) } if (** iswm %sockreader) { sockread %sockreader set %fl.conditions $nohtml(%sockreader) } } if (%fl.trig == extra) { if (*UV Index:* iswm %sockreader) { set %fl.uvindex %sockreader } if (*Relative Humidity:* iswm %sockreader) { set %fl.relhum %sockreader } if (*Precipitation:* iswm %sockreader) { set %fl.precip %sockreader } if (*Snow:* iswm %sockreader) && ($right(%sockname,1) == %) { set %fl.snow %sockreader } if (*Cloud Coverage:* iswm %sockreader) { set %fl.clco %sockreader } if (** iswm %sockreader) { set %fl.desc $remove(%sockreader,,,
) } if (*Sunrise:* iswm %sockreader) { set %fl.sunr $remove(%sockreader,,,
) } if (*Sunset:* iswm %sockreader) { set %fl.suns $remove(%sockreader,,) } if (*Moonrise:* iswm %sockreader) { set %fl.moonr $remove(%sockreader,,,
) } if (*Moonset:* iswm %sockreader) { set %fl.moons $remove(%sockreader,,) } if (*Moonphase:
* iswm %sockreader) { sockread %sockreader set %fl.moonp $remove(%sockreader,,,
) } } if (%fl.trig == cond) { if (id="detail0" isin %sockreader) { sockread %sockreader sockread %sockreader sockread %sockreader sockread %sockreader sockread %sockreader if (evening isin %sockreader) { sockread %sockreader set %fl.condi $regsubex($nohtml(%sockreader),/( -?(\d+)F)/g,$+(\1,$chr(32),$chr(40),$round($calc((\2 - 32)*(5/9)),2),C,$chr(41))) } sockread %sockreader set %fl.condi $regsubex($nohtml(%sockreader),/( -?(\d+)F)/g,$+(\1,$chr(32),$chr(40),$round($calc((\2 - 32)*(5/9)),2),C,$chr(41))) sockread %sockreader if (evening isin %sockreader) { set %fl.condie $regsubex($nohtml(%sockreader),/( -?(\d+)F)/g,$+(\1,$chr(32),$chr(40),$round($calc((\2 - 32)*(5/9)),2),C,$chr(41))) } } } } ;=================================== ; Close the socket, message the info ;=================================== on *:SOCKCLOSE:feelslike: { if (%fl.trig == fl) { $sock(feelslike).mark 7Currently for %fl.nick $+ : %fl.conditions & %fl.tc ( $+ %fl.t $+ F $+ ) :: 7Heat Index: %fl.hic ( $+ $remove(%fl.hi,$chr(32)) $+ F $+ ) :: 7Humidity: %fl.hum :: 7Wind: %fl.dir at %fl.windk ( $+ $remove(%fl.wind,$chr(32)) $+ ) :: $iif($left(%fl.gustsk,1) == 0,,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)) $+ F $+ ) :: 7Pressure: %fl.prek ( $+ $remove(%fl.pre,$chr(32)) $+ ) :: 7Updated: %fl.time ;unset %fl.* unset %userloc } if (%fl.trig == extra) { $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 unset %fl.* unset %userloc } if (%fl.trig == cond) { if (%fl.condie == $null) { $sock(feelslike).mark Forecast: %fl.condi } if (%fl.condie != $null) { $sock(feelslike).mark Forecast: %fl.condi %fl.condie } unset %fl.* unset %f.x unset %userloc } } ;=================================== ; Aliases ;=================================== alias -l nohtml { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ) return %x } on *:EXIT: { if ($hget(feelslike)) hfree feelslike }