Commit graph

492 commits

Author SHA1 Message Date
Ginger Wong
d7b8058264 make edits for a messages-only view of the chat module 2020-08-19 00:16:35 -07:00
Ginger Wong
ebc852b430 initial set up for styling updates; actually add files 2020-08-17 09:00:36 -07:00
Ginger Wong
e5d8087979 rever commented out code 2020-08-17 01:14:05 -07:00
Ginger Wong
70f3d7e165 borrow react-ContentEditable component 2020-08-17 01:12:21 -07:00
Ginger Wong
979651a925 extract user names frm old message when they come in 2020-08-15 18:41:31 -07:00
Ginger Wong
703aa40271 move over other input field fxns to input component 2020-08-15 18:28:29 -07:00
Ginger Wong
63d7671fed progress wip. separated out chat input component and its respective methods. 2020-08-14 04:19:19 -07:00
Ginger Wong
3814c24cab set up websocket and emoji in chat component 2020-08-13 09:28:47 -07:00
Ginger Wong
7a1512ef6b breaking out styles into smaller files; break out chat helper functions into utils 2020-08-13 02:43:41 -07:00
Ginger Wong
ab5f8df96e Merge branch 'master' into 0809gw-messagemodule 2020-08-13 02:14:26 -07:00
Ginger Wong
e1e4365692 integrate message comp 2020-08-13 02:08:14 -07:00
Ginger Wong
64e7809c26 separate out message relate utils, create message component 2020-08-13 01:49:10 -07:00
Ginger Wong
dad802f19a Initial setup for standalone chat with Preact.
- set up standalone static page and message related components
- start separating out css into smaller more manageable files
- start separating out utils into smaller modular files
- renaming some files for consistency
2020-08-13 01:28:25 -07:00
Gabe Kangas
68ff9ff270
Merge of emoji + autolink + embed + etc (#108)
* Add an emoji picker to chat

* Update to the custom emoji picker and add first pass at using custom emoji in text box

* Add custom emoji endpoint and use it in the app

* Position the emoji picker

* Handle events from the text input

* pair down the number of party parrots

* Size emoji in chat and input

* Add new custom emoji

* Add OMQ stickers as custom emoji

* Show custom category for emoji picker by default

* update omq emojis

* Document basic supported markdown syntax. Closes #95

* Websocket refactor: Pull it out of the UI and support callbacks (#104)

* Websocket refactor: Pull it out of the UI and support listeners

* Changes required for Safari to be happy with modules

* Move to explicit ad-hoc callback registration

* Add an emoji picker to chat

* Update to the custom emoji picker and add first pass at using custom emoji in text box

* Handle events from the text input

* Rebuild autolinking + embed handling for #93

* Re-enable disabling chat

* Document basic supported markdown syntax. Closes #95

* Document basic supported markdown syntax. Closes #95

* Add an emoji picker to chat

* Merge emoji and embeds.

* Merge emoji + embed branches. Rework autolink +embeds. WIP for username
highlighting for #100

* More updates to chat text formatting/embedding/linking

* Fix username autocomplete to work with div instead of form elements

* Post-rebase fixes + tweaks

* Disable text input by setting contentEditable = false

* Remove test that hardcodes pointing to public test server

* Fix re-enable chat with the contentEditable input div

* Style and fix the fake placeholder text in the input div

* Missing file.  Were did it go?

* Set a height for instagram embeds

* Cleanup

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2020-08-12 21:56:41 -07:00
Nikola Forró
b6ad96da28 Highlight self-mentions in messages
Signed-off-by: Nikola Forró <nforro@redhat.com>
2020-08-07 01:14:30 +02:00
Nikola Forró
a0c609ce76 Add username tab completion on @ character
Signed-off-by: Nikola Forró <nforro@redhat.com>
2020-08-07 01:14:24 +02:00
Nikola Forró
183e14e12f Explicitly disable github @mentions
Also remove doubled strikethrough option.

Signed-off-by: Nikola Forró <nforro@redhat.com>
2020-08-06 22:16:22 +02:00
Gabe Kangas
df04af0f38
Websocket refactor: Pull it out of the UI and support callbacks (#104)
* Websocket refactor: Pull it out of the UI and support listeners

* Changes required for Safari to be happy with modules

* Move to explicit ad-hoc callback registration
2020-08-06 10:55:33 -07:00
Nikola Forró
97d8a8cce6 Fix handling newlines in messages
It's not possible to make a newline when already holding Shift,
for example to type an uppercase character. Fix that.

Signed-off-by: Nikola Forró <nforro@redhat.com>
2020-08-02 12:08:22 +02:00
Gabe Kangas
99c6009292 Some autolinking settings 2020-07-30 00:05:31 -07:00
Gabe Kangas
0f2b9c5e0e Support some additional markdown features 2020-07-28 23:33:13 -07:00
Gabe Kangas
d9509f5606
Chat updates (#92)
* Send PONG responses to PINGs

* Split out client IDs for viewer counts vs. websocket IDs

* WIP username change event

* Display username changes

* Revert commented out code

* Add support for building from the current branch

* Fix PONG

* Make username changes have a unique ID

* Add a version param to js to cachebust
2020-07-28 21:30:03 -07:00
Gabe Kangas
cb04826173 Fix the flickering status text. Closes #88 2020-07-27 23:04:35 -07:00
Gabe Kangas
5ce9a4928c Fix timeout buffer after going offline. Closes #84 2020-07-22 23:54:36 -07:00
Gabe Kangas
515661804a Force videojs to set cache-control header and add a random query param to each request. Closes #82 I hope. 2020-07-22 19:53:50 -07:00
Gabe Kangas
e0670585fb Experiment with starting with lowest quality and moving up from there 2020-07-20 21:59:17 -07:00
Gabe Kangas
a7b625c37f Show chat as disabled by default 2020-07-20 00:21:10 -07:00
Gabe Kangas
2ae227360a Hide viewer stats when in offline mode. Closes #66 2020-07-19 17:29:16 -07:00
Ginger Wong
eb699f9790 use constants for message strings 2020-07-19 16:14:38 -07:00
Ginger Wong
b66a80f11e add comments; use promise for fetching chat history for consistency 2020-07-19 16:11:29 -07:00
Ginger Wong
3f594abac8 update offline flow an stream status timer flow 2020-07-19 16:06:55 -07:00
Ginger Wong
a3613612eb Merge branch 'master' into gek/current-stream-duration 2020-07-19 15:17:03 -07:00
Gabe Kangas
c0e4f647a2 Show chat by default. Closes #72. Show placeholder text that no registration is needed. Closes #73 2020-07-19 15:15:39 -07:00
Ginger Wong
72ccc70a56 Merge branch 'master' into 0718-refactor-touchscreenlayout 2020-07-19 15:13:18 -07:00
Ginger Wong
fdce8585d5 css tweaks for mobile mode; reintroduce mobile styles and hacks 2020-07-19 15:12:57 -07:00
Gabe Kangas
2855027f22
Use endpoint for chat history instead of websocket (#67)
* Change placeholder when chat is disabled

* Use the /chat endpoint for bulk chat history population instead of websocket. For #47

* Force LiveUI/seek bar during live to show. Closes #11.

* Change pulling chat history into app.js

* Force new messages to have visability = true
2020-07-18 17:27:04 -07:00
Ginger Wong
e12de3215f cleanup 2020-07-18 17:17:10 -07:00
Ginger Wong
0af67c0cdc simplified layout updates based on only media queries 2020-07-18 17:15:52 -07:00
Gabe Kangas
a266633a9a Force LiveUI/seek bar during live to show. Closes #11. 2020-07-18 15:37:17 -07:00
Gabe Kangas
8ba0b6d7ce Show in the UI how long the user has been streaming for. Closes #59 2020-07-18 15:08:43 -07:00
Gabe Kangas
addfce2ec9 Change placeholder when chat is disabled 2020-07-16 20:15:08 -07:00
Gabe Kangas
3eba516f04 Add cachebuster to source to force new video. Attempt to fix #63 2020-07-16 19:54:12 -07:00
gingervitis
42b0b05d78
App Javascript refactor (#56)
* objectify app away from window. wip

* fix messaging obj binding; put logo behind video; fix /null issue with temp logo image

* first pass at js refactor

* remove unused files that had been consolidated during refactor

* set up vue before getting config

* add a few comments

* dont use big arrow function, just bind, for safari

* add airplay after instantiating video; check if input exists before disabling it;:

* only set poster on pause during playback, and onEnded; take out sample videoJS tech options

* disable chat after 5mins after going offline

* move 'online' class to video container as it conflicts with dynamically change classnames from non-vue sources

* disable chat based on lastdisconnecttime

* fix typo; do offline mode onEnded instead of status offline

* move offline ui display things to offline mode function; move poster setting on pause to main app to keep player obj cleaner; use opacity to hide video element on offline as sometimes control bars may still linger with vis:hidden

* fixes'

* don't autoplay. just show play button when stream is online so that it's easier to start playign without looking for the unmute button

* clean up console logs

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2020-07-16 12:17:05 -07:00
Gabe Kangas
78edee10cb Do not set poster on status polls for now 2020-07-12 11:02:49 -07:00
Gabe Kangas
0a3691e25e Flip local bool 2020-07-12 09:52:54 -07:00
Gabe Kangas
0aa3159372 Works if I mux restream to ts, not flv 2020-07-12 09:52:54 -07:00
Gabe Kangas
43d434747b Attempt with Joy5 2020-07-12 09:52:54 -07:00
Ginger Wong
8cd13269ec clean up consts a bit 2020-07-07 23:35:09 -07:00
Ginger Wong
827e402bcc randomize avatar for same names 2020-07-07 23:30:26 -07:00
Ginger Wong
426bfe000f fix typo 2020-07-07 23:03:22 -07:00
Gabe Kangas
180534cfaf Force poster to reload so it uses the recent thumbnail. #37 2020-07-06 00:04:07 -07:00
Ginger Wong
34b3806806 low hanging cleanup for extrauser content 2020-07-05 01:29:48 -07:00
Ginger Wong
9bd1df8530 make consts; clean up get status 2020-07-05 01:08:22 -07:00
Ginger Wong
5efa67d605 generate avatar img with util 2020-07-04 22:34:00 -07:00
Ginger Wong
96258fc0f3 update document title 2020-07-03 18:10:57 -07:00
Ginger Wong
53ba5eb186 fix social script typos 2020-07-03 18:07:57 -07:00
Gabe Kangas
1f51ef9668 Add version string to config endpoint 2020-06-30 17:49:17 -07:00
Ginger Wong
6803f7e7e8 header adjustments for small screens; adjust to new config structure; 2020-06-30 02:36:10 -07:00
Ginger Wong
7f28f25455 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-28 17:20:43 -07:00
Ginger Wong
b228d3a4e5 componentize user info 2020-06-28 17:15:53 -07:00
Gabe Kangas
46177b8163 Update documentation since people might try and run this soon 2020-06-28 16:31:54 -07:00
Gabe Kangas
73b6937496 Consolidate config files and surface frontend values via API. Closes #30 2020-06-28 15:10:00 -07:00
Ginger Wong
6c7af9ffae clean up footer things 2020-06-28 15:08:08 -07:00
Gabe Kangas
a9b8a70e8a Change the poster based on online status 2020-06-25 21:56:43 -07:00
Gabe Kangas
20eb8287ef Reset after player ended to force poster. Break out reset function. 2020-06-25 21:24:43 -07:00
Gabe Kangas
04dc0796d8
New video transcoder (#27)
* New video transcoder

* Set a smaller max muxing size + logging tweaks

* No need to return an err since it wiill panic anyway

* Use a default encoder preset if one is not supplied

* Rename to NewTranscoder.  Add comments.

* Rename Bitrate to VideoBitrate. Config file changes required with this rename.

* Allow overrides of segment length. Allow offline stream to live in a single segment

* Append offline state video to existin HLS stream instead of overwriting because players do not like that

* Make properties private as they do not need to be exported
2020-06-25 17:44:47 -07:00
Gabe Kangas
a297e33eff Make IDs for chat messages generated server-side, not client. For #26 2020-06-24 22:00:49 -07:00
Gabe Kangas
5dffaf215b Fix missing poster in the player. Closes #29 2020-06-24 14:34:22 -07:00
Bradley Hilton
fe96739f60
Fix a memory leak with the chat aspect. (#23)
Essentially, the for loop wasn't being returned out
of and that caused the read listener to never be
let up and released to the gc
2020-06-22 23:52:50 -07:00
Ginger Wong
1a44a4bd2f user content general layout 2020-06-21 01:31:08 -07:00
Ginger Wong
1ecf39c2f1 clean up social code 2020-06-21 00:07:57 -07:00
Ginger Wong
19dee67f2a set up components and icons for optional creator's social pages; add airplay icon 2020-06-20 23:41:13 -07:00
Gabe Kangas
04dd7d7f90 Explicitly set poster in js 2020-06-19 13:40:44 -07:00
Gabe Kangas
4c194afce9 Experiment with markdown being supported in chat messgaes 2020-06-19 13:40:36 -07:00
Gabe Kangas
7bdc9052d3 Fix undefined reference in js 2020-06-19 12:19:18 -07:00
Gabe Kangas
886485255a Fix errors on Firefox 2020-06-18 20:46:07 -07:00
Gabe Kangas
26760b3be1 Rework how videojs is initialized 2020-06-18 14:38:06 -07:00
Ginger Wong
b39824b8c3 updates towards more customization 2020-06-18 10:24:54 -07:00
Ginger Wong
d15080db11 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-18 00:12:39 -07:00
Ginger Wong
cf27b157e6 - fix chrome mobile form focus bug by specifying class. when form focuses media query widths change and may think portrait is in landcape and therefore hide the form.
- cleanup now unused methods
- jump to bottom from vue prop listener
2020-06-18 00:06:10 -07:00
Gabe Kangas
b0a73a99b9 Add ability to populate the content area in the page with a markdown file 2020-06-17 20:56:24 -07:00
Gabe Kangas
594e1c774a Add ability to populate the content area in the page with a markdown file 2020-06-17 20:20:28 -07:00
Gabe Kangas
f20d8b3179 Troubleshoot player not getting ready event on production server 2020-06-17 17:48:33 -07:00
Gabe Kangas
06ec265038 Use on Ready event instead of player setup hook 2020-06-17 17:16:34 -07:00
Gabe Kangas
431c1a54e7 Split out status polling into own file 2020-06-17 16:35:47 -07:00
Gabe Kangas
b2f74adc02 Move player js to player.js. Update offline video clip. 2020-06-17 16:25:27 -07:00
Ginger Wong
d27c87212e Merge branch 'master' of https://github.com/gabek/owncast 2020-06-17 10:39:19 -07:00
Ginger Wong
aad1a407b8 take out unused event listeners; layout fixes 2020-06-17 10:39:13 -07:00
Gabe Kangas
b835d7d56f Catch automated play() promise error 2020-06-16 21:48:37 -07:00
Gabe Kangas
b35059f17b Wait until player is setup before we start polling for status 2020-06-16 21:08:31 -07:00
Gabe Kangas
c6e4ea8349 Use client-side config files to config things 2020-06-16 18:58:03 -07:00
Gabe Kangas
ca4932e2b4 Make the entire web page wrapped in a vue object 2020-06-16 18:36:11 -07:00
Ginger Wong
195fe5d9e3 Merge branch '0615-layoutrefactor' 2020-06-16 02:16:21 -07:00
Ginger Wong
fd570a6f75 integrate desktop styles. clean up later 2020-06-16 02:09:29 -07:00
Ginger Wong
97c71771df markup and styles for simple mobile only 2020-06-15 23:32:26 -07:00
Gabe Kangas
d7229a8c6d Add AirPlay player button 2020-06-15 20:12:24 -07:00
Ginger Wong
903fdc33ae Merge branch 'master' of https://github.com/gabek/owncast 2020-06-15 17:40:18 -07:00
Ginger Wong
7aaf1e6102 good nuff hacks for nowz 2020-06-15 17:40:12 -07:00
Gabe Kangas
a90d98ff1b Auto-restart playback when the stream comes back online 2020-06-15 17:23:44 -07:00
Ginger Wong
44058c24aa ⏱🛠 2020-06-15 16:23:39 -07:00
Ginger Wong
59ab5e9e98 add a delay before recalculating vh 😭 2020-06-15 15:55:57 -07:00
Ginger Wong
0510d47486 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-15 15:46:01 -07:00
Ginger Wong
4497cc86c2 mobile hackery 2020-06-15 15:45:55 -07:00
Gabe Kangas
96870870e1 Remove unused method 2020-06-15 14:52:51 -07:00
Gabe Kangas
08d20a1096 Add color hash for user avatar backgrounds 2020-06-15 13:44:39 -07:00
Ginger Wong
a9f8ee9956 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-15 13:43:48 -07:00
Ginger Wong
567729f6f8 calc resize on android on message field focus 2020-06-15 13:43:41 -07:00
Gabe Kangas
7e959e3ba1 Add color hash for user avatar backgrounds 2020-06-15 13:42:34 -07:00
Ginger Wong
cef9bc7adb hacks and fixes 2020-06-15 00:15:23 -07:00
Ginger Wong
67acfeb6f5 Merge branch '0614gw-updates' 2020-06-14 21:15:03 -07:00
Ginger Wong
c16cd50dbb mobile style hacks 2020-06-14 21:14:42 -07:00
Gabe Kangas
8821f09a9d Fix changing username 2020-06-14 18:28:21 -07:00
Gabe Kangas
16e8ab4edc Re-enable timed status check 2020-06-14 17:15:19 -07:00
Gabe Kangas
a9662e7c1e Support keepalive PING messages on the socket 2020-06-14 16:53:25 -07:00
Gabe Kangas
a3c3276a48 Start of a web UI config 2020-06-14 15:18:43 -07:00
Gabe Kangas
c2d0d6e962 Remove ES6 arrow functions 2020-06-14 13:08:14 -07:00
Ginger Wong
50a59ef3c0 more clean up and fixins 2020-06-14 01:10:26 -07:00
Ginger Wong
3ef20c5516 Merge branch 'web-layout' of https://github.com/gabek/owncast into web-layout 2020-06-14 00:24:55 -07:00
Ginger Wong
0fa453044f fix chat; get rid of jquery 2020-06-14 00:24:26 -07:00
Ginger Wong
2aaedd99b5 set up localstorage-able items 2020-06-13 23:38:09 -07:00
Gabe Kangas
ce41b6ad40 Show max viewers 2020-06-13 22:45:22 -07:00
Gabe Kangas
4553ae628b Move to videojs and point to remote video on goth.land 2020-06-13 22:36:12 -07:00
Ginger Wong
5d787d25cd form functionailties 2020-06-13 22:15:58 -07:00
Ginger Wong
eb223ed905 progress. implement chat toggling 2020-06-13 20:15:31 -07:00
Ginger Wong
9b2e4f40c9 fix msg container 2020-06-11 01:24:05 -07:00
Ginger Wong
69ba10a898 use app file from web-layout 2020-06-09 14:15:00 -07:00
Ginger Wong
5c46191cbf Merge branch 'web-layout' into web-layout-gw 2020-06-09 14:13:35 -07:00
Ginger Wong
21c3520e00 style message items 2020-06-09 14:12:50 -07:00
Gabe Kangas
a65564eedf Guard against the infinite that can take place when the ws server goes unavailable 2020-06-09 10:56:15 -07:00
Ginger Wong
60080cd93c initial chat form layout 2020-06-04 03:15:27 -07:00
Ginger Wong
9b63d1ffb3 initial layout 2020-06-04 01:31:47 -07:00
Gabe Kangas
a29852f404 Support local development of index.html 2020-06-02 18:37:05 -07:00
Gabe Kangas
ae94eb1c5f Make messages unique and dedupe on reconnection 2020-06-02 17:59:58 -07:00
Gabe Kangas
f83fccfa89 Show viewer count and reconnect to websocket 2020-06-02 17:35:49 -07:00
Gabe Kangas
380dad2b87 Support links and embeds in the chat 2020-06-02 15:37:36 -07:00
Gabe Kangas
f6153c983f Save author name on send 2020-06-02 14:27:11 -07:00
Gabe Kangas
90e7e9082b Fix status checking loop. 2020-06-02 14:22:22 -07:00
Gabe Kangas
7e85a38613 Use Vuejs for web UI 2020-06-02 14:07:38 -07:00
Gabe Kangas
94fabf56a8 Store chat username on send 2020-06-02 10:38:13 -07:00
Gabe Kangas
020ace7ddd Some basic positioning of HTML 2020-06-01 23:50:32 -07:00
Gabe Kangas
216c15547d Use relative path to websocket 2020-06-01 17:51:33 -07:00
Gabe Kangas
cc48f86b85 WIP 2020-05-23 17:57:49 -07:00