A tool for playing back past sessions of the Double Fine Game Club, along with the IRC chat transcripts.
- Create a new entry in the configuration file for the game session you want to watch (if it's not already there, of course).
- Run the Python script with the configuration file as an argument
(or run it without arguments to use the default name,
config.ini
). - Upload the newly created
.html
and.json
files, as well as thejavascript
,styles
,fonts
andimages
directories, to a web server (this is very important). - Open the web page.
- Click the "Click to play/pause" link.
- Enjoy!
Currently, it's not possible to control playback apart from pausing and resuming. Using the playback controls on the video player will break the synchronization between the video and the message stream.
The config consists of several sections, each section representing
a particular Game Club session. In each section are several key-value
pairs that customize how each session is treated. If you have multiple
sections that share some of their parameters, you can put them
in the DEFAULT
section to avoid repetition.
See the config.ini
file in this repository for examples.
URL pointing to the IRC log on Pastebin.
URL pointing to the stream on Twitch.
Each line of the IRC log will be matched against this regular expression in order to extract it's components. The expression must contain the following named capturing groups:
timestamp
- for capturing the timestamp of the message.username
- for capturing the username of the person that sent the message.message
- for capturing the body of the message.service
- for capturing IRC notifications, such as people entering or leaving the room and nickname changes.
If the matched expression's username
group is empty, it is considered
to be a service message. Therefore, avoid splitting such messages
into a username
group and a service
group.
- Regular messages must contain only the
timestamp
,username
andmessage
groups. - Service messages must contain only the
timestamp
andservice
groups.
For assistance with constructing regular expressions, visit: regex101.com.
Each timestamp in the IRC log will be run against this format string
for conversion into a datetime
object.
See the Python documentation for help on datetime
format strings.
The time at which to begin playing the stream.
Must match the timestamp_format
.
A comma separated list of line numbers to ignore in the IRC log.
Format string for regular IRC messages.
Must contain keyword arguments username
and message
.
See the Python documentation for help on format strings.
Same as message_format
. Must contain the service
keyword argument.
See the individual files in this repository for licensing information.
Or you can see the LICENSE
file if you like pointers.
- Cheeseness for the original HTML5 and CSS3.
- Janne Enberg (aka lietu) for the original JavaScript.