Mercurial > dotfiles
annotate weechat/perl/pushover.pl @ 278:9cc79143db21
Update pushover script.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 27 Jan 2015 15:26:44 -0800 |
parents | 726728f13152 |
children |
rev | line source |
---|---|
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
1 # |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
2 # Copyright (C) 2013-2015 stfn <stfnmd@gmail.com> |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
3 # https://github.com/stfnm/weechat-scripts |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
4 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
5 # This program is free software: you can redistribute it and/or modify |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
6 # it under the terms of the GNU General Public License as published by |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
7 # the Free Software Foundation, either version 3 of the License, or |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
8 # (at your option) any later version. |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
9 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
10 # This program is distributed in the hope that it will be useful, |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
13 # GNU General Public License for more details. |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
14 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
15 # You should have received a copy of the GNU General Public License |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
16 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
17 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
18 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
19 use strict; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
20 use warnings; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
21 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
22 my %SCRIPT = ( |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
23 name => 'pushover', |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
24 author => 'stfn <stfnmd@gmail.com>', |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
25 version => '1.3', |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
26 license => 'GPL3', |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
27 desc => 'Send push notifications to your mobile devices using Pushover, NMA or Pushbullet', |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
28 opt => 'plugins.var.perl', |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
29 ); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
30 my %OPTIONS_DEFAULT = ( |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
31 'enabled' => ['on', "Turn script on or off"], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
32 'service' => ['pushover', 'Notification service to use. Multiple services may be supplied as comma separated list. (supported services: pushover, nma, pushbullet)'], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
33 'token' => ['ajEX9RWhxs6NgeXFJxSK2jmpY54C9S', 'pushover API token/key (You may feel free to use your own token, so you get your own monthly quota of messages without being affected by other users. See also: https://pushover.net/faq#overview-distribution )'], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
34 'user' => ['', "pushover user key"], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
35 'nma_apikey' => ['', "nma API key"], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
36 'pb_apikey' => ['', "Pushbullet API key"], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
37 'pb_device_iden' => ['', "Device Iden of pushbullet device"], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
38 'sound' => ['', "Sound (empty for default)"], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
39 'priority' => ['', "priority (empty for default)"], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
40 'show_highlights' => ['on', 'Notify on highlights'], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
41 'show_priv_msg' => ['on', 'Notify on private messages'], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
42 'redact_priv_msg' => ['off', 'When receiving private message notifications, hide the actual message text'], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
43 'only_if_away' => ['off', 'Notify only if away status is active'], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
44 'only_if_inactive' => ['off', 'Notify only if buffer is not the active (current) buffer'], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
45 'blacklist' => ['', 'Comma separated list of buffers (full name) to blacklist for notifications (wildcard "*" is allowed, name beginning with "!" is excluded)'], |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
46 'verbose' => ['1', 'Verbosity level (0 = silently ignore any errors, 1 = display brief error, 2 = display full server response)'], |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
47 'rate_limit' => ['0', 'Rate limit in seconds (0 = unlimited), will send a maximum of 1 notification per time limit'], |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
48 'short_name' => ['off', 'Use short buffer name in notification'], |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
49 ); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
50 my %OPTIONS = (); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
51 my $TIMEOUT = 30 * 1000; |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
52 my $WEECHAT_VERSION; |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
53 |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
54 # Enable for debugging |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
55 my $DEBUG = 0; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
56 |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
57 # Rate limit flag |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
58 my $RATE_LIMIT_OK = 1; |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
59 |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
60 # Register script and initialize config |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
61 weechat::register($SCRIPT{"name"}, $SCRIPT{"author"}, $SCRIPT{"version"}, $SCRIPT{"license"}, $SCRIPT{"desc"}, "", ""); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
62 init_config(); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
63 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
64 # Setup hooks |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
65 weechat::hook_print("", "notify_message,notify_private,notify_highlight", "", 1, "print_cb", ""); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
66 weechat::hook_command($SCRIPT{"name"}, "send custom push notification", |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
67 "<text>", |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
68 "text: notification text to send", |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
69 "", "pushover_cb", ""); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
70 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
71 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
72 # Handle config stuff |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
73 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
74 sub init_config |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
75 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
76 weechat::hook_config("$SCRIPT{'opt'}.$SCRIPT{'name'}.*", "config_cb", ""); |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
77 $WEECHAT_VERSION = weechat::info_get("version_number", "") || 0; |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
78 foreach my $option (keys %OPTIONS_DEFAULT) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
79 if (!weechat::config_is_set_plugin($option)) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
80 weechat::config_set_plugin($option, $OPTIONS_DEFAULT{$option}[0]); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
81 $OPTIONS{$option} = $OPTIONS_DEFAULT{$option}[0]; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
82 } else { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
83 $OPTIONS{$option} = weechat::config_get_plugin($option); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
84 } |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
85 if ($WEECHAT_VERSION >= 0x00030500) { |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
86 weechat::config_set_desc_plugin($option, $OPTIONS_DEFAULT{$option}[1]." (default: \"".$OPTIONS_DEFAULT{$option}[0]."\")"); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
87 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
88 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
89 } |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
90 |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
91 sub config_cb |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
92 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
93 my ($pointer, $name, $value) = @_; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
94 $name = substr($name, length("$SCRIPT{opt}.$SCRIPT{name}."), length($name)); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
95 $OPTIONS{$name} = $value; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
96 return weechat::WEECHAT_RC_OK; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
97 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
98 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
99 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
100 # Case insensitive search for element in comma separated list |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
101 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
102 sub grep_list($$) |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
103 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
104 my ($str, $list) = @_; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
105 my @array = split(/,/, $list); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
106 return grep(/^\Q$str\E$/i, @array) ? 1 : 0; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
107 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
108 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
109 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
110 # URL escape (percent encoding) |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
111 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
112 sub url_escape($) |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
113 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
114 my $toencode = $_[0]; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
115 return undef unless (defined($toencode)); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
116 utf8::encode($toencode) if (utf8::is_utf8($toencode)); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
117 $toencode =~ s/([^a-zA-Z0-9_.~-])/uc sprintf("%%%02x",ord($1))/eg; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
118 return $toencode; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
119 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
120 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
121 # |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
122 # Evaluate expression (used for /secure support) |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
123 # |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
124 sub eval_expr($) |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
125 { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
126 my $value = $_[0]; |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
127 if ($WEECHAT_VERSION >= 0x00040200) { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
128 my $eval_expression = weechat::string_eval_expression($value, {}, {}, {}); |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
129 return $eval_expression if ($eval_expression ne ""); |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
130 } |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
131 return $value; |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
132 } |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
133 |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
134 # |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
135 # Flip rate_limit flag back to OK |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
136 # |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
137 sub rate_limit_cb |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
138 { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
139 $RATE_LIMIT_OK = 1; |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
140 if ($DEBUG) { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
141 weechat::print("", "[$SCRIPT{name}] Rate Limit Deactivated"); |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
142 } |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
143 } |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
144 |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
145 # |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
146 # Catch printed messages |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
147 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
148 sub print_cb |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
149 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
150 my ($data, $buffer, $date, $tags, $displayed, $highlight, $prefix, $message) = @_; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
151 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
152 my $buffer_type = weechat::buffer_get_string($buffer, "localvar_type"); |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
153 my $buffer_full_name = ""; |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
154 # check for long or short name |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
155 if ($OPTIONS{short_name} eq 'on') { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
156 $buffer_full_name = weechat::buffer_get_string($buffer, "short_name"); |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
157 } else { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
158 $buffer_full_name = weechat::buffer_get_string($buffer, "full_name"); |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
159 } |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
160 my $away_msg = weechat::buffer_get_string($buffer, "localvar_away"); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
161 my $away = ($away_msg && length($away_msg) > 0) ? 1 : 0; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
162 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
163 if ($OPTIONS{enabled} ne "on" || |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
164 $displayed == 0 || |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
165 ($OPTIONS{only_if_away} eq "on" && $away == 0) || |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
166 ($OPTIONS{only_if_inactive} eq "on" && $buffer eq weechat::current_buffer()) || |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
167 weechat::buffer_match_list($buffer, $OPTIONS{blacklist})) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
168 return weechat::WEECHAT_RC_OK; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
169 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
170 |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
171 if ($RATE_LIMIT_OK == 0) { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
172 if ($DEBUG) { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
173 weechat::print("", "[$SCRIPT{name}] No Notification - Rate Limited."); |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
174 } |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
175 return weechat::WEECHAT_RC_OK; |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
176 } |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
177 |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
178 my $msg = "[$buffer_full_name] <$prefix> "; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
179 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
180 if ($buffer_type eq "private" && $OPTIONS{redact_priv_msg} eq "on") { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
181 $msg .= "..."; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
182 } else { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
183 $msg .= "$message"; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
184 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
185 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
186 # Notify! |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
187 if ($OPTIONS{show_highlights} eq "on" && $highlight == 1) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
188 # Message with highlight |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
189 notify($msg); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
190 } elsif ($OPTIONS{show_priv_msg} eq "on" && $buffer_type eq "private") { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
191 # Private message |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
192 notify($msg); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
193 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
194 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
195 return weechat::WEECHAT_RC_OK; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
196 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
197 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
198 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
199 # /pushover |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
200 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
201 sub pushover_cb |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
202 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
203 my ($data, $buffer, $args) = @_; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
204 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
205 if (length($args) > 0) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
206 notify($args); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
207 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
208 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
209 return weechat::WEECHAT_RC_OK; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
210 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
211 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
212 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
213 # Catch API responses |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
214 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
215 sub url_cb |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
216 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
217 my ($data, $command, $return_code, $out, $err) = @_; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
218 my $msg = "[$SCRIPT{name}] Error: "; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
219 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
220 # Check verbosity level |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
221 if ($OPTIONS{verbose} == 0) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
222 return weechat::WEECHAT_RC_OK; # Don't display anything |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
223 } elsif ($OPTIONS{verbose} == 1) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
224 $msg .= "API call failed. (Most likely the service is having trouble.)"; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
225 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
226 } elsif ($OPTIONS{verbose} == 2) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
227 $msg .= "@_"; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
228 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
229 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
230 # Check server response and display error message if NOT successful |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
231 if ($command =~ /pushover/ && $return_code == 0 && !($out =~ /\"status\":1/)) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
232 weechat::print("", $msg); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
233 } elsif ($command =~ /notifymyandroid/ && $return_code == 0 && !($out =~ /success code=\"200\"/)) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
234 weechat::print("", $msg); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
235 } elsif ($command =~ /pushbullet/ && $return_code == 0 && !($out =~ /\"iden\"/)) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
236 weechat::print("", $msg); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
237 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
238 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
239 return weechat::WEECHAT_RC_OK; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
240 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
241 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
242 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
243 # Notify wrapper (decides which service to use) |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
244 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
245 sub notify($) |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
246 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
247 my $message = $_[0]; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
248 |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
249 # Start timer |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
250 if ($OPTIONS{rate_limit}) { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
251 my $timer = $OPTIONS{rate_limit} * 1000; |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
252 |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
253 if ($DEBUG) { |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
254 weechat::print("", "[$SCRIPT{name}] Rate Limit Activated. Timer: $timer"); |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
255 } |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
256 |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
257 $RATE_LIMIT_OK = 0; |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
258 weechat::hook_timer($timer, 0, 1, "rate_limit_cb", ""); |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
259 } |
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
260 |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
261 # Notify services |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
262 if (grep_list("pushover", $OPTIONS{service})) { |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
263 notify_pushover(eval_expr($OPTIONS{token}), eval_expr($OPTIONS{user}), $message, "weechat", $OPTIONS{priority}, $OPTIONS{sound}); |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
264 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
265 if (grep_list("nma", $OPTIONS{service})) { |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
266 notify_nma(eval_expr($OPTIONS{nma_apikey}), "weechat", "$SCRIPT{name}.pl", $message, $OPTIONS{priority}); |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
267 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
268 if (grep_list("pushbullet", $OPTIONS{service})) { |
278
9cc79143db21
Update pushover script.
Ludovic Chabant <ludovic@chabant.com>
parents:
259
diff
changeset
|
269 notify_pushbullet(eval_expr($OPTIONS{pb_apikey}), eval_expr($OPTIONS{pb_device_iden}), "weechat", $message); |
259
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
270 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
271 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
272 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
273 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
274 # https://pushover.net/api |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
275 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
276 sub notify_pushover($$$$$$) |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
277 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
278 my ($token, $user, $message, $title, $priority, $sound) = @_; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
279 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
280 # Required API arguments |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
281 my @post = ( |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
282 "token=" . url_escape($token), |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
283 "user=" . url_escape($user), |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
284 "message=" . url_escape($message), |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
285 ); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
286 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
287 # Optional API arguments |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
288 push(@post, "title=" . url_escape($title)) if ($title && length($title) > 0); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
289 push(@post, "priority=" . url_escape($priority)) if ($priority && length($priority) > 0); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
290 push(@post, "sound=" . url_escape($sound)) if ($sound && length($sound) > 0); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
291 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
292 # Send HTTP POST |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
293 my $hash = { "post" => 1, "postfields" => join(";", @post) }; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
294 if ($DEBUG) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
295 weechat::print("", "[$SCRIPT{name}] Debug: msg -> `$message' HTTP POST -> @post"); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
296 } else { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
297 weechat::hook_process_hashtable("url:https://api.pushover.net/1/messages.json", $hash, $TIMEOUT, "url_cb", ""); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
298 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
299 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
300 return weechat::WEECHAT_RC_OK; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
301 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
302 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
303 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
304 # https://www.notifymyandroid.com/api.jsp |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
305 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
306 sub notify_nma($$$$$) |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
307 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
308 my ($apikey, $application, $event, $description, $priority) = @_; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
309 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
310 # Required API arguments |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
311 my @post = ( |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
312 "apikey=" . url_escape($apikey), |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
313 "application=" . url_escape($application), |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
314 "event=" . url_escape($event), |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
315 "description=" . url_escape($description), |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
316 ); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
317 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
318 # Optional API arguments |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
319 push(@post, "priority=" . url_escape($priority)) if ($priority && length($priority) > 0); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
320 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
321 # Send HTTP POST |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
322 my $hash = { "post" => 1, "postfields" => join("&", @post) }; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
323 if ($DEBUG) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
324 weechat::print("", "[$SCRIPT{name}] Debug: msg -> `$description' HTTP POST -> @post"); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
325 } else { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
326 weechat::hook_process_hashtable("url:https://www.notifymyandroid.com/publicapi/notify", $hash, $TIMEOUT, "url_cb", ""); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
327 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
328 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
329 return weechat::WEECHAT_RC_OK; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
330 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
331 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
332 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
333 # https://docs.pushbullet.com/v2/pushes/ |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
334 # |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
335 sub notify_pushbullet($$$$) |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
336 { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
337 my ($apikey, $device_iden, $title, $body) = @_; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
338 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
339 # Required API arguments |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
340 my $apiurl = "https://$apikey\@api.pushbullet.com/v2/pushes"; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
341 my @post = ( |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
342 "type=note", |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
343 ); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
344 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
345 # Optional API arguments |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
346 push(@post, "device_iden=" . url_escape($device_iden)) if ($device_iden && length($device_iden) > 0); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
347 push(@post, "title=" . url_escape($title)) if ($title && length($title) > 0); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
348 push(@post, "body=" . url_escape($body)) if ($body && length($body) > 0); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
349 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
350 # Send HTTP POST |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
351 my $hash = { "post" => 1, "postfields" => join("&", @post) }; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
352 if ($DEBUG) { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
353 weechat::print("", "$apiurl [$SCRIPT{name}] Debug: msg -> `$body' HTTP POST -> @post"); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
354 } else { |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
355 weechat::hook_process_hashtable("url:$apiurl", $hash, $TIMEOUT, "url_cb", ""); |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
356 } |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
357 |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
358 return weechat::WEECHAT_RC_OK; |
726728f13152
More Weechat plugins and config.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
359 } |