SocialRSS Accessible Suite. Novedades de la versión 1.0.12.


CORRECCION: TELEGRAM - "ERROR AL CARGAR MENSAJES" AL ENTRAR EN UN CHAT (RELOJ DEL PC DESFASADO)

- Al entrar en cualquier chat de Telegram podia salir el aviso "Error al cargar mensajes:
  'BadMsgNotification' object has no attribute 'users'" y no se veian los mensajes. La causa era
  que el RELOJ de Windows estaba desincronizado (adelantado o atrasado mas de 30 segundos): Telegram
  identifica cada peticion con la hora del equipo y, si va desfasada, el servidor la rechaza. La
  libreria de Telegram no reintentaba ese caso y la app fallaba.
- Ahora la app se RECUPERA sola: cuando Telegram avisa de ese desfase, ya viene incluida la hora
  correcta del servidor, asi que la peticion se REINTENTA automaticamente con la hora buena y los
  mensajes cargan sin problema, aunque el reloj del PC siga mal.
- Aun asi, conviene tener la HORA del equipo bien puesta (Configuracion de Windows -> Hora e idioma
  -> Fecha y hora -> "Sincronizar ahora", con la sincronizacion automatica activada), porque un reloj
  muy desfasado tambien da problemas con paginas web seguras y otras aplicaciones.


MEJORA: TELEGRAM YA NO ATRANCA EL ARRANQUE ("CARGANDO LOS BUFFERS...")

- Al abrir la aplicacion, el cartel "Cargando los buffers de tus redes" esperaba a que Telegram
  terminara de conectar y sincronizar antes de dejarte en la ventana principal. Conectar con Telegram
  es mas lento que el resto de redes (usa un protocolo propio con varios pasos), asi que la barra se
  quedaba parada un buen rato (mas todavia si el reloj del equipo iba desfasado).
- Ahora Telegram aparece en el cartel de carga con un TOPE de tiempo: se muestra su progreso, pero si
  tarda en conectar (su protocolo lleva varios pasos), a los pocos segundos el cartel deja de
  esperarlo y entras en la ventana principal; Telegram termina de sincronizar en segundo plano y la
  lista de chats se rellena sola. Asi ves que esta cargando sin que su lentitud atranque el arranque.


CORRECCION: EL "ESTÁ ESCRIBIENDO…" DE TELEGRAM SE QUEDABA PEGADO AL CAMBIAR DE BUFFER

- Al ver un chat de Telegram, la barra de estado muestra "Fulano está escribiendo…". Ese aviso se
  quedaba escrito y, al cambiar a otro buffer (la Bandeja de entrada, Mastodon, etc.), SEGUIA
  apareciendo mucho despues, aunque ya no estuvieras en Telegram y la persona hubiera dejado de
  escribir hace rato. Ahora: el aviso solo se muestra mientras estas viendo Telegram, CADUCA solo a
  los pocos segundos (cuando la persona deja de escribir) y se BORRA al cambiar a cualquier otro
  buffer. Lo mismo para el estado "en linea".


CORRECCION: EL LECTOR DE PANTALLA YA NO SE QUEDA MUDO AL ARRANCAR

- Al abrir la aplicacion, mientras se cargaban los buffers de varias redes a la vez (Mastodon,
  Bluesky y, sobre todo, RSS reprocesando muchos articulos), el lector de pantalla podia quedarse
  sin responder unos segundos si tenias el foco en SocialRSS. La causa es interna: Python reparte el
  tiempo entre el trabajo de fondo y la interfaz en turnos, y esos turnos eran largos, asi que la
  interfaz (de la que depende el lector) tardaba en recuperar el control. Ahora los turnos son mucho
  mas cortos y, ademas, el procesamiento de articulos de RSS cede paso a la interfaz cada pocos
  elementos. El lector responde siempre, aunque haya descargas y analisis en curso. (La carga de
  fondo puede tardar un poco mas, pero la interfaz nunca se bloquea.)
- Ademas, los buffers ya NO se cargan todos de golpe: se cargan en GRUPOS de pocos a la vez (al
  terminar uno, entra el siguiente). Asi el pico de trabajo al arrancar es mucho menor y el lector
  no se satura. El cartel "Cargando los buffers" avanza igual hasta terminar.


MEJORA: LA BASE DE DATOS OCUPA LA MITAD Y CONSUME MENOS RECURSOS (SEGUNDA AUDITORIA)

- La base de datos habia crecido mucho (mas de 110 MB con pocos miles de articulos) porque el indice
  de BUSQUEDA de RSS guardaba el codigo HTML COMPLETO de cada articulo, duplicado. Ahora indexa solo
  el TEXTO, lo que ademas mejora las busquedas (ya no encuentra coincidencias dentro de etiquetas o
  enlaces ocultos). La base se reconstruye y se compacta una sola vez al actualizar: paso de unos
  117 MB a unos 55 MB en las pruebas. IMPORTANTE: la PRIMERA vez que abras la aplicacion tras esta
  actualizacion, el arranque tardara un poco mas (esta reconstruyendo el indice); las siguientes
  veces vuelve a ser rapido.
- MENOS CONSUMO EN SESIONES LARGAS: al actualizar los feeds de RSS se abrian conexiones internas a la
  base de datos que no se cerraban hasta salir de la aplicacion; en sesiones de muchas horas se
  acumulaban. Ahora se cierran al terminar cada actualizacion, y cada conexion reserva menos memoria.
- ABRIR CHATS DE TELEGRAM CON MUCHO HISTORIAL ES MAS RAPIDO: se ha anadido un indice para que la lista
  de mensajes de un chat salga ya ordenada de la base, sin trabajo extra, aunque tenga miles de
  mensajes.


MEJORA: RENDIMIENTO Y FLUIDEZ (AUDITORIA DE RENDIMIENTO)

- GUARDAR PREFERENCIAS ES INSTANTANEO: al pulsar Aceptar en Preferencias, la configuracion se
  guardaba en disco una vez por cada opcion (mas de cien escrituras seguidas), lo que provocaba un
  pequeno tiron. Ahora se reune todo y se guarda UNA sola vez. Igual en otros sitios que guardaban
  por duplicado.
- LAS LISTAS DE RSS ABREN MAS RAPIDO: al entrar en un buffer de RSS (Todos, No leidos, Destacados,
  Leer mas tarde, Hoy) la consulta a la base de datos era la parte mas lenta; con un indice nuevo por
  cuenta y fecha, ahora es casi instantanea aunque tengas miles de articulos.
- VOZ Y SONIDOS MAS ESTABLES EN RAFAGAS: antes, cada anuncio del lector y cada sonido creaban un
  hilo nuevo; con muchas novedades a la vez se acumulaban. Ahora hay un unico proceso ordenado para
  la voz (que ademas descarta anuncios intermedios cuando navegas muy rapido, quedandose con el
  ultimo) y otro para los sonidos. Mas fluido y predecible.
- MENOS TRABAJO DUPLICADO EN SEGUNDO PLANO: si un sondeo automatico de RSS o de los chats de Telegram
  ya estaba en marcha, ya no se lanza otro igual encima (el refresco manual sigue funcionando como
  siempre, con su aviso).
- RSS NO BLOQUEA AL RESTO MIENTRAS PROCESA: al actualizar feeds, el trabajo pesado (analizar el HTML,
  filtros, complementos) ya no mantiene ocupada la base de datos; esta solo se bloquea el instante de
  guardar. Asi, con varias redes a la vez, tus acciones no esperan detras de los sondeos.
- MENOS ESCRITURAS A DISCO: la limpieza de datos antiguos y el guardado de listas, feeds, mensajes
  directos y conversaciones de Bluesky/X agrupan sus cambios, reduciendo el trabajo de disco.
- MANTENIMIENTO DE LAS BUSQUEDAS: el mantenimiento periodico ahora limpia los indices de busqueda
  internos que quedaban huerfanos (ocupaban espacio y podian dar resultados fantasma).
- Se ha silenciado un aviso interno inofensivo (de la libreria de red) que ensuciaba el registro en
  cada arranque.


IMPORTANTE: ACTUALIZACION SILENCIOSA DE LISTAS (REINSTALA EL COMPLEMENTO DE NVDA)

- Al entrar publicaciones nuevas estando parado en un buffer, el lector NO debe releerte el elemento
  donde estas; debes quedarte donde lo dejaste, en silencio (como TWBlue). La lista es VIRTUAL (por
  rendimiento con miles de elementos), y en ese modo seguir tu elemento con el foco hacia su nueva
  posicion disparaba una lectura de NVDA. Ahora la app marca ese movimiento como AUTOMATICO y el
  COMPLEMENTO de NVDA (socialRSSListViewFix) lo silencia; al moverte TU con las flechas, se anuncia
  con normalidad. Funciona en TODAS las redes y buffers, incluida la bandeja de entrada.
- PARA QUE SURTA EFECTO HAY QUE REINSTALAR EL COMPLEMENTO de NVDA desde Preferencias -> Accesibilidad
  (vuelve a instalar "socialRSSListViewFix"). Tambien se evita que el refresco automatico de la fecha
  ("hace X") y de los contadores repinte el elemento enfocado (otra causa de relectura).


MEJORA: SE ACABAN LOS TIRONES Y CUELGUES AL NAVEGAR (RSS Y SONDEOS)

- Bloqueo del lector al arrancar (mientras sale el dialogo "Cargando los buffers..."): al inicio se
  cargan varias redes a la vez y, la primera vez, se cargan en memoria sus componentes internos
  (trabajo de CPU). Eso competia con la interfaz y dejaba a NVDA/JAWS mudo unos segundos. Ahora TODO
  el trabajo de fondo corre con MENOR prioridad que la interfaz, asi que el lector responde siempre,
  aunque haya descargas en marcha. La carga inicial puede tardar un pelin mas, pero ya no te bloquea.

- Lag al abrir dialogos (nuevo mensaje, responder...) o al navegar mientras se actualiza en segundo
  plano: la app leia la base de datos por UN solo canal compartido con cerrojo, asi que la interfaz
  tenia que esperar en cola detras de las MILES de lecturas de los sondeos de fondo (timelines, RSS,
  comprobacion de cambios mensaje a mensaje). Ahora cada hilo lee por su propio canal a la vez (lo
  permite el modo WAL de SQLite): la interfaz lee al instante y NO espera al trabajo de fondo.

- Ademas, leer un ajuste de configuracion ya no puede provocar una escritura a disco a mitad de la
  lectura (otra posible causa de micro-tirones al navegar o al abrir dialogos).

- Cuelgues de ~2 segundos: los provocaba la actualizacion de RSS, que cada pocos minutos volvia a
  DESCARGAR y PARSEAR todos los feeds (con muchos feeds, parsear decenas de golpe satura el proceso y
  bloquea la navegacion). Ahora RSS usa peticiones CONDICIONALES (ETag / Last-Modified): si un feed no
  ha cambiado, el servidor responde "sin cambios" y NO se descarga ni se parsea. La mayoria de feeds
  no cambian en cada comprobacion, asi que el trabajo (y los tirones) baja muchisimo.
- Tirones al subir/bajar por las publicaciones: en cada sondeo, Mastodon y Bluesky volvian a procesar
  los MISMOS toots/posts una y otra vez (analizar su HTML es costoso). Ahora, si una publicacion ya
  esta guardada y no ha cambiado, solo se refrescan sus contadores (me gusta/impulsos/respuestas) y se
  salta el analisis pesado. Las publicaciones NUEVAS se procesan completas como siempre.
- Correccion (cuelgues fuertes en la BANDEJA DE ENTRADA): estando en la bandeja, cada ~1 minuto se
  volvian a DESCARGAR Y PARSEAR TODOS los feeds de RSS (decenas de golpe), sin respetar el intervalo
  configurado de RSS. Era la causa principal de los tirones de ~2 s al navegar. Ahora la bandeja
  sondea cada fuente respetando SU intervalo (RSS, Mastodon, Bluesky), no en cada tic.
- Correccion: faltaba crear la tabla de las cronologias de usuario de X en instalaciones antiguas
  (daba un error al construir el arbol). Ya se crea.
