Tekil Mesaj gösterimi
Alt 28 Temmuz 2007, 04:38   #10
Çevrimdışı
XcLusive
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Yanıt: Basit Otomatik Güncelleştirme




update sistemi yapabilirsiniz webden dosyalari alarak ve dosya boyutunu yuklu olan dosya ile karsilastirip eger dosya boyutlari degisikse guncelleyebilirsiniz.. hersey mantiga ve biraz olsun bilgiye bakar kendi script'imden birkac alinti yapacagim..

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
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 } } } }

bu benim scriptten aldığım ve tamamiyle kendi yazdığım kodlar arkadaşlar burda size nasıl bir update sistemi yapabileceğinizi anlattım basit ufak birşey kodlar ne kadar çalışır ne kadar çalışmaz bilemem saat gecenin 4.5 uykusuz bir şekilde yazdım sizlere anlatmak istedim hatalardan dolayı kusura bakmayın
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
amacım sizlere bu işin mantığını vermek nasıl olabilir? sorusunu kafanızdan kaldırmanız.eğer size bir yol gösterebilmiş isem ne mutlu bana iyi çalışmalar dilerim bu kodu derli toplu bir şekilde gösterdim isteyen arkadaşlar olursa scriptteki kodu olduğu gibi buraya alabilirim yeterki siz öğrenmek ve birşeyler yapmak isteyin..

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet