Advertisement
MrCheeze

gfycat/imgur html5 redirect

Dec 18th, 2014
748
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name        Gfycat/Imgur Redirect
  3. // @namespace   asdf
  4. // @description Changes gif links into gfy or gifv links.
  5. // @include     *
  6. // @version     1
  7. // @grant       none
  8. // @run-at      document-start
  9. // ==/UserScript== 
  10.  
  11. (function () {
  12.  
  13.     function get_html5_url(gif_url) {
  14.         var xmlHttp = new XMLHttpRequest();
  15.         xmlHttp.open( "GET", "http://gfycat.com/cajax/get/" + gif_url, false );
  16.         xmlHttp.send( null );
  17.  
  18.         var gfy = JSON.parse(xmlHttp.responseText).gfyItem;
  19.  
  20.         if (gfy.webmSize < gfy.gifSize && gfy.webmSize <= gfy.mp4Size) {
  21.             return gfy.webmUrl;
  22.         } else if (gfy.mp4Size < gfy.gifSize && gfy.mp4Size <= gfy.webmSize) {
  23.             return gfy.mp4Url;
  24.         } else {
  25.             return false;
  26.         }
  27.     }
  28.  
  29.     var gfy_regex = /^http:\/\/[A-Za-z]*\.gfycat\.com\/([A-Za-z]*).\gif$/;
  30.     var imgur_regex = /^http:\/\/i\.imgur\.com\/[A-Za-z0-9]+.gif$/
  31.     var result = gfy_regex.exec(window.location);
  32.     var result2 = imgur_regex.exec(window.location);
  33.     var gfy_name, html5_url
  34.    
  35.    
  36.     /* if (result && result[1]) { //current url is of a gfycat gif
  37.  
  38.         gfy_name = result[1];
  39.         html5_url = get_html5_url(gfy_name);
  40.         if (html5_url) {
  41.             window.location.replace(html5_url);
  42.         }
  43.     } else if (result2) {
  44.         window.location.replace(window.location + "v");
  45.     } */
  46.  
  47.     function replace_links() {
  48.         var links = document.getElementsByTagName('a');
  49.  
  50.         for (var i = 0; i < links.length; i++) {
  51.             var item = links[i];
  52.             result = gfy_regex.exec(item.href);
  53.             result2 = imgur_regex.exec(item.href);
  54.            
  55.             if (result && result[1]) {
  56.            
  57.                 gfy_name = result[1];
  58.                 html5_url = get_html5_url(gfy_name);
  59.                 if (html5_url) {
  60.                     item.href = html5_url;
  61.                 }
  62.             } else if (result2) {
  63.                 item.href = item.href + "v";
  64.             }
  65.         }
  66.     }
  67.    
  68.     window.addEventListener("DOMContentLoaded", replace_links, false);
  69.  
  70. }());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement