Commit Graph

365 Commits

Author SHA1 Message Date
Jesús Pavón Abián
4cd8636e4a Sesiones 2026-02-01 20:45:54 +01:00
Jesús Pavón Abián
0d8395c6fc Recuperar código antiguo que funciona. Limpiar basura. 2026-02-01 20:21:44 +01:00
Jesús Pavón Abián
86adf2311a Arreglado un problema con inicio de sesiones 2026-02-01 20:15:10 +01:00
Jesús Pavón Abián
6ee67cc886 Commit de no perder cambios 2026-02-01 13:57:01 +01:00
Jesús Pavón Abián
9bb1522eca Hilos funcionan. 2026-02-01 13:01:32 +01:00
Jesús Pavón Abián
6a5e4407ac Arreglado ver perfil. 2026-02-01 12:49:33 +01:00
Jesús Pavón Abián
f7f12a1c7b Terminando integración 2026-02-01 10:42:05 +01:00
Jesús Pavón Abián
56d05b60a1 Avance 2026-01-11 20:16:39 +01:00
Jesús Pavón Abián
932e44a9c9 Avance 2026-01-11 20:13:56 +01:00
Jesús Pavón Abián
9d9d86160d Commit 2026-01-10 19:46:53 +01:00
Jesús Pavón Abián
7399ac46d4 Commit 2025-11-07 09:24:02 +01:00
Claude
977de1332a Implement post editing functionality for Mastodon
Add ability to edit posts in Mastodon with full support for:
- Editing post text and content warnings
- Re-uploading or keeping existing media attachments
- Editing poll options (for posts with polls)
- Modifying visibility and language settings
- All features available through web interface

Changes:
- Add edit_post() method in Mastodon session to handle API calls
- Create editPost dialog class that loads existing post data
- Add edit_status() method to buffer controllers
- Add Edit menu item to base and notification menus
- Register edit_post action in all keymaps (no default key assigned)
- Add edit_post() action handler in main controller

The edit option is only enabled for the user's own posts (not boosts).
Users can access the feature through the context menu or by assigning
a keyboard shortcut in the keymap editor.
2025-11-06 14:37:12 +00:00
Jesús Pavón Abián
9124476ce0 Feat: Atproto integration. You can see home 2025-08-30 22:48:00 +02:00
google-labs-jules[bot]
8e999e67d4 Hi there! I've just finished implementing the ATProtoSocial (Bluesky) protocol, building upon the initial backend work. This update includes comprehensive UI refinements, documentation updates, an attempt to update translation files, and foundational unit tests.
Here's a breakdown of what I accomplished:

1.  **UI Refinements (Extensive):**
    *   **Session Management:** ATProtoSocial is now fully integrated into the Session Manager for account creation and loading.
    *   **Compose Dialog:** I created and wired up a new generic `ComposeDialog`. It supports text, image attachments (with alt text), language selection, content warnings, and quoting posts, configured by ATProtoSocial's capabilities.
    *   **User Profile Dialog:** I developed a dedicated `ShowUserProfileDialog` for ATProtoSocial. It displays user details (DID, handle, name, bio, counts) and allows you to perform actions like follow, mute, block, with button states reflecting existing relationships.
    *   **Custom Panels:** I created new panels for:
        *   `ATProtoSocialHomeTimelinePanel`: Displays your home timeline.
        *   `ATProtoSocialUserTimelinePanel`: Displays a specific user's posts.
        *   `ATProtoSocialNotificationPanel`: Displays notifications.
        *   `ATProtoSocialUserListPanel`: Displays lists of users (followers, following).
        These panels handle data fetching (initial load and "load more"), and use new `compose_post_for_display` and `compose_notification_for_display` methods for rendering.
    *   **Controller Integration:** I updated `mainController.py` and `atprotosocial/handler.py` to manage the new dialogs, panels, and ATProtoSocial-specific menu actions (Like, Repost, Quote, etc.). Asynchronous operations are handled using `wx.CallAfter`.

2.  **Documentation Updates:**
    *   I created `documentation/source/atprotosocial.rst` detailing Bluesky support, account setup, and features.
    *   I updated `documentation/source/index.rst` to include the new page.
    *   I updated `documentation/source/basic_concepts.rst` with ATProtoSocial-specific terms (DID, Handle, App Password, Skyline, Skeet).
    *   I added a comprehensive entry to `doc/changelog.md` for this feature.

3.  **Translation File Updates (Attempted):**
    *   I manually identified new user-facing strings from Python code and documentation.
    *   I manually updated `tools/twblue.pot` (application strings) and `tools/twblue-documentation.pot` (documentation strings) with these new strings. I had to do this manually because the project's translation scripts weren't runnable in the current environment.
    *   An attempt to update Spanish PO files using `msgmerge` failed due to issues (duplicate message definitions) in the manually created POT files. The updated POT files serve as the best available templates for translators under these constraints.

