mIRC Scripting  


Geri dön   mIRC Scripting > mIRC Scripting > Showcase - Hazır kodlar

Showcase - Hazır kodlar mIRC Scripting hakkında hazır kodları bulup, paylaşabileceğiniz bölüm.

Cevapla
 
LinkBack Seçenekler
  #1  
Alt 20 Kasım 2011, 23:04
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 32
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart FTP Upload v0.2a

Yazan: L4roXyL - Hasan AYDENİZ
Kod: FTP Upload v0.2a
Tarih: 20/11/2011
Not: mIRCScripting.net dökümanıdır.


Açıklama: Kodun çalışma şekli, Türkiye'de her yerde bilinen ve kullanılan (ezbere tek yol olarak bilinen) /write sistemi ile değildir. Tamamen socket bağlantı, FTP Raw Command-ları ve ftp passive(pasif modda) işlem yaptırarak, işlem yapılır. Yetkiniz dahilindeki herhangi bir FTP sunucusuna istediğiniz dosyayı yükleyebilirsiniz. Aynı zamanda meraklısına iki farklı kullanım şekli sundum. İsteyen dialog-tablo üzerinden, isteyen direkt komut girerek custom-window üzerinden kodu çalıştırabilir. Kod içerisinde Binary files dosya işleme sistemini kullandım.(file handling ilede yapılabilir) Ek olarak upload edilecek dosya, boyutuna göre parça transfer etme işlemini 3 parçaya böldüm. Kısacası düşük boyutlu dosyalar ile yüksek boyutlu dosyaları upload ederken, hız konusunda herhangi bir sıkıntı yaşanmayacaktır.

Ek açıklama: Custom window-da dosya upload ederken, sonlandırmak için pencereyi kapatın veya Pause/Break tuşuna basın.

Kullanım şekli: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port>
Dialog için: /sendfile d
Pencere için: /sendfile c <address> <username> <password> <dizin> <port>
Pencere örnek: /sendfile c mircscripting.net kullanıcı_adım şifrem /www 21


Dialog menüsü resmi:




Custom window resmi:




-

