Bitcoin Forum
May 14, 2024, 03:47:37 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: User script para eliminar citas anidadas / "Quote pyramids"  (Read 144 times)
EcuaMobi (OP)
Legendary
*
Offline Offline

Activity: 1862
Merit: 1469


https://Ecua.Mobi


View Profile WWW
May 30, 2019, 03:35:56 AM
Merited by paxmao (5), DdmrDdmr (2), franckuestein (1)
 #1

He escrito un user script que ayuda a eliminar las citas ("quotes") múltiples al responder a alguien. Es molestoso dejar varias citas anidadas (ejemplo), por lo que generalmente es necesario eliminar manualmente las citas anteriores. Este script lo hace automáticamente.

Por ejemplo, al hacer click en "quote" aquí:



el script elimina la cita más antigua y deja solo la última:


además, muestra 3 enlaces:

"Full text" vuelve a mostrar el texto completo:


"Latest quote" deja solo la cita más reciente (opción por emisión). Mientras que "~snip~" deja la última cita pero elimina su contenido:


Estos botones reemplazan el contenido, por lo que deben ser usados antes de escribir nada para no perder el trabajo realizado.

Cómo instalar:


Demo:
Esta captura gif fue tomada en un teléfono Android. Funciona igual que en un computador.

Código fuente para revisión y edición:
https://openuserjs.org/scripts/EcuaMobi/Quote_plus/source
Code:
// ==UserScript==
// @name        Quote plus
// @namespace   ecuamobi
// @author      EcuaMobi
// @include     https://bitcointalk.org/index.php?action=post;quote=*
// @require     https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js
// @version     1.0
// @license   MIT
// @grant none
// ==/UserScript==

(() => {
  var full_text = document.forms.postmodify.message.value;
  var regex = /\[quote author/gi,
    result, indices = [];
  // Find second [quote]
  var i = 0;
  var start2 = 0;
  var end2 = 0;
  while ((result = regex.exec(full_text))) {
    i++;
    if (2 == i) {
      start2 = result.index;
      break;
    }
  }
  regex = /\[\/quote\]/gi, result, indices = [];
  var last = 0;
  while ((result = regex.exec(full_text))) {
    if (last > 0) {
      end2 = last + 8;
    }
    last = result.index;
  }

  // Are there several quotes?
  if (start2 == 0 || end2 == 0) {
    // Abort
    return;
  }

  // Get text to use for every option
  var latest_quote = full_text.substr(0, start2).trim() + '\n' + full_text.substr(end2).trim() + '\n';
  var snip_quote = full_text.substr(0, start2).trim() + '~snip~[/quote]\n';
  full_text = full_text.trim() + '\n';

  // By default use the latest quote. REPLACE THIS BY snip_quote OR REMOVE IF DESIRED
  document.forms.postmodify.message.value = latest_quote;

  // Add buttons to manually use full text, latest quote or snip
  const $links = $("<span style='margin-left:35%'><a id='full_text' href='#'>Full text</a> | <a id='latest_quote' href='#'>Latest quote</a> | <a id='snip_quote' href='#'>~snip~</a></span>");
  $links.insertAfter($("#postMoreOptions"));

  $("#full_text").click((e) => {
    e.preventDefault();
    document.forms.postmodify.message.value = full_text;
  });
  $("#latest_quote").click((e) => {
    e.preventDefault();
    document.forms.postmodify.message.value = latest_quote;
  });
  $("#snip_quote").click((e) => {
    e.preventDefault();
    document.forms.postmodify.message.value = snip_quote;
  });
})();

Notas y limitaciones:
  • El script no se activará si no hay citas anidadas
  • Solo se activa con citas normales de la forma [ quote author=username link=.... No con citas simples (sin author o link)
  • Podría comportarse de forma extraña si la cita no está al inicio, o si hay varias citas mezcladas con respuestas a esas citas. Aún estoy trabajando en eso
  • Siempre revisa si el script funcionó correctamente, y haz clic en "Full text" de no ser así

Seguiré mejorando este script. Agradezco que publiquen sus comentarios en este thread (en español), o aquí, en inglés, que seguramente será actualizado más frecuentemente.

bbvedf
Member
**
Offline Offline

Activity: 588
Merit: 61


View Profile WWW
May 30, 2019, 10:43:59 AM
 #2

Pues un gran trabajo @EcuaMobi.
El tema de eliminar citas anteriores yo lo hago manualmente, pero es tan habitual que ya ni siquiera me doy cuenta de ello. Es un auto-script Tongue
Se agradece el curro, pero no soy partidario de utilizar ningún script en los navegadores, por muy segura que sea la fuente. Siempre acaban surgiendo problemas de compatibilidad, o en las actualizaciones, o conflictos con otros scripts, ..., en fin. Que no los utilizo ...


                                                 BetFury                                                
🐥Twitter | 📩 Telegram | 🎲 You play - We pay 🎲 |YouTube 🍿|Reddit 🕹 
                                                Free BTC 1 800 Satoshi every day                                               
DdmrDdmr
Legendary
*
Offline Offline

Activity: 2310
Merit: 10759


There are lies, damned lies and statistics. MTwain


View Profile WWW
May 30, 2019, 03:22:22 PM
Merited by seoincorporation (1)
 #3

Por cierto, realmente va contra las reglas del foro crear pirámides de citas (quotes) en nuestros posts, tal y como se refleja en las reglas del foro:

<…> 1. No publicar mensajes o crear hilos sin valor, con poco valor o sin que vengan a cuento. [1][e] <…>
Ejemplos:
1. Mensajes como "SELL SELL SELL", "Estoy de acuerdo", "+1", "Leyendo", "Interesante", "LOL", "SCAM", "LEGIT", "FAKE", otros mensajes de una sola palabra, mensajes en los que mayormente se insulte, pirámides de citas, hilos inútiles de presentaciones (N. del T: excepto el que ya tenemos a tal efecto), hilos acerca de algo que ya se esté debatiendo en otros hilos. <…>

Ya sea a mano, o mediante scripts como el elaborado por @EcuaMobi, el tratamiento de las citas (quotes) debería ser tal que se refleje la parte esencial de aquello a lo que nos queremos referir con nuestros comentarios. Excepcionalmente, los quotes más largos se pueden utilizar a modo de "archivo" de un post, de manera que se captura su totalidad ante una posible disputa derivada de su contenido (también están las utilidades de archivo externas, menos susceptibles de poder ser manipuladas como Archieve Today o TheWayBackMachine).
seoincorporation
Legendary
*
Offline Offline

Activity: 3150
Merit: 2937


Top Crypto Casino


View Profile
May 30, 2019, 03:43:04 PM
 #4

...
 el tratamiento de las citas (quotes) debería ser tal que se refleje la parte esencial de aquello a lo que nos queremos referir con nuestros comentarios.

Yo no le tomaba mucha importancia a como hacer las citas, incluso por perezoso la mayoría de las veces citaba el texto completo, pero ahora me voy dando cuenta de que es importante e incluso está mencionado en las reglas, por lo cual seré mas cuidadoso con este tema de las citas de ahora en adelante, gracias por el dato Ddmr, todos los días se aprende algo nuevo.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!