Source code for the PTG event scheduling bot
Go to file
Thierry Carrez f5906ccfe5 Refactor ethercalc-specific code out of db
Move ethercalc-related code out of the DB module, before
we start making it a lot more complex.

Change-Id: Iacbbe14e8cff9b06887b9bf76dc1f186c38ae2d2
2017-06-29 16:46:09 +02:00
html Render hashtags using labels 2017-05-29 17:13:00 +02:00
ptgbot Refactor ethercalc-specific code out of db 2017-06-29 16:46:09 +02:00
.gitignore Add basic HTML output system 2017-04-20 18:00:26 +02:00
.gitreview Fix .gitreview to match code repository 2017-06-13 11:40:47 +02:00
LICENSE Initial commit 2017-04-18 14:21:26 +02:00
README.rst Move config to a JSON file 2017-06-29 16:45:56 +02:00
config.json.sample Move config to a JSON file 2017-06-29 16:45:56 +02:00
requirements.txt Initial commit 2017-04-18 14:21:26 +02:00
setup.cfg Initial commit 2017-04-18 14:21:26 +02:00
setup.py Initial commit 2017-04-18 14:21:26 +02:00
test-requirements.txt Initial commit 2017-04-18 14:21:26 +02:00
tox.ini Initial commit 2017-04-18 14:21:26 +02:00

README.rst

OpenStack PTG Bot

ptgbot is the bot that PTG room moderators use to surface what's currently happening at the event. Commands follow the following format:

#ROOMNAME [now|next] TOPIC

From that information the bot builds a static webpage with discussion topics currently discussed ("now") and an indicative set of discussion topics coming up next ("next").

Please note that:

  • There can only be one "now" topic at a time. If multiple topics are discussed at the same time in various corners of the room, they should all be specified in a single "now" command.
  • In order to ensure that information is current, entering a "now" command wipes out any "next" entry for the same room. You might want to refresh those after entering a "now" topic.

Example:

#swift now discussing ring placement
#swift next at 2pm we plan to discuss #glance support
#swift next around 3pm we plan to cover cold storage features
...
#swift now discussing #glance support, come over!
#swift next at 3pm we plan to cover cold storage features

Testing

Copy config.json.sample to config.json:

cp config.json.sample config.json

Edit config.json contents, for example:

{
"irc_nick": "ptgbot",
"irc_server": "irc.freenode.net",
"irc_port": 6667,
"irc_channel": "#testptg",
"db_filename": "html/ptg.json",
}

In one terminal, run the bot:

tox -evenv -- ptgbot -d config.json

Join that channel and give a command to the bot:

#swift now discussing ring placement

(note, the bot currently only takes commands from Freenode identified users)

In another terminal, start the webserver:

cd html && python -m SimpleHTTPServer

Open the web page in a web browser: http://127.0.0.1:8000/ptg.html