Hoşgeldin Misafir

Resim Önizleme 1.5 MIRC Script Kodu

Enyalios

21 Eki 2020
873 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
mIRC Script için çok harika bir kod. Bu kod ne işe yarıyor. Kanala gönderdiginiz resim linkleri veya baska bir kişinin size gönderdigi resmi tek link üzerine tıklarayak resme önizleme yapabilirsiniz.  REsim Boyutlarini ayarlayabilirsiniz. Çok müthiş bir kod. Kodu remotelere ekleyiniz. ( ALT+R )
Kullanımı : Kanala Bir resim linki yazınız. Sonra bu link üzerine gelin ve bir kez tıklayin resim ön izlemesi açılıcaktir. Önizleme bir kaç saniye sonra kaybolucaktir.
Resmin tam URL adresini yaziyorsunuz.
Şu sekilde : -http://www.turkhacks.com/vazgecaBso.gif--



Kod:
on ^*:hotlink:*:*:{
  if ($regex($1,/^(http:\x2F\x2F)?(?(1)(?:www\.)?|www\.).+?\x2F(?:.+\x2F)?.+\.(?:jp(?:e)?g|gif|png|bmp)$/i) && %imgready == $true) {
    set %img.x $mouse.mx
    set %img.y $mouse.my
    if ((%imgclick == $true && $mouse.key & 1) || %imgclick == $false) {
      if (%imgpre && $exists(imgcache\ $+ $gettok($regsubex($1,/^(?:.+?\w)\x2F/,),-1,47))) {
        if ($window(@ImagePreview)) window -c @ImagePreview
        var %imgfile = imgcache\ $+ $gettok($regsubex($1,/^(?:.+?\w)\x2F/,),-1,47)
        var %w = $pic(%imgfile).width, %h = $pic(%imgfile).height
        if (%imgaspect && !%imgprct) {
          if (%w > %h) var %w = $round($calc(%w * (%imgsize / %h)),0), %h = %imgsize
          else var %h = $round($calc(%h * (%imgsize / %w)),0), %w = %imgsize
        }
        elseif (%imgaspect && %imgprct) {
          var %w = $round($calc(%w * %imgprct),0)
          var %h = $round($calc(%h * %imgprct),0)
        }
        window -pdBk0w0o +b @ImagePreview %img.x %img.y $iif(%imgaspect,%w %h,%imgsize %imgsize)
        if (%imgfade) .timertrans -m 64 1 setlayer $!calc(255 - $!timer(trans).reps * 4) @ImgÖnIzlemesi
        .drawpic -s @ImgÖnIzlemesi 0 0 $iif(%imgaspect,%w %h,%imgsize %imgsize) %imgfile
        .timerclosepreview 1 %imgfadeout fimgClose
      }
      else {
        set %imgloc $1
        set %imgready $false
        fetchimg $remove($regsubex(%imgloc,/(\w\x2F).++/,\1),http:,/)
      }
    }
    return
  }
  halt
}
alias -l fetchimg {
  if (!$sock(fimg)) {
    .sockopen fimg $1 80
    if ($window(@ImgÖnIzlemesi)) window -c @ImgÖnIzlemesi
    if (!$isid) {
      window -pdBk0w0o +b @ImgÖnIzlemesi %img.x %img.y %imgsize %imgsize
      var %t = Yükleniyor...
      drawtext -or @ImgÖnIzlemesi 0 Tahoma 9 $calc(%imgsize / 2 - $width(%t,Tahoma,9,1) / 2) $calc(%imgsize / 2 - $height(%t,Tahoma,9)) %t
      if (%imgfade) .timertrans -m 64 1 setlayer $!calc(255 - $!timer(trans).reps * 4) @ImgÖnIzlemesi
    }
  }
}
on *:sockopen:fimg:{
  if (!$sockerr) {
    var %x = $regsubex(%imgloc,/^(?:.+?\w)\x2F/,), %a sockwrite -n $sockname
    set %img.file $gettok(%x,-1,47)
    write -c %img.file
    if (!%img.chunk) %a GET / $+ %x HTTP/1.1
    else %a GET / $+ %x HTTP/1.0
    %a Host: $remove($regsubex(%imgloc,/(\w\x2F).++/,\1),http:,/)
    %a Accept: */*
    %a Connection: Close-connection
    %a
  }
  else {
    echo $color(info) -ae ImagePreview: Error while fetching image.
    unset %img.*
    unset %imgloc
    set %imgready $true
    window -c @ImgÖnIzlemesi
    .timertrans off
  }
}
on *:sockread:fimg:{
  if (!%img.header) {
    var %length
    sockread %length
    while ($sockbr) {
      if (*404*Not Found iswm %length || error isin %length) {
        window -c @ImgÖnIzlemesi
        sockclose $sockname
        .remove %img.file
        .timertrans off
        echo $color(info) -ae ImagePreview: Could not find image %imgloc (server returned 404).
        .unset %img.*
        .unset %imgloc
        drawpic -c
        set %imgready $true
        break
      }
      elseif (*Transfer-Encoding: chunked* iswm %length && !%img.chunk) {
        sockclose $sockname
        .remove %img.file
        .timertrans off
        drawpic -c
        set %img.chunk $true
        fetchimg $remove($regsubex(%imgloc,/(\w\x2F).++/,\1),http:,/)
        break
      }
      elseif (!%length) {
        set %img.header $true
        break
      }
      sockread %length
    }
  }
  else {
    sockread 8192 &image
    while ($sockbr) {
      bwrite %img.file -1 -1 &image
      if (!%img.pre) {
        if ($istok(.jpg jpeg .bmp,$right(%img.file,4),32) == $true && $pic(%img.file).size != 0) .drawpic -s @ImgÖnIzlemesi 0 0 %imgsize %imgsize %img.file
        else {
          inc %img.dots
          clear @ImgÖnIzlemesi
          var %t = $+(Yükleniyor,$str(.,$calc(%img.dots % 3 + 1)))
          drawtext -or @ImgÖnIzlemesi 0 Tahoma 9 $calc(%imgsize / 2 - $width(%t,Tahoma,9,1) / 2) $calc(%imgsize / 2 - $height(%t,Tahoma,9)) %t
        }
      }
      sockread 8192 &image
    }
  }
}
on *:sockclose:fimg:{
  if ($exists(%img.file)) {
    if ($pic(%img.file).width && $pic(%img.file).height && %imgaspect && !%img.pre) {
      var %w = $pic(%img.file).width, %h = $pic(%img.file).height
      if (!%imgprct) {
        if (%w > %h) fimgResize %img.file $round($calc(%w * (%imgsize / %h)),0) %imgsize
        else fimgResize %img.file %imgsize $round($calc(%h * (%imgsize / %w)),0)
      }
      else fimgResize %img.file $round($calc(%w * %imgprct),0) $round($calc(%h * %imgprct),0)
    }
    elseif (!%img.pre && $window(@ImgÖnIzlemesi)) { .drawpic -s @ImgÖnIzlemesi 0 0 %imgsize %imgsize %img.file }
    if (%imgpre) .copy -o %img.file imgcache\ $+ %img.file
    .remove %img.file
    .unset %img.*
    .timertrans off
  }
  else echo $color(info) -ae ImagePreview: Error while fetching image.
  .timerclosepreview 1 %imgfadeout fimgClose
  drawpic -c
  set %imgready $true
}
alias -l fimgResize {
  if ($timer(trans)) { .timerreResize -m 1 100 fimgResize $1 $2 $3 }
  else {
    var %i = 1, %j = 1
    if ($timer(closepreview)) .timerclosepreview off
    if (%imgprct) {
      while ($window(@ImgÖnIzlemesi).h != $3 || $window(@ImgÖnIzlemesi).w != $2) {
        window -pdBk0w0o +b @ImgÖnIzlemesi %img.x %img.y $calc(%imgsize + %i) $calc(%imgsize + %j)
        .drawpic -s @ImgÖnIzlemesi 0 0 $calc(%imgsize + %i) $calc(%imgsize + %j) $1
        if ($window(@ImgÖnIzlemesi).h < $3) inc %j
        elseif ($window(@ImgÖnIzlemesi).h > $3) dec %j
        if ($window(@ImgÖnIzlemesi).w < $2) inc %i
        elseif ($window(@ImgÖnIzlemesi).w > $2) dec %i
      }
    }
    else {
      if ($2 == %imgsize) {
        while ($window(@ImgÖnIzlemesi).h <= $3) {
          window -pdBk0w0o +b @ImgÖnIzlemesi %img.x %img.y %imgsize $calc(%imgsize + %i)
          .drawpic -s @ImgÖnIzlemesi 0 0 %imgsize $calc(%imgsize + %i) $1
          inc %i
        }
      }
      else {
        while ($window(@ImgÖnIzlemesi).w <= $2) {
          window -pdBk0w0o +b @ImgÖnIzlemesi %img.x %img.y $calc(%imgsize + %i) %imgsize
          .drawpic -s @ImgÖnIzlemesi 0 0 $calc(%imgsize + %i) %imgsize $1
          inc %i
        }
      }
    }
    .timerclosepreview 1 %imgfadeout fimgClose
  }
}

alias -l fimgClose {
  if (%imgfade) .timertransclose -m 64 1 setlayer $!calc($timer(transclose).reps * 4) @ImgÖnIzlemesi $(|) $!iif($timer(transclose).reps < 1,imgclosepre)
  else imgclosepre
}
on *:close:@ImgÖnIzlemesi:imgclosepre
alias -l imgclosepre {
  if ($window(@ImgÖnIzlemesi)) window -c @ImgÖnIzlemesi
  if ($exists(%img.file) == $true) {
    if (%imgpre && %imgready == $true) .copy -o %img.file imgcache\ $+ %img.file
    .remove %img.file
  }
  .timertrans off
  .timerclosepreview off
  .unset %img.*
  .unset %imgloc
  drawpic -c
  sockclose fimg
  set %imgready $true
}
menu @ImgÖnIzlemesi {
  sclick:set %img.move $mouse.x $mouse.y | .timerclosepreview off
  leave:unset %img.move | .timerclosepreview 1 %imgfadeout fimgClose
  uclick:unset %img.move | .timerclosepreview 1 %imgfadeout fimgClose
  mouse:{
    if (%img.move && $mouse.key & 1) {
      set %img.x $calc($mouse.dx - $gettok(%img.move,1,32))
      set %img.y $calc($mouse.dy - $gettok(%img.move,2,32))
      .window @ImgÖnIzlemesi %img.x %img.y $window(@ImgÖnIzlemesi).w $window(@ImgÖnIzlemesi).h
    }
  }
  dclick:imgclosepre
  rclick:{
    run %imgloc
    imgclosepre
    ;Open in browser:run %imgloc
    ;Close:imgclosepre
  }
}
menu status,channel,query {
  Resim önizlemesi
  .Aç $iif(%imgready,Off,On):set %imgready $iif(%imgready,$false,$true)
  . $iif(!%imgready,$style(2),$iif(%imgfade,$style(1))) Fade in\out:set %imgfade $iif(%imgfade,$false,$true)
  . $iif(!%imgready,$style(2),$iif(%imgpre,$style(1))) Önceden Fotograf:{
    set %imgpre $iif(%imgpre,$false,$true)
    if ($exists(imgcache\) == $false) .mkdir imgcache
  }
  . $iif(!%imgready || !%imgpre || !$findfile(imgcache\,*.*,0),$style(2)) Temizle Önbellek:{
    var %i 1
    while ($findfile(imgcache\,*.*,%i)) {
      .remove $ifmatch
      inc %i
    }
    echo $color(info) -ae * Resim Önizlemesi: Önbellek Temizle.
  }
  . $iif(!%imgready,$style(2),$iif(%imgclick,$style(1))) Önizleme için Tıklayın:set %imgclick $iif(%imgclick,$false,$true)
  . $iif(!%imgready,$style(2),$iif(%imgactive,$style(1))) Yakın Netlik Kaybı:set %imgactive $iif(%imgactive,$false,$true)
  . $iif(!%imgready,$style(2)) Resim Boyu Ayari...:if ($$?="Resmin Görünücek Piksel Boyutu" isnum) set %imgsize $v1
  . $iif(!%imgready,$style(2)) $iif(%imgfade,Fadeout,Auto-close) Zaman...:if ($$?=" $+ $+(Enter fadeout start time (in seconds),$chr(58),$crlf,$chr(40),-1 for infinity,$chr(41)) $+ " isnum) set %imgfadeout $iif($v1 == -1,31536000,$v1)
  . $iif(!%imgready,$style(2)) $iif(%imgaspect,$style(1)) Maintain aspect ratio:set %imgaspect $iif(%imgaspect,$false,$true)
  . $iif(!%imgready || !%imgaspect,$style(2)) Rescale by percentage $+ $iif(%imgprct,$chr(32) $+ $chr(40) $+ $calc(%imgprct * 100) $+ $chr(37) $+ $chr(41),...):if ($$?="Bir Pencere Girin (0-100%): $+ $crlf $+ No need for the % symbol." isnum 0-100) set %imgprct $calc($v1 / 100)
  .Ayarlari Sıfırla:{
    unset %img*
    set %imgready $true
    set %imgfade $true
    set %imgpre $false
    set %imgclick $true
    set %imgsize 128
    set %imgfadeout 3
    set %imgactive $false
    set %imgaspect $true
  }
}
on *:text:*:*:{
  if (%imgpre && $regex($1-,/^((http:\x2F\x2F)?(?(2)(?:www\.)?|www\.).+?\x2F(?:.+\x2F)?.+\.(?:jp(?:e)?g|gif|png|bmp))$/i)) {
    set %imgloc $regml(1)
    set %imgready $false
    set %img.x $mouse.mx
    set %img.y $mouse.my
    set %img.pre $true
    $fetchimg($remove($regsubex(%imgloc,/(\w\x2F).++/,\1),http:,/))
  }
}
on *:load:{
  .mkdir imgcache
  set %imgready $true
  set %imgfade $true
  set %imgpre $false
  set %imgclick $true
  set %imgsize 128
  set %imgfadeout 3
  set %imgactive $false
  echo $color(info) -ae * ImagePreview: Fully loaded. Enjoy. (By HydroIT, aka ^Vampire^, aka [FtUC]Hydro)
}
on *:unload:{
  echo $color(info2) -ae * ImagePreview: So long!
  .window -c @ImgÖnIzlemesi
  unset %img*
  var %i 1
  while ($findfile(imgcache\,*.*,%i)) {
    .remove $ifmatch
    inc %i
  }
  .rmdir imgcache
}
on *:active:*:{
  if ($lactive == @ImgÖnIzlemesi && !$timer(trans) && $active != $null && $appactive == $true && %imgactive == $true) {
    fimgClose
    sockclose fimg
    if ($exists(%img.file) == $true) {
      if (%imgpre && %imgready == $true) .copy -o %img.file imgcache\ $+ %img.file
      .remove %img.file
    }
    .timertrans off
    .timerclosepreview off
    .unset %img.*
    .unset %imgloc
    drawpic -c
    set %imgready $true
  }
}