Más limpieza. Actualización de archivos .md para el contexto.

This commit is contained in:
Jesús Pavón Abián
2026-02-01 20:51:39 +01:00
parent 30a7b1a12a
commit b14bff2d0e
3 changed files with 47 additions and 109 deletions

View File

@@ -1,58 +1,46 @@
# Contexto de trabajo
## Objetivo final
Igualar la experiencia de Bluesky con Mastodon en la interfaz (menús, diálogos, buffers y accesos), manteniendo las diferencias sólo cuando el protocolo lo exige. Mastodon es la referencia.
Igualar la experiencia de Bluesky con Mastodon en la interfaz (menus, dialogos, buffers y accesos), manteniendo las diferencias solo cuando el protocolo lo exige. Mastodon es la referencia.
## Estado actual
Se completaron todos los puntos de falta.md. Ahora se está trabajando en igualar características de accesibilidad comparando con el código original de Mastodon en srcantiguo/.
Se completaron los puntos de la lista pendiente (falta.md eliminado). Ahora se esta trabajando en igualar accesibilidad y flujo de compose usando como referencia srcantiguo/.
## Cambios recientes (sesión actual)
- **Accesibilidad mejorada en Bluesky:**
- Implementado método `onFocus()` para: actualizar tiempos relativos, leer posts largos en GUI, reproducir sonidos indicadores de audio/imagen.
- Implementado método `auto_read()` para lectura automática de nuevos items.
- Implementado menú contextual (`show_menu()`, `show_menu_by_key()`).
- Añadido método `open_in_browser()` para abrir posts en navegador.
- Añadido método `add_new_item()` para streaming.
- Añadido método `update_item()` para actualizar items existentes.
- Añadido método `get_buffer_name()` para nombres de buffer legibles.
- Añadido método `copy()` para copiar al portapapeles.
- **Nuevos archivos creados:**
- `src/sessions/blueski/utils.py` - Funciones utilitarias (is_audio_or_video, is_image, get_media_urls, find_urls).
- `src/wxUI/dialogs/blueski/menus.py` - Menús contextuales (baseMenu, notificationMenu, userMenu, chatMenu).
- **Correcciones de sonido:**
- Arreglado bug en base.py donde `self.sound = sound` usaba variable indefinida.
- Añadido `self.sound` a todos los buffers (Conversation, chat, user, etc.).
## Cambios recientes (sesion actual)
- Compose Bluesky vuelve a ser local por buffer (sin capa intermedia) y el envio es en thread.
- Nuevo helper `controller/blueski/messages.py::post` para centralizar dialogo y payload.
- DM de chats Bluesky en thread con refresco de buffer.
- Autologin para todas las sesiones (excepto ignoradas) para iniciar buffers al abrir.
- Correccion de "Actualizar buffer" cuando la sesion no tiene `KIND`.
- Menu de nueva cuenta muestra solo "Bluesky" (sin duplicados).
## Cambios anteriores
- Perfil de usuario mejorado: imágenes de avatar/banner, botones de timeline (posts, followers, following).
- Acciones de usuario en perfil: follow, unfollow, mute, unmute, block, unblock.
- Autocompletado añadido al diálogo de acciones de usuario.
- Atajos de teclado (&) añadidos a botones del perfil.
- Persistencia de búsquedas implementada (se guardan y restauran al reiniciar).
- Paginación completa en todos los buffers: HomeTimeline, FollowingTimeline, NotificationBuffer, LikesBuffer, MentionsBuffer, SentBuffer, UserTimeline, SearchBuffer.
- Activado autocompletado en el diálogo "Ver timeline..." y validación de usuario.
- Reposts/Likes ahora abren buffers con paginación bajo "Timelines".
- Restauración de followers/following propios sin duplicar.
- Estructura del árbol: se añadió "Searches" en Bluesky.
- Menús: para Bluesky, las opciones no aplicables se ocultan usando el sentinel "HIDE".
- Accesibilidad mejorada en Bluesky: onFocus, auto_read, menu contextual, open_in_browser, add_new_item, update_item, get_buffer_name, copy.
- Nuevos archivos: `src/sessions/blueski/utils.py`, `src/wxUI/dialogs/blueski/menus.py`.
- Correcciones de sonido: self.sound en todos los buffers.
- Perfil de usuario mejorado y acciones de usuario completas.
- Autocompletado en dialogos de timeline y acciones de usuario.
- Persistencia de busquedas y paginacion completa en buffers.
- Reposts/Likes abren buffers con paginacion bajo "Timelines".
- Restauracion de followers/following propios sin duplicar.
- Estructura del arbol: "Searches" agregado.
- Menus de Bluesky ocultan opciones no aplicables via sentinel "HIDE".
## Puntos pendientes
- Verificar funcionamiento completo de onFocus con la aplicación en ejecución.
- Verificar funcionamiento completo de onFocus con la aplicacion en ejecucion.
- Implementar soporte de templates para usuarios y notificaciones (como Mastodon).
- Considerar OCR para imágenes si es necesario.
## Notas técnicas
- `onFocus()` se conecta via `self.buffer.set_focus_function(self.onFocus)` en bind_events().
- `auto_read()` se llama desde `process_items()` automáticamente si hay nuevos items.
- Menú contextual aparece con clic derecho o tecla de menú (WXK_WINDOWS_MENU).
- `utils.is_audio_or_video()` y `utils.is_image()` detectan multimedia en posts de Bluesky.
- Los sonidos indicadores (`indicate_audio`, `indicate_img`) ya están en blueski.defaults.
- `update_menus` en `src/controller/mainController.py` interpreta `"HIDE"` para ocultar entradas.
- Buffers de Reposts/Likes usan `PostUserListBuffer` con cursor para paginación.
- Las búsquedas ahora se guardan en `session.settings["other_buffers"]["searches"]`.
- Perfil de usuario descarga imágenes en thread separado para no bloquear UI.
- Paginación usa patrón: `self.next_cursor` guardado en `start_stream()`, usado en `get_more_items()`.
- El menú "load_previous_items" activa `get_more_items()` en el buffer actual.
- Confirmar que actualizacion de buffers en Mastodon se mantiene correcta.
- Considerar OCR para imagenes si es necesario.
## Notas tecnicas
- onFocus se conecta via `self.buffer.set_focus_function(self.onFocus)` en bind_events().
- auto_read se llama desde process_items() automaticamente si hay nuevos items.
- Menu contextual con clic derecho o tecla de menu (WXK_WINDOWS_MENU).
- utils.is_audio_or_video() y utils.is_image() detectan multimedia en posts de Bluesky.
- Sonidos indicadores (indicate_audio, indicate_img) en blueski.defaults.
- update_menus en `src/controller/mainController.py` interpreta "HIDE" para ocultar entradas.
- Buffers de Reposts/Likes usan PostUserListBuffer con cursor para paginacion.
- Busquedas se guardan en session.settings["other_buffers"]["searches"].
- Perfil de usuario descarga imagenes en thread separado para no bloquear UI.
- Paginacion usa patron: next_cursor guardado en start_stream(), usado en get_more_items().
- Menu "load_previous_items" activa get_more_items() en el buffer actual.