- Correccion: al actualizar varios feeds de RSS a la vez, si dos articulos del mismo lote tenian el
  mismo identificador se cancelaba el guardado de todo el feed (constraint UNIQUE). Ahora se omite el
  duplicado dentro del lote y el resto se guarda.
- Correccion (feeds que se "atascaban", tipicas de YouTube): si un servidor respondia con una pagina
  de error en lugar del feed, se memorizaba su marca de version (ETag) y el feed podia quedarse sin
  traer nunca sus articulos. Ahora esa marca solo se guarda cuando el feed se ha leido correctamente.
- Correccion (tirones al navegar por dialogos, p. ej. Preferencias, durante el arranque): la
  sincronizacion AUTOMATICA de RSS (al arrancar, en segundo plano y desde la bandeja) parseaba muchos
  feeds a la vez; al ser ese trabajo de CPU, competia con la interfaz y la entrecortaba. Ahora los
  sondeos automaticos parsean POCOS feeds a la vez y sus hilos van con MENOR prioridad, de modo que la
  interfaz siempre tiene preferencia. El refresco MANUAL (Ctrl+Mayus+R) sigue usando tu numero de descargas
  simultaneas configurado, asi que actualizar a mano sigue siendo igual de rapido.


MEJORA: RENDIMIENTO (MENOS "PARADAS", SOBRE TODO CON VARIAS REDES A LA VEZ)

- Al sincronizar un timeline (p. ej. Inicio de Mastodon), antes se hacian del orden de 160 mini
  operaciones de guardado en la base de datos por cada pagina de mensajes, cada una con su escritura
  a disco. Ahora toda la pagina se guarda de una sola vez. Esto reduce mucho la competencia por la
  base de datos cuando varias redes se actualizan a la vez, que era justo cuando se notaban pequenas
  paradas.
- Esta mejora se aplica ya a TODAS las redes: Mastodon, Bluesky, X, RSS y Telegram (timelines,
  notificaciones, busquedas, historiales de chat y lista de chats).
- Al refrescar solo los contadores (me gusta/impulsos/respuestas) ya no se reescribe el indice de
  busqueda de cada mensaje si su texto no ha cambiado: bastantes menos escrituras en cada sondeo.
- La configuracion se lee ahora sin esperar a que termine un guardado en segundo plano (se quita un
  posible micro-bloqueo del hilo de la interfaz al navegar o al hablar el lector).
- Cuando llegan muchas novedades de golpe (al reconectar el tiempo real o ponerse al dia), se
  insertan en la lista de una sola pasada en vez de una a una, evitando tirones que cortaban al
  lector con listas muy grandes.
- La voz ya no crea un hilo nuevo por cada aviso: se encolan y los locuta un unico hilo.
- Nada de esto cambia lo que ves ni como se maneja; es solo mas fluido.


NUEVO: X (TWITTER) AHORA COMBINA DOS MOTORES COMPLEMENTARIOS (CLIENTE MAS COMPLETO Y ROBUSTO)

- El cliente de X usaba una sola libreria (twikit). Ahora combina DOS que se COMPLEMENTAN solas:
  twikit (publica y actua: me gusta, retweet, seguir, mensajes directos...) y twscrape (solo lectura,
  pero muy mantenida y con endpoints extra). Para cada lectura se usa la mejor de las dos y, si una
  falla o se queda corta porque X cambio algo, se cae automaticamente a la otra. Asi el cliente
  aguanta mejor los cambios de X y es mas completo.
- No tienes que configurar nada ni iniciar sesion dos veces: las dos usan la MISMA sesion (tus
  cookies). Publicar e interactuar siguen funcionando siempre (van por twikit). Nota: el motor de
  solo lectura no conoce TU estado por tweet (si ya diste me gusta o lo marcaste), asi que en algunas
  listas ese indicador puede aparecer en blanco hasta que interactuas.

MEJORA: OCULTAR Y BORRAR LOS BUFFERS PROPIOS DE X (BUSQUEDAS Y CRONOLOGIAS)

