diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 69 |
1 files changed, 38 insertions, 31 deletions
@@ -2,70 +2,77 @@ Sailfish OS account integration for Mastodon. -## What This Repository Contains - -This repository is the initial public form of the Mastodon plugin and contains all of its account integration components. +## Repository Components ### `common/` - Shared C++ library code used by multiple plugins. -- Includes Mastodon posts database support built on `socialcache`. +- Includes socialcache-backed databases for Mastodon posts and notifications. ### `settings/` -- Sailfish Accounts provider and services definitions. -- Account UI QML files for account creation/settings/credentials update. -- Uses OAuth2 (`web_server`) account flow with per-instance Mastodon app registration. -- Current services: - - `mastodon-microblog` (sync posts) - - `mastodon-sharing` (Transfer Engine sharing) +- Sailfish Accounts provider, service definitions, and account UI. +- OAuth2 (`web_server`) account flow with per-instance Mastodon app registration. +- Services: + - `mastodon-microblog`: sync service for posts and notifications. + - `mastodon-sharing`: Transfer Engine sharing service. ### `buteo-plugins/` -- Social sync plugins for Buteo. -- Includes shared Buteo social plugin framework code and Mastodon posts sync plugin/profile files. -- Installs Buteo client and sync profile XML files. +- 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. ### `eventsview-plugins/` -- Events view extension QML/C++ plugin for Mastodon posts. +- Events view extension for Mastodon posts. - Includes delegate/feed item QML and `MastodonPostsModel`. ### `transferengine-plugins/` - Transfer Engine integration for Mastodon image sharing. -- `mastodonshareplugin/`: sharing method discovery and share UI metadata. -- `mastodontransferplugin/`: upload implementation (upload media + create status). -- Shared account credential/status helper: `mastodonshareservicestatus.*`. +- `mastodonshareplugin/`: sharing method discovery + metadata. +- `mastodontransferplugin/`: media upload + status creation. ### `icons/` -- Mastodon SVG icon assets and Sailfish icon conversion setup (`sailfish-svg2png`). -- Provides themed service icons used by provider/settings/transfer UI. - +- Mastodon SVG assets and `sailfish-svg2png` conversion setup. +- Uses canonical icon names only: + - `icons/icon-l-mastodon` ### `rpm/` -- RPM spec for packaging all components. -- Defines subpackages: +- Packaging for all modules in `rpm/sailfish-account-mastodon.spec`. +- Subpackages: - `sailfish-account-mastodon` - `buteo-sync-plugin-mastodon-posts` + - `buteo-sync-plugin-mastodon-notifications` - `eventsview-extensions-mastodon` - `transferengine-plugin-mastodon` - - `sailfish-account-mastodon-features-all` +- Main package requires all feature subpackages. + +### Root project +- `sailfish-account-mastodon.pro` ties subprojects together. + +## Current Notification Behavior -### Root project file -- `sailfish-account-mastodon.pro` ties all subprojects together. +- Events view shows Mastodon posts (not notification entries). +- System notifications are produced by `buteo-sync-plugin-mastodon-notifications`. +- Notifications sync fetches unread items using Mastodon markers (`last_read_id`). +- Dismissing the Sailfish notification marks those items as read on Mastodon via markers API. +- Notification template profile dispatches per-account sync profiles on schedule (default every 30 minutes), not only at boot. ## Build Requirements -This project is designed for the Sailfish OS build environment. +This project targets Sailfish OS build tooling. -A full build is not possible without Sailfish SDK access (including target sysroot/tooling and Sailfish-specific development packages). +Full build/package validation is not possible without Sailfish SDK access (target sysroot + Sailfish packages). -In particular, dependencies like these must come from the Sailfish SDK target environment: +Required SDK-provided dependencies include (not exhaustive): - `buteosyncfw5` - `socialcache` - `sailfishaccounts` - `nemotransferengine-qt5` -- other Sailfish/Qt account stack packages listed in `rpm/sailfish-account-mastodon.spec` +- related Qt/account stack packages listed in `rpm/sailfish-account-mastodon.spec` ## Typical Build Flow (Inside Sailfish SDK) 1. Enter Sailfish SDK shell/target. -2. Run qmake build from repository root. +2. Build from repository root (`qmake` / `make`). 3. Build RPM package(s) from `rpm/sailfish-account-mastodon.spec`. -If you are outside Sailfish SDK, use static checks and code review only. +Outside Sailfish SDK, only static validation (wiring, paths, spec consistency) should be considered reliable. |
