agendabot

agendabot is an IRC 'bot that gets a meeting agenda from a URL. It is especially useful as a complement to the Zakim meeting 'bot, but does not require it.

Use from IRC

Assuming agendabot is connected to an IRC server (see the documentation in the program for how to run it), the steps to using it are as follows:

  1. Invite the 'bot to the channel you are meeting on:

    /invite agendabot
  2. Tell the 'bot where the agenda of your meeting is:

    agenda: http://example.org/agendas/2018/13

    You can also use a /me instruction:

    /me agenda: http://example.org/agendas/2018/13

    If agendabot succeeds in downloading and parsing the linked document, it will print the agenda to the IRC channel. That could look like, e.g.:

    clear agenda
    agenda+ Welcome
    agenda+ Winter topics
    agenda+ AOB
  3. When the agendabot is no longer needed, dismiss it:

    agendabot, bye

Agendabot also knows a help command (‘agendabot, help’) and replies to it with some info about itself.

The reload command (‘agendabot, reload’) asks agendabot to reread the configuration files it was started with, if any.

Slow?

Agendabot may appear to be slow. Occasionally that may be because the Web server is slow to deliver the requested agenda, but most likely you are seeing the so-called flood protection. The 'bot pauses before every line, to avoid being kicked off the channel for sending too much text in too short a time.

Just be patient…

Agenda formats

When given a URL, agendabot tries to retrieve the document at that URL and scan it for text that looks like an agenda. Agendabot currently recognizes agendas in one of the following forms. The document may be plain text, XHTML, HTML or HTML5, or any text format that is close to plain text.

  1. In this format, agenda topics are lines that start with a number and a period and are followed by a line starting with at least four dashes. E.g.:

    1. Welcome
    ----------
    
    2. The apple tree
    ----------
    
    3. AOB
    ------

    Any text before, after or in between these lines is ignored. The above results in the following agenda:

    clear agenda
    agenda+ Welcome
    agenda+ The apple tree
    agenda+ AOB
  2. This format requires the text ‘=== AGENDA ===’ (upper- or lowercase and possibly with more ‘=’ signs) to occur in the document. All agenda topics are lines that start with ‘Topic:’;. E.g.:

    ==== AGENDA ====
    
    Topic: AOB?
    
    Topic: Radar

    Any text before, after or in between these lines is ignored. The above results in the following agenda:

    clear agenda
    agenda+ AOB?
    agenda+ Radar
  3. This format already uses Zakim's format, i.e., topics are lines that start with "agenda+". E.g.:

    agenda+ Roundtable
    agenda+ TPAC registration
    agenda+ Next meeting

    Any text before, after or in between these lines is ignored. The above results in the following agenda:

    clear agenda
    agenda+ Roundtable
    agenda+ TPAC registration
    agenda+ Next meeting
  4. This format has the word "Agenda" somewhere in the text and topics are lines that start with "1)", "1.", "*", "•", "◦" or "⁃". If there are multiple markers in use, only the one with the smallest indent is used. The others are assumed to mark subtopics.

    Agenda telcon 20 July
    0. Extra agenda items and other digressions
    1. [css-display] Blockifications
       * Positioning
       * Syntax
    2. [cssom-1] Replace steps of set a CSS declaration

    Any text before, after or in between these lines is ignored. The above results in the following agenda:

    clear agenda
    agenda+ Extra agenda items and other digressions
    agenda+ [css-display] Blockifications
    agenda+ [cssom-1] Replace steps of set a CSS declaration

Notes

This was a 2018 Geek Week project. The idea for agendabot is due to Richard Ishida.

Author

Bert Bos <bert@w3.org>

See also

Zakim, RRSAgent, scribe.perl

Zakim can read (and write) agendas in RDF.