4.  **Unit Tests:**
    *   I created `src/test/sessions/atprotosocial/test_atprotosocial_session.py`.
    *   I implemented foundational unit tests for `ATProtoSocialSession` covering:
        *   Initialization.
        *   Mocked authentication (login/authorize, success/failure).
        *   Mocked post sending (text, quotes, media).
        *   Mocked timeline fetching (home, user).
        *   Mocked notification fetching and handler dispatch.
    *   The tests utilize `unittest.IsolatedAsyncioTestCase` and extensive mocking of the Bluesky SDK and wxPython dialogs.

**Overall Status:**
The ATProtoSocial integration is now functionally rich, with both backend logic and a comprehensive UI layer. I've updated the documentation to guide you, and a baseline of unit tests ensures core session logic is covered. The primary challenge I encountered was the inability to use the project's standard scripts for translation file generation, which meant I had to take a manual (and thus less robust) approach for POT file updates.
2025-05-30 16:16:21 +00:00
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
9ff772f098 cleaned filter dialogs. Added filter management (mostly done) 2025-03-07 13:01:08 -06:00
00e5766f90 Bind Filter create function to menu bar 2025-03-07 10:13:34 -06:00
6b97c5123f mastodon: Language should be automatically suggested for posts during creation, replies or when recovering from an error 2024-12-31 18:51:00 -06:00
9c2511561a Code cleanup 2024-05-18 17:24:28 -06:00
b39ccb9f2c Started implementation of community timelines 2024-05-17 17:45:47 -06:00
fd1a64c7b8 fix: Switch to Windows 11 keymap when running Windows 11. Closes #494 2024-05-16 10:52:11 -06:00
8b5c47da28 Core: Updated website references for TWBlue 2023-12-31 12:20:06 -06:00
d56c8b4372 Renamed showUserProfile to user_details to keep compatibility with invisible interface and naming pattern of functions 2023-10-10 17:43:31 -06:00
b3e0b21ee7 Merge pull request #540 from Arfs6/stop_update_running_source
stop updating while running from source
2023-10-10 16:50:11 -06:00
Abdulqadir Ahmad
f4ec03099a added actions, following, followers and posts button to show user profile dialog 2023-08-27 17:56:39 +01:00
Abdulqadir Ahmad
1d8fefe7d3 created show user profile dialog 2023-08-10 17:19:58 +01:00
Abdulqadir Ahmad
453630e655 created basic update profile with support for name and bio 2023-06-08 00:40:38 +01:00
Abdulqadir Ahmad
f9b54ede81 fix updating while running from source if user checks for update from menu 2023-06-03 00:39:42 +01:00
10e23b039b Mastodon: Added user aliases 2023-04-05 13:28:09 -06:00
65aea3c43c Mastodon: Change buffer title properly after timelines are loaded during startup 2023-04-05 09:39:39 -06:00
5f07f3b9d0 Mastodon: Add attachments and reply settings to post when recovering from an error. Closes #527, #526, #377, #137, #108 2023-04-03 16:03:20 -06:00
8acebc290b Remove most of Twitter code as Twitter's API access has been removed 2023-04-03 13:35:05 -06:00
a57ea752d6 Mastodon: Finished first implementation of 'reattempt to post on failures'. Should be relevant for #527, #526, #377, #137, #108 2023-03-23 13:17:55 -06:00
866da8425c Merge pull request #524 from Arfs6/fix_report_error_btn
Bind error reporting item on menu bar to github issues. Closes #520
2023-03-01 15:40:26 -06:00
Abdulqadir Ahmad
e9ae5b228b Fixed report an error button not working 2023-02-25 10:39:05 +01:00
e31369e49a Mastodon: Added experimental support for voting in polls 2023-02-17 23:19:34 -06:00
310ba003c9 Twitter: Remove Twitter deprecation on feb 9 due to (more) changes on dates, features and stuff 2023-02-08 23:00:45 -06:00
7c959088e0 Core: Fixed small issue when switching between accounts on invisible interface 2023-02-06 02:43:00 -06:00
e4f2793aaf Core: Update 'tweet' menu on the menu bar for mastodon sessions 2022-12-21 10:24:44 -06:00
ca40103df7 Core: Keystroke editor will show actions available for current session. Changed wording to use correct terms forh both networks 2022-12-20 13:02:27 -06:00
250b248d25 Core: Update menu bar items when switching between Twitter and Mastodon session to use terms according to the focused network. 2022-12-20 12:21:30 -06:00
1eb9aefbf1 Mastodon: Added notifications in real time from streaming API 2022-12-19 16:07:45 -06:00
d4ebfac317 Core: Skip sessions not yet started when switching accounts in invisible interface 2022-12-19 08:45:05 -06:00
5bbf069d61 Set updated statuses also in GUI 2022-11-25 17:43:03 -06:00
fabca1207d Fixed issue when cleaning a buffer 2022-11-24 16:36:08 -06:00
4a9098021f Avoid playing new dm's sound for now 2022-11-20 15:01:15 -06:00
8850e5fdde Removed unneeded code and fixed small typos 2022-11-20 14:54:10 -06:00
d3914a4e34 Implemented user timelines (statuses, followers & following). Limited support due to API 2022-11-20 02:23:12 -06:00
ce458a8d4d Added direct messages and followers to streaming API implementation 2022-11-19 19:36:21 -06:00
149ce51f49 early support to user streaming events 2022-11-18 16:29:53 -06:00