weechat/python/autoload/notification_center.py @ bfd9b1f910a3
Update
| author | Steve Losh <steve@stevelosh.com> | 
|---|---|
| date | Wed, 11 Oct 2017 11:09:36 -0400 | 
| parents | 9752ae28492f | 
| children | (none) | 
# https://github.com/sindresorhus/weechat-notification-center # Requires `pip install pync` import weechat from pync import Notifier SCRIPT_NAME = 'notification_center' SCRIPT_AUTHOR = 'Sindre Sorhus <sindresorhus@gmail.com>' SCRIPT_VERSION = '0.3.0' SCRIPT_LICENSE = 'MIT' SCRIPT_DESC = 'Pass highlights and private messages to the OS X 10.8+ Notification Center' weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE, SCRIPT_DESC, '', '') DEFAULT_OPTIONS = { 'show_highlights': 'on', 'show_private_message': 'on', 'show_message_text': 'on', 'sound': 'off', } for key, val in DEFAULT_OPTIONS.items(): if not weechat.config_is_set_plugin(key): weechat.config_set_plugin(key, val) weechat.hook_print('', 'irc_privmsg', '', 1, 'notify', '') def notify(data, buffer, date, tags, displayed, highlight, prefix, message): # ignore if it's yourself own_nick = weechat.buffer_get_string(buffer, 'localvar_nick') if prefix == own_nick or prefix == ('@%s' % own_nick): return weechat.WEECHAT_RC_OK # passing `None` or `''` still plays the default sound so we pass a lambda instead sound = 'Pong' if weechat.config_get_plugin('sound') == 'on' else lambda:_ if weechat.config_get_plugin('show_highlights') == 'on' and int(highlight): channel = weechat.buffer_get_string(buffer, 'localvar_channel') if weechat.config_get_plugin('show_message_text') == 'on': Notifier.notify(message, title='%s %s' % (prefix, channel), sound=sound) else: Notifier.notify('In %s by %s' % (channel, prefix), title='Highlighted Message', sound=sound) elif weechat.config_get_plugin('show_private_message') == 'on' and 'notify_private' in tags: if weechat.config_get_plugin('show_message_text') == 'on': Notifier.notify(message, title='%s [private]' % prefix, sound=sound) else: Notifier.notify('From %s' % prefix, title='Private Message', sound=sound) return weechat.WEECHAT_RC_OK