summaryrefslogtreecommitdiff
path: root/README.md
blob: f8a1b97a0b6918e426d48a3a315f17bcd3fabd77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 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`.