Advertisement
Guest User

RJ code preview Userscript

a guest
Feb 19th, 2017
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         RJ code preview
  3. // @namespace    RJ code preview
  4. // @version      1.4
  5. // @description  Shows a popup with promo image from DLsite on hover
  6. // @author       You
  7. // @grant        none
  8. // @include     *4chan.org*
  9. // @include     *pastebin*
  10. // @include     *ghostbin*
  11. // @include     *ulmf*
  12. // @require      https://raw.githubusercontent.com/padolsey/findAndReplaceDOMText/master/src/findAndReplaceDOMText.js
  13. // ==/UserScript==
  14.  
  15. var EnableDiv = false; //Set it to false if you don't need a list of codes on the right
  16.  
  17. function findRJ() {
  18.   findAndReplaceDOMText(document.body, {
  19.     preset: 'prose',
  20.     find: /(R[E|J][0-9]{6})/g,
  21.     replace: function (m) {
  22.       var createA = document.createElement('a');
  23.       var numbart = m.text.substring(2);
  24.       var precode = m.text.substring(0, 2);
  25.       var rndidim = Math.ceil(parseInt(numbart) / 1000) * 1000;
  26.       var ass = 'http://www.dlsite.com/maniax/work/=/product_id/'.concat(m.text, '.html');
  27.       while (rndidim.toString().length < 6) rndidim = '0' + rndidim;
  28.       var imaga = 'javascript:var elmNewContent = document.createElement(\'div\');elmNewContent.style.cssText = \'border: solid 1px #CCC;padding: 5px;position: fixed;z-index:1000;width:560px;height:420px;\';elmNewContent.setAttribute(\'id\',"SICRITIMAGE");var elmNewImg = document.createElement(\'img\');elmNewImg.setAttribute(\'id\',"SICRITIMAGE1");elmNewImg.setAttribute(\'src\', "");elmNewImg.style.cssText = \'width:100%;height:100%;\';elmNewContent.appendChild(elmNewImg);document.body.appendChild(elmNewContent);document.getElementById("SICRITIMAGE1").src = \'' + 'http://img.dlsite.jp/modpub/images2/work/doujin/RJ' + rndidim + '/RJ' + numbart + '_img_main.jpg\';if (event.clientX < window.innerWidth - 560) {document.getElementById("SICRITIMAGE").style.left = (event.clientX + 20) + "px";} else {document.getElementById("SICRITIMAGE").style.left = (event.clientX - 580) + "px";} if (event.clientY < window.innerHeight - 420) {document.getElementById("SICRITIMAGE").style.top = (event.clientY + 20)  + "px";} else {document.getElementById("SICRITIMAGE").style.top = (event.clientY - 440)  + "px";}';
  29.       createA.setAttribute('href', ass);
  30.       createA.setAttribute('onMouseOver', imaga);
  31.       createA.setAttribute('onMouseOut', 'javascript:document.getElementById("SICRITIMAGE1").remove();document.getElementById("SICRITIMAGE").remove();');
  32.       createA.setAttribute('rel', 'noreferrer');
  33.       createA.setAttribute('target', '_blank');
  34.       createA.setAttribute('class', 'RJCODE');
  35.       createA.innerHTML = m.text;
  36.       return createA;
  37.     }
  38.    
  39.   });
  40.   findAndReplaceDOMText(document.body, {
  41.     preset: 'prose',
  42.     find: /(V[E|J][0-9]{6})/g,
  43.     replace: function (m) {
  44.       var createA = document.createElement('a');
  45.       var numbart = m.text.substring(2);
  46.       var precode = m.text.substring(0, 2);
  47.       var rndidim = Math.ceil(parseInt(numbart) / 1000) * 1000;
  48.       var ass = 'http://www.dlsite.com/pro/work/=/product_id/'.concat(m.text, '.html');
  49.       while (rndidim.toString().length < 6) rndidim = '0' + rndidim;
  50.       var imaga = 'javascript:var elmNewContent = document.createElement(\'div\');elmNewContent.style.cssText = \'border: solid 1px #CCC;padding: 5px;position: fixed;z-index:1000;width:560px;height:420px;\';elmNewContent.setAttribute(\'id\',"SICRITIMAGE");var elmNewImg = document.createElement(\'img\');elmNewImg.setAttribute(\'id\',"SICRITIMAGE1");elmNewImg.setAttribute(\'src\', "");elmNewImg.style.cssText = \'width:100%;height:100%;\';elmNewContent.appendChild(elmNewImg);document.body.appendChild(elmNewContent);document.getElementById("SICRITIMAGE1").src = \'' + 'http://img.dlsite.jp/modpub/images2/work/professional/' + precode + rndidim + '/' + m.text + '_img_main.jpg\';if (event.clientX < window.innerWidth - 560) {document.getElementById("SICRITIMAGE").style.left = (event.clientX + 20) + "px";} else {document.getElementById("SICRITIMAGE").style.left = (event.clientX - 580) + "px";} if (event.clientY < window.innerHeight - 420) {document.getElementById("SICRITIMAGE").style.top = (event.clientY + 20)  + "px";} else {document.getElementById("SICRITIMAGE").style.top = (event.clientY - 440)  + "px";}';
  51.       createA.setAttribute('href', ass);
  52.       createA.setAttribute('onMouseOver', imaga);
  53.       createA.setAttribute('onMouseOut', 'javascript:document.getElementById("SICRITIMAGE1").remove();document.getElementById("SICRITIMAGE").remove();');
  54.       createA.setAttribute('rel', 'noreferrer');
  55.       createA.setAttribute('target', '_blank');
  56.       createA.setAttribute('class', 'RJCODE');
  57.       createA.innerHTML = m.text;
  58.       return createA;
  59.           }
  60.    
  61.   });
  62.   if (EnableDiv) DivRJ();
  63. }
  64. function DivRJ() {
  65.   document.getElementsByClassName('rjblock') [0].innerHTML = '';
  66.   var HTMLdiv = '';
  67.   var RJcodiv = [
  68.   ];
  69.  
  70.   for (var i = 0; i < document.getElementsByClassName('RJCODE').length; i++) {
  71.     RJcodiv.push(document.getElementsByClassName('RJCODE') [i].innerText);
  72.   }
  73.  
  74.   for (var i = 0; i < RJcodiv.length; i++) {
  75.     if (HTMLdiv.indexOf(RJcodiv[i]) == - 1) {
  76.       HTMLdiv += ('<div>' + RJcodiv[i] + '</div>');
  77.     }
  78.   }
  79.   document.getElementsByClassName('rjblock') [0].innerHTML = HTMLdiv;
  80.   findAndReplaceDOMText(document.getElementsByClassName('rjblock')[0], {
  81.     preset: 'prose',
  82.     find: /(R[E|J][0-9]{6})/g,
  83.     replace: function (m) {
  84.       var createA = document.createElement('a');
  85.       var numbart = m.text.substring(2);
  86.       var precode = m.text.substring(0, 2);
  87.       var rndidim = Math.ceil(parseInt(numbart) / 1000) * 1000;
  88.       var ass = 'http://www.dlsite.com/maniax/work/=/product_id/'.concat(m.text, '.html');
  89.       while (rndidim.toString().length < 6) rndidim = '0' + rndidim;
  90.       var imaga = 'javascript:var elmNewContent = document.createElement(\'div\');elmNewContent.style.cssText = \'border: solid 1px #CCC;padding: 5px;position: fixed;z-index:1000;width:560px;height:420px;\';elmNewContent.setAttribute(\'id\',"SICRITIMAGE");var elmNewImg = document.createElement(\'img\');elmNewImg.setAttribute(\'id\',"SICRITIMAGE1");elmNewImg.setAttribute(\'src\', "");elmNewImg.style.cssText = \'width:100%;height:100%;\';elmNewContent.appendChild(elmNewImg);document.body.appendChild(elmNewContent);document.getElementById("SICRITIMAGE1").src = \'' + 'http://img.dlsite.jp/modpub/images2/work/doujin/RJ' + rndidim + '/RJ' + numbart + '_img_main.jpg\';if (event.clientX < window.innerWidth - 560) {document.getElementById("SICRITIMAGE").style.left = (event.clientX + 20) + "px";} else {document.getElementById("SICRITIMAGE").style.left = (event.clientX - 580) + "px";} if (event.clientY < window.innerHeight - 420) {document.getElementById("SICRITIMAGE").style.top = (event.clientY + 20)  + "px";} else {document.getElementById("SICRITIMAGE").style.top = (event.clientY - 440)  + "px";}';
  91.       createA.setAttribute('href', ass);
  92.       createA.setAttribute('onMouseOver', imaga);
  93.       createA.setAttribute('onMouseOut', 'javascript:document.getElementById("SICRITIMAGE1").remove();document.getElementById("SICRITIMAGE").remove();');
  94.       createA.setAttribute('rel', 'noreferrer');
  95.       createA.setAttribute('target', '_blank');
  96.       createA.setAttribute('class', 'RJCODED');
  97.       createA.innerHTML = m.text;
  98.       return createA;
  99.     }
  100.   });
  101.     findAndReplaceDOMText(document.getElementsByClassName('rjblock')[0], {
  102.     preset: 'prose',
  103.     find: /(V[E|J][0-9]{6})/g,
  104.     replace: function (m) {
  105.       var createA = document.createElement('a');
  106.       var numbart = m.text.substring(2);
  107.       var precode = m.text.substring(0, 2);
  108.       var rndidim = Math.ceil(parseInt(numbart) / 1000) * 1000;
  109.       var ass = 'http://www.dlsite.com/pro/work/=/product_id/'.concat(m.text, '.html');
  110.       while (rndidim.toString().length < 6) rndidim = '0' + rndidim;
  111.       var imaga = 'javascript:var elmNewContent = document.createElement(\'div\');elmNewContent.style.cssText = \'border: solid 1px #CCC;padding: 5px;position: fixed;z-index:1000;width:560px;height:420px;\';elmNewContent.setAttribute(\'id\',"SICRITIMAGE");var elmNewImg = document.createElement(\'img\');elmNewImg.setAttribute(\'id\',"SICRITIMAGE1");elmNewImg.setAttribute(\'src\', "");elmNewImg.style.cssText = \'width:100%;height:100%;\';elmNewContent.appendChild(elmNewImg);document.body.appendChild(elmNewContent);document.getElementById("SICRITIMAGE1").src = \'' + 'http://img.dlsite.jp/modpub/images2/work/professional/' + precode + rndidim + '/' + m.text + '_img_main.jpg\';if (event.clientX < window.innerWidth - 560) {document.getElementById("SICRITIMAGE").style.left = (event.clientX + 20) + "px";} else {document.getElementById("SICRITIMAGE").style.left = (event.clientX - 580) + "px";} if (event.clientY < window.innerHeight - 420) {document.getElementById("SICRITIMAGE").style.top = (event.clientY + 20)  + "px";} else {document.getElementById("SICRITIMAGE").style.top = (event.clientY - 440)  + "px";}';
  112.       createA.setAttribute('href', ass);
  113.       createA.setAttribute('onMouseOver', imaga);
  114.       createA.setAttribute('onMouseOut', 'javascript:document.getElementById("SICRITIMAGE1").remove();document.getElementById("SICRITIMAGE").remove();');
  115.       createA.setAttribute('rel', 'noreferrer');
  116.       createA.setAttribute('target', '_blank');
  117.       createA.setAttribute('class', 'RJCODED');
  118.       createA.innerHTML = m.text;
  119.       return createA;
  120.     }
  121.   });
  122.    HeightRJ = 18 * document.getElementsByClassName('RJCODED').length;
  123.   if (HeightRJ < 700) {
  124.     document.getElementsByClassName('rjblock') [0].style.height = HeightRJ + 'px';
  125.   }
  126.   else {
  127.    document.getElementsByClassName('rjblock') [0].style.height = '700px';
  128.   }
  129. }
  130. if (EnableDiv){
  131. var iDiv = document.createElement('div');
  132. iDiv.style.width = '100px';
  133. iDiv.style.zIndex = '10';
  134. iDiv.style.position = 'fixed';
  135. iDiv.style.right = '0';
  136. iDiv.style.bottom = '0';
  137. iDiv.style.height = '0px';
  138. iDiv.style.overflow = 'auto';
  139. iDiv.style.outline = 'solid #216ac2';
  140. iDiv.id = 'rjblock';
  141. iDiv.className = 'rjblock';
  142. document.getElementsByTagName('body') [0].appendChild(iDiv);
  143. }
  144. var uDiv = document.createElement('div');
  145. uDiv.style.width = '70px';
  146. uDiv.style.zIndex = '10';
  147. uDiv.style.position = 'fixed';
  148. uDiv.style.right = '100px';
  149. uDiv.style.bottom = '0px';
  150. uDiv.style.height = '20px';
  151. uDiv.style.overflow = 'auto';
  152. uDiv.id = 'rju';
  153. uDiv.innerHTML = '<a href="javascript:findRJ();">Update RJ</a>';
  154. uDiv.className = 'rju';
  155. document.getElementsByTagName('body') [0].appendChild(uDiv);
  156. document.getElementById('rju').addEventListener('click', findRJ, false);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement