Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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),°</a>,</div>) $+ °
- set %fl.tc $round($calc(($remove(%fl.t,°) - 32) * (5/9)), 2) $+ °C
- set %fl.r $round($calc($remove($gettok(%sockreader,7,32),°</a>) + 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,<td>,</td>),°,°F)
- 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,<td>,</td>),°,°)
- 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,<td>,</td>),°,°)F
- set %fl.dewc $round($calc(($remove(%fl.dew,°) - 32) * (5/9)), 2) $+ °C
- }
- if (*Wind: </a>* iswm %sockreader) {
- sockread %sockreader
- set %fl.wind $remove(%sockreader,<td>,</td>)
- set %fl.windk $round($calc($remove(%fl.wind,mph)*1.61), 2) $+ km/h
- }
- if (*Direction: </a>* iswm %sockreader) {
- sockread %sockreader
- set %fl.dir $replace($remove(%sockreader,<td style="white-space:nowrap;">,</td>),°,°)
- }
- if (*Humidity: </a>* iswm %sockreader) {
- sockread %sockreader
- set %fl.hum $remove(%sockreader,<td>,</td>)
- }
- if (*Pressure: </a>* iswm %sockreader) {
- sockread %sockreader
- set %fl.pre $remove(%sockreader,<td>,</td>)
- set %fl.prek $round($calc($remove(%fl.pre,") * 33.86), 2) $+ mb
- }
- if (*Gusts: </a>* iswm %sockreader) {
- sockread %sockreader
- set %fl.gusts $remove(%sockreader,<td>,</td>)
- 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 (*<td colspan="2" style="padding-bottom:10px;white-space:nowrap;">* 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 (*<table class="Gauge">* iswm %sockreader) {
- set %fl.desc $remove(%sockreader,<strong>,</strong>,<table class="Gauge">)
- }
- if (*<strong>Sunrise:</strong>* iswm %sockreader) {
- set %fl.sunr $remove(%sockreader,<strong>,</strong>,<br />)
- }
- if (*<strong>Sunset:</strong>* iswm %sockreader) {
- set %fl.suns $remove(%sockreader,<strong>,</strong>)
- }
- if (*<strong>Moonrise:</strong>* iswm %sockreader) {
- set %fl.moonr $remove(%sockreader,<strong>,</strong>,<br />)
- }
- if (*<strong>Moonset:</strong>* iswm %sockreader) {
- set %fl.moons $remove(%sockreader,<strong>,</strong>)
- }
- if (*<strong>Moonphase:</strong><br />* iswm %sockreader) {
- sockread %sockreader
- set %fl.moonp $remove(%sockreader,<strong>,</strong>,<br />)
- }
- }
- 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 $+ ) :: 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
- 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
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement