Commit graph

136 commits

Author SHA1 Message Date
cbenard
dae1940dd8 Modified to compile under znc-msvc (ZNC for Windows): http://code.google.com/p/znc-msvc/ 2012-10-24 16:50:23 -05:00
Daniel Wallace
12aedd0f68 Get the number of clients on the network
using the size of GetUserClients wasn't working for me
2012-08-31 11:24:22 -07:00
Daniel Wallace
7fa3fe8326 Fix #9: fix namespacing issues for map and string 2012-08-31 11:24:15 -07:00
John Reese
2aaef797f1 New make rule to copy module to default znc path 2012-08-31 11:15:58 -07:00
John Reese
ea8c52e766 Fix #6: Add 'target' option to support Pushover devices 2012-07-25 16:22:10 -07:00
John Reese
2806967e02 Remove roadmap from readme 2012-07-25 16:21:24 -07:00
John Reese
894448ca6f Remove legacy version handling 2012-07-24 09:23:11 -07:00
John Reese
58e24cf331 Fix #4: Add support for Pushover service 2012-07-23 22:07:28 -07:00
John Reese
9761c72b82 Fix #5: Wrong bugtracker link in readme 2012-07-23 19:37:15 -07:00
Travis La Marr
8379d9b27e Fix #1: Add support for Supertoasty push service 2012-07-23 19:33:15 -07:00
Ed Kellett
6c413a91e6 Fix #3: Fix compatibility with 0.207 dev builds 2012-07-16 17:54:45 -07:00
John Reese
cb427730e4 Use ints to be compatible with ZNC <= 0.094 2012-03-04 13:03:07 -08:00
John Reese
143ef1a07f Document the subscribe command for Boxcar
Resolves #228
2012-01-09 00:34:45 -05:00
John Reese
fedb687397 Experimental support for subscribe command
Issue #228
2012-01-09 00:34:37 -05:00
Steven Moazami
0754a2b744 Fix connection hangs when talking to Boxcar service
Signed-off-by: John Reese <john@noswap.com>
2011-12-15 12:49:46 -05:00
John Reese
54340cb90e Import FileUtils.h to fix builds on v0.200+
Fixes #227
2011-10-06 19:20:44 -04:00
John Reese
c762c41478 Documented debug option added from issue #226 2011-10-06 15:58:24 -04:00
John Reese
814065a07e Updated documentation for alternate push services
Resolves #226
2011-10-06 15:17:30 -04:00
John Reese
dd432247f8 Added support for the Notify My Android service
Issue #226
2011-10-06 14:54:17 -04:00
John Reese
e418634485 Added support for the Prowl service
Issue #226
2011-10-06 14:53:04 -04:00
John Reese
77196be1ca Initial support for Boxcar API
Issue #226
2011-10-05 15:26:03 -04:00
John Reese
c21c135d78 Add debug messages to CPushSocket::Request() 2011-09-29 16:36:28 -04:00
John Reese
d76bc28067 Check for username/secret when sending messages 2011-09-29 15:44:58 -04:00
John Reese
4667fd52bc Move Notifo-specific details into send_message()
Issue #226
2011-09-29 15:42:33 -04:00
John Reese
0af5679f1d Extract HTTP request handling to CPushSocket
When sending HTTP requests, the notification code doesn't need to know
how to build arbitrary requests.

Issue #226
2011-09-29 15:23:07 -04:00
John Reese
7817e98dba Add option for service name
Currently enforces either "notifo" or "boxcar", but does not yet change
any behaviors in the rest of the module.  Also prevents appending or
prepending to the option value.

Issue #226
2011-09-29 10:21:15 -04:00
John Reese
1f76601c56 Get missing defaults and save options when loading
Follow-up to ref 60632d42f.  Initial implementation would lose loaded
options when the module was reloaded, and would cause errors if the
loaded dictionary did not contain all of the option values.
2011-09-29 09:54:44 -04:00
John Reese
a69ec09d6b Rebrand project as ZNC Push
Issue #226
2011-09-29 09:30:08 -04:00
John Reese
60632d42fb Implement save/load for user options
In preparation for renaming the project and supparting multiple
notification services, there needs to be a simple method for migrating
user options to the new module name.  Using the built-in dictionary
read/write mechanism, migrating to a new module name would be as simple
as issuing `/msg *notifo save foo` and `/msg *notify load foo`.
2011-09-28 16:28:10 -04:00
John Reese
e2ddfe78e9 Added clean make target 2011-09-28 16:28:10 -04:00
John Reese
94ad55784e Implement notification uri keyword expansion
Resolves #198.  Four keywords are supported: context, nick, datetime,
and unixtime.
2011-03-09 11:02:34 -05:00
John Reese
df891c0c69 Issue #198: Implement dictionary string expansion 2011-03-09 10:44:52 -05:00
John Reese
3a09f6c1fc Add details on obtaining the user's api secret 2011-03-09 09:39:29 -05:00
John Reese
b9c7049bc6 Update bug tracker info to select project 2011-03-09 09:37:01 -05:00
John Reese
a70ff4a364 Fix logic error in eval_tokens and add debug output
When faced with sub-expressions, the parser was not correctly advancing
its iterator to the sub-expression's matching end parenthesis, causing
it to evaluate inner conditions twice, and incorrectly terminate early
when it reached the first end parenthesis.

Added preprocessor flag NOTIFO_DEBUG to generate debug output to
PutModule() to validate the expression parsing logic.
2011-02-15 10:18:13 -05:00
John Reese
a855fe7eb5 Update readme to use quotes for channel_conditions details 2011-02-14 14:33:52 -05:00
John Reese
33b381eb87 Implemented custom expression evaluation options
This option allows customization of the boolean logic used to
determine how conditional values are used to filter notifications for
channel messages.  It evaluates as a full boolean logic expression,
including the use of sub-expressions.  The default value of "all" will
bypass this evaluation and simply require all conditions to be true.

The expression consists of space-separated tokens in the following grammar:

* expression = expression operator expression | "(" expression ")" | value
* operator = "and" | "or"
* value = "true" | "false" | condition
* condition = <any condition option>

Also implemented EVAL command for testing purposes.
2011-02-14 14:27:18 -05:00
John Reese
c462f15201 Fix client_count condition not applying to queries 2011-02-14 10:20:56 -05:00
John Reese
5b24f18c37 Fix bug in replied condition
For any channel/PM where the user hasn't yet sent a message, the replied
condition would always return false due to failing a `0 < 0`
expression.  The fix special-cases last_notification_time values of 0 to
always return true.
2011-01-26 21:09:37 -05:00
John Reese
5c5c198ab7 Implemented replied condition, defaulted to yes
If set to "yes", notifications will only be sent if you have replied to the
channel or query window more recently than the last time a notification was
sent for that context.
2011-01-26 13:09:55 -05:00
John Reese
e913ed4558 Updated roadmap again, all conditions are done 2011-01-19 13:53:08 -05:00
John Reese
3f11b309b8 Updated roadmap 2011-01-19 13:50:24 -05:00
John Reese
06fac8b254 Implemented configurable highlight terms 2011-01-19 13:48:43 -05:00
John Reese
74c813a656 Implemented PREPEND command for modifying config values 2011-01-19 12:54:05 -05:00
John Reese
f2de10139c Implemented APPEND command for modifying config values 2011-01-19 11:36:07 -05:00
John Reese
d4fd3ce741 Fix #191: ZNC < 0.090 does not support IsIRCAway()
To maintain compatibility with ZNC < 0.090 (such as 0.078 used by
Ubuntu), we need to conditionally disable the away_only condition when
compiled against versions that don't support CUser->IsIRCAway().
2011-01-19 09:27:39 -05:00
John Reese
de4c84a36b Added context parameter to STATUS command 2011-01-18 16:14:16 -05:00
John Reese
c85cb39c12 Implemented idle condition
Time in seconds since the last activity by the user on any channel or query
window, including joins, parts, messages, and actions.  Notifications will
only be sent if the elapsed time is greater than this value.  A value of
0 (zero) will disable this condition.
2011-01-18 15:24:50 -05:00
John Reese
c9cac29c0e Implemented last_active condition
Time in seconds since the last message sent by the user on 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.

Note that this condition keeps track of the last message sent to each channel
and query window separately, so a recent PM to Joe will not affect a
notification sent from channel #foo.
2011-01-18 13:06:07 -05:00
John Reese
16f28cb04a Implemented nick_blacklist condition
Space-separated list of nicks.  Applies to both channel mentions and
query windows. Notifications will only be sent for messages from nicks
that are not present in this list, using a case-insensitive comparison.

Note that wildcard patterns can be used to match multiple nicks with
a single blacklist entry. For example, `set nick_blacklist *bot` will
not send notifications from nicks like "channelbot", "FooBot", or
"Robot".  Care must be used to not accidentally blacklist legitimate
nicks with wildcards.
2011-01-18 11:12:58 -05:00