IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

1Beğeni(ler)

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 31 Mart 2007, 01:26   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Basit Otomatik Güncelleştirme




Ders Sahibi Cleus nickidir.

Açıklama:
Bu kod ile scriptinizin yeni bir sürümü veya güncellemesi yayınlandığında, eski sürümleri kullananları haberdar eder.

Çalışma İlkesi:
Belirli süreler ile bir internet adresine bağlanır ve oradaki verileri kendi verileri ile karşılaştırıp sonuca ulaşır.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias guncelleme_kontrolu { ;önce varsa açık olan bağlantıyı kapatalım sockclose guncelle ;şimdi bağlantıyı tekrar açalım (http:// koymadan!) sockopen guncelle
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
80 } ;burada bağlantı sağlandığı anda yapılacakları söylüyoruz. on 1:sockopen:guncelle: { ;eğer hata varsa kullanıcıya hata mesajı verelim ($sockerr 1'den büyük olunca hata var demek olur) if $sockerr > 1 { echo -a Dikkat: Bağlantı kurulmaya çalışılırken bir sorun ile karşılaşıldı. return } ;şimdi hangi dosyayı okumak istediğimizi söylüyoruz (burada / çok önemli) sockwrite -n $sockname GET /guncelleme.txt HTTP/1.1 sockwrite -n $sockname Host:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
ise, almaya basladigimiz verileri degerlendirecegiz on 1:sockread:guncelle: { ;hata varsa dur (hata mesaji yerleştirmek size kalmış) if $sockerr > 1 { return } ;sockread buradaki en önemli komut. o an okunan satırı %t değişkenine atar. sockread %t ;--------------- ; buradan sonrası tüm yorumlama işlerinin yapılacağı yer. ; buraya devam etmeden önce txt dosyasını tekrar gözden geçirmenizi tavsiye ederim ;--------------- if *SurumNo=* iswm %t { var %x = $remove(%t,SurumNo=) if %x > %KullanicininSurumNosu { echo -a YENİ SÜRÜM BULUNDU! } } }

İşin script kısmı bitti, şimdi guncelleme.txt diye bir dosya yaratalım ve içine şunları yazalım.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
SurumNo=2000 buraya amacsizca birseyler yazalim. nedenini daha sonra aciklayacagim

Artık deneme.txt dosyasını web sitenize upload edebilirsiniz. Yukarıda bahsettiğim amaçsız satır, HTTP protokolünün bize yaptığı bir azizlik. mIRC, sockread işlemi sırasında, okunan dosyadaki EN SON SATIRI OKUMAZ. Biz de en sona gereksiz birşey yazarak zaten okunmayacağı için bize gereken kısmı güvene alıyoruz
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


deneme.txt dosyasını sunucuya yolladıktan sonra, script kısmında gerekli adres düzeltmelerini yapıp /guncelleme_kontrolu yazdığımızda kontrol gerçekleşir.

Bir diğer önemli nokta ise, %KullanicininSurumNosu değişkeni. Örnek olarak Hurafe Script diye bir scriptimiz olsun. Bu scriptimizin 1.0 sürümünde %KullanicininSurumNosu değişkeninin değeri 1000 olsun. Gel zaman git zaman Hurafe Script v2'yi çıkarmak isteyelim. İşte tüm hikaye burada başlıyor. Hurafe Script v2'nin çıktığını duyurmak için, guncelle.txt dosyamıza

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
SurumNo=2000 buraya amacsizca birseyler yazalim.

yazıyoruz. Bu 2000 yerine, v1'deki %KullanicininSurumNosu değerinden büyük herhangi bir değeri yazabiliriz. Tüm mantık, yeni çıkacak scriptin %KullanicininSurumNosu değerinin, bir önceki sürümün %KullanicininSurumNosu değerinden büyük olmasında.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 12 Nisan 2007, 15:25   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Basit Otomatik Güncelleştirme




Cok Guzelbır sey Tbrıkler efendım.

 
Alıntı ile Cevapla

Alt 12 Nisan 2007, 15:26   #3
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Basit Otomatik Güncelleştirme




sockwrite -n $sockname GET /guncelleme.txt HTTP/1.1
sockwrite -n $sockname Host: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $+ $crlf $+ $crlf
Bu kısımda yardım edermısınız?

 
Alıntı ile Cevapla

Alt 16 Nisan 2007, 01:20   #4
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Basit Otomatik Güncelleştirme




Live Nickli Üyeden Alıntı
sockwrite -n $sockname GET /guncelleme.txt HTTP/1.1
sockwrite -n $sockname Host: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $+ $crlf $+ $crlf
Bu kısımda yardım edermısınız?

ne yapmak istediğini söyle? ne gibi o kısımda yardım istiyorsun?

 
Alıntı ile Cevapla

Alt 16 Temmuz 2007, 18:03   #5
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Basit Otomatik Güncelleştirme




Eğer ben, script'i startladığımda; ircforumlari.net/xfile.txt'yi download edip, $mircdir'deki xfile.txt ile değiştirmek istediğimde, ne gibi editlemeler yapmam gerekecekti, McKruGeR ?

 
Alıntı ile Cevapla

Alt 16 Temmuz 2007, 19:40   #6
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Basit Otomatik Güncelleştirme




Aşağıdaki örneği inceleyerek istediğini yapabilirsin.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:START: { guncelleme_kontrolu } alias guncelleme_kontrolu { if $sock(guncelle) { sockclose guncelle } unset %dr sockopen guncelle
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
80 } on *:SOCKCLOSE:guncelle: { halt } on *:SOCKREAD:guncelle: { if %dr != 1 { var %h sockread %h while $sockbr { if * !iswm %h { set %dr 1 break } sockread %h } } sockread 4096 &d while $sockbr { bwrite xfile.txt -1 -1 &d sockread 4096 &d } } on *:SOCKOPEN:guncelle: { if $sockerr { return } write -c xfile.txt sockwrite -nt $sockname GET /xfile.txt HTTP/1.0 sockwrite -nt $sockname Accept: */* sockwrite -nt $sockname Host:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
sockwrite -nt $sockname }


 
Alıntı ile Cevapla

Alt 17 Temmuz 2007, 17:24   #7
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Basit Otomatik Güncelleştirme




Erman, kod gayet verimli çalışıyor, teşekkür ederim. Ben birden çok .txt veya .mrc belgesi indirmek istediğimde bi sorun çıktı. Dosya isimlerini girdiğin yerlere bakarak, altlarına değişik belgeleride ekledim ama ilki hatasız, ikincisinde txt indirdi; içindeki bilgilerde html kodlar çıktı.
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Demek istediğim, xfile.txt, yfile.txt, zfile.txt bunları nasıl çoğaltabilirim?

 
Alıntı ile Cevapla

Alt 17 Temmuz 2007, 20:16   #8
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Basit Otomatik Güncelleştirme




Demek istediğini tam anlamadım ama farklı bi şekilde yapılabilir.İndireceğin dosyaları bir .zip dosyası olarak indirip daha sonra zipden çıkartılabilir.Biraz uzun olur ama bu şekilde scriptini tamamen güncelleyebilirsin.

 
Alıntı ile Cevapla

Alt 17 Temmuz 2007, 21:42   #9
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Basit Otomatik Güncelleştirme




Şöyle bi çözüm ürettim. Aynı kodu kullanarak, bi .mrc içine farklı isimlerle 10 tane socket açıp ayrı ayrı dosyaları indirtebilicem. Teşekkürler.
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Konu MavipikSeL tarafından (17 Temmuz 2007 Saat 23:07 ) değiştirilmiştir.
 
Alıntı ile Cevapla

Alt 28 Temmuz 2007, 04:38   #10
Çevrimdışı
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

Cevapla

Etiketler
basit, guncellestirme, güncelleştirme, mirc, mirc download, mirc indir, otomatik


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Sığır Hastalıkları - Basit Hazımsızlık (Basit İndigesyon) Hastalığı Lilith Hayvan Hastalıkları 0 17 Eylül 2014 20:06
Data Nesnesi ile Güncelleştirme Swat Visual Basic 0 11 Temmuz 2014 10:57
Grup Policy ile Otomatik Güncelleştirme ayarları Satuk Windows 0 03 Eylül 2012 16:37
Age of Conan İçin Yeni Güncelleştirme Geliyor! dreamy Oyun Dünyasından Son Haberler 0 08 Ekim 2011 22:37
Firefox 3.0.1 güncelleştirme paketi yayınlandı Kralice Windows 0 17 Temmuz 2008 15:36