The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::Wubot::Web::Notify - web interface for wubot notifications

VERSION

version 0.3.10

CONFIGURATION

   ~/wubot/config/webui.yaml

    ---
    plugins:
      notify:
        '/notify': notify
        '/notify/id/(.id)': item
        '/tags': tags
        '/colors': colors

DESCRIPTION

The wubot web interface is still under construction!

The notification web interface serves as your notification inbox. You can browse through the unseen notifications, mark them seen, limit the display to specific plugins or usernames, apply tags, or mark them for later review.

By default, items in the inbox are grouped and collapsed based on the 'mailbox' field defined in the message. You can easily use rules to alter the defaults. For example, to do this directly in the monitor config, add a 'react' section such as:

  ---
  enable: 1

  react:
    - name: categorize
      plugin: SetField
      config:
        field: mailbox
        value: test

By convention, wubot messages that are worthy of your attention will contain a 'subject' field describing the event. This could be the subject of an email or rss feed, a tweet, a description of a disk space problem, etc. For more information on wubot notifications, see also App::Wubot::Guide::Notifications.

In order to use the notification web interface, you will first need to define a rule in the reactor to store the message in the notifications table. This can be done with a rule such as:

  - name: notify sql table
    plugin: SQLite
    config:
      file: /Users/wu/wubot/sqlite/notify.sql
      tablename: notifications

Make sure you have copied the 'notifications.yaml' and 'tags.yaml' schema files from config/schemas/ in the wubot distribution into your ~/wubot/schemas/.

Notifications will be displayed in reverse order with the newest notification at the top. The last 200 notifications will be displayed. Duplicate notifications will be collapsed into a single line and will contain a 'count' field that will show how many of the last 200 notifications were duplicates of this notification. So, if you have more than 200 unseen notifications, the notifications count will be incomplete. A fix is planned for this.

You can click on the 'seen' link to mark the item seen. Also the message 'key' will be broken into its two component fields, the plugin name and the instance name. Clicking on the instance name (key2) will mark all notifications from that instance, and clicking on the plugin name (key1) will mark all notifications generated by that plugin as seen.

Scored items show up at the top of the list, with the highest score on top.

COMMAND

In the notifications web ui, there is a 'cmd' field which allows you to enter commands to be applied to one or more items. The following commands are supported:

  r         mark a single item as seen
  rr        mark all unseen items in the selected mailbox as seen
  r.*       mark all unseen notifications as seen
  r.regexp  mark all notifications whose subject matches /regexp/ as seen
  ##        entering a number will apply a score to the item, 00 removes score
  red       entering a color name will apply a color to the item, see L<App::Wubot::Util::Colors>
  m         apply 'readme' tag to the item and mark it read, for later perusal
  x         remove the 'readme' tag and update the 'seen' flag time to now
  tr xx     translate the subject from the specified language, see L<Lingua::Translate> for more info
  mytag     any non-command input will be treated as a tag which will be applied to the item
  -mytag    preceeding tag name with a minus sign removes the tag from the item

Multiple commands may be comma separated.

ICONS

To ensure that the icons show up in the notifications web ui, you should do two things:

  1. ensure that the 'icon' rule runs before the notifications sqlite
  rule.  otherwise no icon will have been set in the message.

  2. ensure that your icons directory is symlinked into the public/
  directory.  for example, if your icons are in ~/.icons/ and you are
  running wubot from ~/projects/wubot, then set into the
  ~/projects/wubot/public directory and run 'ln -s ~/.icons ./'.  Then
  you should be able to see one of your images in your ~/.icons
  directory by navigating to, e.g.:

    http://localhost:3000/images/wubot.png

By default you can get to the notification web interface at:

  http://localhost:3000/notify/

Lots more to come here!

SUBROUTINES/METHODS

notify

Display the notifications web interface

item

Display a single item from the notification queue.

tags

Display the tags web interface.

colors

Display the range of the age colors used in the timeline.