Mike Lang
07d1d2ed78
restreamer: Allow cropping and scaling for full cuts
...
to enable vertical video. This lets us create YT Shorts or similar videos and download them.
2 years ago
ElementalAlchemist
8ea985c07a
Fix distortion of non-standard-size default emotes
2 years ago
ElementalAlchemist
262a293d2e
Fix issue where the first message of the playback may not be displayed on the restreamer page
2 years ago
ElementalAlchemist
ea0729cbd6
Show system messages (raids, subscriptions, etc.) in the chat replay
2 years ago
Mike Lang
e7d1212085
fix typo
2 years ago
Mike Lang
32c72d6eb7
sheetsync: correct parsing for updated playlists
2 years ago
Mike Lang
a298087137
playlists in description: round trip the description correctly
2 years ago
Mike Lang
17c5e86250
wip:
2 years ago
Mike Lang
34a33fdeb6
partially implement playlist links in video descriptions
...
We make them conceptually "part of the footer" so they're updated only when the video
is otherwise updated (which would generally mean MODIFIED).
2 years ago
ElementalAlchemist
cae4976cf6
Fix incorrect use of substring
2 years ago
ElementalAlchemist
c6961bbd46
Add ACTION support
2 years ago
ElementalAlchemist
aa2c444d1a
Implement chat auto-scroll
2 years ago
ElementalAlchemist
4ac24fe716
Make the chat its own scrollable area
2 years ago
ElementalAlchemist
76de577695
Fix updating chat on playlist reload for restreamer page
2 years ago
ElementalAlchemist
4a1880461f
Add replies support
2 years ago
ElementalAlchemist
881073b4d4
Fix appearance of long messages
2 years ago
ElementalAlchemist
40cc601d93
Fix alignment of messages with emotes
2 years ago
ElementalAlchemist
dc4e7f0835
Implement chat transcript for editor and chat replay for restreamer page
2 years ago
ElementalAlchemist
2939089edd
Upgrade luxon
2 years ago
ElementalAlchemist
b6a2d7e16a
Give the thumbnail options controls some room to breathe
2 years ago
ElementalAlchemist
8c872f6999
Add image preview generation
2 years ago
ElementalAlchemist
9fa898d5aa
Fix doing the time conversion before the data required for the time conversion is loaded
2 years ago
ElementalAlchemist
0e787677a0
Load thumbnail data for video
2 years ago
ElementalAlchemist
64f0ac714f
Set up thumbnail editing with data plumbing through
2 years ago
Mike Lang
46ad45bdb9
thrimshim: Don't 500 if MODIFIED video doesn't contain some fields
...
Missing fields _should_ be interpreted as "don't update these" but we weren't doing that.
2 years ago
Mike Lang
ab985cf1b0
Fix syntax error
2 years ago
Mike Lang
57d89b9b39
Fix missing imports
2 years ago
Mike Lang
05816ac51d
fix a bug where shift is calculated wrong
...
we need to use the hour in PST, which we just hard-code as 8 hours.
If we ever hit DST before the run, we'll go back and do it properly.
2 years ago
Mike Lang
cfe93e31dd
Fix a bug where modified videos are missing static tags
2 years ago
Mike Lang
bd519369bd
thumbnail fixes
2 years ago
Mike Lang
31c3f0b8b1
OS-level dependencies for Pillow
2 years ago
Mike Lang
24c066e3e8
Add thumbnail support to thrimshim
...
All thumbnail columns are modifiable, so you can eg. switch from
a templated thumbnail to a custom one, or change the time and template.
2 years ago
Mike Lang
0f0aee36b3
restreamer: Add endpoint for previewing thumbnails
2 years ago
Mike Lang
45c46df8bb
Add thumbnail templating code
2 years ago
Mike Lang
d3e21ae9b0
Implement thumbnails in cutter
2 years ago
Mike Lang
ce1f50db06
Database changes for thumbnails
2 years ago
Mike Lang
0681902789
Trigger download of the image file in a hacky way
...
Apparently this is the Recommended Approach for doing this - you create an <a> element,
set its attributes, then temporarily add it to the page and click() it.
The downloads.download() api we found earlier is exclusive to Chrome Apps.
2 years ago
Mike Lang
adb6e2ae10
thrimbletrimmer: Add button to download current frame
...
It always uses source quality and downloads as a PNG.
We use the browser.downloads api to construct the URL on demand.
Note we might not always get the exact right frame in 60fps streams,
we might get one before or after (and "frame seek" in the editor skips 2 frames in this case).
2 years ago
ElementalAlchemist
1cb819a4c5
Use more native HTML options for editor keyboard shortcuts help
2 years ago
Mike Lang
ffae321d04
editor: Make public checkbox "unlisted" instead, with negated meaning
...
less confusing
2 years ago
Mike Lang
b9c44375c3
playlist_manager: Don't add non-public videos to playlists
...
So that playlists don't pick up unlisted videos.
When the video is modified to be public, it will be added as normal.
However, note that since playlist_manager never removes videos from playlists,
making an existing video public video unlisted will not remove it from playlists.
2 years ago
Mike Lang
36017aaccd
sheetsync: Show unlisted videos in DONE state as UNLISTED instead
...
We don't actually want to represent them as a different state in the backend, but showing
them differently on the sheet is helpful to humans.
2 years ago
Mike Lang
bd948235fb
thrimbletrimmer: Add advanced submission option for "public" videos
...
Note that the default is true, so we only expand the advanced pane if it's false.
False corresponds to uploading a video as "unlisted".
Also mark it as modifyable.
2 years ago
Mike Lang
46468409cb
Add "public" column to control if videos are unlisted
...
This column is modifyable.
This replaces the old "hidden" argument to youtube upload backends.
2 years ago
Mike Lang
50b830bf82
github actions: check out submodules when building
2 years ago
Mike Lang
4f2c5c48ec
build chat_archiver in CI
2 years ago
Mike Lang
08257386e2
Add restreamer endpoint for viewing chat messages
2 years ago
Mike Lang
9320251de7
Some extra documentation on chat_archiver
2 years ago
Mike Lang
d8a9b5ddf0
chat_archiver: Always sort json object keys to ensure canonical output
2 years ago
Mike Lang
651658e507
JOINs and PARTs have been observed with up to 30sec difference
...
it turns out to be completely undocumented what the max delay is. so let's assume 45s.
anything > 60s might cause problems due to matching messages being more than 1 batch apart.
2 years ago