- Los buffers que creas en X (busquedas guardadas y cronologias de usuario) se pueden BORRAR uno a
  uno con la tecla Aplicaciones (o clic derecho) sobre su nodo del arbol.
- Ahora, ademas, en "Mostrar u ocultar buffers" puedes OCULTAR EN BLOQUE todas las busquedas
  guardadas o todas las cronologias de usuarios, para ver solo los buffers que quieras. Tambien se
  ha anadido a esa herramienta el buffer "Seguidores verificados" de X, que faltaba.


NUEVO: BUSQUEDAS Y CRONOLOGIAS DE USUARIO COMO BUFFER EN X (LO QUE FALTABA)

- En el menu "X (Twitter)" tienes "Abrir cronologia de un usuario...": escribes un @usuario y eliges
  si ver solo sus publicaciones, tambien sus respuestas o solo su multimedia; se abre como un buffer
  permanente. Tambien desde el menu contextual de una publicacion: "Ver la cronologia de este autor".
- Las busquedas guardadas como buffer ahora se DESCARGAN correctamente al abrirlas (antes el buffer
  podia quedarse vacio). Sobre el nodo de una busqueda o cronologia, la tecla Aplicaciones permite
  actualizar o borrar ese buffer.
- Nuevo buffer "Seguidores verificados".


MEJORA: EL VISOR DE CONVERSACION (CTRL+MAYUS+V) AHORA SE MANEJA COMO UNA PUBLICACION NORMAL

- Al abrir una conversacion o hilo con Ctrl+Mayus+V no se podian ver las descripciones (texto
  alternativo) de las imagenes de los mensajes. Ahora, sobre el mensaje enfocado del hilo, funcionan
  los mismos atajos que en el timeline: Ctrl+Mayus+D muestra la descripcion de la multimedia y Ctrl+I
  describe la imagen con IA.
- Se suman a los que ya estaban (Ctrl+R responder, Ctrl+Mayus+U citar, Ctrl+B me gusta/favorito,
  Ctrl+T traducir). Todas estas acciones aparecen tambien en el menu del mensaje (tecla Aplicaciones o
  boton Acciones), cada una con su combinacion indicada.


MEJORA: "ACERCA DE" AHORA DESCRIBE TODAS LAS REDES Y SUS VENTAJAS

- El cuadro "Acerca de" mencionaba solo Mastodon, RSS y Telegram. Ahora incluye TODAS las redes
  (Mastodon, Bluesky, X, RSS y Telegram) con una breve descripcion de que puedes hacer en cada una y
  sus puntos fuertes, ademas de la bandeja de entrada unificada.


CORRECCION: EL ATAJO CTRL+B ES "ME GUSTA / FAVORITO" (NO IMPULSAR)

- En el editor de combinaciones de teclas y en los menus, Ctrl+B aparecia como "Impulsar / Me gusta".
  En realidad esa tecla marca o quita ME GUSTA (favorito en Mastodon; me gusta en Bluesky y X), no
  impulsa. Se ha corregido la descripcion para que diga lo que hace de verdad. Para impulsar, usa el
  menu contextual de la publicacion.


MEJORA: CONTADOR DE CARACTERES OPCIONAL AL ESCRIBIR (SE ACABAN LOS TIRONES)

- Algunas personas notaban tirones al escribir mensajes largos o respuestas. La causa no era el
  calculo (es practicamente instantaneo), sino que actualizar el contador y la barra de titulo en cada
  pausa genera avisos de accesibilidad que, con el lector, pueden entrecortar la escritura.
- Ahora en Preferencias -> Accesibilidad hay una casilla "Actualizar el contador de caracteres
  mientras escribes" (activada por defecto). Si la DESACTIVAS, el contador deja de actualizarse solo al
  teclear (escribir queda totalmente fluido), NO aparece en el titulo del dialogo, y puedes consultar
  los caracteres restantes cuando quieras con Ctrl+Mayus+Espacio (se dicen por voz). Funciona en los
  compositores de Mastodon y Bluesky.
- Ese atajo aparece tambien en el editor de combinaciones de teclas (apartado de Publicaciones), asi
  que puedes cambiarlo por el que prefieras.


