Commit Graph

214 Commits (64f5873b3b5e21185ad7b4dd2eac3e7b676d134a)

Author SHA1 Message Date
ElementalAlchemist b1b8ef8973
Add fullscreen functionality to Thrimbletrimmer video player ()
* Add fullscreen functionality to Thrimbletrimmer video player

* Fix issue where clicking on fullscreen video pauses and unpauses instead of doing just one
ElementalAlchemist a8f9611d93 Update quality indicator when keyboard shortcuts are used to change the video quality
ElementalAlchemist 78b9b5c68d Maintain playback rate across video reloading
ElementalAlchemist 75e0ba56ae Fix error when loading a new playlist (when fragments aren't yet loaded by hls.js)
ElementalAlchemist f7c9eb5e5b Fix incorrect variable reference
ElementalAlchemist c44da044a8 Make the waveform clearer/more useful at larger resolutions by requesting a larger waveform image
ElementalAlchemist d20f37266f Add a visible error when trying to load a time range with no video content
ElementalAlchemist 4fb8548aba Make muting work
ElementalAlchemist 4e35fed5f2 Handle when the video stops playing due to load issues when seeking
ElementalAlchemist 497c975e3e Implement custom video controls for the new player (so we can better control styling)
ElementalAlchemist 56699d5737 Put quality name in the place where clients read it (or at least HLS.js does)
ElementalAlchemist ed2ff1b9a5 Make HLS.js not combine different quality levels into one
ElementalAlchemist e2487f61c0 Fix interpretation of times located in a hole in the video segments
ElementalAlchemist 5a9f4502c2 Set default time zone for Luxon instead of setting the time zone on each DateTime object
ElementalAlchemist 0340f06170 Initial transition from VideoJS to HLS.js as the video player
ElementalAlchemist 699bea5e9e Fix clip bar placement after video is extended
ElementalAlchemist 394a6c72e2 Fix issues with updating the ranges when the time range updates
There were a couple issues with this:
- The range data was updated in the wrong direction
- If no adjustments were made, the problem was masked by the range data reapplying from draft data. However, if adjustments were made, the adjustments were overwritten (or, if ranges were added, partially overwritten) by the defaults.
ElementalAlchemist 5f79605ee6 Check title and description fields on load
ElementalAlchemist ea5d17df02 Add time conversion functionality
ekim mentioned a workflow during editor training in which he may want to have times be converted for use on the edit page. The restreamer doesn't otherwise currently have the time conversion functionality it did before (which was in the form at the top and was somewhat annoying); this adds time conversion functionality.
ElementalAlchemist 6e3b2e767e Store the user's volume level
ElementalAlchemist 8b475e0bd9 Show real-time errors for issues with video title or description
ElementalAlchemist 6899af4251 Add play from end to ranges
ElementalAlchemist 14900bed4a Fix error updating the submission success message
ElementalAlchemist 20518af627 Fix problems with the Submit Anyway button when sheet data is changed
ElementalAlchemist 058d7b9355 Fix issues with help box being unclosable when stuff moves around by giving it its own close button
ElementalAlchemist d37175f914 Switch date/time handling from JS Date objects to a datetime library to fix padding bug with DST changeover
ElementalAlchemist da2ed19b9d Now that VideoJS has been pared all the way down, move it to more standard directories
ElementalAlchemist cc49e703dc Do a general cleanup of time conversion names to make times overall consistent
ElementalAlchemist 86494797e9 Apparently JavaScript hates its own events
ElementalAlchemist af25a90c4a Update padding video on load (when edited outside the event range) to use multiple time ranges
ElementalAlchemist 5168fd120d Fix incorrect loop variable declaration preventing some load processes
ElementalAlchemist 72227fa366 Fix defaulting ranges to whole video to avoid old start and end fields
ElementalAlchemist 26b8efc093 Fix issue with download link on edit page when a range timestamp is at the exact end of the video
ElementalAlchemist 53bd932963 Update scripts for wubloader endpoints supporting multiple ranges
ElementalAlchemist 37f94cb754 We're not going to have transitions this time, so remove the transitions from the ranges for now
ElementalAlchemist eb9bc708cf Show errors about ranges so that the user knows to fix them
ElementalAlchemist 491d8dc3a8 Improve the editing experience for live videos
Apparently we weren't using VideoJS's new live UI (I thought we were), which caused issues like "the progress bar is not present on the video."
ElementalAlchemist 94e1ecdd6d Add waveform marker for current video position
ElementalAlchemist 609597a547 Add a way to jump player time to a range start point
ElementalAlchemist 497c7625dc Fix default formatting of negative times
ElementalAlchemist 4e4c2f4a9f Handle loading events with no end time (yet)
ElementalAlchemist 3fe2848e60 Add video load time modifications, and account for run-to-live
ElementalAlchemist 344ca041a3 Fix formatting of bus time with milliseconds
ElementalAlchemist 72b34945bc Handle expanding video on load when a draft video was already saved outside the event start/end times
ElementalAlchemist 9a12134915 Move beta Thrimbletrimmer code to primary Thrimbletrimmer code
Mike Lang aab8cf2f0f Set up plumbing for multi-range videos and implement no-transition fast cut videos only
This is the simplest case as we can just cut each range like we already do,
then concat the results.

We still allow for the full design in the database and cutter, but error out if transitions
is ever anything but hard cuts or if it's a full cut.

We also update the restreamer to allow accepting ranges, however for usability we still allow
the old "just one start and end" args.

Note this changes the thrimshim API to give and take the new "video_ranges" and "video_transitions" columns.
Mike Lang 2467a64ec3 thrimbletrimmer: Fix missing int parsing in duration parser
yay javascript
Mike Lang 783c571cb2 thrimbletrimmer: Fix stupid duration parsing typo introduced in cleanup
Mike Lang 61f55d03fb thrimbletrimmer: Add waveform image below video
Mike Lang 4db8c8f61c thrimbletrimmer: undo bad refactor
Mike Lang 714a16bac4 thrimbletrimmer: Use template literals and other cleanup
Now that we've fixed the function declarations, prettier has also removed the semicolons on them
Mike Lang a69bee0548 thrimbletrimmer: Replace var with let/const and other related bits
Mike Lang 241d302220 thrimbletrimmer: Use "function NAME(...)" instead of "NAME = function (...)"
It's less confusing and more like other languages
Mike Lang ce73f7b0ea Auto-format JS files with prettier
Prettier is a tool for formatting JS files.
We add a minimal configuration to suit our purposes, and run it on all our JS files.

The main things this corrects is mixed tab and space indent issues (replacing fully with tabs),
overly long lines, inconsistent quote usage (prefers double-quotes instead), and missing semicolons.
Hubbe 36a5387e26 Change wording on edit submitted alert()
An edit has been submitted for the video. The video hasn't been submitted yet, thrimbletrimmer just informs other components how it wants the edit to be.
Mike Lang 74a38bfaeb thrimbletrimmer: Instead of redirecting on submit, alert but stay
Mike Lang 337111a9ab thrimbletrimmer: Always alert() on errors
Hubbe 27265f3bca Set video.js volume to 50% by default
When the video.js player is ready, set its volume to 50%
Mike Lang f8c877775d Add an alternate manual upload mode specifically for youtube
Adds a built-in "youtube-manual" location which is like "manual" except that it only works
with youtube URLs and populates the video_id column.

The intent is so that we can have playlist_manager manage videos we upload manually,
while still being able to distinguish between that and other manual links that shouldn't
be included (eg. links to third party youtube videos).

This is set when setting a manual link in thrimbletrimmer with a new checkbox, default off.
Christopher Usher 84f7ef71c1 More helpful UI if the database has changed plus ignore changes that are
just white space or capitalisation
Mike Lang 31d241eecc thrimbletrimmer: missing tags arg when submitting
Christopher Usher 27c6b70976 fixes in response to review
Christopher Usher b21a520d3a Checking for changes in the sheet now working in the thrimbletrimmer
Mike Lang c26a87565f Add video tags to thrimbletrimmer
Tags default to tags given on the sheet, but can be modified by the editor.
Tags are represented as a comma-seperated string, and are round-tripped on loss of focus
as a way to validate.
Mike Lang a37d9a0c54 Fix a bug when we fail to load a playlist that prevents loading other playlists
Mike Lang 47584821f9 thrimbletrimmer: Handle null trim in submit
mainly for save draft
Mike Lang 58ff90cefe Further fix for when getRealTimeForPlayerTime is null
Mike Lang 58a2a0402d thrimbletrimmer: Handle getting trim time when no valid trim time is set
Just return null instead
Mike Lang e2f4162ac7 thrimbletrimmer: Fix a bug when trimming controls aren't enabled
Mike Lang 40f6a72ad7 thrimbletrimmer: Add keyboard shortcuts -/= to adjust playback speed
Mike Lang fd35c0dc20 thrimbletrimmer: Have a download link instead of a iframe
The iframe doesn't always work, this is more reliable.
Mike Lang c9f2e8e0a5 thrimbletrimmer: Preserve trim timings when re-loading playlist
Useful if you've already cut the start
but want to extend the range of times before cutting the end.
Mike Lang 3eb0ed2350 thrimbletrimmer: Fix bug where "Draft Saved" is shown after a failed submission
Mike Lang 8739a7a24a thrimbletrimmer: Popup on save draft
so we know it succeeded
Mike Lang 2342b66db0 thrimbletrimmer: Don't open advanced pane if upload_location is null
Mike Lang 8d3c863a49
Merge pull request from ekimekim/mike/thrimbletrimmer/cancel-upload
Allow thrimshim to safely cancel a job while it is cutting
Mike Lang 58d09b419c thrimbletrimmer: Add option to select cut type for Download button
In most cases, you want "rough" because you're going to trim the resulting
video later anyway.
Mike Lang cc48f17348 thrimbletrimmer: Add cancel row button using the new thrimshim functionality
Mike Lang bdbfd37c51 thrimbletrimmer: Pad start and end times
Mike Lang a68684c24c thrimbletrimmer: Fix use of tabs again
Mike Lang 26f91a02ea thrimbletrimmer: Parse durations as HH[:MM[:SS]] instead of [[HH:]MM:]SS
ie. 1:00 is 1 hour, not 1 minute.

This is consistent with our use of bustime everywhere else.
Mike Lang a6ee746e6b thrimbletrimmer: disable autoplay
Mike Lang 5d5358019a thrimbletrimmer: Improve bustime/ago parsing
Allow partial entries like 5:00 instead of 0:05:00.
Mike Lang ff43e186f6 thrimbletrimmer: Support "time ago" as a third time format
This is especially useful for the re-streaming page, and is default there.
Mike Lang d4c8974601 thrimbletrimmer: Some video controls tweaks
Allow fullscreen

Hide disabled picture-in-picture control

Autoplay
Mike Lang 47ac1c7ff8 thrimbletrimmer: Add second page built for watching stream with a delay
This is for giffers, etc.

It shares the codecase but uses a flag to say whether to affect all the editor inputs.
Mike Lang 671079861a thrimbletrimmer: Fix lack of usage of var throughout code
Chalk this one up to not knowing the language.
You need to declare variables as var otherwise they're implicitly globals.

This leads to many bugs where if a function runs twice at once it'll do weird things.
Mike Lang 8accc1338e thrimbletrimmer: Refactor how time formatting is handled
Instead of having two input fields and switching between them,
we just have one and re-write the value on switch.

We also handle invalid or empty dates a LOT better, and clean up some
other things around query strings.
Mike Lang 316504899a thrimbletrimmer: Fix a bug on initial load
loadPlaylist was happening before bustime was set, resulting
in the wrong times being loaded.
Mike Lang 971841d73b thrimbletrimmer: Move last bit of code into IO.js
since everything else is there anyway.
Mike Lang 934c640a04 thrimbletrimmer: Display edit notes below the video
In nice distracting pink so they're sure to see it.
Mike Lang f7f07a2688 Add /defaults to thrimshim, use it to populate config stuff in thrimbletrimmer
Thrimbletrimmer needs to know stuff like the bustime start time,
default channel, even if it's not looking at a specific row.
Mike Lang d03120548b thrimbletrimmer: Always respect the channel given by thrimshim
Mike Lang 6cfad08a26 thrimbletrimmer: Restore previously saved advanced options
and show the advanced pane if any are non-default.
Mike Lang 728ede61c0 thrimbletrimmer: Don't leave page after saving edits
Mike Lang 983e3a61c6 thrimbletrimmer: also pause on spacebar
Most video players pause on space, so we make sure it works if they try
Mike Lang 775799944a thrimbletrimmer: Don't hide the video player on error
It means you can't read the error, and it's more confusing.
Mike Lang 7dea1f0cdb thrimbletrimmer: Fix some typos in the new error handling
Mike Lang da3cc24ed1 Pass a list of upload locations from thrimshim to thrimbletrimmer
with the first one being the default.
Mike Lang b0ea790407 thrimbletrimmer: Misc cleanup
Mike Lang 93fc202394 thrimbletrimmer: submit button: clean up, error handling, no-auth mode
Mike Lang cdd286c0ee thrimbletrimmer: manual link and download buttons: cleanup, error handling, no-auth mode
Mike Lang b06721df07 thrimbletrimmer: Update bustime/UTC values when you switch
so if you change one it changes the other.

Also in general takes those conversions and makes them available as functions for re-use.
Mike Lang 91c67899ee thrimbletrimmer: Read title prefix from thrimshim and display it greyed out
This gives a visual indicator showing the editor what prefix the title will have.
It also allows us to set the correct max title length.
MasterGunner 52e456e0c1 Draft Button and Dashboard Columns
mg 936a2387c8 Change to how default channel is handled.
mg ca11e59511 Adding channel/start time info to Thrimshim to pass to Thrimbletrimmer.
mg ae3d82026e Removed extrenuous .bak files, ensured newline at the end of files, and changed thrimbletrimmer to be separate from services.
mg 7876880629 Removing "experimental" cutting feature
mg dee140aec0 Changes to dashboard, and adding reset/manual link functions.
mg 2611ec5916 Added padding to BusTime conversion.
mg e49ec90d3e UI Improvements
mg 950204aec6 Added setting of trim times on page load.
mg aed2a77a88 Initial merge of Thrimbletrimmer proper into repo.