Commit graph

154 commits

Author SHA1 Message Date
Meisam
7e6f53c846
Add standalone chat with ability to send messages (#1270)
* properly pass the messagesOnly to chat

* use actual username if embed is not messageonly

* mv embed chat to chat-overlay

* add new embed chat page

* fix router

* secure random number for non-secure application!

* add chat enable/disable functionality

* add username form

add customStyles

* mv overlay css

* add style for embed chat

style cleanup

* rm username form from chat overlay

* refactoring

* css cleanup

css adjust

* minor cleanup

* mark the embed chats as readonly and readwrite

* replace 301 redirects with 307

* add redirect for the cached address

* set insatnce name in chat
2021-07-31 16:21:30 -07:00
Meisam
2ff9186ee2
fix updateAuthorList (#1276) 2021-07-27 16:55:19 -07:00
gabek
8c5f7be05c Prettified Code! 2021-07-26 05:41:48 +00:00
Gabe Kangas
f23a1202cc Do not set title text for users without data. Closes #1249 2021-07-25 22:41:15 -07:00
gabek
9b7926963f Prettified Code! 2021-07-26 05:27:02 +00:00
Meisam
10456b0a01
Remove user's own name from the autocomplete suggestions (#1258)
* remove the username from list

* fix updateAuthorList returns
2021-07-25 22:26:27 -07:00
gabek
5f7cc6a327 Prettified Code! 2021-07-24 17:26:17 +00:00
Meisam
7526b5305c
add emoji to the caret position (#1253) 2021-07-24 10:25:40 -07:00
gabek
93f682d526 Prettified Code! 2021-07-23 21:16:13 +00:00
Meisam
bb09c0d187
Autocomplete emoji names (#1250)
* generalize autoComplete function

* autocomplete emoji names

* isolate the state of each token

* minor fix

* save emojiNames in state
2021-07-23 14:15:25 -07:00
Gabe Kangas
c1dd1b9bf3 fix exception 2021-07-21 23:19:33 -07:00
Gabe Kangas
e7e1758fa4 Force history messages to always be at the front of the messages array 2021-07-21 22:23:24 -07:00
Gabe Kangas
96993435d8 Add missing space. Closes #1231 2021-07-20 23:25:23 -07:00
gabek
7af5030f5b Prettified Code! 2021-07-20 02:23:06 +00:00
Gabe Kangas
b6f68628c0
Chat refactor + persistent backing chat users (#1163)
* First pass at chat user registration and validation

* Disable chat if the user is disabled/blocked or the server hits max connections

* Handle dropping sockets if chat is disabled

* Fix origin in automated chat test

* Work for updated chat moderation

* Chat message markdown rendering and fix tests

* Put /api/chat behind a chat user access token. Closes #1085

* Reject blocked username changes

* More WIP moderation

* Defer configuring chat until we know if it is enabled. Closes #1135

* chat user blocking. Closes #1096

* Add tests around user access for #1096

* Add external integration chat message API + update integration auth middleware to pass along integration name. Closes #1092

* Delete old chat messages from db as to not hold on to excessive data. Closes #1152

* Add schema migration for messages. Closes #1155

* Commit updated API documentation

* Add chat load test

* Shared db mutex and db optimizations

* Simplify past display name handling

* Use a new test db for each test run

* Wire up the external messages actions + add tests for them

* Move access tokens to be actual users

* Run message pruning at launch + fix comparison

* Do not return API users in disabled users response

* Fix incorrect highlighting. Closes #1160

* Consolidate user table statements

* Set the max process connection limit to 70% of maximum

* Fix wrong old display name being returned in name change event

* Delete the old chat server files

* Wire back up the webhooks

* Remove unused

* Invalidate user cache on changes

* Do not send rendered body as RawBody

* Some cleanup

* Standardize names for external API users to ExternalAPIUser

* Do not log token

* Checkout branch when building admin for testing

* Bundle in dev admin for testing

* Some cleanup

* Cleanup js logs

* Cleanup and standardize event names

* Clean up some logging

* Update API spec. Closes #1133

* Commit updated API documentation

* Change paths to be better named

* Commit updated API documentation

* Update admin bundle

* Fix duplicate event name

* Rename scope var

* Update admin bundle

* Move connected clients controller into admin package

* Fix collecting usernames for autocomplete purposes

* No longer generate username when it is empty

* Sort clients and users by timestamp

* Move file to admin controller package

* Swap, so the comments stay correct

Co-authored-by: Jannik <jannik@outlook.com>

* Use explicit type alias

Co-authored-by: Jannik <jannik@outlook.com>

* Remove commented code.

Co-authored-by: Jannik <jannik@outlook.com>

* Cleanup test

* Remove some extra logging

* Add some clarity

* Update dev instance of admin for testing

* Consolidate lines

Co-authored-by: Jannik <jannik@outlook.com>

* Remove commented unused vars

Co-authored-by: Jannik <jannik@outlook.com>

* Until needed do not return IP address with client list

* Fix typo of wrong var

* Typo led to a bad test. Fix typo and fix test.

* Guard against the socket reconnecting on error if previously set to shutdown

* Do not log access tokens

* Return success message on enable/disable user

* Clean up some inactionable error messages. Sent ban message. Sort banned users.

* fix styling for when chat is completely disabled

* Unused

* guard against nil clients

* Update dev admin bundle

* Do not unhide messages when unblocking user just to be safe. Send removal action from the controller

* Add convinience function for getting active connections for a single user

* Lock db on these mutations

* Cleanup force disconnect using GetClientsForUser and capture client reference explicitly

* No longer re-showing banned user messages for safety. Removing this test.

* Remove no longer needed comment

* Tweaks to forbidden username handling.

- Standardize naming to not use "block" but "forbidden" instead.
- Pass array over the wire instead of string.
- Add API test
- Fix default list incorrectly being appended to custom list.

* Logging cleanup

* Update dev admin bundle

* Add an artificial delay in order to visually see message being hidden when testing

* Remove the user cache as it is a premature optimization

* When connected to chat let the user know their current user details to sync the username in the UI

* On connected send current display name back to client.
- Move name change out of chat component.
- Add additional event type constants.

* Fix broken workflow due to typo

* Troubleshoot workflow

* Bump htm from 3.0.4 to 3.1.0 in /build/javascript (#1181)

* Bump htm from 3.0.4 to 3.1.0 in /build/javascript

Bumps [htm](https://github.com/developit/htm) from 3.0.4 to 3.1.0.
- [Release notes](https://github.com/developit/htm/releases)
- [Commits](https://github.com/developit/htm/compare/3.0.4...3.1.0)

---
updated-dependencies:
- dependency-name: htm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Run npm run build and update libraries

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>

* Commit updated Javascript packages

* Re-send current user info when a rejected name change takes place

* All socket writes should be through the send chan and not directly

* Seed the random generator

* Add keys and indexes to users table

* a util to generate consistent emoji markup

* console clean up

* mod tidy

* Commit updated API documentation

* Handle the max payload size of a socket message.
- Only close socket if x2 greater than the max size.
- Send the user a message if a message is too large.
- Surface the max size in bytes in the config.

* Update admin bundle

* Force all events to be sent in their own socket message and do not concatinate in a single message

* Update chat embed to register for access token

* Use a different access token for embed chat

* Update the chat message bubble background color to be bolder

* add base tag to open links in new window, closes #1220

* Support text input of :emoji: in chat (#1190)

* Initial implementation of emoji injection

* fix bookkeeping with multiple emoji

* make the emoji lookup case-insensitive

* try another solution for Caretposition

* add title to emojis

minor refactoring

* bind moji injection to InputKeyUp

* simplify the code

replace all found emojis

* inject emoji if the modifer is released earlier

* more efficient emoji tag search

* use json emoji.emoji as url

* use createEmojiMarkup()

* move emojify() to chat.js

* emojify on paste

* cleanup emoji titles in paste

* update inputText in InputKeyup

* mark emoji titles with 2*zwnj

this way paste cleanup will not interfere with text which include zwnj

* emoji should not change the inputText

* Do not show join messages when chat is offline. Closes #1224
- Show stream starting/ending messages in chat.
- When stream starts show everyone the welcome message.

* Force scrolling chat to bottom after history is populated regardless of scroll position. Closes https://github.com/owncast/owncast/issues/1222

* use maxSocketPayloadSize to calculate total bytes of message payload (#1221)

* utilize maxSocketPayloadSize from config; update chatInput to calculate based on that value instead of text value; remove usage of inputText for counting

* add a buffer to account for entire websocket payload for message char counting; trim nbsp;'s from ends of messages when calculating count

Co-authored-by: Gabe Kangas <gabek@real-ity.com>

Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Jannik <jannik@outlook.com>
Co-authored-by: Ginger Wong <omqmail@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Meisam <39205857+MFTabriz@users.noreply.github.com>
2021-07-19 19:22:29 -07:00
gabek
cea07697f3 Prettified Code! 2021-07-12 17:25:14 +00:00
gingervitis
ab254a3902
put emojiPicker instance in state so page can correctly reflect updates when it has instantiated (#1182) 2021-07-12 10:24:41 -07:00
gabek
2aa8b70ead Prettified Code! 2021-06-21 00:24:12 +00:00
Gabe Kangas
57674206b2
Fix + update external modal (#1106)
* Update external action modal. Uses Micromodal. Closes #1020

* refactor modal handling to isolate loading in modal component

* modal style cleanup

* Remove log

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2021-06-20 17:23:39 -07:00
gabek
c848c029d5 Prettified Code! 2021-06-21 00:16:30 +00:00
gingervitis
3b08b50ce0
add a send button on chat for touch screen devices (#1127)
* add a send button on chat for touch screen devices

* cleanup
2021-06-20 17:15:52 -07:00
gingervitis
c45e43c378
display last online time (#1125)
* - if offline calculate and display last online time to address https://github.com/owncast/owncast/issues/1111
- clean up status bar styles

* clean up console
2021-06-20 10:49:16 -07:00
gabek
bb4fc6dae3 Prettified Code! 2021-06-08 00:37:20 +00:00
Gabe Kangas
e994412f4b Fix webapp not loading after youtube embed was removed in #1079 2021-06-07 17:36:43 -07:00
Pankaj Patil
4bee6408b4
Remove YouTube embedding in the chat (#1080)
* Remove YouTube embedding in the chat

* Remove youtube-lite dependency

* Implelment Feedback
2021-06-07 10:57:13 -07:00
Ginger Wong
e89e65e1f5 Resolve issue https://github.com/owncast/owncast/issues/1044
- use built-in videojs font icon instead
- remove button clickhandler override to make button work on mobile
2021-05-29 14:20:37 -07:00
Gabe Kangas
0bf3fb4fa7 Bump vjs vhs and enable experimentalBufferBasedABR 2021-05-19 17:39:42 -07:00
gabek
23ba9bb8be Prettified Code! 2021-04-01 05:29:39 +00:00
Gabe Kangas
12f56f5571 Hide external action modal spinner 2021-03-31 22:28:55 -07:00
Gabe Kangas
368dcb8823 Do not show output quality selector if there is only one option. closes #832 2021-03-17 21:30:43 -07:00
Gabe Kangas
3fb80554ef
Gek/external actions (#827)
* WIP External actions modal frontend

* Add external action links

* Allow modal to show/hide and use a dynamic url

* Use external link object instead of just url for state

* add style and placement to external action buttons

* reformat and simplify tag list style as not to conflict with action buttons and make them look less actionable since they're not

* fix bug to open modal

* have Esc key close modal

* fix style on modal

* make modal bg darker

* close modal when you click outside of it

* fix zindex

* Add support for external action icons and colors

* Some external action modal sizing + loading spinner

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2021-03-15 15:32:52 -07:00
Gabe Kangas
777de9fbf4 Remove in-line rendering of images by url 2021-03-14 12:08:42 -07:00
Gabe Kangas
bf33d08384
Add support for disabling chat. Closes #472 (#799) 2021-03-14 11:46:27 -07:00
Ginger Wong
40264bec8c use passed in player to access controlbar instead for airplay 2021-03-13 19:47:03 -08:00
gabek
a79db1b589 Prettified Code! 2021-03-11 20:52:18 +00:00
Gabe Kangas
c713e216d3
Allow selection of different stream variants in the player (#815)
* WIP video quality selector

* The quality selector works even though it is not pretty

* Support getting and setting variant name. Closes #743

* Sort video qualities

* Fix odd looking selected states of menubutton items

* Fix comment
2021-03-11 12:51:43 -08:00
Gabe Kangas
bc2caadb74
0.0.6 -> Master (#731)
* Implement webhook events for external integrations (#574)

* Implement webhook events for external integrations

Reference #556

* move message type to models and remove duplicate

* add json header so content type can be determined

* Pass at migrating webhooks to datastore + management apis (#589)

* Pass at migrating webhooks to datastore + management apis

* Support nil lastUsed timestamps and return back the new webhook on create

* Cleanup from review feedback

* Simplify a bit

Co-authored-by: Aaron Ogle <aaron@geekgonecrazy.com>

Co-authored-by: Gabe Kangas <gabek@real-ity.com>

* Webhook query cleanup

* Access tokens + Send system message external API (#585)

* New add, get and delete access token APIs

* Create auth token middleware

* Update last_used timestamp when using an access token

* Add auth'ed endpoint for sending system messages

* Cleanup

* Update api spec for new apis

* Commit updated API documentation

* Add auth'ed endpoint for sending user chat messages

* Return access token string

* Commit updated API documentation

* Fix route

* Support nil lastUsed time

* Commit updated Javascript packages

* Remove duplicate function post rebase

* Fix msg id generation

* Update controllers/admin/chat.go

Co-authored-by: Aaron Ogle <geekgonecrazy@users.noreply.github.com>

* Webhook query cleanup

* Add SystemMessageSent to EventType

Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Aaron Ogle <geekgonecrazy@users.noreply.github.com>

* Set webhook as used on completion. Closes #610

* Display webhook errors as errors

* Commit updated API documentation

* Add user joined chat event

* Change integration API paths. Update API spec

* Update development version of admin that supports integration apis

* Commit updated API documentation

* Add automated tests for external integration APIs

* check error

* quiet this test for now

* Route up some additional 3rd party apis. #638

* Commit updated API documentation

* Save username on user joined event

* Add missing scope to valid scopes list

* Add generic chat action event API for 3rd parties. Closes #666

* Commit updated API documentation

* First pass at moving WIP config framework into project for #234

* Only support exported fields in custom types

* Using YP get/set key as a first pass at using the data layer. Fixes + integration.

* Ignore test db

* Start adding getters and setters for config values

* More get/set config work. Starting to populate api with data

* Wire up some config edit endpoints

* More endpoints

* Disable cors middleware

* Add more endpoints and add test to test them

* Remove the in-memory change APIs

* Add endpoint for changing tags

* Add more config endpoints

* Starting to point more things away from config file and to the datastore

* Populate YP with db data

* Create new util method for parsing page body markdown and return it in api

* Verify proposed path to ffmpeg

* For development purposes show the config key in logs

* Move stats values to datastore

* Moving over more values to the datastore

* Move S3 config to datastore

* First pass the config -> db migrator

* Add the start of the video config apis

* It builds pointing everything away from the config

* Tweak ffmpeg path error message

* Backup database every hour. Closes #549

* Config + defaults + migration work for db

* Cleanup logging

* Remove all the old config structs

* Add descriptive info about migration

* Tweak ffmpeg validation logic

* Fix db backup path. backup on db version migration

* Set video and s3 configurations

* Update api spec with new config endpoints

* Add migrator for stats file

* Commit updated API documentation

* Use a dynamic system port for internal HLS writes. Closes #577 (#626)

* Use a dynamic system port for internal HLS writes. Closes #577

* Cleanup

* YP key migration to datastore

* Create a backup directory if needed before migrations

* Remove config test that no longer makes sense. Cleanup.

* Change number types from float32 to float64

* Update automated test suite

* Allow restoring a database backup via command line flags. Closes #549

* Add new hls segment config api

* Commit updated API documentation

* Update apis to require a value container property

* add socialHandles api

* Commit updated API documentation

* Add new latancy level setting to replace segment settings

* Commit updated API documentation

* Fix spelling

* Commit updated API documentation

* hardcode a json api of available social platforms

* Add additional icons

* Return social handles in server config api

* Add socialhandles validation to test

* Move list of hard coded social platforms to an api

* Remove audio only code from transcoder since we do not use it

* Add latency levels api + snapshot of video settings as current broadcast

* Add config/serverurl endpoint

* Return 404 on YP api if disabled

* Surface stream title in YP response

* Add stream title to web ui

* Cleanup log message. Closes #520

* Rename ffmpeg package to transcoder

* Add ws package for testing

* Reduce chat backlog to past 5hrs, max 50. Closes #548

* Fix error formatting

* Add endpoint for resetting yp registration

* Add yp/reset to api spec. return status in response

* Return zero viewer count if stream is offline. Closes #422

* Post-rebase fixes

* Fix merge conflict in openapi file

* Commit updated API documentation

* Standardize controller names

* Support setting the stream key via the command line. Closes #665

* Return social handles with YP data. First half of https://github.com/owncast/owncast-yp/issues/28

* Give the YP package access to server status regardless if enabled or not

* Change delay in automated tests

* Add stream title integration API. For #638

* Commit updated API documentation

* Add storage to the migrator

* Missing returning NSFW value in server config

* Add flag to ignore websocket client. Closes #537

* Add error for parsing broadcaster metadata

* Add support for a cli specified http server port. Closes #674

* Add cpu usage levels and a temporary mapping between it and libx264 presets

* Test for valid url endpoint when saving s3 config

* Re-configure storage on every stream to allow changing storage providers

* After 5 minutes of a stream being stopped clear the stream title

* Hide viewer count once stream goes offline instead of when player stops

* Pull steamTitle from the status that gets updated instead of the config

* Commit updated API documentation

* Optionally show stream title in the header

* Reset stream title when server starts

* Show chat action when stream title is updated

* Allow system messages to come back in persistence

* Split out getting chat history for moderation + fix tests

* Remove server title and standardize on name only

* Commit updated API documentation

* Bump github.com/aws/aws-sdk-go from 1.37.1 to 1.37.2 (#680)

Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.37.1 to 1.37.2.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.37.1...v1.37.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add video variant and stream latency config file migrator

* Remove mostly unused disable upgrade check bool

* Commit updated API documentation

* Allow bundling the admin from the 0.0.6 branch

* Fix saving port numbers

* Use name instead of old title on window focus

* Work on latency levels. Fix test to use levels. Clean up transcoder to only reference levels

* Another place where title -> name

* Fix test

* Bump github.com/aws/aws-sdk-go from 1.37.2 to 1.37.3 (#690)

Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.37.2 to 1.37.3.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.37.2...v1.37.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependabot config

* Bump github.com/aws/aws-sdk-go from 1.37.3 to 1.37.5 (#693)

Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.37.3 to 1.37.5.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.37.3...v1.37.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump video.js from 7.10.2 to 7.11.4 in /build/javascript (#694)

* Bump video.js from 7.10.2 to 7.11.4 in /build/javascript

Bumps [video.js](https://github.com/videojs/video.js) from 7.10.2 to 7.11.4.
- [Release notes](https://github.com/videojs/video.js/releases)
- [Changelog](https://github.com/videojs/video.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/videojs/video.js/compare/v7.10.2...v7.11.4)

Signed-off-by: dependabot[bot] <support@github.com>

* Commit updated Javascript packages

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>

* Make the latency migrator dynamic so I can tweak values easier

* Split out fetching ffmpeg path from validating the path so it can be changed in the admin

* Some commenting and linter cleanup

* Validate the path for a logo change and throw an error if it does not exist

* Logo change requests have to be a real file now

* Cleanup, making linter happy

* Format javascript on push

* Only format js in master

* Tweak latency level values

* Remove unused config file examples

* Fix thumbnail generation after messing with the ffmpeg path getter

* Reduce how often we report high hardware utilization warnings

* Bundle the 0.0.6 branch version of the admin

* Return validated ffmpeg path in admin server config

* Change the logo to be stored in the data directory instead of webroot

* Bump postcss from 8.2.4 to 8.2.5 in /build/javascript (#702)

Bumps [postcss](https://github.com/postcss/postcss) from 8.2.4 to 8.2.5.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.2.4...8.2.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Default config file no longer used

* don't show stream title when offline

addresses https://github.com/owncast/owncast/issues/677

* Remove auto-clearing stream title. #677

* webroot -> data when using logo as thumbnail

* Do not list websocket/access token create/delete as integration APIs

* Commit updated API documentation

* Bundle updated admin

* Remove pointing to the 0.0.6 admin branch

* Linter cleanup

* Linter cleanup

* Add donations and follow links to show up under social handles

* Prettified Code!

* More linter cleanup

* Update admin bundle

* Remove use of platforms.js and return icons with social handles. Closes #732

* Update admin bundle

* Support custom config path for use in migration

* Remove unused platform-logos.gif

* Reduce log level of message

* Remove unused logo files in static dir

* Handle dev vs. release build info

* Restore logo.png for initial thumbnail

* Cleanup some files from the build process that are not needed

* Fix incorrect build-time injection var

* Fix missing file getting copied to the build

* Remove console directory message.

* Update admin bundle

* Fix comment

* Report storage setup error

* add some value set error checking

* Use validated dynamic ffmpeg path for animated gif preview

* Make chat message links be white so they don't hide in the bg. Closes #599

* Restore conditional that was accidentally removed

Co-authored-by: Aaron Ogle <geekgonecrazy@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Ginger Wong <omqmail@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: nebunez <uoj2y7wak869@opayq.net>
Co-authored-by: gabek <gabek@users.noreply.github.com>
2021-02-18 23:05:52 -08:00
gingervitis
9e44c261fa
be able to pick multiple emojis ; move up picker div to see emojis inputted into textfield; restore focus into textfield after picker closes; address #612 (#614) 2021-01-09 18:26:56 -08:00
Ginger Wong
3719dd04f5 add rel=me to social icon link; address #511 2021-01-09 16:40:38 -08:00
Ginger Wong
cd52e5b0a3 rename socialhandles to platformlogos in case of adblockers 2021-01-09 16:36:07 -08:00
Ginger Wong
ce3a47d5f4 add keyoxide logo; adjust icon css to fit non-svg imgs 2021-01-09 16:32:07 -08:00
Mirco T
0ab4e47f0b
#515 switched to SVG icons, #525 added Ko-Fi platform (#528)
* #515 switched to SVG icons, #525 added Ko-Fi platform

* fixes #515, fixes #525 - added color to the SVGs directly

* Removed `color` from config for socialHandles, not required anymore
2021-01-09 12:59:43 -08:00
Aaron Ogle
caa32fa248
make websocket and stream use constants (#584) 2021-01-04 22:30:18 -08:00
Matt Steele
67c3f8ee38
Manually bust m3u8 caches (#570)
Fixes #567
2021-01-02 11:30:29 -08:00
gingervitis
8a74af202d
Update chat message visibility for moderation (#524)
* update message viz in db

* create admin endpoint to update message visibility

* convert UpdateMessageVisibility api to take in an array of IDs to change visibility on instead

* Support requesting filtered or unfiltered chat messages

* Handle UPDATE chat events on front and backend for toggling messages

* Return entire message with UPDATE events

* Remove the UPDATE message type

* Revert "Remove the UPDATE message type"

This reverts commit 3a83df3d492f7ecf2bab65e845aa2b0365d3a7f6.

* update -> visibility update

* completely remove messages when they turn hidden on VISIBILITY-UPDATEs, and insert them if they turn visible

* Explicitly set visibility

* Fix multi-id sql updates

* increate scroll buffer a bit so chat scrolls when new large messages come in

* Add automated test around chat moderation

* Add new chat admin APIs to api spec

* Commit updated API documentation

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Owncast <owncast@owncast.online>
2020-12-29 13:35:33 -08:00
gingervitis
51f344f8e0
misc issue fixes (#496)
* rename social-icons to prevent adblockers from blocking scripts, fix for #491

* hide viewer count when stream is off, fixes #428

* show a notice in document title of num messages if window is blurred, #426

* display indicator when stream has gone onlnie or offline when window is blurred
2020-12-22 17:43:35 -08:00
Ginger Wong
121b80143a display username change form better on small screen 2020-12-12 11:38:08 -08:00
Ginger Wong
d4f5162505 prevent header from hiding when keyboard is active on mobile for username change 2020-12-12 11:08:23 -08:00
gingervitis
0062896b7d
chat fixes and optimizations (#431)
* - format messages on didMount instead of didUpdate. will also prevent bad setSTate loops when message is blank;
- convert message.js to functional comp
- prevent extra rerenders in messages and chat with shouldComponentUpdate checks

* revert chat test

* more concise returns;
2020-12-06 21:01:52 -08:00
Ginger Wong
26c066b454 overflow hidden on message so word forces break; decrease maxlength of username to 60 chars. fix #417 2020-12-04 00:00:50 -08:00
Ginger Wong
5fe36f37bd fix for #411 2020-12-03 22:43:31 -08:00
Ginger Wong
0bf8cf1dba make emoji search text more legible; break long user name change messages 2020-12-03 22:28:16 -08:00
Matt Steele
aeb221b32f
Do not highlight usernames inside links (#366)
sweet!

* Do not highlight usernames  inside words

Fixes #156

* Do not search on separate words

* Add accuracy options to markjs
2020-11-17 17:29:03 -08:00
gingervitis
f8d94c2dc2
jump to bottom of list when the DOM observes that a new message node has been added (#369) 2020-11-17 16:59:27 -08:00
Gabe Kangas
2839a5e236
Custom thumbnail poster component (#281)
* Custom thumbnail poster component

* add opacity transition to thumbnail img

* fix some videoonly styles

* move video styles to video.css

* make component out of image layers; put inline styles into css

* cleanup

* update videoonly ; don't render poster if video player, remove dom modification in player

* revert interval

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2020-10-22 14:14:44 -07:00
Ginger Wong
03a6eb3cee optmized lines 2020-10-17 19:21:43 -07:00
Gabe Kangas
7dcc89a841 Add system chat message support to messages query 2020-10-16 17:50:00 -07:00
Gabe Kangas
f4815e331c Update chat styling 2020-10-16 17:46:44 -07:00
Gabe Kangas
6ea9affce0
HLS video handling/storage/state refactor (#151)
* WIP with new transcoder progress monitor

* A whole different WIP in progress monitoring via local PUTs

* Use an actual hls playlist parser to rewrite master playlist

* Cleanup

* Private vs public path for thumbnail generation

* Allow each storage provider to make decisions of how to store different types of files

* Simplify inbound file writes

* Revert

* Split out set stream as connected/disconnected state methods

* Update videojs

* Add comment about the hls handler

* Rework of the offline stream state.  For #85

* Delete old unreferenced video segment files from disk

* Cleanup all segments and revert to a completely offline state after 5min

* Stop thumbnail generation on stream stop. Copy logo to thumbnail on cleanup.

* Update transcoder test

* Add comment

* Return http 200 on success to transcoder. Tweak how files are written to disk

* Force pixel color format in transcoder

* Add debugging info for S3 transfers. Add default ACL.

* Fix cleanup timer

* Reset session stats when we cleanup the session.

* Put log file back

* Update test

* File should not be a part of this commit

* Add centralized shared performance timer for use anywhere

* Post-rebase cleanup

* Support returning nil from storage provider save

* Updates to reflect package changes + other updates in master

* Fix storage providers being overwritten

* Do not return pointer in save. Support cache headers with S3 providers

* Split out videojs + vhs and point to specific working versions of them

* Bump vjs and vhs versions

* Fix test

* Remove unused

* Update upload warning message

* No longer valid comment

* Pin videojs and vhs versions
2020-10-14 14:07:38 -07:00
Jannik Volkland
146e6d342c Remove avatars from frontend 2020-10-14 13:33:55 +02:00
Gabe Kangas
d7c3991b59
Render and sanitize chat messages server-side. (#237)
* Render and sanitize chat messages server-side. Closes #235

* Render content.md server-side and return it in the client config

* Remove showdown from web project

* Update api spec

* Move example user content file
2020-10-13 16:45:52 -07:00
Jannik Volkland
d4b800c9bb Merge branch 'fix-issue-202' 2020-10-07 08:46:09 +02:00
Jannik Volkland
813884ef21 fix: Use Kebab-Case, and resolve Merge Conflict 2020-10-07 08:42:46 +02:00
gingervitis
1eb7c1985b
Merge pull request #228 from SoldierCorp/save-volume-settings
ADD: Save volume settings in localstorage
2020-10-06 22:54:57 -07:00
Edgardo Ramírez
38743a9608 UPDATE: Set volume on load 2020-10-06 19:01:59 -05:00
Edgardo Ramírez
f0df543def ADD: Handle muted state to update the volume settings 2020-10-06 15:51:30 -05:00
Edgardo Ramírez
ac1860d325 UPDATE: Use helpers functions for saving the volume settings 2020-10-06 15:46:07 -05:00
Edgardo Ramírez
66db710761 FIX: Set volume only if it exists in localstorage 2020-10-06 15:03:15 -05:00
Edgardo Ramírez
e2200f09d7 Merge remote-tracking branch 'upstream/master' into save-volume-settings 2020-10-06 14:55:56 -05:00
Edgardo Ramírez
84b81e440d ADD: Save volume settings in localstorage 2020-10-06 14:53:08 -05:00
Pranav
7ac22eb889 fix: prevents messages ending with spaces to exceed the msg limit 2020-10-05 11:12:33 +05:30
Gabe Kangas
27a4c8c895
Move all remote dependencies to be local (#220)
* Experiment with javascript bundling

* Experiment with snowpack. Making progress

* Success!  Uses local js modules and assets and no cdns

* Missing local css
2020-10-04 18:43:31 -07:00
Jannik
4c02b6eea1 Move socialIconsList to its own component 2020-10-04 20:48:44 +02:00
Ahmad Karlam
8c380f118a refactor: declare format timestamp as variable for consistency 2020-10-04 10:57:45 +07:00
Ahmad Karlam
2abde9186c refactoring 2020-10-04 09:08:05 +07:00
Ahmad Karlam
d27d4a798f Remove moment js and use standard library date from javascript 2020-10-04 09:01:46 +07:00
Ahmad Karlam
63a757ef23 Use moment js for diff and format date 2020-10-03 20:29:29 +07:00
Ahmad Karlam
334a69386d Add timestamp to title chat 2020-10-01 16:11:43 +07:00
gingervitis
fc27d73030
Merge pull request #171 from owncast/gek/remove-player-progress-bar
Remove player progress bar.  Closes #159
2020-09-27 22:03:40 -07:00
Gabe Kangas
ec9f8ba004 Stop using skypack CDN for emoji button and bump version. Address #141 2020-09-25 19:36:11 -07:00
Gabe Kangas
0cb31644f4 Quiet, log. 2020-09-23 18:18:15 -07:00
Ginger Wong
01f956d043 detect portrait mode on mobile so it doesnt go into two col layout when keyboard is up, (#178) 2020-09-22 17:09:55 -07:00
Ginger Wong
58570be302 disable chat when websocket disconnects, enable it when it connects 2020-09-22 01:38:43 -07:00
Gabe Kangas
5af0afa2a0 Disable chat input when websocket disconnects. Closes #174 2020-09-22 01:22:49 -07:00
gingervitis
661eedc03a
chat fixes v3 or 5 or 123 (#168)
* only consider short-heights when not smallscreen; hide status bar when small screen, but leave shadow;

* fix max char counting bugs with paste, yet be still be able to use modifier keys even when max chars reached

* rmeove 'chat' button; move into textarea

* use image for emoji picker for sizing consitency

* cleanup unused things

* - totally unecessary emoji picker style improvements
- totally necessary doctype added to emoji picker so it shows up more stable-y on mobile views

* more stable layout positioning for chat panel without hacky margins, so that the bottom of the message list will always be on top of the form input, and not behind it at any point.

* hide header on touch screens when screns are small and screen height is short (possibly when keyboard is up), so that there's more visibliity to see messages. this only works on chrome, not ios safari right now, due to the position: fixed of things.

* move char counting to keyup instead

* address message text horiz overflow (#157)

* dont jumpToBottom if user has scrolled about 200px from the bottom (#101)

* scroll to bottom on resize too

* cleanup

* revert test bool

* typo

* re-readjust short-wide case again

* - add focus to input field after emoji is selected, put cursor at end
- instead of smooth scrolling to bottom, just jump there.
2020-09-21 20:11:09 -07:00
Gabe Kangas
7e2963ab1c Remove player progress bar. Closes #159 2020-09-21 14:28:12 -07:00
Gabe Kangas
6a3f634ef5
Misc web updates (#147)
* Try and clarify max viewer count string

* Shrink title font size on small screens to fit username

* Hide stream info on small screens to buy some space

* Hide emoji button on small screens until we can fix it. For #140

* Make jumping to bottom be a part of the render pass to fix race condition. For #140

* Remove About in info view. We can add it back. Just playing with that since it was missing a space anyway

* address some own mr comments

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2020-09-13 22:02:04 -07:00
Gabe Kangas
0dcd92e9cd Fix chat not coming back after server comes back. Closes #136 2020-09-12 18:46:30 -07:00
Ginger Wong
0a3d1145f6 use defaultvalue for username uncontrolled component, fixes #138) 2020-09-02 22:04:19 -07:00
Gabe Kangas
c9451cf13a Update video.js and vhs http-streaming. Closes #133 2020-09-01 11:42:27 -07:00
Gabe Kangas
aaeea2bb1d Pin emoji picker to a specific min'ed version 2020-08-30 11:57:27 -07:00
Ginger Wong
43e88ee81d fix youtube embed sizing and weird zindexing; fix single col video sizing inconsistency across other browsers 2020-08-27 12:25:46 -07:00
Ginger Wong
b549b21257 add utils to help cleanup whitespaces from contenteditable output; removed forced chat enabling 2020-08-26 11:56:01 -07:00
Ginger Wong
cd5f71265a more tab cleanup 2020-08-26 00:57:15 -07:00
Ginger Wong
b399fbba22 address MR comments 2020-08-26 00:51:40 -07:00
Ginger Wong
6457015406 cleanup 2020-08-24 12:34:36 -07:00
Ginger Wong
2a02b75e42 fix responsive styles 2020-08-24 03:30:42 -07:00
Ginger Wong
0b1f9db4ed update references to owncast site; enable scrolltobottom on new messages 2020-08-23 22:21:42 -07:00
Ginger Wong
abf42f1a56 avatar\ change style update 2020-08-23 21:49:26 -07:00
Ginger Wong
940b6df86b use only unpkg/preact + htm consistently for all components 2020-08-23 21:41:02 -07:00