Go to file
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
.gitignore Initial commit, any command triggers HTTP POST 2011-01-10 22:33:13 -05:00
LICENSE Added MIT license file 2011-01-10 22:37:48 -05:00
Makefile Initial commit, any command triggers HTTP POST 2011-01-10 22:33:13 -05:00
README.md Implemented idle condition 2011-01-18 15:24:50 -05:00
notifo.cpp Implemented idle condition 2011-01-18 15:24:50 -05:00

README.md

ZNC to Notifo

ZNC to Notifo is a module for ZNC that will send notifications to a Notifo account for any private message or channel highlight that matches a configurable set of conditions.

This project is still a Work In Progress, but should be functional enough and stable enough for everyday usage. Users are more than welcome to submit feature requests or patches for discussion or inclusion. Bug reports and feature requests can be submitted to my bug tracker or sent via email.

ZNC to Notifo was created by John Reese and designed to fill a personal need. It may not fit your use cases, but any and all feedback would be greatly appreciated.

Compiling

If you have make installed, you can compile the module with:

$ make

Otherwise, run the full command:

$ znc-build notifo.cpp

Installation

Copy the compiled module into your ZNC profile:

$ cp notifo.so ~/.znc/modules/

Now, load the module in ZNC:

/msg *status loadmod notifo

Then set your Notifo username and API secret:

/msg *notifo set username foo
/msg *notifo set secret ...

At this point, it should start sending notifications every time you get a private message or someone says your name in a channel. If this is everything you wanted, congratulations, you're done!

Commands

  • help

    Links you to this fine document.

  • set <option> <value>

    Allows you to modify configuration values.

  • get [<option>]

    Allows you to see current configuration values.

  • unset <option>

    Allows you to reset a configuration option back to the default value.

  • status

    Check the status of current conditions.

  • send <message>

    Manually trigger a notification with the given message. Useful for testing to validate credentials, etc.

Configuration

Conditions

  • away_only = "no"

    If set to "yes", notifications will only be sent if the user has set their /away status.

  • client_count_less_than = 0

    Notifications will only be sent if the number of connected IRC clients is less than this value. A value of 0 (zero) will disable this condition.

  • idle = 0

    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.

  • last_active = 180

    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.

  • last_notification = 300

    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.

    Note that this condition keeps track of the last notification sent from each channel and query window separately, so a recent PM from Joe will not affect a notification sent from channel #foo.

  • nick_blacklist = ""

    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.

Notifications

  • message_length = 100

    Maximum length of the notification message to be sent. The message will be nicely truncated and ellipsized at or before this length is reached. A value of 0 (zero) will disable this option.

  • message_url = ""

    URI that will be sent with the notification to Notifo. This could be a web address or a local scheme to access a mobile application.

Roadmap

Conditions

  • User inactivity: How long, in seconds, since the last action made by user, in any channel or query window.

  • Highlights: Strings to trigger a channel notification, in addition to the default highlight when your nick is mentioned.

Settings

  • Customizable notification titles and message formats.

License

This project is licensed under the MIT license. See the LICENSE file for details.