GeopJr / Tuba

Browse the Fediverse
https://tuba.geopjr.dev/
GNU General Public License v3.0
574 stars 61 forks source link

Add support for UnifiedPush #42

Open spazziale opened 1 year ago

spazziale commented 1 year ago

For both desktop and mobile Linux, https://unifiedpush.org is a standard that can deliver push notifications over D-Bus, while allowing the end-user to self-host infrastructure. UnifiedPush on Android is already being used by a few apps like Tusky and Fedilab ( mastodon clients ) , but the Linux implementation is new. The UP chat is at https://matrix.to/#/#unifiedpush:matrix.org

It's probably a low-priory feature, but it's a nice thing to have.

julianfairfax commented 1 year ago

I don't understand why you can keep Tuba running in the background. If this feature isn't supported, what's the point of that?

johnlpe commented 1 year ago

From #349:

Please add support for UnifiedPush push notification protocol/standard.

We need push notifications, but we don’t want use centralized online service that read we all notifications, like Android has Google Firebase Messaging Service and iOS has Apple Push Notification service. UnifiedPush protcol is the solution for this. UnifiedPush is open protocol/standard for connection between online service (Application Server) → notification service (Push Server) and notification service’s client (Push Distributor) → application (End User Application). It enables the user to choose the service through he receives his push notifications.

Especially GNU/Linux on mobile is very big need of push notifications and with UnifiedPush we can fix it.

johnlpe commented 1 year ago

Tuba does support notifications when the app is the foreground, right? And remember the point of UnifiedPush is that one Push Distributor keep active connection. When Push Distributor receive notification it shows notifications directly or wakes up End User Application like Tuba (the notification can be only ping that isn't shown to the user and the End User Application fetch the content of the notification from the server after being woken up by UnifiedPush).

However, IDK, is UnifiedPush protocol defined a way to wake up the End User Application? It may be that the app needs to be running, but it doesn't need to do anything heavy, like keep active connect to the server. The app just need to listen Dbus.

https://github.com/UnifiedPush @p1gp1g

GeopJr commented 1 year ago

I don't understand why you can keep Tuba running in the background. If this feature isn't supported, what's the point of that?

The renaming of this issue should make it a bit more clear:

This issue is low priority however.

johnlpe commented 1 year ago

UnifiedPush allows you to receive notifications without Tuba constantly running / keeping an active websocket connection to your instance

Yup, and I think supporting UnifiedPush it pretty trivial. The standard defines a quite simple way to receive notifications and I think UnifiedPush contributors on https://matrix.to/#/#unifiedpush:matrix.org are happy to help. Also tehere is KUnifiedPush library by KDE.

https://unifiedpush.org/spec/dbus/ https://invent.kde.org/libraries/kunifiedpush https://www.volkerkrause.eu/2022/11/12/kde-unifiedpush-push-notifications.html https://discourse.gnome.org/t/push-notifications-for-linux/16074

This issue is low priority however.

Why you think so? I think this is very important for GNU/Linux on mobile.

GeopJr commented 1 year ago

Why you think so? I think this is very important for GNU/Linux on mobile.

Someone (probably me) needs to write bindings to the C/Go library and the wording on all related pages doesn't sound that promising:

NOTE: This library is unstable as long as it's on version 0.x.x (https://github.com/UnifiedPush/go_dbus_connector)

Linux support is still experimental, also check out KUnifiedPush for an application-framework (KDE) based implementation. (https://unifiedpush.org/developers/go_c/)

johnlpe commented 1 year ago

Someone (probably me) needs to write bindings to the C/Go library and the wording on all related pages doesn't sound that promising:

Eh, the killer feature for v2.0 of Tuba?:laughing:

julianfairfax commented 1 year ago

Tuba has notifications, as long as it's running (either on the foreground or the background (with --hidden or when "background work" is enabled etc))

I have never gotten these, despite the fact that I run Tuba in the background. When I "open" the app (so just bring it forward basically), it shows there are a lot of notifications, but I never receive any notification on my desktop. I'm running the Flatpak.

GeopJr commented 1 year ago

Could you open a new bug issue for it? Preferably with logs (flatpak run dev.geopjr.Tuba) - specifically any errors before or after messages that start with "Opening stream: ". FWIW, notifications have been supported since Tootle / before Tuba and they use the portal so something else is going on.