Kod:
;-----------------------------------------------------------------------------------
;FTP upload v0.2a
;l4roxyl code series - 2011,,.
;date: 20/11/2011
;use: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port>
;-----------------------------------------------------------------------------------
;started code
alias -l _input $iif($input($1-,wo,Hata) = $true,,) | dialog -v ftp_ | halt
alias _did $iif($dialog(ftp_),did -ra ftp_ 15,$iif($window(@ftp_upload),aline -c2 $v1 +++)) $1-
alias _len if ($len($1-) >= 20) { return $left($1-,20) $+ .. } | else return $1-
alias _did2 if ($dialog(ftp_)) did - $+ $1 ftp_ 5-9,13,14
alias _file_byte {
  var %_. = $file($1).size
  if (%_. < 1048576) return 9182
  if (%_. > 1048576 && %_. < 3145728) return 18364
  if (%_. > 3145728) return 55092
}
on *:keydown:@ftp_upload:*: {
  if ($keyval = 19) {
    $iif($sock(ftp),sockclose ftp)
    $iif($sock(ftp2),sockclose ftp2)
    $iif($hget(_ftp),hfree _ftp)
    unset %_sfile
    window -c $target
  }
}
on *:load: {
  var %e = echo -ac info +++
  %e FTP Upload v0.2a yüklendi.
  %e Kullanım: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port>
  %e Dialog için: /sendfile d
  %e Pencere için: /sendfile c <address> <username> <password> <dizin> <port>
  %e Pencere örnek: /sendfile c mircscripting.net kullanıcı_adım şifrem /public_ftp 21
  linesep 
  %e l4roxyl(Hasan AYDENİZ) - http://www.mIRCScripting.net - 20/11/2011
}
on *:close:@ftp_upload: {
  $iif($sock(ftp),sockclose ftp)
  $iif($sock(ftp2),sockclose ftp2)
  $iif($hget(_ftp),hfree _ftp)
  unset %_sfile
}
menu status,menubar {
  FTP Upload v0.2a
  .Run: if ($dialog(ftp_)) return | sendfile d
  .About:echo -aec info +++ l4roxyl(Hasan AYDENİZ) - http://www.mircscripting.net - 20/11/2011
}
dialog -l ftp_ {
  title "FTP Upload"
  size -1 -1 94 117
  option dbu
  text "FTP Adresi:", 1, 5 7 34 8
  text "Kullanıcı Adı:", 2, 5 17 34 8
  text "Şifre/login:", 3, 5 27 34 8
  text "Port(21):", 4, 5 37 34 8
  edit "", 5, 41 6 50 10, autohs
  edit "", 6, 41 16 50 10
  edit "", 7, 41 26 50 10, pass
  edit "", 8, 41 36 50 10
  button "Gönderilecek Dosyayı Seç", 9, 4 47 86 10, flat
  text "", 10, 4 60 86 8, center
  text "Hedef Klasör:", 12, 5 71 34 8
  edit "", 13, 41 70 50 10
  button "Karşıya Yükle", 14, 4 82 86 10, flat
  text "", 15, 4 106 86 8, center
  button "İptal", 16, 4 94 86 10, flat
}
alias sendfile {
  if (!$1) {
    echo -aec info +++ Err: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> [port]
    return
  }
  if ($sock(ftp)) sockclose ftp
  if ($sock(ftp2)) sockclose ftp2
  if ($1 = d) $iif(!$dialog(ftp_),dialog -mdi ftp_ ftp_,_input Dialog zaten açık.) 
  if ($1 = c) {
    if (!$6) {
      $iif($dialog(_ftp),dialog -c _ftp)
      echo -aec info +++ Err: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port>
      return
    }
    $iif(!$window(@ftp_upload),window -aCldk0 +l @ftp_upload -1 -1 300 300)
    $iif($window(@ftp_upload),clear $v1)
    $iif($dialog(ftp_),dialog -c $v1 $v1)
    %_sfile = $sfile($mircdir,Gönderilecek dosyayı seç,Seç)
    if (!%_sfile) { 
      if ($window(@ftp_upload)) aline -c2 @ftp_upload Gönderilecek dosya seçilmedi.
      return
    }
    else {
      sockopen ftp $2 $iif($6,$6,21)
      var %_h = hadd -m _ftp
      %_h _user $3
      %_h _pass $4
      %_h _file $shortfn(%_sfile)
      %_h dir $iif($5,$5,/)
    }
  }
}
on *:dialog:ftp_:*:*: {
  if ($devent = close) {
    $iif($sock(ftp),sockclose ftp)
    $iif($sock(ftp2),sockclose ftp2)
    $iif($hget(_ftp),hfree _ftp)
    unset %_sfile
  }
  if ($devent = init) {
    $iif($window(@ftp_upload),window -c $v1)
    did -a $dname 10 Gönderilecek dosya seçilmedi.
    did -a $dname 15 Durum: Aktarım yok.
    did -a $dname 8 21
  }
  if ($devent = sclick) {
    if ($did = 16) {
      $iif($sock(ftp),sockclose ftp)
      $iif($sock(ftp2),sockclose ftp2)
      $iif($hget(_ftp),hfree _ftp)
      _did2 b
      dialog -c ftp_ ftp_
    }
    if ($did = 9) {
      %_sfile = $sfile($mircdir,Gönderilecek dosyayı seç,Seç)
      if (!%_sfile) { 
        did -a $dname 10 Gönderilecek dosya seçilmedi.
        return
      }
      else did -ra $dname 10 Dosya: $_len($nopath(%_sfile))
    }
    if ($did = 14) {
      if (!$did($dname,5)) _input Adresi giriniz. $crlf $+ Örnek: mircscripting.net
      if (!$did($dname,6)) _input Kullanıcı adını girin.
      if (!$did($dname,7)) _input Şifre girin.
      if (!$did($dname,8)) {
        hadd -m _ftp port 21
        did -a $dname 8 21
      } 
      else {
        if ($did($dname,8) !isnum) _input Port sadece rakamdan oluşur. $crlf $+ Örneğin: FTP için 21
      }
      if (!$did($dname,13)) _input Hedef klasör seçin. $crlf $+ Örnek: /www - /public_ftp - Anadizin için: /
      if (!%_sfile) _input Gönderilecek dosyayı seçin.
      if (%_sfile && $did($dname,5) && $did($dname,6) && $did($dname,7) && $did($dname,8) && $did($dname,13)) {
        $iif($sock(ftp),sockclose ftp)
        $iif($sock(ftp2),sockclose ftp2)
        $iif($hget(_ftp),hfree _ftp)
        hadd -m _ftp _file $shortfn(%_sfile)
        hadd -m _ftp address $did($dname,5)
        hadd -m _ftp _user $did($dname,6)
        hadd -m _ftp _pass $did($dname,7)
        hadd -m _ftp port $did($dname,8)
        hadd -m _ftp dir $did($dname,13)
        sockopen ftp $hget(_ftp,address) $iif($hget(_ftp,port),$v1,21)
        did -ra $dname 15 Durum: Bağlantı kuruluyor..
        _did2 b
      }
    }
  }
}
on *:sockopen:ftp: {
  if ($sockerr) {
    _did Durum: Bağlantı başarısız.
    _did2 e
    return
  }
}
on *:sockread:ftp: {
  if ($sockerr) {
    _did2 e
    _did Bağlantı başarısız.
    return
  }
  sockread %_data
  while ($sockbr) {
    var %_raw = $token(%_data,1,32)
    if (%_raw = 220) {
      sockwrite -n $sockname user $hget(_ftp,_user)
      _did Kullanıcı adı girildi.
    }
    if (%_raw = 331) { 
      sockwrite -n $sockname pass $hget(_ftp,_pass)
      _did Şifre girildi, bekleniyor..
    }
    if (%_raw = 230) {
      sockwrite -n $sockname TYPE I
      _did Bağlantı doğrulandı.
    }
    if (%_raw = 200) sockwrite -n $sockname PASV
    if (%_raw = 227) {
      _did Pasif moda geçildi.
      var %s = $remove($token(%_data,-1,32),$chr(40),$chr(41))
      var %port = $token(%_data,5,44), %port2 = $token(%_data,6,44)
      var %port3 = $calc((%port * 2^8) + %port2)
      var %s = $replace($token(%s,1-4,44),$chr(44),$chr(46))
      sockopen ftp2 %s %port3
      sockwrite -n $sockname CWD $iif($hget(_ftp,dir),$v1,/)
    }
    if (%_raw = 250) { 
      sockwrite -n $sockname STOR $nopath($longfn($hget(_ftp,_file))) 
      _did Dizin seçildi: $token(%_data,-1,32)
      if ($window(@ftp_upload)) { 
        aline -c2 $v1 +++ Dosya: $_len($nopath(%_sfile)) / $bytes($file(%_sfile).size).suf
      }
    }
    if (%_raw = 150) {
      _did Veri gönderme kabul edildi.
      %=t = $ctime
      var %_pos = 0, %file = $hget(_ftp,_file)
      bread %file %_pos $_file_byte(%file) &_file
      sockwrite ftp2 &_file
      hadd -m pos pos $calc(%pos + $bvar(&_file,0))
    }
    if (%_raw = 530) {
      _did Kimlik doğrulama başarısız.
      _did2 e
      .timer 1 2 _did Bağlantılar koparıldı.
    }
    if (%_raw = 226) { 
      _did Dosya yüklendi.
      _did Yüklenme süresi: $duration($calc($ctime - %=t),3)
      _did2 e
      $iif($hget(_ftp),hfree $v1)
    }
    if (%_raw = 221) .timer 1 2 _did Çıkış yapıldı.
    sockread %_data
  }
  if (%_raw = 550) {
    _did Dizin bulunamadı. 
    _did2 e
    $iif($sock(ftp),sockclose ftp)
    $iif($sock(ftp2),sockclose ftp2)
    _did Bağlantı koparıldı.
  }
}
on *:sockwrite:ftp2:{
  if ($sockerr) {
    _did Aktarımda sorun oluştu.
    _did2 e
    return 
  }
  var %_pos = $hget(pos,pos), %_file = $hget(_ftp,_file)
  var %_p1 = $+(%,$round($calc((%_pos * 100)/ $file(%_file).size),1))
  var %_s = $bytes(%_pos,3).suf / $bytes($file(%_file).size,3).suf 
  if ($dialog(ftp_)) did -ra ftp_ 15 Yük.. ( $+ %_p1 $+ ) - %_s
  if ($window(@ftp_upload)) {
    var %l = $line($v1,0) - 1
    rline -c2 $v1 $calc(%l +1) ++++ Yük.. ( $+ %_p1 $+ ) - %_s
  }
  if (%_pos < $file(%_file).size) {
    bread %_file %_pos $_file_byte(%_file) &_file
    sockwrite $sockname &_file
    hadd -m pos pos $calc(%_pos + $bvar(&_file,0))
  }
  else { 
    sockclose $sockname 
    sockwrite -n ftp QUIT 
  }
}

