El bot de Discord pasa a la versión 0.2.0. Para actualizarlo: sustituye su carpeta por la del nuevo archivo,
conservando el archivo .env, ejecuta npm ci --omit=dev y luego reinícialo. Después crea una nueva clave de acceso
en Administración → Discord — la página lo pide — y sustituye la antigua en .env: sin ella, al bot le faltan los
permisos del gestor de errores. La configuración del servidor necesita además el permiso de Discord «Gestionar
canales»: vuelve a invitar un bot invitado con la 1.2.11 con el botón «Invitar al bot», o da ese permiso a su rol en los
ajustes del servidor.
Añadido
- Bot de Discord: funciones que se activan una a una. Discord → Funcionalidades lista lo que sabe hacer el bot (lo declara él mismo). Cada una se activa, se desactiva y se configura desde la administración; el cambio se aplica en menos de un minuto, sin reiniciar el bot. El botón Resincronizar vuelve a ponerlo todo de acuerdo, y al arrancar el foro recupera lo que se escribió en Discord durante la ausencia del bot.
- Bot de Discord: se pone al día con el sitio al volver. Lo que se escribe en el sitio mientras el bot está apagado va a Discord cuando vuelve a arrancar, dentro de los 30 días de eventos que conserva el sitio. Hasta ahora volvía a empezar desde el último evento, y lo que se había escrito entretanto nunca llegaba a Discord.
- Bot de Discord: la configuración del servidor. Desde la administración, el bot crea en Discord una categoría, un canal Foro por cada foro elegido (con sus prefijos como etiquetas) y un rol por cada grupo elegido, pone él mismo las correspondencias, y reutiliza lo que ya existe en lugar de duplicarlo. Primero hay una vista previa, y la última configuración se puede deshacer.
- Bot de Discord:
/forum./forum account linkda un enlace de un solo uso que vincula tu cuenta de Discord a tu cuenta del sitio; también puedes elegir pasar a tu nombre lo que habías publicado desde Discord./forum account unlinkla desvincula. Sin cuenta vinculada,/forum visibilitydeja elegir cómo se aparece en el foro: tu nombre de usuario de Discord, un nombre anónimo o un nombre de usuario a tu elección, modificable cada siete días — los mensajes ya publicados le siguen. - Bot de Discord: prefijos del foro ↔ etiquetas del canal Foro, en ambos sentidos: poner un prefijo en un tema pone la etiqueta en el hilo, y al revés.
- Bot de Discord: el gestor de errores en un canal Foro (función que se activa en Discord → Funcionalidades).
Cada ticket se convierte en un hilo: su tipo y su estado son sus etiquetas, que el bot crea en el canal y mantiene al
día. El título, la descripción y la prioridad siguen; el hilo se archiva cuando se cierra el ticket, y un duplicado
remite a su ticket original. Los comentarios pasan en ambos sentidos. Desde Discord,
/buge/ideeabren un ticket a través de una pequeña ventana (título, descripción), y un hilo abierto a mano en el canal se convierte en un ticket — para un miembro que ha vinculado su cuenta. Los tickets aún abiertos reciben su hilo cuando se elige el canal. El sitio manda: una etiqueta cambiada a mano en Discord vuelve a ponerse como dice el ticket. - Bot de Discord: los roles temporales (función que se activa). El comando
/role, reservado a quienes pueden gestionar los roles, da a un miembro un rol durante un tiempo fijado (una sanción, un acceso de prueba, un rol de evento), lo retira o muestra los que están en curso. El bot lo retira al vencer, incluso tras un reinicio, y se lo devuelve a un miembro que sale del servidor y vuelve a entrar para librarse de él. Se rechazan los roles vinculados a un grupo del sitio, los roles gestionados por Discord y los roles situados al nivel del rol más alto del bot o de quien los da, o por encima. La página Discord → Roles temporales los lista, con «Quitar ahora». - API: dos permisos nuevos, «Leer el Bugtracker» (
bugtracker:read) y «Escribir en el Bugtracker» (bugtracker:write). Permiten a un programa leer los tickets (GET bugtracker/tickets, solo los abiertos conopen=1) y sus comentarios, abrir un ticket en nombre de un miembro, comentarlo en nombre de un miembro o de una cuenta de Discord, y modificar o eliminar esos comentarios. El prefijo de un tema del foro también se puede cambiar por la API (PATCH forum/topics/{id}). El bot recibe los puntos de accesodiscord/*de sus nuevas funciones: roles temporales (discord/timed-roles), configuración del servidor, vinculación de cuentas.
Seguridad
- Un título escrito a través de la API ya no puede inyectar código en las páginas del sitio. El título de un tema creado por la API — por ejemplo el nombre de un hilo de Discord copiado por el bot — se guardaba tal cual, mientras que el foro muestra sus títulos sin volver a codificarlos: una etiqueta HTML en ese título se ejecutaba en la página del foro. La API guarda ahora sus textos como el sitio guarda los suyos, y el título de la pestaña siempre se codifica.
Corregido
- Los acentos del gestor de errores se mostraban como
réagiten la página de un ticket abierto con el formulario, y la búsqueda «¿Ya informado?» no encontraba ninguna palabra con acento. Los textos que devuelve la API — nombres de usuario, títulos, descripciones, comentarios — están también en texto plano: el bot de Discord los copiaba codificados. Las vistas previas al compartir enlaces (Discord incluido) ya no muestran sus acentos como código HTML. - Gestor de errores: elegir el estado «Duplicado» sin un número de ticket válido mantenía el estado antiguo mientras anunciaba «Ticket actualizado»; el mensaje dice ahora lo que no se ha aplicado.
- Bot de Discord: eliminar en Discord la copia de un mensaje del sitio ya no borra el original. Cuando el bot ya no tenía ese mensaje en memoria (tras un reinicio), eliminar en Discord la copia de un mensaje escrito en el sitio por un miembro con la cuenta vinculada borraba también el mensaje del sitio. En ese caso, el bot solo borra ya en el sitio los mensajes que venían de Discord.
- El wiki: en la página de inicio del wiki, una página de primer nivel sin subpáginas aparecía como una sección vacía; ahora muestra sus primeras secciones (o el principio de su texto) y un enlace para leerla, y la barra lateral la convierte en un enlace.
- Las páginas no encontradas y prohibidas ya no son páginas vacías. En todos los temas públicos, una dirección que no lleva a ninguna parte (404) o una página restringida (403) solo mostraban la cabecera y el pie de página, sin una palabra — un defecto heredado de NeoFrag. Ahora dicen qué pasa, en los seis idiomas, con un botón para volver a la página de inicio (al panel en la administración), y la pestaña del navegador dice «Página no encontrada» o «Acceso no autorizado» en lugar del nombre del módulo.