Skip to content

v0.3.0 Checkpoint

Compare
Choose a tag to compare
@dyc3 dyc3 released this 20 Apr 23:08
· 713 commits to master since this release
e9a44b2

ATTENTION SELF HOSTERS: This release marks the latest version of OTT before the configuration changes in #849. These are possibly breaking changes, so this release is here to to help self hosters update on their own time. See #853.

What's Changed

  • fix #423 by @dyc3 in #424
  • allow joining rooms without a session cookie by @dyc3 in #425
  • fix a bug that prevents room settings from being loaded correctly by @dyc3 in #427
  • lint cleanup by @dyc3 in #428
  • add an e2e test for video playback in a room by @dyc3 in #437
  • misc fixes by @dyc3 in #440
  • fix #439 by @dyc3 in #441
  • add ClientNotFoundInRoomException by @dyc3 in #443
  • attempted fix for #444 by @dyc3 in #445
  • fix #446 by @dyc3 in #447
  • adjust logging by @dyc3 in #448
  • adjust logging by @dyc3 in #449
  • add loop queue mode by @dyc3 in #451
  • don't dequeue next video unless there is something to dequeue by @dyc3 in #455
  • fix 456 by @dyc3 in #457
  • update optic by @dyc3 in #458
  • fixes #452 by @dyc3 in #459
  • room settings request by @dyc3 in #462
  • allow multiple lines for add preview by @dyc3 in #466
  • Authentication overhaul by @dyc3 in #454
  • pass redisclient to youtube adapter by @dyc3 in #467
  • add some stat counters for videos watched by @dyc3 in #468
  • fix #471 by @dyc3 in #472
  • Bump ws from 7.4.5 to 7.4.6 by @dependabot in #422
  • Bump dns-packet from 1.3.1 to 1.3.4 by @dependabot in #420
  • remove dependency on redis for all unit tests by @dyc3 in #474
  • Add play now button by @dyc3 in #475
  • add link parsing for youtube shorts and youtube studio links by @dyc3 in #476
  • Convert infoextractor to typescript by @dyc3 in #477
  • permissions typescript by @dyc3 in #479
  • fix add all button appearing in the wrong spot by @dyc3 in #480
  • hack: fix permissions editor not parsing new RoleGrants format by @dyc3 in #481
  • lots of linting related changes by @dyc3 in #482
  • small logging fix by @dyc3 in #485
  • update package lock by @dyc3 in #486
  • node-sass is deprecated, move to dart sass by @dyc3 in #489
  • dep updates2 by @dyc3 in #490
  • add node 16 to ci by @dyc3 in #491
  • Bump path-parse from 1.0.6 to 1.0.7 by @dependabot in #469
  • switch docker images to node 14 by @dyc3 in #492
  • youtube api error handling by @dyc3 in #493
  • Bump tmpl from 1.0.4 to 1.0.5 by @dependabot in #494
  • split room request metadata by @dyc3 in #496
  • Fix docker health check by @dyc3 in #497
  • Improve compliance with strictNullChecks for tests and youtube adapter by @dyc3 in #498
  • Improve compliance with strict null checks by @dyc3 in #499
  • Finally finish enabling strict null checks by @dyc3 in #500
  • hotfix: join requests don't have the client id in the context by @dyc3 in #501
  • add all UI for DJ queue mode, closes #450 by @dyc3 in #502
  • use custom logging function for sequelize logs by @dyc3 in #503
  • UI improvements by @dyc3 in #506
  • fix for client ids missing from join request contexts by @dyc3 in #507
  • add some logging around voting to help debug #508 by @dyc3 in #509
  • debug logging by @dyc3 in #510
  • debug logging by @dyc3 in #512
  • fix first vote casts multiple votes bug, fixes #508 by @dyc3 in #513
  • Add support for playing reddit videos by @dyc3 in #514
  • fix a couple of add preview bugs by @dyc3 in #515
  • Add Tubi support by @dyc3 in #516
  • test fixtures by @dyc3 in #517
  • add support for m3u, m3u8 hls video links by @dyc3 in #520
  • issue templates by @dyc3 in #521
  • Slider improvements by @dyc3 in #523
  • hack: fix seek preview not working by @dyc3 in #524
  • seek preview fix by @dyc3 in #526
  • Reorganize some stuff on the client side by @dyc3 in #527
  • Sponsorblock support by @dyc3 in #528
  • don't spam requests if getting segments fails by @dyc3 in #529
  • make VideoQueueItem slightly more robust to missing info by @dyc3 in #533
  • room name validation by @dyc3 in #537
  • move toast notifications to the right side, closes #534 by @dyc3 in #538
  • fix missing playback slider, fixes #539 by @dyc3 in #541
  • Add a couple new room API tests by @dyc3 in #542
  • make skipping a video clear video segments by @dyc3 in #544
  • actually force segments to get cleared on skipping video by @dyc3 in #547
  • adjust token experation times by @dyc3 in #550
  • dailymotion: add link parsing for embed links by @dyc3 in #551
  • adjust sponsorblock segment clearing again by @dyc3 in #557
  • don't send multiple requests for segments if we haven't heard back from the first one yet by @dyc3 in #559
  • Name change propagation fix by @dyc3 in #560
  • Add keyboard shortcut to enable debug panel in production by @dyc3 in #562
  • Refactor how hiding video controls work by @dyc3 in #563
  • make sure debug mode is hidden by default in production by @dyc3 in #564
  • fix video controls hiding and not being able to make them show up again, fix #561 by @dyc3 in #565
  • Update landing page and add some more links by @dyc3 in #566
  • closable chat by @dyc3 in #571
  • document FFPROBE_PATH env var, closes #297 by @dyc3 in #572
  • Restore integrity of democracy by @dyc3 in #573
  • protect queue writes with a mutex, fixes #478 by @dyc3 in #574
  • update some dependencies by @dyc3 in #579
  • use a resize observer to tell the youtube iframe to resize by @dyc3 in #578
  • Bump color-string from 1.5.3 to 1.9.0 by @dependabot in #580
  • double star to ignore all fixtures recursively by @dyc3 in #581
  • make play now invalidate video segments by @dyc3 in #582
  • fix skipping ahead if a client joins the room after the video has been paused for a little while by @dyc3 in #584
  • ensure token before join by @dyc3 in #585
  • add support for direct audio files in mp3 and ogg format by @dyc3 in #586
  • Storage for client settings by @dyc3 in #587
  • Update some dependencies by @dyc3 in #588
  • update deps by @dyc3 in #589
  • change license to AGPL 3.0 by @dyc3 in #590
  • adjust sequelize logging by @dyc3 in #591
  • fix code coverage collection by @dyc3 in #592
  • remove dead code by @dyc3 in #593
  • Add queue shuffle button by @dyc3 in #594
  • remove deprecated client messages in favor of ClientMessageRoomRequest by @dyc3 in #595
  • hide queue controls when there are no videos in the queue by @dyc3 in #596
  • Separate client and server by @dyc3 in #598
  • Username length limit by @dyc3 in #600
  • Fix misc warnings by @dyc3 in #602
  • Localization Infrastructure by @dyc3 in #601
  • workaround that should make #603 less brutal by @dyc3 in #604
  • Fix for #603 by @dyc3 in #605
  • Player refactor and ShareInvite tests by @dyc3 in #607
  • exclude coverage and dist folders from vscode search by @dyc3 in #608
  • client: replace some strings with localizable ones by @dyc3 in #609
  • build(deps): bump follow-redirects from 1.14.6 to 1.14.7 by @dependabot in #610
  • logging adjust by @dyc3 in #611
  • send room requests over pubsub if the room is not loaded on the current node by @dyc3 in #612
  • Enable the play now button for more queue modes by @dyc3 in #614
  • Fixed buttons by @xRealNeon in #617
  • handle leave request failures better by @dyc3 in #621
  • Add Locale Selector by @dyc3 in #625
  • add vue2 composition api by @dyc3 in #626
  • build(deps): bump simple-get from 3.1.0 to 3.1.1 by @dependabot in #627
  • fix some i18n stuff to unblock 624 by @dyc3 in #628
  • Extracted language strings by @xRealNeon in #624
  • Unhide chat on 16:9 screens in fullscreen mode by @dyc3 in #629
  • build(deps): bump follow-redirects from 1.14.7 to 1.14.8 by @dependabot in #633
  • build(deps): bump url-parse from 1.5.3 to 1.5.7 by @dependabot in #635
  • build(deps): bump prismjs from 1.25.0 to 1.27.0 by @dependabot in #638
  • build(deps): bump url-parse from 1.5.7 to 1.5.10 by @dependabot in #639
  • Chat rework by @dyc3 in #631
  • make shuffle test not flakey by @dyc3 in #643
  • slightly adjust player size by @dyc3 in #645
  • upgrade jest to 27, remove nanotimer by @dyc3 in #646
  • textseek composition by @dyc3 in #648
  • dep upgrades by @dyc3 in #650
  • layout switcher by @dyc3 in #653
  • Add prettier to linting for auto formatting by @dyc3 in #655
  • Convert some components to the composition api by @dyc3 in #657
  • tests: use jest setup file to install composition api for all unit tests by @dyc3 in #658
  • Add german translation by @FriedrichGaming in #660
  • Add some documentation for locales by @dyc3 in #661
  • Improve German translation by @FriedrichGaming in #663
  • Corrected mistakes in the german translation by @FriedrichGaming in #664
  • build(deps): bump cross-fetch from 3.1.4 to 3.1.5 by @dependabot in #667
  • make the screen API optional by @dyc3 in #669
  • ts enums safari compat by @dyc3 in #672
  • Check for screen orientation instead of just screen by @gianklug in #673
  • refactor fetchManyVideoInfo to handle youtube livestreams a little bit better by @dyc3 in #674
  • Video queue rework, add extra queue item metadata by @dyc3 in #682
  • remove quickadd feature because it broke and nobody uses it by @dyc3 in #683
  • when connected to a room already, and the user creates a room, they will join the new room and leave the old one. fixes #659 by @dyc3 in #684
  • refactor onRoomCreated event to not use vue-event-bus by @dyc3 in #685
  • refactor how the player updates play/pause state by @dyc3 in #686
  • remove vue events by @dyc3 in #687
  • remove some lingering code, fixes #688 by @dyc3 in #689
  • refactor: remove RoomUtils mixin by @dyc3 in #690
  • fix form errors not being invalidated when text is modified by @dyc3 in #691
  • Refactor client side permissions checks by @dyc3 in #692
  • Convert VideoQueue, VideoQueueItem to composition api by @dyc3 in #693
  • remove toast plugin by @dyc3 in #695
  • build(deps): bump eventsource from 1.1.0 to 1.1.1 by @dependabot in #675
  • build(deps): bump simple-plist from 1.3.0 to 1.3.1 by @dependabot in #676
  • convert RoomSettings form to composition api by @dyc3 in #696
  • convert toasts to composition api by @dyc3 in #697
  • remove class component definitions from nav components by @dyc3 in #699
  • Fix uncached videos not appearing in search results by @dyc3 in #701
  • queue add tabs icons by @dyc3 in #702
  • convert RoomList view to composition api by @dyc3 in #703
  • Add captions/subtitles toggle by @dyc3 in #704
  • convert the dailymotion player to the composition api by @dyc3 in #707
  • client settings ui by @dyc3 in #708
  • fix create room form UX being weird when room creation fails by @dyc3 in #713
  • build(deps): bump terser from 4.8.0 to 4.8.1 by @dependabot in #709
  • maybe fix room generate not working in prod by @dyc3 in #714
  • Add German translation for client-settings by @IceBeach7 in #717
  • build(deps): bump vuetify from 2.6.1 to 2.6.10 by @dependabot in #719
  • Fix: Added ffmpeg to Docker distro by @shindouj in #721
  • Fixed ffmpeg being added in build stage rather than in production stage by @shindouj in #724
  • ffprobe pipe in by @dyc3 in #726
  • fix client not setting isTemporary = false when creating permanent rooms by @dyc3 in #727
  • fix reddit extractor by @dyc3 in #728
  • prometheus exporter by @dyc3 in #729
  • fix ott_media_seconds_played metric not counting seconds if the video is seeked while playing by @dyc3 in #730
  • implement ott_infoextractor_add_previews_requested and ott_infoextractor_search metrics by @dyc3 in #731
  • add some http request metrics by @dyc3 in #732
  • more metrics by @dyc3 in #733
  • fix potentially dangling temporary files if running ffprobe fails by @dyc3 in #734
  • fix http metrics being recorded before the request has been served by @dyc3 in #735
  • fix aborted http requests from axios leaking TlsSocket handles, causing a file descriptor leak by @dyc3 in #737
  • remove the direct preview limit by default by @dyc3 in #738
  • Stream video downloads for direct videos straight into ffprobe by @dyc3 in #742
  • add a unit test for direct video playback extracting the title by @dyc3 in #743
  • more metrics by @dyc3 in #745
  • fix an edge case when parsing video duration from the youtube api by @dyc3 in #746
  • improve error handling when attempting to fetch a youtube video that doesn't exist by @dyc3 in #747
  • fix force unload by @dyc3 in #748
  • less invalid add preview by @dyc3 in #749
  • Added Russian localization by @SabatonShip in #750
  • fixed/improved ru locale by @SabatonShip in #751
  • remove some dead code by @dyc3 in #752
  • Refactor room disconnection UI by @dyc3 in #754
  • Add support for youtube handle links by @dyc3 in #756
  • Update Russian locale by @dyc3 in #763
  • add gitpod config by @dyc3 in #764
  • fix node 18 by @dyc3 in #768
  • disable gitpod prebuilds for PRs by @dyc3 in #769
  • Convert last remaining class components to composition api by @dyc3 in #770
  • update browserlist by @dyc3 in #771
  • fix client not respecting seeks to position 0 if the video is playing by @dyc3 in #779
  • update codeql CI job to v2 by @dyc3 in #780
  • server: add metric ott_users_in_rooms by @dyc3 in #781
  • update architecture.md a little by @dyc3 in #783
  • minimal websocket tooling and fixes by @dyc3 in #793
  • Bump json5 from 1.0.1 to 1.0.2 by @dependabot in #794
  • add configurable rate limit key prefix by @dyc3 in #797
  • Exported API docs from optic 10 by @dyc3 in #798
  • Upgrade to Vue3 + Vuetify 3 + Vite, with lots of other major improvements by @dyc3 in #772
  • add some metrics for redis and postgres by @dyc3 in #802
  • Improve open api spec by @dyc3 in #803
  • server: add ENABLE_RATE_LIMIT environment variable by @dyc3 in #804
  • server: actually await for consuming rate limit points before continuing by @dyc3 in #805
  • Bare minimum completed API docs by @dyc3 in #808
  • fix memory and pubsub channel leak on room unload by @dyc3 in #809
  • dependency upgrades by @dyc3 in #811
  • fix vimeo player by @dyc3 in #814
  • more dependency upgrades by @dyc3 in #812
  • Tweak nav bar and drawer by @dyc3 in #815
  • update privacy policy by @dyc3 in #816
  • Video Control Modes by @dyc3 in #819
  • adjust video layout in fullscreen mode by @dyc3 in #821
  • fix hard coded hostname in dockerfile by @dyc3 in #823
  • Show a button when playback is blocked by @dyc3 in #829
  • remove old FAQ, link to new one, closes #800 by @dyc3 in #831
  • refactor some i18n definitions by @dyc3 in #832
  • Bump sqlite3 from 5.1.4 to 5.1.5 by @dependabot in #833
  • Add French translation by @Scraft02 in #835
  • fix missing locale selector by @dyc3 in #840
  • fix 836 by @dyc3 in #841
  • ci: use cypress pre-release build to see if flakey tests are fixed by @dyc3 in #844
  • improve queue robustness by @dyc3 in #848
  • Bump openssl from 0.10.45 to 0.10.48 in /tools/ws-fuzz by @dependabot in #843
  • increment version number to v0.3.0 by @dyc3 in #852

New Contributors

Full Changelog: v0.2.0...v0.3.0