Merhabalar,
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: Kodu kopyalamak için üzerine çift týklayýn!
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, ,°)
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:
Kod: Kodu kopyalamak için üzerine çift týklayýn!
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] <BLack> .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] <BLack> veriler doðrumu
[21:30] <BLack> 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] <BLack> :)
[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
Hoþca paylaþýmlar dilerim...