SHOW:
|
|
- or go back to the newest paste.
| 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),°</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),°</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) {
|
| 99 | + | if (*Heat Index: </a>* iswm %sockreader) {
|
| 100 | sockread %sockreader | |
| 101 | - | set %fl.hi $replace($remove(%sockreader,<td>,</td>),°,°F) |
| 101 | + | set %fl.hi $replace($remove(%sockreader,<td>,</td>),°,°) |
| 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>),°,°) | |
| 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>),°,°)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>),°,°) | |
| 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 |
| 208 | + | $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 |
| 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, ) | |
| 234 | return %x | |
| 235 | } | |
| 236 | ||
| 237 | on *:EXIT: {
| |
| 238 | if ($hget(feelslike)) | |
| 239 | hfree feelslike | |
| 240 | } |