Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.    
  2.  
  3.     // ==UserScript==
  4.     // @name           4chan - Translate to and from Ente Islean
  5.     // @version        1.1
  6.     // @author         Hanzou URUSHIHARA
  7.     // @include        http://boards.4chan.org/a/res/*
  8.     // @include        https://boards.4chan.org/a/res/*
  9.     // @run-at         document-end
  10.     // ==/UserScript==
  11.      
  12.     (function(){
  13.       var d = document;
  14.       var alpha_eng  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  15.       var alpha_ente = 'AZYXEWVTISRQPNOMLKJHUGFDCBazyxewvtisrqpnomlkjhugfdcb';
  16.      
  17.       var tranChar = function(c_eng) {
  18.         var x = alpha_eng.indexOf(c_eng);
  19.         return x === -1 ? c_eng : alpha_ente[x];
  20.       };
  21.      
  22.       var translate = function() {
  23.         var nodes = d.evaluate('.//text()', post.nodes.comment, null, 7, null);
  24.         for (var i = 0; i < nodes.snapshotLength; i++) {
  25.           var node = nodes.snapshotItem(i);
  26.           var eng  = node.data;
  27.           var ente = '';
  28.           for (var j = 0; j < eng.length; j++) {
  29.             ente += tranChar(eng[j]);
  30.           }
  31.           node.data = ente;
  32.         }
  33.       };
  34.      
  35.       var post;
  36.       var a = d.createElement('a');
  37.       a.textContent = 'Translate';
  38.       a.addEventListener('click', translate, false);
  39.      
  40.       d.dispatchEvent(new CustomEvent('AddMenuEntry', {
  41.         detail: {
  42.           el: a,
  43.           open: function(p) {
  44.             post = p;
  45.             return true;
  46.           },
  47.           type: 'post'
  48.         }
  49.       }));
  50.      
  51.      
  52.       // QR stuff
  53.      
  54.       var keyEvtListMaou = function(e) {
  55.         if (!(e.altKey && e.keyCode === 88)) {
  56.           return;
  57.         }
  58.         // Alt + X is pressed
  59.         var eng  = this.value;
  60.         var ente = '';
  61.         for (var i = 0; i < eng.length; i++) {
  62.           ente += tranChar(eng[i]);
  63.         }
  64.         this.value = ente;
  65.       };
  66.      
  67.       var setupQRListener = function() {
  68.         d.getElementById('qr').querySelector('textarea').addEventListener('keyup', keyEvtListMaou, false);
  69.       };
  70.       if (d.getElementById('qr')) {
  71.         setupQRListener();
  72.       } else {
  73.         d.addEventListener('QRDialogCreation', setupQRListener, false);
  74.       }
  75.     })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement