binwiederhier / ntfy

Send push notifications to your phone or desktop using PUT/POST
https://ntfy.sh
Apache License 2.0
17.82k stars 695 forks source link

Publish messages in app (messaging-style bottom bar) #98

Open kmously opened 2 years ago

kmously commented 2 years ago

Hello,

Thanks for the great open-source app.

The "sent test notification" feature is great for testing everything. I was wondering if it is possible to re-use most of it to be able to send any kind of message from the client side.

So there could be an additional option, "Send custom message", which would open a form with Title/Message/Priority/Attachment fields, and those could be used to send quick custom messages between devices or share files with the server.

Thanks!

binwiederhier commented 1 year ago

Doing this now, here: https://github.com/binwiederhier/ntfy-android/pull/45

binwiederhier commented 1 year ago

I've done this so far, but on Discord people don't like the message bar that prominent. So I'm not quite sure what to do. :thinking:

Screenshot from 2022-11-25 12-54-20

Screenshot from 2022-11-25 12-54-05

kmously commented 1 year ago

Thanks for working on this. Is that a message bar at the bottom of the main page? Interesting. It is not what I had in mind. I was thinking about it more as a way to send custom one-off messages .. with ability to set title, body, priority, attachments, etc.

Making it into a messaging-style app as you did is interesting too, actually.

How about doing 2 things to add functionality and also keep everyone happy:

1) keeping the message-style bar as you did but only enabled optionally in the settings e.g. "enable message-style bar". If disabled, current behavior remains unchanged.

2) a new option from settings, called "send custom message" right above "send test message". But unlike "send test message", instead of immediately sending a random message, it takes the user to a form page that has multiple fields, like title, description, priority, attachment. The user can fill those fields and then hit "send".

Does that make sense?

Both would be completely out of the way unless the user decides to use/enable them.

binwiederhier commented 1 year ago
  1. Thanks for the feedback. I showed the message bar on Discord and everybody seems to hate it. So I'll likely not going to go with that. For what it's worth, I was going to add a full "send message" dialog as well that you could open from the message bar...

  2. Here was another idea that someone had: Basically have a floating action button that opens the dialog that you mentioned. Though I hate that too :smile:

image

  1. So I think I'll implement what you suggested: A menu item that opens the "send message" dialog, similar to the one in the web app.

Here's the "send message" dialog from the web app. I'll probably make something similar in Android.

image

r4zzz4k commented 1 year ago

I'm actually finding both the message bar and separate dialog useful in web UI. Message bar seems to be useful in throwing one-off short text pushes, and any rich messages conveniently go to dialog. It's a pity people on DIscord hate the message bar. Maybe it's okay to leave it be, just make it optional with a toggle in settings?

kmously commented 1 year ago

Hey.. I don't know why the discord people don't like it 🙂 I agree with you. I think both are useful. I was more interested in the dialog because of the attachments capability but I can see the "instant messaging" feature being useful too.

I see no harm in having them out of the way but still available. Sounds like a win-win. (I would certainly be happy with that)

👍

kmously commented 1 year ago

Sorry ignore me I thought i was replying to binwiederhier.. But yeah I agree with r4zzz4k

csaszko commented 1 year ago

Hi!

Do you have any updates on this topic? When will you release this?

I like both version too, for quick messages is just would be perfect.. bottom message box, maybe hide/show in settings. (For Discord guys)
I would definitely use this, and i guess a lot of user would, who needs just a quick replay.

binwiederhier commented 1 year ago

There is no update for this, other than I agree that it would be valuable. I have been annoyed myself about not being able to quickly send myself something, other than via the "Share to ntfy" feature.

I've pinged @wunter8 and he said he'd be excited to work on it, but no timelines obviously. It always has to be fun :-D

wunter8 commented 1 year ago

It's on my list! But like binwiederhier said, I don't have an estimated timeline right now.

arminus commented 1 year ago

Since I had some spare time on my hands and was curious how developing an ionic/angular app would work, I've put together a minimal NtfySender app. At this point, it's in a kind of "works-for-me" state and can send messages or files (including share via send-intent) to a single configured topic.

NtfySender

I'll probably add the capability to configure more than one target server / topic. At that point, I'll probably "release" an APK somewhere. Code maybe later.

binwiederhier commented 1 year ago

@arminus Looking good. I'll eventually do the publish message bar. Soon-ish, once I work on Android again :-D

arminus commented 1 year ago

The "issue" I have with that (at least in the current web app) is that I have to be subscribed to a topic in order to be able push to it. For my "Pushbullet replacement setup", I have to_<device> topics (or to_<person> topics) so that I can easily push stuff between devices - but the other devices are not really interested in that.

I understand that this is maybe not the most common usecase, but that's what I'm playing with (apart from the main "push from some (automated) service/alert etc." scenario. I'd be curious if I'm the only one trying to use it for that additional purpose. That would kind of influence how far I would possibly take this "push client".

As a side-note: For that scenario, I was also thinking about having an endpoint which would give me (aka a registered user with password) a list of topics I can post to (instead of having to type that in manually).

wunter8 commented 1 year ago

You do not have to be subscribed to a topic in order to push to it (neither in the web app nor in the current Android app). Both have a field to let you type in the name of the topic you want to send to. If you click on "Publish notification" in the menu of the web app, this is what you'll see (except with no topic filled in initially).

Screenshot_20230514-064655

The message bar in the web app will only send notifications to the topic you're looking at/subscribed to, yes. And in the Android app, the message bar would be the same. But we'll probably add an option (like long-pressing the floating "+" button on the list of subscriptions page) to open the publish dialog that will let you send to any topic.

wunter8 commented 1 year ago

As a side-note: For that scenario, I was also thinking about having an endpoint which would give me (aka a registered user with password) a list of topics I can post to (instead of having to type that in manually).

It would be possible to expose the output of the ntfy accesscommand which would just show you permissions about what you can post to, which might include wildcard topic strings. binwiederhier might have just added this (soon to be released) feature

wunter8 commented 1 year ago

The Android app already keeps a list of topics you recently published to (even if you're not subscribed to that topic), so you'd have to type in the name once, but then it'd be there in the list for the future.

arminus commented 1 year ago

That's interesting b/c I never saw that until now :-O All along, my send dialog looked like this:

2023-05-14_150829

until I switched the language to English and back ?! Very weird. But yeah, that's a start, but won't handle send intents, right? (which my "works-for-me ionic app" does). But as I said, unless there's interest and not too much overlap with what you're providing anyway, I'm not sure if I take it forward. So far, it was mostly a getting to know ionic kind of play around

wunter8 commented 1 year ago

What do you mean by "send intents"?

wunter8 commented 1 year ago

I just realized that if you have a subscription selected from the left menu, it will fill in that topic ID and will show the dialog like it is in your screenshot. If you have "All notifications" selected in the left menu, it will show the topic field where you can type in a topic by hand.

arminus commented 1 year ago

What do you mean by "send intents"?

Android share to, e.g. directly share an image or some doc to an ntfy topic. On the implementation side, that requires handling a sendintent

wunter8 commented 1 year ago

You can share text and files to the ntfy Android app already. It is the only way to send ntfy messages from the Android app for now. This issue/ticket is basically to add an easier way of accessing the "share" dialog

arminus commented 1 year ago

Right. Obviously I missed that too. So just ignore what I said here ;-) I don't want to "compete" with another app which reinvents the wheel.

Migs3 commented 7 months ago

Curious on what the status of this is, and if I might be able to help get this implemented at all?

wunter8 commented 7 months ago

No updates yet, unfortunately. If you'd like to implement it, you're more than welcome to!

Any big design decisions should be discussed with binwiederhier first, though (so you don't end up wasting time on something that wouldn't be accepted/merged)

Migs3 commented 7 months ago

It seems like there's a consensus on having an option for the message bar vs the button in the corner for sending, which shouldn't be a difficult thing to put in... just wondering what else we need/want out of this functionality to make it a reality?

wunter8 commented 7 months ago

I think we want it similar to the web app: with a message bar and a button you can click to expand it into a dialog that will let you attach files, change priority, etc. (@binwiederhier can confirm)

But just starting with the message bar would be an improvement

Migs3 commented 7 months ago

What I'm thinking is that we should have 4 "pieces" added.

1.) The message bar inside the topic view (that the "discord users disliked") 2.) The web UI style dialog to send a message to a topic (for full feature send) 3.) A button on the screen that has your list of topics that will open the dialog above (and prefill the topic accordingly, if you're currently in a topic) 4.) A menu option in the 3 dots menu to open the dialog (and prefill the topic accordingly, if you're currently in a topic)

I'm thinking we have options for the button and the message bar. Maybe a radio flag that you can pick one or the other? Or should they be separate options for each? Idk.

Either way, I think that would cover all bases and make everyone happy.

I don't know the code at all, and I'm not familiar with app development, but I'm gonna fork it and mess with it a bit, see if I can't get this working. 👍

wunter8 commented 7 months ago

Thanks for being willing to help out!