Not: İleriki zamanlarda FTP socket bağlantıları hakkında geniş bir ders yazabilirim vaktim olursa.
Not2: Bu kod işlev yapma amacı ile yazıldığından herhangi bir görsellik öğesi aramamanız tavsiye edilir.
Not3: Birden fazla karmaşık veri işleyicileri ile yazıldığından, editleme yapmanız tavsiye edilmez. Aksi taktirde kodu bozabilirsiniz. (normalde editlemeniz beni ilgilendirmez)
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
Sponsored Links
  #2  
Alt 20 Kasım 2011, 23:06
Avatar Yok

mS Puan: 301
mS Derece: WingmaN MeraklıWingmaN MeraklıWingmaN MeraklıWingmaN Meraklı
 
Üyelik tarihi: 29 Temmuz 2009
Mesajlar: 15
Konular: 11
Eklentiler: 1
Alınan Teşekkür: 3
Yapılan Teşekkür: 0
Standart

Projelere devam
Alıntı ile Cevapla
  #3  
Alt 05 Aralık 2011, 11:38
Avatar Yok
 Uzaklaştırılmış 

mS Puan: 11
mS Derece: xyzzy
 
Üyelik tarihi: 30 Kasım 2011
Mesajlar: 9
Konular: 0
Eklentiler: 0
Alınan Teşekkür: 0
Yapılan Teşekkür: 0
Standart

