Releases: icpctools/icpctools
Releases · icpctools/icpctools
v2.6.1325
Handle null values for toTeamIds When sending a broadcast (2023_06 spec), `to_team_id` is null, and the code creates `[null]` for `to_team_ids`, causing verification failure with: Clarification to unknown team null Clarification between teams This is introduced from 39ac2647772a52aee5e3cce886a45b66bd7fa977
v2.6.1324
URL account tokens for reaction videos
Adds account-specific token parameters to reaction video downloads. Any client using
the url as-is (without basic auth) can download the file as the given user.
This allows (e.g.) web-based clients to pass the url to players like video.js that
support https but not basic auth.
The token is a one-way hash based on the account user and password. It is only
implemented for reaction videos for now to get some use and feedback, but could be
used for other 'file downloads' as well. Since all traffic is via https it could
probably use a simpler algorithm, but this can easily be changed later.
I moved the existing static method used to determine which account is making any
request to HttpHelper since it is not contest-specific, and added the new token
helpers there.
Example of reaction video in /submissions or event-feed after this change:
{"href":"contests/baku-live/submissions/1/reaction.webcam?token=DSjPuOj7OL9HLxEtMe0a5Mrl1vGCz2N2cO1bidDA=","filename":"reaction.webcam.m2ts","mime":"video/m2ts","tags":["webcam"]}],"contest_time":"0:07:47.704","time":"2025-05-26T09:55:53.702-04:00"}
v2.6.1323
Reaction video tagging
We record webcam and desktop for reactions videos, but there is only one reaction
property, so we've been serving desktop as one file and webcam as another, i.e.:
{"id":"2",... "reaction":[{"href":"contests/baku-live/submissions/2/reaction-webcam","filename":"reaction-webcam.m2ts","mime":"video/m2ts"},{"href":"contests/baku-live/submissions/2/reaction-desktop","filename":"reaction-desktop.m2ts","mime":"video/m2ts"}]}
The only way you could tell these part was based on the filename or url - but now the spec
has tags, which are a much better way to differentiate them.
This PR makes two changes: renaming the files to use '.' instead of '-' to match the variant
format in the draft spec, and adding support for these tags. The new output looks like:
{"id":"2",... "reaction":[{"href":"contests/baku-live/submissions/2/reaction.webcam","filename":"reaction.webcam.ts","mime":"video/mp2t","tags":["webcam"]},{"href":"contests/baku-live/submissions/2/reaction.desktop","filename":"reaction.desktop.ts","mime":"video/mp2t","tags":["desktop"]}]}
(file extension and mimetype already changed via PR #1236)
v2.6.1322
Add problem attachment support Add attachments to problems as per https://github.com/icpc/ccs-specs/pull/226.
v2.6.1321
Improve mime type handling, especially for video Fixes three things: 1. Move the existing utility functions out of DiskContestSource to create a reusable mime type utility class, to avoid some of the duplication and differences in behaviour. 2. The mime type wasn't being set when downloading reaction videos - but using the new util fixes this. 3. When we started supporting MPEG-TS there was conflicting information about the correct file extension and mime type, and based on google AI and video.js we got it wrong: MPEG Transport Stream (MPEG 2 transport stream) <-- this is what we actually support File extension: .ts Mime type: video/mp2t 188-byte packets MPEG-2 Transport Stream <-- variant used by Blu-ray & AVCHD disks File extension: .m2ts Mime type: video/m2ts 192-byte packets (4 bytes added to help file seeking) This switches us to use the file extension and mime type of the first.
v2.6.1320
Remove contest location docs (moved to spec) Contest location was moved into the spec, we no longer need to document it.
v2.6.1319
Include spares when reseting contest floor origin When a floor map is saved to disk it automatically moves the origin to top left, just to pretty-print values and have 0,0 at the top left. Unfortunately it was missing spares (empty desks) when doing this, so they were always 'off the map'.
v2.6.1318
Update file reference tags consistently Found and fixed a couple more places where file reference tags weren't being updated, and moved it all to one method in FileReference.
v2.6.1317
Light mode for organization logos Part of #1228.
v2.6.1316
Light mode support for contest logo, banner Another part of #1228.