Hava Durumu [2011]

Belirteceğiniz İl ve İlçe merkezlerinin Devlet Meteoroloji İşleri’nden alınan verilere göre 5 günlük hava tahminini ve o an ki hava durumunu özetleyen bir çalışmayı mIRC 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.

Kod:

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** iswm %dify) { write -n hava.txt $replace($htmlfree(%dify),Ä�,Ğ,ü,ü,ÅŸ,ş,ı,ı,Ç,Ç,ÄŸ,ğ,Ä°,İ,ç,ç,ö,ö,Å�,Ş) }
if $regex(%dify,/ctl00_mpBody_.+(“)?minS”>.+

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

/i) { write -n hava.txt $chr(160) En yüksek: $htmlfree(%dify) }
if $regex(%dify,/ctl00_mpBody_imgHadise.+” title=”(.+)” src=”.+

/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, ,°)
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 }
}
}

Ben kod içerisinde #kanal olarak #Meteoroloji kanalını belirledim,siz kendinize göre kanal ismini değişebilirsiniz.
Kanaldan bir görünüm:

[21:29] .hava sanliurfa
[21:29] <@Difuzyon> Verilere ulaşılmaya çalışıyor,lütfen bekleyiniz…
[21:29] <@Difuzyon> SANLIURFA için 5 günlük hava tahmini:
[21:29] <@Difuzyon> 14 Şubat Pazartesi- En düşük: 3- En yüksek: 13- Hava: YAĞMURLU
[21:29] <@Difuzyon> 15 Şubat Salı- En düşük: 7- En yüksek: 12- Hava: YAĞMURLU
[21:29] <@Difuzyon> 16 Şubat Çarşamba- En düşük: 6- En yüksek: 13- Hava: YAĞMURLU
[21:29] <@Difuzyon> 17 Şubat Perşembe- En düşük: 5- En yüksek: 13- Hava: PARÇALI BULUTLU
[21:29] <@Difuzyon> 18 Şubat Cuma- En düşük: 4- En yüksek: 13- Hava: YAĞMURLU
[21:29] <@Difuzyon> – SON DURUM * – 13 Şubat Pazar, 21:00- Hava- PARÇALI BULUTLU – Sıcaklık : 6.6C- –>- Nem : %94- Basınç : 1016.7 hPa- Görüş : 20 km
[21:29] veriler doğrumu
[21:30] güncel hava tahminini nerden alıyorsun
[21:31] <@Difuzyon> veriler tamamen YALAN
[21:31] <@Difuzyon> yağmurlu dediğine bakma, hava CİLLOP gibi
[21:32] 🙂
[21:32] <@Difuzyon> 😉
[22:12] <@Difuzyon> !hava eyup
[22:12] <@Difuzyon> EYUP için 5 günlük hava tahmini:
[22:12] <@Difuzyon> 14 Şubat Pazartesi- En düşük: 3- En yüksek: 9- Hava: ÇOK BULUTLU
[22:12] <@Difuzyon> 15 Şubat Salı- En düşük: 1- En yüksek: 7- Hava: YAĞMURLU
[22:12] <@Difuzyon> 16 Şubat Çarşamba- En düşük: 0- En yüksek: 6- Hava: ÇOK BULUTLU
[22:12] <@Difuzyon> 17 Şubat Perşembe- En düşük: 1- En yüksek: 10- Hava: PARÇALI BULUTLU
[22:12] <@Difuzyon> 18 Şubat Cuma- En düşük: 5- En yüksek: 15- Hava: YAĞMURLU
[22:12] <@Difuzyon> – SON DURUM * – 13 Şubat Pazar, 21:20- Hava- AZ BULUTLU – Sıcaklık : 4C- –>- Nem : %56- Basınç : 1018 hPa- Görüş : 10 km

Leave a Reply

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