Çevrimdışı | !burç <burcunuz> (Yeni sistem)
Genellikle yazılan burç kodlarında, çalışma prensibi siteye bağlanıp yorumu alıp kullanıcıya yansıtmaktır ve bu işlevi her istekte tekrarlamak, ama bu sistem bana saçma geldi, çünkü günlük burç yorumu gün içerisinde aynıdır her defasında tekrar bağlanıp siteyle muhattap olmaya gerek yok. Yazdığım kod eğer o günün yorumları daha önceden alınmamışsa siteye bağlanıp tek seferde bütün yorumları alıyor ve isteyen kullanıcılara gönderiyor.
Kullanımı: !burç <burcunuz>
Not: Türkçe karekter duyarlıdır.
!burc koc gibi yazarsanız işlem yapmaz.
Kod: Kod: Kodu kopyalamak için üzerine çift tıklayın! on *:sockopen:burç*:{
var %s = sockwrite -n $sockname
%s GET /burclar/ $+ $gettok($sockname,2,$asc(+)) $+ -burcu.html HTTP/1.1
%s Host: burc.web.tr | %s
}
on *:sockread:burç*:{
var %burcyorum
sockread %burcyorum
if </p></div> isin %burcyorum {
$iif(!$read(burç.txt,w,$chr(91) $+ $gettok($sockname,2,$asc(+)) $+ $chr(93)),write burç.txt $chr(91) $+ $gettok($sockname,2,$asc(+)) $+ $chr(93))
write burç.txt $utfdecode($htmlfree(%burcyorum)) } }
On *:text:!burç*:#:{
inc -u5 $+(%,play,+,$nick)
if $($+(%,play,+,$nick),2) == 3 { ignore -u60 $nick | msg # 5 saniye içinde 3 defa istekte bulunduğun için tarafımdan 60 saniye ignore edildin. | halt }
if (!%burçlar) set %burçlar Koç|Boğa|İkizler|Yengeç|Aslan|Başak|Terazi|Akrep|Yay|Oğlak|Kova|Balık
if !$2 { msg $chan Burç adı girmediniz. Doğru kullanım: !burç $+(<,%burçlar,>) | halt }
if !$istok($+(%burçlar,|,ikizler),$2,124) { msg $chan Burç adını yanlış girdiniz. Doğru kullanım: !burç $+(<,%burçlar,>) | halt }
if $date != $read(burç.txt,1) { msg # Bugünün yorumları alınıyor. | burçlarıal | var %yenigün 1 }
msg $chan Burcun yorumu özelinize gönderilecek, lütfen bekleyin $nick $+ .
msg $nick Seçtiğiniz burç $qt($gettok(%burçlar,$findtok(%burçlar,$iif($2 == ikizler,İkizler,$2),124),124)) | msg $nick -
$iif(%yenigün,.timer $+ $ticks 1 6) yorumat $nick $2
}
alias yorumat { if $read(burç.txt,w,$+($chr(91),$lower($replace($2,ç,c,ğ,g,ı,i,ç,c,ş,s,İ,i)),$chr(93))) {
var %t $read(burç.txt,$calc($readn + 1))), %p 2,%e $numtok(%t,46)
while %p <= $calc(%e +1) { msg $1 $gettok(%t,$+($calc(%p -1),-,%p),46) $+ . | inc %p 2 } } }
alias burçlarıal {
sockclose burç*
if (!%burçlar) set %burçlar Koç|Boğa|İkizler|Yengeç|Aslan|Başak|Terazi|Akrep|Yay|Oğlak|Kova|Balık
$iif($isfile(burç.txt),.remove burç.txt) | write burç.txt $date | var %burc 1
while %burc <= 12 { sockopen $+(burç,+,$lower($replace($gettok(%burçlar,%burc,124),ç,c,ğ,g,ı,i,ç,c,ş,s,İ,i))) burc.web.tr 80 | inc %burc } }
alias htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ,$chr(9)) | return %x }
Genellikle yazılan burç kodlarında, çalışma prensibi siteye bağlanıp yorumu alıp kullanıcıya yansıtmaktır ve bu işlevi her istekte tekrarlamak, ama bu sistem bana saçma geldi, çünkü günlük burç yorumu gün içerisinde aynıdır her defasında tekrar bağlanıp siteyle muhattap olmaya gerek yok. Yazdığım kod eğer o günün yorumları daha önceden alınmamışsa siteye bağlanıp tek seferde bütün yorumları alıyor ve isteyen kullanıcılara gönderiyor.
Kullanımı: !burç <burcunuz>
Not: Türkçe karekter duyarlıdır.
!burc koc gibi yazarsanız işlem yapmaz.
Kod: Kod: Kodu kopyalamak için üzerine çift tıklayın! on *:sockopen:burç*:{
var %s = sockwrite -n $sockname
%s GET /burclar/ $+ $gettok($sockname,2,$asc(+)) $+ -burcu.html HTTP/1.1
%s Host: burc.web.tr | %s
}
on *:sockread:burç*:{
var %burcyorum
sockread %burcyorum
if </p></div> isin %burcyorum {
$iif(!$read(burç.txt,w,$chr(91) $+ $gettok($sockname,2,$asc(+)) $+ $chr(93)),write burç.txt $chr(91) $+ $gettok($sockname,2,$asc(+)) $+ $chr(93))
write burç.txt $utfdecode($htmlfree(%burcyorum)) } }
On *:text:!burç*:#:{
inc -u5 $+(%,play,+,$nick)
if $($+(%,play,+,$nick),2) == 3 { ignore -u60 $nick | msg # 5 saniye içinde 3 defa istekte bulunduğun için tarafımdan 60 saniye ignore edildin. | halt }
if (!%burçlar) set %burçlar Koç|Boğa|İkizler|Yengeç|Aslan|Başak|Terazi|Akrep|Yay|Oğlak|Kova|Balık
if !$2 { msg $chan Burç adı girmediniz. Doğru kullanım: !burç $+(<,%burçlar,>) | halt }
if !$istok($+(%burçlar,|,ikizler),$2,124) { msg $chan Burç adını yanlış girdiniz. Doğru kullanım: !burç $+(<,%burçlar,>) | halt }
if $date != $read(burç.txt,1) { msg # Bugünün yorumları alınıyor. | burçlarıal | var %yenigün 1 }
msg $chan Burcun yorumu özelinize gönderilecek, lütfen bekleyin $nick $+ .
msg $nick Seçtiğiniz burç $qt($gettok(%burçlar,$findtok(%burçlar,$iif($2 == ikizler,İkizler,$2),124),124)) | msg $nick -
$iif(%yenigün,.timer $+ $ticks 1 6) yorumat $nick $2
}
alias yorumat { if $read(burç.txt,w,$+($chr(91),$lower($replace($2,ç,c,ğ,g,ı,i,ç,c,ş,s,İ,i)),$chr(93))) {
var %t $read(burç.txt,$calc($readn + 1))), %p 2,%e $numtok(%t,46)
while %p <= $calc(%e +1) { msg $1 $gettok(%t,$+($calc(%p -1),-,%p),46) $+ . | inc %p 2 } } }
alias burçlarıal {
sockclose burç*
if (!%burçlar) set %burçlar Koç|Boğa|İkizler|Yengeç|Aslan|Başak|Terazi|Akrep|Yay|Oğlak|Kova|Balık
$iif($isfile(burç.txt),.remove burç.txt) | write burç.txt $date | var %burc 1
while %burc <= 12 { sockopen $+(burç,+,$lower($replace($gettok(%burçlar,%burc,124),ç,c,ğ,g,ı,i,ç,c,ş,s,İ,i))) burc.web.tr 80 | inc %burc } }
alias htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ,$chr(9)) | return %x } |