TinyAiTweet1.3: Difference between revisions

From fridemar.ai
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
<code>
<code>
// ==UserScript==
// ==UserScript==
// @name        TinyAiTweet1.3
// @name        TinyAiTweet1.3
// @namespace    http://tampermonkey.net/
// @namespace    http://tampermonkey.net/
// @version      1.3
// @version      1.3
// @description  wikify
// @description  wikify
// @author      Fridemar Pache aka AipediaFridemar
// @author      Fridemar Pache aka AipediaFridemar
// @match        *://*/*
// @match        *://*/*
// @require http://code.jquery.com/jquery-latest.js
// @require http://code.jquery.com/jquery-latest.js
// @grant        CcBySa
// @grant        CcBySa
// ==/UserScript==
// ==/UserScript==
 
<nowiki>
function ai() {
function ai() {
     var WikiMap = ['http://google.com/search?q=','https://aipedia.eu/index.php?title=','https://twitter.com/search?q=','https://twitter.com/hashtag/'],
     var WikiMap = ['http://google.com/search?q=','https://aipedia.eu/index.php?title=','https://twitter.com/search?q=','https://twitter.com/hashtag/'],
Line 23: Line 32:
     reg = /^\s+$/g;
     reg = /^\s+$/g;
     linkpatt = /\b(?:([a-z0-9äöü]*(?:[A-ZÄÖÜ_]|_)[a-z0-9äöü_]*){2,})\b/g;
     linkpatt = /\b(?:([a-z0-9äöü]*(?:[A-ZÄÖÜ_]|_)[a-z0-9äöü_]*){2,})\b/g;
</nowiki>


     for (i = 0; i < len; i++) {
     for (i = 0; i < len; i++) {

Revision as of 02:22, 16 December 2017

// ==UserScript==

// @name TinyAiTweet1.3

// @namespace http://tampermonkey.net/

// @version 1.3

// @description wikify

// @author Fridemar Pache aka AipediaFridemar

// @match *://*/*

// @require http://code.jquery.com/jquery-latest.js

// @grant CcBySa

// ==/UserScript== function ai() { var WikiMap = ['http://google.com/search?q=','https://aipedia.eu/index.php?title=','https://twitter.com/search?q=','https://twitter.com/hashtag/'], i, j, k, len, llen, link, linkpatt, linkText, linkTextArray = [], msg, myArray, node, txt, href, a, reg, span, lastLastIndex, textNodeXpath, textNodes; textNodeXpath = './/text()[not(ancestor::a) and not(ancestor::head)and not(ancestor::option) and not(ancestor::textarea)]'; textNodes = document.evaluate(textNodeXpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); len = textNodes.snapshotLength; reg = /^\s+$/g; linkpatt = /\b(?:([a-z0-9äöü]*(?:[A-ZÄÖÜ_]|_)[a-z0-9äöü_]*){2,})\b/g;

   for (i = 0; i < len; i++) {
       node = textNodes.snapshotItem(i);
       txt = node.nodeValue; txt = txt.replace(reg, );
       if (linkpatt.test(txt)) {
           span = document.createElement('span');
           lastLastIndex = 0;
           linkpatt.lastIndex = 0;
           try {
               while (true) {
                   myArray = linkpatt.exec(txt);
                   if (!myArray) break;
                   link = myArray[0];
                   linkTextArray = [link, ' °', ' ¹', ' ²', ' ³'];
                   span.appendChild(document.createTextNode(txt.substring(lastLastIndex, myArray.index)));
                   lastLastIndex = linkpatt.lastIndex;
                   linkText = myArray[1];
                   link = myArray[0];
                   llen = link.length;
                   if (link.substring(0, 2) ===  && link.substring(llen - 2, llen) === ) {
                       link = link.substring(2, llen - 2);
                   }
                   for (j = 0; j < Math.min(WikiMap.length, linkTextArray.length); j++) {
                       href = WikiMap[j] + link;
                       a = document.createElement('a');
                       a.setAttribute('href', href);
                       a.appendChild(document.createTextNode(linkTextArray[j]));
                       span.appendChild(a);
                   }
               }
               span.appendChild(document.createTextNode(txt.substring(lastLastIndex)));
               node.parentNode.replaceChild(span, node);
           } catch (e) {
               alert(e);
           }
       }
   }