Jump to content
quixef

Gif Thread #6

Öne çıkan mesajlar

§ 11 Nis 2019, 00:38

 

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 12 Nis 2019, 20:40

otomatik çeviren script var ondan. vpnsiz garipler de görebilsin diye ama imgurp patlamış herhalde. sabahtan beri yok bende.

@ad3m https://greasyfork.org/en/scripts/35130-imgur-mirror-modified

kageurufu'lu versiyona geçtim ben

Spoiler

// ==UserScript==
// @name         Imgur Mirror
// @version      7
// @description  Switches all imgur links to the mirror site http://kageurufu.net/imgur
// @author       Adrien Pyke Façaed by Ad3m
// @include      *://*/*
// @exclude      *://imgur.com/*
// @exclude      *://*.imgur.com/*
// @grant        none
// ==/UserScript==
/**
* @param sel - the selector you want to wait for
* @param action - the callback that will be executed when element/s matching the given selector are found, it is passed the array of found elements
* @param stopLooking - if true the function will stop looking for more elements after the first match
*/
function waitForElems(sel, action, stopLooking) {
  var tick;
  var id = 'fke' + Math.floor(Math.random() * 12345);
  var type = window.MutationObserver ? 'M' : 'S';
  var lastMutation = Date.now();
  var lastCall = Date.now();
  var queuedCall;
  function throttle(func) {
    var now = Date.now();
    clearTimeout(queuedCall);
    // less than 100ms since last mutation
    if(now - lastMutation < 100) {
      // 500ms or more since last query
      if(now - lastCall >= 500) {
        func();
      } else {
        queuedCall = setTimeout(func, 100);
      }
    } else {
      func();
    }
    lastMutation = now;
  }
  function findElem(sel) {
    lastCall = Date.now();
    var found = [].filter.call(document.querySelectorAll(sel), function(elem) {
      return elem.dataset[id] !== 'y';
    });
    if(found.length > 0) {
      if(stopLooking) {
        type === 'M' ? tick.disconnect() : clearInterval(tick);
      }
      found.forEach(function(elem) {
        elem.dataset[id] = 'y';
        action(elem);
      });
    }
  }
  if(type === 'M') {
    tick = new MutationObserver(throttle.bind(null, findElem.bind(null, sel)));
    tick.observe(document.body, { subtree: true, childList: true });
  } else {
    tick = setInterval(findElem.bind(null, sel), 300);
  }
  findElem(sel);
  return {
    type: type,
    stop: function() {
      if(type === 'M') {
        tick.disconnect();
      } else {
        clearInterval(tick);
      }
    }
  };
}
/**
* @param regex - should match the site you're waiting for
* @param action - the callback that will be executed when a matching url is visited
* @param stopLooking - if true the function will stop waiting for another url match after the first match
*/
function waitForUrl(regex, action, stopLooking) {
  function checkUrl(urlTest) {
    var url = window.location.href;
    if(url !== lastUrl && urlTest(url)) {
      if(stopLooking) {
        clearInterval(tick);
      }
      lastUrl = url;
      action();
    }
    lastUrl = url;
  }
  var urlTest = (typeof regex === 'function' ? regex : regex.test.bind(regex)),
      tick = setInterval(checkUrl.bind(null, urlTest), 300),
      lastUrl;
  checkUrl(urlTest);
  return tick;
}
//FIX LINK 
(function() {
    'use strict';
 
    var regex2 = /((https?:\/\/)?(?:i?m?\.)?imgur\.com\/(.*?(?:png|jpeg|jpg|gifv|gif|mp4)))|.*/ig;
 
    var getNewLink2 = function(imgurLink2, fixLink) {
      var urlz = imgurLink2.replace(regex2, '$1');
             return urlz;
    };
 
    waitForElems('img,a', function(node) {
        var isImg = node.nodeName === 'IMG';
        var prop = isImg ? 'src' : 'href';
        var newLink = getNewLink2(node[prop], isImg);
        if(newLink) {
            node[prop] = newLink;
            if (node.dataset.hrefUrl) {
                node.dataset.hrefUrl = newLink;
            }
            if (node.dataset.outboundUrl) {
                node.dataset.outboundUrl = newLink;
            }
        }
    });
})();
//FIX LINK
(function() {
    'use strict';
 
    var regex = /imgur\.com\/(?!a\/|gallery\/)(?:r\/[a-z0-9_]+\/)?([a-z0-9]+)(\.+[a-z0-9]+)?/i;
 
    var getNewLink = function(imgurLink, useGif) {
        var match = imgurLink.match(regex);
        if (match) {
            var file = match[1];
        if (match[2] == null) { 
            return 'http://kageurufu.net/imgur/?' + file + '.png';
        }
        if (match[2] == '.gif') { 
            return 'http://kageurufu.net/imgur/?' + file + '.gifv';
        }          
        else {
            return null;
      }
     }
    };
 
    waitForElems('img,a', function(node) {
        var isImg = node.nodeName === 'IMG';
        var prop = isImg ? 'src' : 'href';
        var newLink = getNewLink(node[prop], isImg);
        if(newLink) {
          if (prop == 'src') { newLink = newLink.replace(/\.(gifv)($|\?)/, '.gif'); }
          //console.log(newLink);
          //console.log(prop);
            node[prop] = newLink;
            if (node.dataset.hrefUrl) {
                node.dataset.hrefUrl = newLink;
            }
            if (node.dataset.outboundUrl) {
                node.dataset.outboundUrl = newLink;
            }
        }
    });
})();

changeLinks();
document.addEventListener('scroll', changeLinks);
document.addEventListener('click', changeLinks);
function changeLinks() {
    var list = document.querySelectorAll('[href*="imgur.com"]');
    for (var i = 0; i < list.length; i++) {
        var node = list.item(i);
        node.setAttribute('href', node.getAttribute('href')
            .replace('m.imgur.com/a/', 'kageurufu.net/imgur/?a/')
            .replace('imgur.com/a/', 'kageurufu.net/imgur/?a/')
            .replace('m.imgur.com/gallery/', 'kageurufu.net/imgur/?a/')
            .replace('imgur.com/gallery/', 'kageurufu.net/imgur/?a/')
            .replace('https://', 'http://'));
        node.setAttribute('href', node.getAttribute('href')
            .replace('i.imgur.com/', 'kageurufu.net/imgur/?')
            .replace('imgur.com/', 'kageurufu.net/imgur/?')
            .replace('https://', 'http://'));
    }
    list = document.querySelectorAll('[src*="imgur.com"]');
    for (i = 0; i < list.length; i++) {
        var node = list.item(i);
        node.setAttribute('src', node.getAttribute('src')
            .replace('imgur.com/a/', 'kageurufu.net/imgur/?a/')
            .replace('imgur.com/gallery/', 'kageurufu.net/imgur/?a/')
            .replace('https://', 'http://'));
        node.setAttribute('src', node.getAttribute('src')
            .replace('i.imgur.com/', 'kageurufu.net/imgur/?')
            .replace('imgur.com/', 'kageurufu.net/imgur/?')
            .replace('https://', 'http://'));
    }
}
(function () {
  'use strict';
  if (window.location.host == "www.reddit.com") {
  function cl(ac) {
    var a = ac.querySelectorAll('a[data-href-url]');
    var ct_out = 0, ct_aff = 0, ct = 0, ct_in;
    for (var i = 0; i < a.length; i++) {
      /*
      // This is reddit's function to determine the url, which is stored in `o`.
      // It then hooks window unload to call sendBeacon with the url in `o` or
      // modifies the href attribute (if sendBeacon is disabled in config or unsupported by the browser).
      function o(e) {
       var t = $(e),
        r = Date.now(),
        o;
       return t.attr('data-inbound-url')
         ? o = t.attr('data-inbound-url')
         : !n && t.attr('data-outbound-expiration') > r && (o = t.attr('data-outbound-url')),
         o && (i ? s = o : e.href = o),
       !0
      }
      */

      // Some minimal counting so we can tell things are working
      if (a.getAttribute('data-inbound-url')) {
        ct_in++;
      }
      if (a.getAttribute('data-affiliate-url')) {
        ct_aff++;
      }
      if (a.getAttribute('data-outbound-url') || a.getAttribute('data-outbound-expiration')) {
        ct_out++;
      }

      // Goals:
      //  - make sure `o` stays undefined.
      //  - avoid ever getting this function called
      // Removing all the relevent attributes gets us both of those

      // Unclear what the purpose of these is, but they are being used to
      // re-write urls (and trigger entry to the fn above), so remove.
      a.removeAttribute('data-inbound-url');

      // Doesn't appear that reddit is injecting these affiliate links
      // anymore, but no reason to remove this
      a.removeAttribute('data-affiliate-url');

      // We don't actually need to remove this, but it does short circuit
      // the condition quicker & cleans up the html, so do it.
      a.removeAttribute('data-outbound-expiration');
      a.removeAttribute('data-outbound-url');

      ct++;
    }

    console.log('>>>');
    console.log('Outbound redirects removed: ' + ct_out);
    console.log('Inbound redirects removed: ' + ct_out);
    console.log('Affiliate redirects removed: ' + ct_aff);
    console.log('Total redirects removed: ' + ct);
    console.log('<<<');
  }

  var tbls = document.querySelector('#siteTable');
  var obs = new MutationObserver(function (r, self) {
    for (var i = 0; i < r.length; i++) {
      var ad = r.addedNodes;
      for (var j = 0; j < ad.length; j++) {
        var n = ad[j];
        cl(n);
      }
    }
  });
  obs.observe(tbls, {
    childList: true
  });

  // TODO: consider patching out window.navigator.sendBeacon (which reddit only uses for this link tracking)
  // TODO: consider blocking the recent_srs cookie used for tracking
  cl(document);
  }
}) ();

 

Xenus tarafından düzenlendi

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 13 Nis 2019, 14:03

@Xenus Şimdi gördüm eve geçebilince (?!) kage ve imgurp seçenekleri eklerim istediğiniz zaman dönüşümlü kullanırsınız.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 13 Nis 2019, 15:10

şimdi yine çalışıyor galiba. ilk defa gitti imgurp.

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 15 Nis 2019, 11:41

spacer.png

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 19 Nis 2019, 17:37

2yze4o.gif

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş
§ 19 Nis 2019, 18:44

deal with it gözlüğü eksik

Bu mesajı paylaş


Bu mesajın linki
Sosyal ağlarda paylaş

Yorum yazmak için üye olun veya giriş yapın

Yorum yazmak için üye olmanız lazım

Üye ol

Kayıt olun ve aramıza katılın!

Yeni bir hesap oluştur

Giriş yap

Zaten üyemiz misin? O halde giriş yap

Hemen giriş yap



×
×
  • Yeni Oluştur...