mIRC Hava Durumu

Belirteceğiniz İl ve İlçe merkezlerinin Devlet Meteoroloji İşleri‘nden alınan verilere göre 5 günlük tahminini ve o an ki durumunu özetleyen bir çalışmayı botunuzda kullanacak şekilde tasarladım.

Bu çalışmanın fikri forumda daha eskilerden el33t tarafından paylaşılmış fakat güncelliğini (veri alınan sitelerdeki değişim nedeniyle)kaybetmiş.

Aşağıdaki kodu mIRC botunuza ekledikten sonra kanaldaki bir nickin(kodu kendine ekleyen kişi hariç):
.hava Şehir veya İlçe
!hava Şehir veya İlçe

yazması halinde verilere ulaşacaktır.Devlet Meteoroloji İşleri sitesi illerin bazı ilçelerinde hava tahminleri vermiş,bu nedenle kimi ilçelerde verileri elde edemeyebilirsiniz.

 

alias havadurum {

.remove hava.txt

sockclose durum

sockopen durum dmi.gov.tr 80

}

on *:sockopen:durum:{

sockwrite -n $sockname GET /tahmin/il-ve-ilceler.aspx?m= $+ %difycity HTTP/1.1

sockwrite -n $sockname Host: $sock($sockname).addr

sockwrite -n $sockname Connection: Close

sockwrite -n $sockname $crlf

}

on *:sockread:durum:{

if ($sockerr) { msg %difychan $sock($sockname).wsmsg | halt }

else {

sockread %dify

if $regex(%dify,/Bilgi Bulunamad/i) { msg %difychan İstenen merkez bulunamadı! | sockclose durum | halt }

if $regex(%dify,/SonDurumRuzgarYon/i) { sockclose durum | msg %difychan $+(,$upper(%difycity),) için 5 günlük hava tahmini: | .play %difychan hava.txt 800 }

if (*ctl00_mpBody*SonDurum* iswm %dify) { write -n hava.txt $chr(160) $replace($htmlfree(%dify),Ğ,Ğ,ü,ü,ÅŸ,ş,ı,ı,Ç,Ç,ÄŸ,ğ,Ä°,İ,ç,ç,ö,ö,Ş,Ş) }

if $regex(%dify,/ctl00_mpBody.+SonDurum.+alt=”(.+)” title=”/i) { write -n hava.txt $chr(160)  $replace($regml(1),Ğ,Ğ,ü,ü,ÅŸ,ş,ı,ı,Ç,Ç,ÄŸ,ğ,Ä°,İ,ç,ç,ö,ö,Ş,Ş)  }

if (*ctl00_mpBody_*arka*trh*</t?>* iswm %dify) { write -n hava.txt $replace($htmlfree(%dify),Ğ,Ğ,ü,ü,ÅŸ,ş,ı,ı,Ç,Ç,ÄŸ,ğ,Ä°,İ,ç,ç,ö,ö,Ş,Ş) }

if $regex(%dify,/ctl00_mpBody_.+(“)?minS”>.+</td>/i) { write -n hava.txt $chr(160) En düşük: $htmlfree(%dify) }

if $regex(%dify,/ctl00_mpBody_.+(“)?maxS”>.+</td>/i) { write -n hava.txt $chr(160) En yüksek: $htmlfree(%dify) }

if $regex(%dify,/ctl00_mpBody_imgHadise.+” title=”(.+)” src=”.+</td>/i) { write -n hava.txt $chr(160) Hava: $replace($regml(1),Ğ,Ğ,ü,ü,ÅŸ,ş,ı,ı,Ç,Ç,ÄŸ,ğ,Ä°,İ,ç,ç,ö,ö,Ş,Ş)  $lf }

}

}

alias htmlfree {

var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$chr(32),%x), %x = $remove(%x,&nbsp;,°)

return %x

}

on $*:text:/[!\.]hava\s\S+/ASi:#Meteoroloji:{

if ($sock(durum,1).status == active || $play(1)) { notice $nick Sırada bekleyen çalışmanın bitmesini bekleyiniz. | halt }

else { msg $chan Verilere ulaşılmaya çalışıyor,lütfen bekleyiniz… | set -e %difycity $replace($2,ş,s,Ş,S,ı,i,ç,c,Ç,c,ü,u,Ü,U,ö,o,Ö,O,ğ,g,Ğ,G) | set -e %difychan $chan | havadurum }

}

 

Şayet kodu kendinize ekleyip kendinizin direktifiyle çalışmasını istiyorsanız,aşağıdaki koduda kendi mircinize eklersiniz:

 

on *:input:#Meteoroloji:{

if $regex($1-,/[!\.]hava\s\S+/ASi) {

if ($sock(durum,1).status == active || $play(1)) { echo -a Sırada bekleyen çalışmanın bitmesini bekleyiniz. | halt }

else { msg $chan Verilere ulaşılmaya çalışıyor,lütfen bekleyiniz… | set -e %difycity $replace($2,ş,s,Ş,S,ı,i,ç,c,Ç,c,ü,u,Ü,U,ö,o,Ö,O,ğ,g,Ğ,G) | set -e %difychan $chan | havadurum }

}

}

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir