alias su { if ($sock(update,0) == 1) { sockclose update } | sockopen update
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 80 }
;</su komutu ile sock'u siteye bağladık>
;<remote bölümü sock bağlanıp siteden dosya.txt dosyasını okuyacak..>
on 1:sockopen:update:{
if ($sockerr) { echo $color(info) -at Sock Bağlanamıyor Lütfen Tekrar Deneyin | halt }
echo -a Update Kontrol Ediliyor..
.sockwrite -n update GET /dosya.txt HTTP/1.1
.sockwrite -n update Host: update.site.com
.sockwrite -n update $clrf
}
;<dosya.txt dosyasının içinde olanlar
dosya script.ini
the end
<fazladan the end yazısını ekledim bu sockta hata vermemesi içindi.>
on 1:sockread:update:{
sockread %temp
if (content-length isin %temp) { set %dosyab $remove($gettok(%temp,2,58),$chr(32)) }
updates %temp
}
;<sock botumuz sitemize bağlanıp dosya boyutunu alıyor ve /updates komutunu uyguluyor>
;</updates komutu işlevleri>
alias updates {
if $1 != dosya { goto end } ;< 1. kelime dosya değilse :end satirina git
aspas $2- ;< aspas komutunu uygula 2. kelimeyi kullanarak
set %aspas x ;<aspas değerini x yap>
:end
if $1 == yok { echo -a Güncellenecek Dosya Yok.. } <;1. kelime yok ise güncellemeyi yok yap.>
if $1 == the && $2 == end { echo -a Dosya Bilgisi Alındı.. } <;söylememe gerek yok sanırım :)>
}
alias x writeini $mircdir\xclusive.ini $1- <ini dosyasına yazdırmak için..>
x3 return $readini(xclusive.ini,$1,$2-) <ini dosyasını okutmak için>
;<aspas komutunun görevleri>
alias aspas {
var %asfa dat $+ $rand(111,999) ;<%asfa değerini 111,999 arasi olustur dat567 gibi. bu siteye socku baglayip dosyayi indirmek icin>
sockopen %asfa update.ahkalbim.net 80 <bagla>
$x(sock, $+ %asfa $+ ,$1-) <ini dosyasına yazdırmak için..>
$x(update, $+ %asfa $+ ,$1-) <ini dosyasına yazdırmak için..>
}
-----------
<dat adindaki sock botumuz baglandiginda yapacagi islevler>
on 1:sockopen:dat*:{
if ($sockerr) { echo $color(info) -at Sock Bağlanamıyor Lütfen Tekrar Deneyin | halt }
sockwrite -n $sockname GET / $+ $x3(sock, $+ $sockname $+ ) HTTP/1.1 <ini dosyasından sock botumuzun adını kullanarak hangi dosyayı indireceğini belirliyoruz>
sockwrite -n $sockname Connection: keep-alive
sockwrite -n $sockname Host: %d.host
sockwrite $sockname $crlf
}
<dat* isimli sock botumuzu okutuyoruz>
on 1:sockread:dat*:{
sockread %sas
if (content-length isin %sas) { set %fsiz $remove($gettok(%sas,2,58),$chr(32)) | dsy $x3(sock, $+ $sockname $+ ) | $x4(sock, $+ $sockname $+ ) }
}
<ilk olarak dosya boyutunu alıyoruz %fsiz değeri..2. olarak dsy komutunu uyguluyoruz $x4 değeri ile ini dosyamızdan siliyoruz>
x4 remini $mircdir\xclusive.ini $1- < $x4 değeri.
;<dsy komutu>
alias dsy {
var %fs $findfile($mircdir, $+ $1 $+ ,0)
var %fx 1
while (%fx <= %fs) {
if $file($findfile($mircdir, $+ $1 $+ ,%fx)).size != %fsiz {
<yukardaki komut satırı ile bilgisayarımıza yüklü dosya boyutuna baktırdık eğer dosya boyutları farklı ise dosyamızı bilgisayarımıza yükleyeceğiz
if ($sock(rep,0) == 0) { dsydevam } <dosya yüklemesinin devamı>
}
inc %fx
}
}
<dosya yüklemesinin devamı /dsydevam>
alias dsydevam {
var %baydi $ini(xclusive.ini,update,0)
var %baydi2 $ini(xclusive.ini,update,1)
if %baydi == 0 { echo -a Güncelleme Tamamlandi | goto end }
var %okuini $readini(xclusive.ini,update, $+ %baydi2 $+ )
$x4(update, $+ %baydi2 $+ )
dl
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $+ %okuini < dosyayı yükletiyoruz /dl komutu ile>
echo -a %okuini Dosyası Yükleniyor... <bilgi beriyoruz>
:end
}
<dosya yükletme komutu /dl>
alias dl {
set %d.path $remove($1,%d.host,
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]))
if ($exists($mircdir $+ /update/ $+ $gettok(%d.path,$numtok(%d.path,47),47))) {
set %hmm $input($gettok(%d.path,$numtok(%d.path,47),47) Bu Dosya Daha Önceden Yüklenmiş $+ $chr(44) $crlf $+ Tekrar Yüklemek İstiyormusunuz?,y)
if (%hmm == $true) { .remove $mircdir $+ update/ $+ $gettok(%d.path,$numtok(%d.path,47),47) | goto start }
else { halt }
}
:start
set %time.total $ctime
if (http:// isin $1) { set %d.host $gettok($1,2,47) }
else { set %d.host $gettok($1,1,47) }
set %d.path $remove($1,%d.host,
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]))
sockopen rep $remove(%d.host,
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]) 80
:end
}
<dosyayı script'e yükledik..>
peki yükledikten sonra nasıl güncelleme yaparız?
/yukle dosyaadi.uzanti
alias yukle {
var %gnc $1
var %gnca $mircdirupdate\ $+ %gnc <scriptimizin içinde update klasörünün içindeki dosyayı alıyoruz>
var %gncd $findfile($mircdir, $+ %gnc $+ ,0) <aynı dosya adında başka bir dosya varmı aratıyoruz varsa bulunduğu klasörün adını alıyoruz>
var %gncs 1
while (%gncs <= %gncd) {
var %gncx $findfile($mircdir, $+ %gnc $+ , $+ %gncs $+ ) <tekrar dosyayı aratıyoruz>
if (update !isin %gncx) { <klasörün adı update değilde bu komut olmasa çakışma olabilri>
var %klasor $remove(%gncx, $+ %gnc $+ )
.copy -o %gnca %klasor <dosyayı gönderiyoruz -o komut satırı var olan dosyayı değiştirmek için>
echo -a %gnc Dosyası Başarıyla Script'e Kopyalandı
}
inc %gncs 1
if %gncs > %gncd { .remove %gnca } <yüklenen dosyayı update klasöründen sildiriyoruz>
}
}
<dl komutu rep adinda sock botu baglar rep adindaki sock botunun kodlari>
on *:SOCKREAD:rep: {
if (%d.check == 0) {
sockread %dat
if (*HTTP/* 404 Not Found* iswm %dat) { sockclose rep | echo -a HATA: Dosya Bulunamadi Sock Kapatildi | remini xclusive.ini update | remini xclusive.ini | halt }
if (content-length isin %dat) { set %fsize $remove($gettok(%dat,2,58),$chr(32)) }
if ($len(%dat) < 4) {
set %d.check 1
}
}
elseif (%d.check == 1) {
sockread &tmp
set %read $calc(%read + $sockbr)
set %rt $calc(%rt + $sockbr)
set %percents $int($calc(%read / %fsize * 100))
bwrite $mircdir $+ update/ $+ $gettok(%d.path,$numtok(%d.path,47),47) -1 &tmp
if (%read == %fsize) {
echo -a $gettok(%d.path,$numtok(%d.path,47),47) Dosyası Başarıyla Yüklendi
sockclose rep }
}
}
}