amyreese / znc-push

Push notification service module for ZNC
http://noswap.com/projects/znc-push
MIT License
556 stars 122 forks source link

Notify only 1 line #241

Open deltagnan opened 6 years ago

deltagnan commented 6 years ago

on [15:25:41] <\d> test [15:25:42] <\d> test 2 [15:25:47] <\d> test 3

I receive only one line [\d\: [\d] test

debug: [15:25:40] <push> service: telegram [15:25:40] <push> service_host: api.telegram.org [15:25:40] <push> service_url: /bot326151331:AAElXCttbr4thZkHQw1WsNdhJ4F1545ZdII/sendMessage [15:25:40] <push> service_auth: [15:25:40] <push> use_port: 443 [15:25:40] <push> use_ssl: 1 [15:25:40] <push> use_post: 1 [15:25:40] <push> using libcurl [15:25:40] <*push> curl: HTTP status code 200

dgw commented 6 years ago

This is expected behavior. The condition last_notification defaults to 300 seconds, and limits how often notifications are sent for a given context (quoting the README documentation):

Time in seconds since the last notification sent from that channel or query window. Notifications will only be sent if the elapsed time is greater than this value. A value of 0 (zero) will disable this condition.

Issue /znc *push set last_notification 0 and you should be notified of every line in your test case.

deltagnan commented 6 years ago

it was already set to 0.... any sugestions? ps: right now, as it often happens, i am not even receiving the first line...

[21:00:07] <push> +========================+===============================================+ [21:00:07] <push> | Option | Value | [21:00:07] <push> +========================+===============================================+ [21:00:07] <push> | away_only | no | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | channel_conditions | all | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | client_count_less_than | 0 | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | context | | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | debug | on | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | highlight | CADUTO! | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | idle | 0 | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | last_active | 0 | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | last_notification | 0 | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | message_content | {context}: [{nick}] {message} | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | message_escape | | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | message_length | 1000 | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | message_priority | 0 | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | message_sound | | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | message_title | {title} | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | message_uri | | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | message_uri_post | no | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | message_uri_title | | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | network_blacklist | | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | nick_blacklist | Tools Links | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | proxy | | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | proxy_ssl_verify | yes | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | query_conditions | all | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | replied | yes | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | secret | 326151331:AAElXCttbr4thYkHQw1WsyYyJ4F1545ZdII | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | service | telegram | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | target | 228292831 | [21:00:07] <push> +------------------------+-----------------------------------------------+ [21:00:07] <push> | username | | [21:00:07] <push> +========================+===============================================+

dgw commented 6 years ago

If you're not even getting the first line sometimes, that's a different issue. I haven't used the Telegram integration, but my Pushover clients get everything they should. (My last_notification is set to 1, so it can fire pretty quickly too.)

Could be Telegram rate limiting, for all I know. I do know you should change your Telegram secret, now that you've pasted it here.

deltagnan commented 6 years ago

No problem. It’s a fake secret key. Do you know somethings free service like Telegram?

dgw commented 6 years ago

Quick check of Telegram's FAQ says sending more than one message per second to a given chat is discouraged, and will eventually receive errors. So the rate-limit theory is indeed possible.

I don't know your platform, and honestly haven't looked at notification services in years (since starting to use Pushover for my stuff), but znc-push's readme has a list of supported ones. If none of those suits you, but you can find another you like, adding support for a new service isn't too difficult.

deltagnan commented 6 years ago

How can I setup notifications with this service? https://pushfleet.com

dgw commented 6 years ago

I threw together a quick version of the module that supports Pushfleet: https://raw.githubusercontent.com/dgw/znc-push/e4d6e1f0f709960613d708337cdca903fb584fd9/push.cpp

Haven't tested it, but it did compile on my ZNC server. App ID is baked-in; set znc-push's target option to the user ID(s) you want to send notifications to (comma-separated, if more than one).

Let me know how it goes, and if all's good I'll flesh out the documentation and open a PR later this week. (If all is not good, I'll try to fix it tomorrow.)

dgw commented 6 years ago

@deltagnan Any issues? Good to go?

deltagnan commented 6 years ago

@dgw not yet. I don’t think I will be to able to do it 😅

dgw commented 6 years ago

@deltagnan To do what?

All you should need is to download that version of the module code to your ZNC machine, znc-buildmod push.cpp, and move the compiled push.so file into ZNC's module directory (replacing the one you currently have). Or are you using the Python version…?

I just need confirmation that it works. You don't need to do any code-related work! :smile_cat:

deltagnan commented 6 years ago

Ok i will do it tonight 😃

dgw commented 6 years ago

Forgot to mention that you'll need to tell ZNC to update the module, or restart ZNC, depending on version. Might as well write detailed instructions, as I don't know how experienced you are. (And it never hurts to over-document… well, almost never!)

After you install the new push.so, issue /znc updatemod push from your IRC client. Then, issue /znc *push set service pushfleet. If you get "Error: unknown service name", then the updatemod didn't work and the easiest fix is to restart ZNC and try setting the service name again. (I've found that updatemod doesn't work right in some versions of ZNC. But if, after restarting ZNC, you still get "Error: unknown service name", the push.so file is probably in the wrong place. :joy_cat:)

Once you've set the service to pushfleet, issue /znc *push set target Uxxxxxxx (replacing Uxxxxxxx with your user ID from the Pushfleet client). Then /znc *push send This is a test Pushfleet notification and you should get it pretty quickly on your device, assuming everything's set up properly.

deltagnan commented 6 years ago

wge etc... znc-buildmod push.cpp [15:36:04] <status> Reloading [push] everywhere [15:36:04] <status> Done .restart <push> Error: unknown service name [15:47:06] <status> Reloading [push] everywhere [15:47:06] <status> Done <push> Error: unknown service name

it's not in wrong place: /.znc/modules/push.so (i renamed old one in pushh.so)

dgw commented 6 years ago

Sorry, I forgot there are two if-else trees.

Fixed version, which should recognize the new service name: https://raw.githubusercontent.com/dgw/znc-push/428599026bc61aa0ab707ec8815dc0eadbc7f5f7/push.cpp

deltagnan commented 6 years ago

ok, it's work but doesnt work sending notification

[16:10:14] send prova [16:10:14] <push> service: pushfleet [16:10:14] <push> service_host: pushfleet.com [16:10:14] <push> service_url: /api/v1/send [16:10:14] <push> service_auth: [16:10:14] <push> use_port: 443 [16:10:14] <push> use_ssl: 1 [16:10:14] <push> use_post: 1 [16:10:14] <push> NOT using libcurl [16:10:14] <push> Building notification to pushfleet.com/api/v1/send... [16:10:14] <push> User-Agent: ZNC Push/dev [16:10:14] <push> Query string: appid=AQQBMWCV&message=%2Apush%3A+%5B%2Apush%5D+prova&url=&userid=UQZX6767 [16:10:14] <push> Request sending [16:10:14] <*push> Ok

deltagnan commented 6 years ago

Must I setup only target with my User Token?

dgw commented 6 years ago

Yes, user token goes in target and that's it.

I found another problem (finally broke down and built a local ZNC instance, which is why it took me so long to answer) and pushed another new version. Pushfleet doesn't like POST requests, which is apparently what znc-push sends by default. Fixed that: https://github.com/dgw/znc-push/blob/3e3d84f5a1ebe0a84a41b01b5676a2299d1cc5ca/push.cpp

Haven't yet figured out how to completely suppress the url parameter, though. If left empty, it defaults to a Google search for the notification message, which is not very useful.

This link will always refer to the latest revision of the pushfleet branch, as well: https://raw.githubusercontent.com/dgw/znc-push/add-pushfleet/push.cpp (or at least, it will until I eventually delete the branch)

dgw commented 6 years ago

FYI, it might or might not work. The appid has disappeared from my Pushfleet account dashboard, and I'm done creating new ones until I hear back from support about why this keeps happening.

Feel free to make your own appid and replace mine in the code if it doesn't work, @deltagnan.

deltagnan commented 6 years ago

I dont know why but everytime i made an app on Pushfleet after few hours the app disappears from my app list... http://i67.tinypic.com/10gz5hf.jpg

dgw commented 6 years ago

Well, it might be pointless to keep working on Pushfleet support in znc-push, if apps get removed every few hours. That's exactly what happened to my apps, too.

I'll still give them until next week to answer, and might polish up the code and PR it anyway as a WIP, but it won't be of any practical use until this appid thing gets sorted. I thought maybe they had a bot scanning GitHub for appids and deleting apps whose keys were published (since mine were committed and pushed to a public repo). But I doubt you were publishing your keys, and they were deleted too.