Allow to associate a URL to a room, for example a link to a video
conference room. Tracks assigned to this room will automatically inherit
the link. The link for a given track can be overridden using the "url"
command.
This allows organizers to provide video links for each room, while still
enabling teams to link to whatever they end up really using.
Change-Id: I633eb83c579e4093ae769bcd053e4d2ec2fe4bc3
PTGbot needs to be bootstrapped using base data, but it was unclear
what that base data should contain. Rather than just providing a
pastebin link, add an example base data file.
Change-Id: I675717fee4f5c1eb48dc94aeb26d63a85c004fb1
The repo is Python 3 now, so update hacking to version 3.0 which
supports Python 3.
Fix problems found.
Change-Id: I5d2ab99725e97437b8dc3dc805c79b4a14610d6c
Now that we have a page for etherpads, navigation between the various
page is a bit awkward. This change introduces a common navbar across
all pages, and makes sure the MOTD displays on all of them.
This makes some of the links redundant, so we remove them.
Change-Id: I57d02c505ced355d53bc79e0d8240ea63737eae3
It is unclear that the etherpads page is driven by the ptgbot.
Add instructions on the page pointing to the ptgbot doc.
Change-Id: I42eee55d01da20a6e6bdc17081b99473ceb44c41
With this change, the ptgbot will generate links for each track
etherpad, display them on a specific page (etherpads.html) and
allow track moderators to override the autogenerated link using
the #track etherpad command.
It requires the database to contain an 'eventid' key which serves
as a unique etherpads prefix.
Change-Id: Iaa524530e9f2506369f180588a2b6f98f4cad3d1
It is sometimes useful to mark certain rooms as having specific
capabilities like videoprojection. This change adds the possibility
to assign a glyphicon (cap_icon) and a mouseover description
(cap_desc) for the rooms in the schedule dictionary.
Change-Id: I343c28acc3ad6015d3382d526511f153bf38a0e6
This is a mechanically generated patch to ensure unit testing is in place
for all of the Tested Runtimes for Train.
See the Train python3-updates goal document for details:
https://governance.openstack.org/tc/goals/train/python3-updates.html
Change-Id: Ie5535c3b8b6526f2ed8a8c99c62e5a770dd5a31e
Data presence was not reset on a new day cleanup, while it
is almost certainly stale at this point. Hopefully.
Change-Id: Ifc4cdedf6c365f92e5ff001d1485c8fee21b396f
While originally created as an OrderedDict, some data tables
were reset to a basic dictionary on a #newday command.
Change-Id: I62539a8c7130eac5eb666af019b7c94078666656
Currently it's not obvious that you can see who's checked into a room
by hovering the mouse over one of the room badges. This in turn makes
it less likely for people to check in, since they either won't be
aware of the feature, or will forget about it.
So game-ify check-ins by adding a new column to the "Current
discussion topics" table which displays the number of check-ins within
that room.
Story: 2005657
Task: 30945
Change-Id: I8d2bc716d39c70ff096f17b4da9ccf0a26bfc34f
The #unsubscribe command was setting the person's subscription to None
which obviously can't be compiled to a regex. This caused a crash on
the first now/next update after someone did #unsubscribe. Fix this
simply by skipping any subscription where the regex is set to None.
Change-Id: I11d42bcb1a0e3bc2e4105d6c2afa39f3a37af278
If a topic contains a URL, the URL gets auto-hyperlinked in ptg.html.
However this code forgot to add a trailing space, so if there was a
word after the URL, the space in between them got swallowed.
So add a space after each word, and do it outside the if/else
conditional to avoid any else clauses which might be added in the
future making the same mistake.
Change-Id: I3b5789387ead52945ae599aa0b80768642388269
Add the attendees tooltip to the now/next track badges, not just the
ones in the schedule timetable lower down.
Change-Id: Ibb92b1c520c6eebf78dabc0a052dd52fc5a40855
Previously we blindly accepted any string as a regex, but then
it could fail to compile at search-time when a track topic got
updated, which would cause the bot to crash.
So do a precautionary compile of the regex in order to ensure
we only accept valid regexen.
Change-Id: Id347b88adfc7150ff26550cf9170071e7ac33227
Add a new 'subscribe' command which allows people to subscribe for
automatic notifications via direct message of topics which match the
subscription regex they provide. With no regex argument it shows the
user's current subscription (if any). Also add a new 'unsubscribe'
command for clearing the regex.
Example use cases:
1. I know that nova is planning to discuss $TOPIC some time tomorrow
but they don't know exactly when, and I want to spend most of the
day in another room whilst ensuring I don't miss that particular
discussion on $TOPIC => "/msg ptgbot subscribe $TOPIC" will give me
notifications when the PTL types "#nova next $TOPIC" and "#nova now
$TOPIC".
2. I'm interested in *all* discussion on Python 3. I don't know which
projects are planning to discuss it, let alone when, but that
doesn't matter, because I can type "/msg ptgbot subscribe python ?3"
and get notified of all Python 3 discussions.
As with the presence tracking commands, these commands can be used in
public channels by preceding them with a '#' character.
Change-Id: I3f51acc318ecf31d435768640cef6c46d8ca136c
As discussed in I0d88a540ad7a333841c208dd7f2a7247897eb238, there are
good reasons for someone asking where they themself were last seen,
e.g. to verify that their current status is correct, or just for
testing the bot. So remove the joke. Perhaps we can find
another (funnier) Easter egg to add instead.
Change-Id: Ib27c72a20e71f0835e103e306b145d41a089131c
Since the in / #in command allows free-form check-ins when the
location is not prefixed with '#', this would allow people to
check into locations like 'nova' which would not be recognised
as an official track location. As a result their attendance
would not show up in the tooltips on the schedule web page.
So automatically detect when the user is checking into a track
but forgot to use the '#' prefix, and add it automatically for
them. This DWIM behaviour should avoid some confusion.
Also when matching / matched against known tracks, the lower-cased
version will be used. This assumes that all registered tracks are
lower-case.
Change-Id: Ic88ba926ba9e3187da6046972344bc2b31e3c4f1
Include tooltips on the "Currently at the PTG" page, so that hovering
the mouse over a particular track will show IRC nicks for everyone
currently checked into that track. If noone has checked in to the
track yet, give a hint about how to do it.
Thanks a lot to Jay Bryant for giving me the idea for this after we
bumped into each other on the plane to Denver ;-)
Change-Id: I1b86c1f403981b066ad096548a1754fadd6b72ad
Add in/out/seen commands to let people voluntarily check in and out of
tracks and other arbitrary locations, to make it easy for others to
find them. Of course this is entirely optional.
It's designed to cope gracefully with people forgetting to check out
of locations they previously checked into.
Change-Id: I0d88a540ad7a333841c208dd7f2a7247897eb238
Now that we have beautified RST in OpenDev, just link to that
instead of to GitHub for help links.
Change-Id: Ia57a3ce71a26520b3a3b7c5392bd8ef880a68674
Remove mentions to "OpenStack PTG" as we invite much more
teams to the PTG than just OpenStack teams.
Change-Id: I85b0125b669c0ed970463efd98574480de1469a7
Current system (where the index page is specified in the
puppet-ptgbot module) requires that (some) links on the page
are updated in puppet-ptgbot at the start of every event.
That page should be dynamically generated from JSON data.
That way the list of links can be provided in the JSON database
and dynamically imported and updated using the ~fetchdb command.
Change-Id: I7d82b38cba495e5837ba54fbe7a9b7e9c8e14259
ib3 triggers an irc.buffer import failure when used with
irc>=16. The fix is in[1], but was not released yet. In
the meantime, pin irc module to 15.1.1 to work around the
issue.
[1] 92da70155e
Change-Id: I6353185daa4a494d81ce519a2498639a4f973212
PTGbot used to reject now/next (and location) commands for
tracks that do not have a room scheduled on the same day.
However, it is sometimes useful for teams to indicate such
a message (double-booked rooms, team photo time, etc), so
PTGbot will now issue a warning rather than reject command.
Change-Id: Ib04fbf860b22a3b2e99b106f4f83ae702dd215d8
The most common error interacting with the bot is omitting
the "now" command. This change makes ptgbot issue a helpful
suggestion, and clarifies a couple more error messages.
It also provides usage help in case anyone asks for #help.
Change-Id: Ifbee88ab15dbf0ed8c9f858072852381b9da168f
Add admin command to add (and clean) a message of the day (motd)
to the rendered page. Can be used for emergency messages (using
level 'danger') or more general information.
Change-Id: Ie84d1a826c2f84a7ccdafd08176eef9aa2c5a3f1