diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 98 |
1 files changed, 41 insertions, 57 deletions
@@ -1,89 +1,73 @@ -# sailfish-account-mastodon +# sailfish-account-fediverse -Sailfish OS account integration for Mastodon. +Sailfish OS account integration for the Fediverse. -## Repository Components +## Repository components ### `common/` - Shared C++ library code used by multiple plugins. -- Includes socialcache-backed storage for Mastodon posts and shared Mastodon auth helpers. +- Includes socialcache-backed storage for Fediverse posts and shared OAuth helper code. ### `settings/` - Sailfish Accounts provider, service definitions, and account UI. -- OAuth2 (`web_server`) account flow with per-instance Mastodon app registration. -- Translations: - - QML translation-loader module at `/usr/lib*/qt5/qml/com/jolla/settings/accounts/mastodon/` loads `settings-accounts-mastodon` catalogs for `qsTrId` strings. - - Engineering English catalog: `/usr/share/translations/settings-accounts-mastodon_eng_en.qm` - - Translation source catalog: `/usr/share/translations/source/settings-accounts-mastodon.ts` - - Provider/service metadata uses `<translations>/usr/share/translations/settings-accounts-mastodon</translations>` for metadata string translation paths. -- Services: - - `mastodon-microblog`: sync service for posts and notifications. - - `mastodon-sharing`: Transfer Engine sharing service. +- OAuth2 (`web_server`) account flow with per-instance application registration. +- Discovers instance title, description, and icon from the instance entity. +- Caches remote instance icons and uses them in place of the generic Fediverse icon when available. +- Installs the QML translation-loader plugin under `/usr/lib*/qt5/qml/com/jolla/settings/accounts/fediverse/`. +- Installs `fediverse-microblog`, `fediverse-notifications`, and `fediverse-sharing` service definitions. ### `buteo-plugins/` -- Buteo sync plugins and shared social sync framework code. -- Includes: - - `buteo-sync-plugin-mastodon-posts` - - `buteo-sync-plugin-mastodon-notifications` -- Installs Buteo client profile and sync profile XML files. +- Shared Buteo sync framework support library. +- Sync plugins for Fediverse posts and notifications. +- Installs the Buteo client profile and sync profile XML files. ### `eventsview-plugins/` -- Events view extension for Mastodon posts. -- Includes delegate/feed item QML and `MastodonPostsModel`. +- Events view extension for Fediverse posts. +- Includes the delegate/feed item QML and `FediversePostsModel`. ### `transferengine-plugins/` -- Transfer Engine integration for Mastodon sharing. -- `mastodonshareplugin/`: sharing method discovery + metadata. -- `mastodontransferplugin/`: media upload + status creation. -- Single share UI entry: `MastodonSharePost.qml` handles both media and text/link posting. -- Supports: - - media sharing (`image/jpeg`, `image/png`, `video/mp4`) - - link/text sharing (`text/x-url`, `text/plain`) with title/link extraction from share resources. +- Transfer Engine integration for Fediverse sharing. +- `fediverseshareplugin/`: sharing method discovery and metadata. +- `fediversetransferplugin/`: media upload and status creation. +- `FediverseSharePost.qml` handles both media and text/link posting. ### `icons/` -- Mastodon SVG assets and `sailfish-svg2png` conversion setup. -- Uses canonical icon names only: - - `icons/icon-l-mastodon` +- Generic Fediverse SVG assets and `sailfish-svg2png` conversion setup. +- Uses the canonical icon name `icons/icon-l-fediverse`. + ### `rpm/` -- Packaging for all modules in `rpm/sailfish-account-mastodon.spec`. +- Packaging for all modules in `rpm/sailfish-account-fediverse.spec`. - Packages: - - `sailfish-account-mastodon` (all runtime components) - - `sailfish-account-mastodon-ts-devel` (translation source files only) -- `%qmake5_install` already installs icon outputs from the `icons/` subproject; avoid a second explicit `icons` `make install` in `%install`. -- Translation source `.ts` files are packaged in `sailfish-account-mastodon-ts-devel` (runtime package ships `.qm` only). -- Runtime package ships the Mastodon settings translation-loader QML plugin under `%{_libdir}/qt5/qml/com/jolla/settings/accounts/mastodon/`. + - `sailfish-account-fediverse` + - `sailfish-account-fediverse-ts-devel` +- `%qmake5_install` installs the icon outputs from the `icons/` subproject. +- Translation source `.ts` files are packaged separately from runtime `.qm` files. ### Root project -- `sailfish-account-mastodon.pro` ties subprojects together. +- `sailfish-account-fediverse.pro` ties the subprojects together. -## Current Notification Behavior +## Current behaviour -- Events view shows Mastodon posts (not notification entries). -- Events view post metadata line includes replies, favourites, and boosts alongside elapsed timestamp. -- Long-pressing a Mastodon post reveals quick actions for favourite and boost, calling Mastodon API endpoints directly with account OAuth credentials. -- System notifications are produced by `buteo-sync-plugin-mastodon-notifications`. -- Notifications sync starts from Mastodon server marker (`notifications.last_read_id`) and uses local cursor dedupe via per-account `LastFetchedNotificationId`. -- Each unread Mastodon notification is published as a separate Sailfish system notification. -- Mastodon marker (`last_read_id`) is updated only when no local Mastodon notifications remain for that account. -- Notification template profile dispatches per-account sync profiles on schedule (default every 30 minutes), not only at boot. +- The Events view shows Fediverse posts, not notification entries. +- The Events view metadata line includes replies, favourites, and boosts alongside elapsed time. +- Long-press actions call the instance API directly with the account OAuth credentials. +- System notifications are produced by the Fediverse notifications sync plugin. +- Notifications sync starts from the server marker (`notifications.last_read_id`) and uses a per-account local cursor for dedupe. +- Each unread notification is published as a separate Sailfish system notification. -## Build Requirements +## Build requirements This project targets Sailfish OS build tooling. -Full build/package validation is not possible without Sailfish SDK access (target sysroot + Sailfish packages). - -Required SDK-provided dependencies include (not exhaustive): +Required SDK-provided dependencies include: - `buteosyncfw5` - `socialcache` - `sailfishaccounts` - `nemotransferengine-qt5` -- related Qt/account stack packages listed in `rpm/sailfish-account-mastodon.spec` - -## Typical Build Flow (Inside Sailfish SDK) +- related Qt and Sailfish account stack packages listed in `rpm/sailfish-account-fediverse.spec` -1. Enter Sailfish SDK shell/target. -2. Build from repository root (`qmake` / `make`). -3. Build RPM package(s) from `rpm/sailfish-account-mastodon.spec`. +## Typical build flow -Outside Sailfish SDK, only static validation (wiring, paths, spec consistency) should be considered reliable. +1. Enter a Sailfish SDK shell or target. +2. Build from the repository root. +3. Build RPM packages from `rpm/sailfish-account-fediverse.spec`. |
