Commit Graph
20 Commits
Author SHA1 Message Date
google-labs-jules[bot] 1dffa2a6f9 feat: Initial integration of ATProtoSocial (Bluesky) protocol
This commit introduces the initial implementation for supporting the ATProtoSocial (Bluesky) protocol within your application.

Key changes and features I implemented:

1.  **Core Protocol Structure:**
    *   I added new directories `src/sessions/atprotosocial` and `src/controller/atprotosocial`.
    *   I populated these with foundational files (`session.py`, `utils.py`, `handler.py`, `compose.py`, etc.), mirroring the Mastodon implementation structure but adapted for ATProtoSocial.

2.  **Authentication:**
    *   I implemented login and authorization using Bluesky SDK (handle and app password) in `sessions/atprotosocial/session.py`.
    *   I integrated this into your session management UI (`sessionManagerDialog.py`) to allow adding ATProtoSocial accounts.

3.  **Posting Capabilities:**
    *   I implemented sending text posts, posts with images, replies, and quoting posts in `sessions/atprotosocial/session.py` and `utils.py`.
    *   I updated `compose.py` to reflect ATProtoSocial's panel configuration (character limits, media support, quoting).

4.  **Notifications:**
    *   I implemented fetching and processing of notifications (likes, reposts, follows, mentions, replies, quotes) in `sessions/atprotosocial/session.py`.
    *   Notifications are formatted for display.

5.  **Timelines:**
    *   I implemented fetching and processing for home timeline and user-specific timelines in `sessions/atprotosocial/session.py`.
    *   This includes handling of posts, reposts, and replies within your application's buffer and message cache system.

6.  **User Actions:**
    *   I implemented core user actions: follow, unfollow, mute, unmute, block, unblock in `sessions/atprotosocial/utils.py`.
    *   I integrated these actions into the controller layer (`controller/atprotosocial/handler.py`) and exposed them via `session.get_user_actions()`.

7.  **User Management & Profile:**
    *   I implemented fetching user profiles, follower lists, following lists, and user search in `sessions/atprotosocial/utils.py` and `controller/atprotosocial/userList.py`.

8.  **UI Integration (Initial Pass):**
    *   I adapted your session management UI for ATProtoSocial account creation.
    *   I updated main controller logic to load the ATProtoSocial handler and create basic buffers (Home, Notifications).
    *   I modified menu item labels based on the active session type (e.g., "Post" vs "Toot", "Like" vs "Favorite").
    *   I integrated core actions like reposting and liking into existing UI flows.
    *   I added basic integration for timeline refresh and loading more items.
    *   I added placeholder integration for viewing user profiles and user-specific timelines.

**Current Status & Next Steps:**

This represents a significant portion of the ATProtoSocial integration. The backend logic for most core features is in place. The immediate next steps, which were part of the original plan but not yet completed, would be:

*   **Refining UI elements:** Fully implementing dedicated dialogs (compose, user profile), custom panels for new buffer types, and ensuring accurate rendering of ATProtoSocial posts and notifications.
*   **Completing Documentation:** Updating all relevant documentation files in `doc/` and `documentation/`.
*   **Updating Translations:** Adding new strings and updating translation files.
*   **Adding Tests:** Creating unit and integration tests for the new protocol.

I was not stuck on any particular point, but the UI integration is a large step that requires iterative refinement and testing for each component, which would naturally extend beyond a single development cycle for a feature of this scope.
2025-05-26 14:11:01 +00:00
manuelcortez 8acebc290b Remove most of Twitter code as Twitter's API access has been removed 2023-04-03 13:35:05 -06:00
manuelcortez f69af7aaa1 Twitter: Stop supporting Twitter sessions starting on february 9 2023-02-03 10:29:21 -06:00
manuelcortez af4e72ee27 Refactored SessionManager so it will use pubsub as a communication pattern between GUI and logic and adds mastodon auth 2022-02-24 12:25:45 -06:00
manuelcortez 39e1fb017c Made code indentation to comply with PEP8 2021-06-16 16:18:41 -05:00
manuelcortez 4fa983a314 Show error when loading an account with invalid or expired tokens. Fixes #328 2020-05-29 11:17:18 -05:00
manuelcortez ef689d04fc Initial Python 3 compatible code 2019-06-06 11:52:23 -05:00
manuelcortez 0cfa89b389 Moved Twitter's session from sessionmanager to sessions.twitter 2018-08-17 05:12:49 -05:00
manuelcortez 9847f7ad01 Get back to PIN code authorization due to Twitter changes. Closes #216 2018-06-06 09:11:37 -05:00
manuelcortez 76582c6313 Show dialog while waiting for account authorisation. Possibly fixes #101. Needs tests 2017-07-30 04:05:32 -05:00
Jose Manuel Delicado 6a6bec880c SessionManager.WXUI: now the dialog title is translatable 2016-02-20 13:51:12 +01:00
manuelcortez 920c1cf863 Fixed some translatable strings 2015-06-26 08:20:21 -05:00
manuelcortez 797f6a8432 Modified default keymap 2015-06-26 08:19:40 -05:00
Bill Dengler 671e0e0bff String cleanup. 2015-05-16 03:31:53 -04:00
manuelcortez f51c873324 New snapshot 2015-04-22 15:34:44 -05:00
Bill Dengler ddf9d29b7d Fixed imports. 2015-04-19 19:28:27 -04:00
Bill Dengler 109635b8f4 More generalization. 2015-04-19 19:23:31 -04:00
Sukil Etxenike b272a08ab9 Corrected program strings. 2015-04-05 23:39:55 +02:00
manuelcortez 373ca24a96 Session manager is now fully MVC, it can removes an account too 2015-03-05 11:27:48 -06:00
manuelcortez f54d9394b7 The next generation branch has been added 2014-11-12 20:41:29 -06:00