Script de etiquetas de usuarios para meneame

Hola.

He creado un script para tampermonkey que permite añadir comentarios personalizados tras el nombre de los usuarios de meneame. Me parece que puede ser bastante útil para recordar si alguna vez habías conversado con alguien, o escribir lo que piensas de ese usuario. Bueno, para ser sincero, el script lo ha creado chatGPT. Yo solo sé lo más básico sobre programar scripts.

El contenido de las etiquetas se guarda localmente en el navegador, así que no se conservan si cambias de PC o de navegador. Y supongo que si metes muchas etiquetas tendrás que aumentar la capacidad de almacenamiento de la extensión.

A continuación el código. Tan solo copiar y pegar en nuevo script de tampermonkey. Si alguien quiere modificarlo, mejorarlo, está subido aquí.

// ==UserScript==

// @name     Etiquetador de Usuarios para Menéame

// @namespace  tampermonkey.net/

// @version   0.2

// @description Añade etiquetas personalizadas a los nombres de los usuarios en Menéame

// @author    Fernando_x

// @match    www.meneame.net/*

// @grant    none

// ==/UserScript==

(function() {

  'use strict';

  // Función para guardar etiquetas

  function guardarEtiqueta(usuario, etiqueta) {

    localStorage.setItem(usuario, etiqueta);

  }

  // Función para cargar etiquetas

  function cargarEtiqueta(usuario) {

    return localStorage.getItem(usuario);

  }

  // Añadir campos de etiqueta a cada comentario

  document.querySelectorAll('.comment').forEach(function(elem) {

    const usuarioElem = elem.querySelector('.username');

    const usuario = usuarioElem.textContent.trim();

    const etiquetaExistente = cargarEtiqueta(usuario) || '';

    const contenedorEtiqueta = document.createElement('span');

    const inputEtiqueta = document.createElement('input');

    inputEtiqueta.type = 'text';

    inputEtiqueta.value = etiquetaExistente;

    inputEtiqueta.style.marginLeft = '5px';

    inputEtiqueta.style.fontSize = 'smaller';

    inputEtiqueta.placeholder = 'Añadir etiqueta';

    inputEtiqueta.style.width = '150px'; // Aumentando el ancho de la caja de entrada

    // Evento para guardar la etiqueta

    inputEtiqueta.addEventListener('change', function() {

      guardarEtiqueta(usuario, inputEtiqueta.value);

    });

    contenedorEtiqueta.appendChild(inputEtiqueta);

    usuarioElem.parentNode.insertBefore(contenedorEtiqueta, usuarioElem.nextSibling);

  });

})();