Merhaba, pencere sisteminde hata mevcut.
Kullanici adi olarak @domain.org seklinde tam uzanti eklenmeli aksi durumda baglanti saglanmiyor.
Suan @domain de kaliyor ve baglanti kurulamiyor.
Ornek resimdeki gibi sadece kullanici adi ile baglanti kurulamaz.
Alıntı ile Cevapla
  #4  
Alt 11 Aralık 2011, 19:01
Avatar Yok
 Uzaklaştırılmış 

mS Puan: 11
mS Derece: xyzzy
 
Üyelik tarihi: 30 Kasım 2011
Mesajlar: 9
Konular: 0
Eklentiler: 0
Alınan Teşekkür: 0
Yapılan Teşekkür: 0
Standart

Mesajimi duzenleme zamani gecti sanirim :x
Kullanim sekli olan
/sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port>
Yerine
/sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port> <filename>
ile dosyayida eklemek iyi bir yol olabilir.
Alıntı ile Cevapla
  #5  
Alt 22 Aralık 2011, 20:29
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 32
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart

Herhangi bir hata yok. Ben hatalı veya çalışmasında problem olan bir kod yayımlamam.
Sen kodu düzgün kullanırsan herhangi bir bağlantı sorunu yaşamazsın. Adresini, şifreni vb. bilgilerini doğru gireceksin ki bağlanabilesin. Yapay zeka bir kod değil ki bu. Hı yazılabilirmi? Evet. Ama profesyonel kullanıma yönelik olduğu için gerek duymadım. Yoksa basit 2-3 if sorgusu ile adres doğruluğu kontrol ettirilebilir.

Ek olarak diğer önerine gelince ise, sen dosyayı <filename> kısmında belirtsen dahi aranması gereken bir dizin olmalı değilmi? Direk dosya ismini girdiğinde mirc ana klasörü ($mircdir) içerisinde arayacaktır. Bulunamazsa herhangi bir işlem olmayacaktır. Dolayısıyla dediğin mantıksız. Gönderilmek istenen dosyayı her program veya programcık-da olduğu gibi sfile/msfile vb. dizin belirleme seçenekleri ile select yapmak işin doğrusu olur.

Ek açıklamalar;

13 yıllık internet aleminin verdiği sanal tecrübeye dayanarak kendine herhangi bir nick almanı veya en azından gerçek nickini kullanmanı tavsiye ederim.

Benim forumumda bazı kurallar vardır. Bunları okumanı öneririm. Forumda ortaya birşey koymayan, sadece amaçsız eleştiri yapan kişileri pek barındırmam. Buraya global veya portal bir forum gözü ile bakma. Gayet disiplinli ve amacı sadece mIRC Scripting olan kullanıcıların bulunduğu bir forumdur. Bunu 3 senedir açık olmasına rağmen üye sayısının 300-küsür olmasından anlayabilirsin zaten. Bu uyarıyı sana direk olarak yapmamın sebebine gelecek olursak, senin için olan gözlemlerim sonucu diyebilirim.
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
  #6  
