# sailfish-account-fediverse Sailfish OS account integration for the Fediverse. ## Repository components ### `common/` - Shared C++ library code used by multiple plugins. - 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 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/` - 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 Fediverse posts. - Includes the delegate/feed item QML and `FediversePostsModel`. ### `transferengine-plugins/` - 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/` - 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-fediverse.spec`. - Packages: - `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-fediverse.pro` ties the subprojects together. ## Current behaviour - 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 This project targets Sailfish OS build tooling. Required SDK-provided dependencies include: - `buteosyncfw5` - `socialcache` - `sailfishaccounts` - `nemotransferengine-qt5` - related Qt and Sailfish account stack packages listed in `rpm/sailfish-account-fediverse.spec` ## Typical build flow 1. Enter a Sailfish SDK shell or target. 2. Build from the repository root. 3. Build RPM packages from `rpm/sailfish-account-fediverse.spec`.