Posts Tagged ‘menéame

16
Dic
08

Citar notas en el nótame (menéame)

El nótame es una sección de menéame donde puedes escribir pequeñas notas públicas. En tus notas, puedes referirte (o citar) a la última nota de otro usuario escribiendo una arroba (@) seguida del nombre del usuario al que te refieres.
En mi opinión, debería ser mas fácil, no me gusta tener que escribir el nombre de usuario, o tener que copiar/pegar, por eso he escrito este pequeño script.

Puedes ver como funciona en http://www.youtube.com/watch?v=C2ktZAoBtpk

Para utilizarlo, necesitas usar el navegador web FireFox , y tener instalado el plugin GreaseMonkey para FireFox.
El script está publicado en http://userscripts.org/scripts/show/35186 , donde puedes instalarlo y ver el código fuente

También puedes ver el código fuente aquí

// ==UserScript==
// @name           Nótame Hacks
// @namespace      http://meneame.net/notame
// @description    Añade funciones extra en las notas
// @include        http://meneame.net/notame*
// ==/UserScript==

// Creamos el nodo con el script
var js = document.createElement('script');
js.setAttribute('id', 'notame_hacks');
js.setAttribute('type', 'text/javascript');

// ==UserScript==
// @name          Nótame Hacks
// @namespace     http://meneame.net/notame
// @description   Mejoras en la interfaz gráfica
// @include       http://meneame.net/notame/*
// ==/UserScript==

    js.text += "\nvar esperar = 1000;";
    js.text += "\nvar refresco = 100;";
    js.text += "\nvar cancelarBusqueda = false;";
    js.text += "\nvar it;";
    js.text += "\nvar invocarTextarea = function(usuario) {";
    js.text += "\n    get_votes('post_edit.php','edit_comment','addpost',0,0);";
    js.text += "\n    it = setInterval('comprobarTextarea(\\'' + usuario + '\\')', refresco);";
    js.text += "\n    setTimeout(function() { cancelarBusqueda = true; }, esperar);";
    js.text += "\n}";
    js.text += "\nvar comprobarTextarea = function(usuario) {";
    js.text += "\ntexto = document.getElementById('post');";
    js.text += "\n    if(texto) {";
    js.text += "\n        clearInterval(it);";
    js.text += "\n        citar(usuario);";
    js.text += "\n    } else if(cancelarBusqueda) {";
    js.text += "\n        clearInterval(it);";
    js.text += "\n    }";
    js.text += "\n}";
    js.text += "\nvar citando, texto;";
    js.text += "\nvar citar = function(usuario) {";
    js.text += "\n    texto = document.getElementById('post');";
    js.text += "\n    if(!citando || (!texto)) {";
    js.text += "\n        if(!texto) {";
    js.text += "\ncitando = false;";
    js.text += "\n            invocarTextarea(usuario);";
    js.text += "\n\n        } else {";
    js.text += "\ncitando = true;";
    js.text += "\n            texto.value = '@' + usuario + ' ';";
    js.text += "\n        }";
    js.text += "\n    } else {";
    js.text += "\n        texto.value += ' @' + usuario + ' ';";
    js.text += "\n    }";
    js.text += "\n}";
    js.text += "\nvar notas = document.getElementsByTagName('ol')[1].childNodes;";
    js.text += "\nvar nota, url, usuario;";
    js.text += "\nfor(i = 0; i < notas.length; i++) {";
    js.text += "\n    nota = notas[i];";
    js.text += "\n    if(nota.nodeType == 3) continue;";
    js.text += "\n    url = nota.childNodes[1].childNodes[1].getElementsByTagName('a')[0].href;";
    js.text += "\n    usuario = url.substring(url.lastIndexOf('/')+1);";
    js.text += "\n    obj = nota.childNodes[1].childNodes[0].innerHTML += '&nbsp;&nbsp;&nbsp;<a href=\"javascript:citar(\\'' + usuario + '\\')\">Citar</a>';";
    js.text += "\n}";
}
// Añadimos el nodo al <head>
document.getElementsByTagName('head')[0].appendChild(js);