Alt 22 Aralık 2011, 23:19
Avatar Yok
 Uzaklaştırılmış 

mS Puan: 11
mS Derece: xyzzy
 
Üyelik tarihi: 30 Kasım 2011
Mesajlar: 9
Konular: 0
Eklentiler: 0
Alınan Teşekkür: 0
Yapılan Teşekkür: 0
Standart

Herkes hata yapabilir.
Kodlamalari test edilip yorum veya elestiri yapmak, forumu forum yapan degil midir ?
Dosya secme ise sadece bir oneri iken bu neden tepki goruyor ki ?
Ek aciklamadan kasit nedir anlamadigim icin cevap vermiyorum.
Yine de sanirim bir kac sorunlu oldugunuz kisiden biri sandiniz ise yaniliyorsunuz.
Alıntı ile Cevapla
  #7  
Alt 23 Aralık 2011, 03:18
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 32
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart

Alıntı:
Kodlamalari test edilip yorum veya elestiri yapmak, forumu forum yapan degil midir ?
Evet yorumlar forumu forum yapandır. Ama gerekli ve yerinde olan yorumlar. Ek olarak burası IF vb. forumu değil. Eğer kendini bir tester olarak görüyorsan "ki değilsin" ilk öncelikle düzgün denemeler yapmalı ve o düzgün denemelere ilişkin düzgün yorumlar yapmalısın.

Alıntı:
Dosya secme ise sadece bir oneri iken bu neden tepki goruyor ki ?
Daha tepki verdim, bu açıklamaydı.

Alıntı:
Ek aciklamadan kasit nedir anlamadigim icin cevap vermiyorum.
Aslında çok iyi anladığını bu cümleni kurarken sende iyi biliyorsun. Cevap vermemek bencede yerinde bir karar.

Alıntı:
Yine de sanirim bir kac sorunlu oldugunuz kisiden biri sandiniz ise yaniliyorsunuz.
Benim kimseyle sorunum yok. Ama sen öyle düşünüyorsan "ki öyle" o kişilerden birisi sen olabilirsin. Bu forumda dandik client korumalarına bile takılacak bir random nick ile ortaya birşey koymadan, sadece eleştiri(ki yerinde değil hiçbiri neredeyse) yapamazsın. Burası mS forumları, boş veya gereksiz adam yok burada aslan. Kimlerle muhatap olduğunu unutma.
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
  #8  
Alt 23 Aralık 2011, 03:21
Avatar Yok
 Uzaklaştırılmış 

mS Puan: 11
mS Derece: xyzzy
 
Üyelik tarihi: 30 Kasım 2011
Mesajlar: 9
Konular: 0
Eklentiler: 0
Alınan Teşekkür: 0
Yapılan Teşekkür: 0
Standart

Uyeligimi ve mesajlarimi silebilirsiniz, sacma kuruntulariniz ile size iyi calismalar.
Alıntı ile Cevapla
  #9  
Alt 23 Aralık 2011, 03:26
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 32
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart

Bence de yerinde bir karar. Lakin ben üyelik veya mesajları silmiyorum. Ama sana bir güzellik yapıp forumun ilk banlanan üyesi olmanı sağlamaktan büyük kuruntu duyuyorum.
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
Cevapla

Etiketler
mırc ftp

Seçenekler

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 Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Imageshack'e resim upload. mS-Desk Showcase - Hazır kodlar 1 14 Ağustos 2009 16:30


Yasal Uyarı

    5651 sayılı yasada belirtilen "Yer Sağlayıcı" olarak hizmet sunmaktadır. İlgili yasaya göre site yönetiminin tüm içerikleri kontrol etme yükümlülüğü yoktur. Bu sebep ile sitemiz, uyarıları dikkate alarak yasa dışı paylaşımlar hakkında gerekli işlemleri yapmaktadır. Oluşabilecek yasal sorumluluklar üyelerimize aittir. Gerekli şikayet bildirimleri yapabilmek için "burayı" tıklayarak gerekli alanları doldurup yapabilirsiniz.
mIRCScripting©
Powered by vBulletin®
Copyright © 2000-2015, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1

1 2 13 14 16 17 18 19 21 22 23 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 49 50 51 52 54 55 56 57 58 59 60 61 62 63 67 68 69 70 71 72 73 74 75 76