mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2026-03-06 09:27:33 +01:00
Más limpieza. Actualización de archivos .md para el contexto.
This commit is contained in:
13
CAMBIOS.md
13
CAMBIOS.md
@@ -260,3 +260,16 @@ Para integrar Bluesky en TWBlue, también se modificaron:
|
|||||||
- Las listas de Bluesky no están implementadas aún
|
- Las listas de Bluesky no están implementadas aún
|
||||||
- Los starter packs no están soportados
|
- Los starter packs no están soportados
|
||||||
- La moderación de contenido es básica (solo CW)
|
- La moderación de contenido es básica (solo CW)
|
||||||
|
|
||||||
|
## Correcciones Recientes (2026-02-01)
|
||||||
|
|
||||||
|
### Flujo de compose y rendimiento (Bluesky)
|
||||||
|
- Compose vuelve a ser local por buffer (como en el codigo original), sin capa intermedia.
|
||||||
|
- Envio de post/reply en thread para evitar bloqueos de UI.
|
||||||
|
- Helper `controller/blueski/messages.py::post` centraliza el dialogo y el payload.
|
||||||
|
- DM en chats Bluesky se envian en thread con refresco de buffer.
|
||||||
|
|
||||||
|
### Sesiones y UI
|
||||||
|
- Autologin en 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).
|
||||||
|
|||||||
80
context.md
80
context.md
@@ -1,58 +1,46 @@
|
|||||||
# Contexto de trabajo
|
# Contexto de trabajo
|
||||||
|
|
||||||
## Objetivo final
|
## 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
|
## 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)
|
## Cambios recientes (sesion actual)
|
||||||
- **Accesibilidad mejorada en Bluesky:**
|
- Compose Bluesky vuelve a ser local por buffer (sin capa intermedia) y el envio es en thread.
|
||||||
- Implementado método `onFocus()` para: actualizar tiempos relativos, leer posts largos en GUI, reproducir sonidos indicadores de audio/imagen.
|
- Nuevo helper `controller/blueski/messages.py::post` para centralizar dialogo y payload.
|
||||||
- Implementado método `auto_read()` para lectura automática de nuevos items.
|
- DM de chats Bluesky en thread con refresco de buffer.
|
||||||
- Implementado menú contextual (`show_menu()`, `show_menu_by_key()`).
|
- Autologin para todas las sesiones (excepto ignoradas) para iniciar buffers al abrir.
|
||||||
- Añadido método `open_in_browser()` para abrir posts en navegador.
|
- Correccion de "Actualizar buffer" cuando la sesion no tiene `KIND`.
|
||||||
- Añadido método `add_new_item()` para streaming.
|
- Menu de nueva cuenta muestra solo "Bluesky" (sin duplicados).
|
||||||
- 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 anteriores
|
## Cambios anteriores
|
||||||
- Perfil de usuario mejorado: imágenes de avatar/banner, botones de timeline (posts, followers, following).
|
- Accesibilidad mejorada en Bluesky: onFocus, auto_read, menu contextual, open_in_browser, add_new_item, update_item, get_buffer_name, copy.
|
||||||
- Acciones de usuario en perfil: follow, unfollow, mute, unmute, block, unblock.
|
- Nuevos archivos: `src/sessions/blueski/utils.py`, `src/wxUI/dialogs/blueski/menus.py`.
|
||||||
- Autocompletado añadido al diálogo de acciones de usuario.
|
- Correcciones de sonido: self.sound en todos los buffers.
|
||||||
- Atajos de teclado (&) añadidos a botones del perfil.
|
- Perfil de usuario mejorado y acciones de usuario completas.
|
||||||
- Persistencia de búsquedas implementada (se guardan y restauran al reiniciar).
|
- Autocompletado en dialogos de timeline y acciones de usuario.
|
||||||
- Paginación completa en todos los buffers: HomeTimeline, FollowingTimeline, NotificationBuffer, LikesBuffer, MentionsBuffer, SentBuffer, UserTimeline, SearchBuffer.
|
- Persistencia de busquedas y paginacion completa en buffers.
|
||||||
- Activado autocompletado en el diálogo "Ver timeline..." y validación de usuario.
|
- Reposts/Likes abren buffers con paginacion bajo "Timelines".
|
||||||
- Reposts/Likes ahora abren buffers con paginación bajo "Timelines".
|
- Restauracion de followers/following propios sin duplicar.
|
||||||
- Restauración de followers/following propios sin duplicar.
|
- Estructura del arbol: "Searches" agregado.
|
||||||
- Estructura del árbol: se añadió "Searches" en Bluesky.
|
- Menus de Bluesky ocultan opciones no aplicables via sentinel "HIDE".
|
||||||
- Menús: para Bluesky, las opciones no aplicables se ocultan usando el sentinel "HIDE".
|
|
||||||
|
|
||||||
## Puntos pendientes
|
## 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).
|
- Implementar soporte de templates para usuarios y notificaciones (como Mastodon).
|
||||||
- Considerar OCR para imágenes si es necesario.
|
- Confirmar que actualizacion de buffers en Mastodon se mantiene correcta.
|
||||||
|
- Considerar OCR para imagenes 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.
|
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|||||||
63
falta.md
63
falta.md
@@ -1,63 +0,0 @@
|
|||||||
# Pendientes para igualar la UI de Bluesky con Mastodon
|
|
||||||
|
|
||||||
Objetivo: la experiencia debe ser id?ntica a Mastodon siempre que el protocolo lo permita; si no existe algo en blueski que si en mastodon, debe no diseñarse. Por ejemplo comunities no tiene mucho sentido.
|
|
||||||
|
|
||||||
## 1) Di?logo "Ver timeline..." (Alt+Win+I)
|
|
||||||
- Autocompletado de usuarios como en Mastodon (bot?n "Autocomplete users").
|
|
||||||
- Selecci?n y listado de m?ltiples usuarios (no solo autor/mentions con facetas).
|
|
||||||
- Resoluci?n de handles/DIDs en segundo plano con feedback accesible.
|
|
||||||
Hecho.
|
|
||||||
|
|
||||||
## 2) Listas de Reposts/Likes (desde "Ver post")
|
|
||||||
- En Mastodon se abren listas tipo buffer; en Bluesky ahora es di?logo con paginaci?n.
|
|
||||||
- Igualar creando buffers dedicados (UserBuffer/FollowersBuffer) bajo nodo "Timelines" o "Searches".
|
|
||||||
- Mantener paginaci?n y persistencia coherentes con Mastodon (cursor + get_more_items).
|
|
||||||
Hecho.
|
|
||||||
|
|
||||||
## 3) Restauraci?n de buffers "Followers/Following" propios
|
|
||||||
- En ejecuci?n ya reutiliza los buffers principales del usuario.
|
|
||||||
- Al restaurar tras reinicio, debe saltar a los buffers propios (si ya existen) y no duplicar.
|
|
||||||
Hecho.
|
|
||||||
|
|
||||||
## 4) Estructura del ?rbol (Treebook)
|
|
||||||
- Mastodon crea nodos vac?os: "Timelines", "Searches", "Communities".
|
|
||||||
- En Bluesky solo existe "Timelines".
|
|
||||||
- Crear nodos equivalentes siempre y cuando aplique por protocolo.
|
|
||||||
Hecho.
|
|
||||||
|
|
||||||
## 5) Men?s/acciones de ?tem
|
|
||||||
- Mastodon incluye OCR, filtros, listas, community timelines, etc.
|
|
||||||
- Bluesky carece de varias acciones.
|
|
||||||
- Decidir por acci?n: implementar, deshabilitar o mostrar mensaje "No soportado" para igualar UI.
|
|
||||||
Hecho.
|
|
||||||
|
|
||||||
## 6) Perfil de usuario
|
|
||||||
- Mastodon muestra campos y acciones adicionales.
|
|
||||||
- Bluesky tiene datos mínimos.
|
|
||||||
- Igualar en la medida de lo posible. Si blueski no da x datos, no se crea nada.
|
|
||||||
Hecho. Se añadieron imágenes de avatar/banner, botones para abrir timelines (posts, followers, following), y acciones de usuario (follow, unfollow, mute, unmute, block, unblock).
|
|
||||||
|
|
||||||
## 7) Diálogo de acciones de usuario
|
|
||||||
- Mastodon: autocompletado y búsqueda avanzada.
|
|
||||||
- Bluesky: diálogo sin autocompletado.
|
|
||||||
- Igualar con autocompletado y/o búsqueda en segundo plano.
|
|
||||||
Hecho. Se añadió botón de autocompletado de usuarios al diálogo de acciones.
|
|
||||||
|
|
||||||
## 8) Consistencia de nombres y etiquetas
|
|
||||||
- Algunos textos difieren ("Reposts" vs "Boosts", "Likes" vs "Favorites").
|
|
||||||
- Definir equivalencias y usar mismas etiquetas donde aplique.
|
|
||||||
Hecho. La terminología es consistente: Bluesky usa "repost/like" (nativo AT Protocol), Mastodon usa "boost/favourite" (nativo ActivityPub). Esto es correcto.
|
|
||||||
|
|
||||||
## 9) Paginación en listados
|
|
||||||
- Bluesky: implementada en Reposts/Likes y Followers/Following.
|
|
||||||
- Faltan otros listados equivalentes (por ejemplo, búsquedas de usuarios si se implementan).
|
|
||||||
Hecho. Paginación implementada en todos los buffers: HomeTimeline, FollowingTimeline, NotificationBuffer, LikesBuffer, MentionsBuffer, SentBuffer, UserTimeline, SearchBuffer, FollowersBuffer, FollowingBuffer, PostUserListBuffer.
|
|
||||||
|
|
||||||
## 10) Accesibilidad/teclado
|
|
||||||
- Verificar atajos en todos los nuevos diálogos/buffers.
|
|
||||||
- Asegurar foco inicial y navegación idéntica a Mastodon.
|
|
||||||
Hecho. Se añadieron atajos de teclado (&) a los botones del diálogo de perfil.
|
|
||||||
|
|
||||||
## 11) Persistencia
|
|
||||||
- Confirmar que todos los buffers creados por el usuario (timelines, followers, following, búsquedas) se guardan/restauran.
|
|
||||||
Hecho. Se añadió persistencia de búsquedas. Ya existía para timelines, followers y following.
|
|
||||||
Reference in New Issue
Block a user