Neler yeni
MEGAForum - Teknoloji Forumu

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

Hava Durumu [2014]

Che

MFC Üyesi
  • Üyelik Tarihi
    11 Kas 2014
  • Mesajlar
    4
  • MFC Puanı
    0
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.

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.


PHP:
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:

PHP:
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.


Hoşca paylaşımlar dilerim...
 
Üst Alt