2173 Commits

Author SHA1 Message Date
Owncast
7949670061 Bundle embedded web app 2025-01-19 22:07:46 +00:00
renovate[bot]
9a7a072050 chore(deps): update dependency eslint-plugin-react to v7.37.4 (#4144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-19 14:02:25 -08:00
renovate[bot]
eb608414f6 chore(deps): update dependency eslint-plugin-prettier to v5.2.2 (#4143)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-19 14:00:57 -08:00
Owncast
0d38420a7a Bundle embedded web app 2025-01-19 21:50:27 +00:00
renovate[bot]
d81c148f68 chore(deps): update dependency stylelint to v16.13.2 (#4145)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-19 13:45:23 -08:00
Owncast
89b4e39542 Bundle embedded web app 2025-01-19 21:45:08 +00:00
github-actions[bot]
4ad771ac3d Updated translations (#4151)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-19 13:40:21 -08:00
Gabe Kangas
0e8ff0bea3 chore(i18n): update translation commit message 2025-01-19 13:31:20 -08:00
Gabe Kangas
ce976a5f0b chore(ci): tweak i18n workflows 2025-01-19 13:20:32 -08:00
Owncast
5e64b6ea41 Bundle embedded web app 2025-01-19 20:20:54 +00:00
github-actions[bot]
49f7c12b7e Updated translations (#4148)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-19 12:15:38 -08:00
Vibhanshu Jain
9dcee79432 Update translation.json (#4150) 2025-01-19 12:10:58 -08:00
Gabe Kangas
e78d62ce63 chore(go): move stream keys to use generated type. For #3778 2025-01-18 16:38:59 -08:00
Gabe Kangas
b3947ef7ea chore(go): move a couple more handlers to use generated types. For #3778 2025-01-18 16:24:35 -08:00
Gabe Kangas
6abbf8f50c chore(go): create webhooks repository. Closes #4085 (#4146) 2025-01-18 15:40:10 -08:00
Owncast
da9d5b8411 Bundle embedded web app 2025-01-18 18:18:07 +00:00
github-actions[bot]
05dd162de5 Updated translations (#4141)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-18 10:12:47 -08:00
Owncast
fc862b3fa0 Bundle embedded web app 2025-01-18 17:18:19 +00:00
renovate[bot]
6f8e9f9496 chore(deps): update dependency emoji-mart to v5.6.0 (#4139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 09:13:09 -08:00
renovate[bot]
d6d126a874 chore(deps): update dependency chromatic to v11.24.0 (#4138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 09:11:50 -08:00
renovate[bot]
555b305405 chore(deps): update dependency knip to v5.42.1 (#4140)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 09:11:29 -08:00
Owncast
58b13d3355 Bundle embedded web app 2025-01-18 08:58:40 +00:00
renovate[bot]
ff45f75731 fix(deps): update codemirror (#4136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 00:53:42 -08:00
renovate[bot]
d9c97fb982 fix(deps): update dependency react-error-boundary to v5 (#4137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 00:53:16 -08:00
renovate[bot]
3ab5702741 chore(deps): update dependency less to v4.2.1 (#4135)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 00:52:38 -08:00
Owncast
cc43d14199 Bundle embedded web app 2025-01-18 00:01:26 +00:00
dependabot[bot]
9c243f0ddf chore(deps): bump katex from 0.16.19 to 0.16.21 in /web (#4132)
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.19 to 0.16.21.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.19...v0.16.21)

---
updated-dependencies:
- dependency-name: katex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 15:56:19 -08:00
Owncast
4b39458bf1 Bundle embedded web app 2025-01-17 23:46:08 +00:00
Gabe Kangas
47857e283e fix(web): improve sizing and spacing of offline embed. Closes #4133 2025-01-17 15:40:06 -08:00
Owncast
6017d575c8 Bundle embedded web app 2025-01-17 19:58:35 +00:00
renovate[bot]
536eeb804a fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.23.7 (#4122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 11:53:22 -08:00
Tianhao Wang
5c5e28a09c chore: remove binary blob (#4130)
I guess the .DS_Store is included by accident.. Let's remove it before it's
checked into a release tag.

Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
2025-01-17 10:22:08 -08:00
Owncast
4690b13d6b Bundle embedded web app 2025-01-17 06:11:32 +00:00
renovate[bot]
78eec1e021 fix(deps): update dependency @uiw/react-codemirror to v4.23.7 (#4123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 22:06:11 -08:00
Owncast
244dc2d7c1 Bundle embedded web app 2025-01-17 05:16:06 +00:00
renovate[bot]
03bac4ab48 fix(deps): update dependency react-markdown to v9.0.3 (#4125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 21:11:00 -08:00
renovate[bot]
2d4ae6ca20 chore(deps): update dependency @types/react to v18.3.18 (#4124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 21:10:26 -08:00
Owncast
2a4f53eb54 Bundle embedded web app 2025-01-17 03:51:09 +00:00
renovate[bot]
d494856ca2 chore(deps): update dependency @types/prop-types to v15.7.14 (#4121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 19:44:34 -08:00
renovate[bot]
e8a5ff95d4 fix(deps): update dependency react-virtuoso to v4.12.3 (#4126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 19:42:42 -08:00
renovate[bot]
a282daa12f fix(deps): update dependency ua-parser-js to v1.0.40 (#4127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 19:41:49 -08:00
renovate[bot]
2ff4baeb18 chore(deps): update dependency @types/node to v22.10.6 (#4128)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 19:40:47 -08:00
renovate[bot]
96ae5c7dce fix(deps): update module github.com/aws/aws-sdk-go to v1.55.6 (#4116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 14:33:41 +00:00
Owncast
d328fe1fd8 Bundle embedded web app 2025-01-16 07:40:52 +00:00
Gabe Kangas
8ab8659889 fix(i18n): next-export-i18n should be using the 2.x.x branch 2025-01-15 23:32:16 -08:00
Owncast
5733c86d8f Bundle embedded web app 2025-01-16 06:09:16 +00:00
Owncast
a1d94a7f99 Commit updated API documentation 2025-01-16 06:05:39 +00:00
Gabe Kangas
c1366518ad chore: bump version number 2025-01-15 22:02:48 -08:00
Gabe Kangas
bd8dc8326c fix(admin): do not log newfeed 404s 2025-01-15 22:00:32 -08:00
Gabe Kangas
d03cac106c fix(admin): do not handle version upgrade logic if current version is not set 2025-01-15 21:59:45 -08:00
Owncast
1c69164a72 Bundle embedded web app 2025-01-16 00:20:30 +00:00
Gabe Kangas
2e8e61309a Remove use of default props (#4118)
* refactor: replace defaultProps with function parameters in Modal, Statusbar, ChatContainer, and CrossfadeImage components

* New commit for Default properties of React components after syncing fork and rebasing

* fix: fix linter warning

---------

Co-authored-by: swarup <swarupnarkhede999@gmail.com>
2025-01-15 16:12:54 -08:00
Owncast
67ef2b45d9 Bundle embedded web app 2025-01-15 22:54:08 +00:00
Gabe Kangas
91a635a5ca chore(i18n): enable languages 2025-01-15 14:48:54 -08:00
github-actions[bot]
088023cf15 Updated translations (#4117)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-15 14:41:18 -08:00
Gabe Kangas
0f48bc4904 chore(i18n): run workflow every hour + download translations for PR 2025-01-15 14:18:37 -08:00
Owncast
e4aa69dc46 Bundle embedded web app 2025-01-15 22:04:41 +00:00
Gabe Kangas
dc8ed52b58 fix(i18n): disable languages until the files exist 2025-01-15 13:59:35 -08:00
Gabe Kangas
648856dcd1 chore: update i18n workflow/config 2025-01-15 13:41:44 -08:00
renovate[bot]
a4ed2c14be chore(deps): update peter-evans/create-or-update-comment digest to fdb73c4 2025-01-15 05:33:32 +00:00
Owncast
8e2e05e48e Bundle embedded web app 2025-01-15 05:32:40 +00:00
Gabe Kangas
d77b80a94a fix(storybook): fix another story not rendering with i18n 2025-01-14 21:27:21 -08:00
Owncast
bd59d8ab40 Bundle embedded web app 2025-01-15 05:25:05 +00:00
Gabe Kangas
70282761d3 fix(storybook): fix storybook rendering with i18n library 2025-01-14 21:19:23 -08:00
Owncast
e02f6dbc20 Bundle embedded web app 2025-01-15 04:59:24 +00:00
Gabe Kangas
cb387d88be Initial localization work (#3980)
* First pass at configuring localization

* Add CI job for translations

* Update CI job

* Update default value

* Update parser config

* Update defaults again

* try to fix the multiple parsing of a file

* Update crowdlin config

* Update configs

* New Crowdin translations by GitHub Action (#3448)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Point to updated translated files

* Tooltip i18n

* Run translation job when web components are updated

* Commit updated translations

* Translations update (#3453)

* Update source file strings.json
Updated translations

* New translations strings.json (French)
Updated translations

* New translations strings.json (Spanish)
Updated translations

* New translations strings.json (German)
Updated translations

* New translations strings.json (English, United States)
Updated translations

* Commit updated translations

* New Crowdin translations by GitHub Action (#3452)

Co-authored-by: Owncast <owncast@owncast.online>

* chore(deps): update to next config to address build errors

* New Crowdin translations by GitHub Action (#3455)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Translations update (#3456)

* New translations strings.json (Arabic)
Updated translations

* New translations strings.json (German)
Updated translations

* New translations strings.json (Greek)
Updated translations

* New translations strings.json (Irish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Korean)
Updated translations

* New translations strings.json (Dutch)
Updated translations

* New translations strings.json (Norwegian)
Updated translations

* New translations strings.json (Punjabi)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Swedish)
Updated translations

* New translations strings.json (Chinese Traditional)
Updated translations

* New translations strings.json (Vietnamese)
Updated translations

* New translations strings.json (Bengali)
Updated translations

* New translations strings.json (Thai)
Updated translations

* New translations strings.json (Croatian)
Updated translations

* New translations strings.json (Hindi)
Updated translations

* New translations strings.json (Malay)
Updated translations

* New Crowdin translations by GitHub Action (#3457)

* New translations strings.json (Arabic)
Updated translations

* New translations strings.json (German)
Updated translations

* New translations strings.json (Greek)
Updated translations

* New translations strings.json (Irish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Korean)
Updated translations

* New translations strings.json (Dutch)
Updated translations

* New translations strings.json (Norwegian)
Updated translations

* New translations strings.json (Punjabi)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Swedish)
Updated translations

* New translations strings.json (Chinese Traditional)
Updated translations

* New translations strings.json (Vietnamese)
Updated translations

* New translations strings.json (Bengali)
Updated translations

* New translations strings.json (Thai)
Updated translations

* New translations strings.json (Croatian)
Updated translations

* New translations strings.json (Hindi)
Updated translations

* New translations strings.json (Malay)
Updated translations

* New Crowdin translations by GitHub Action

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Commit updated API documentation

* Update translations job

* New Crowdin translations by GitHub Action (#3698)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Update Crowdin configuration file

* Translations update (#3700)

* New translations strings.json (French)
Updated translations

* New translations strings.json (Italian)
Updated translations

* Translations update (#3699)

* New translations strings.json (French)
Updated translations

* New translations strings.json (Spanish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Polish)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Portuguese, Brazilian)
Updated translations

* Commit updated API documentation

---------

Co-authored-by: Owncast <owncast@owncast.online>

* New Crowdin translations by GitHub Action (#3701)

* New translations strings.json (French)
Updated translations

* New translations strings.json (Spanish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Polish)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Portuguese, Brazilian)
Updated translations

* New Crowdin translations by GitHub Action

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Draft: Mark strings for translation. (#3458)

* Mark strings for translation.

* Mark up strings for translation

* fix(web): fix linter warnings

---------

Co-authored-by: Le fractal <17422-fractal@users.noreply.framagit.org>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>

* do not pull from cowdin via workflow

* Commit updated translations

* feat: add translations support to admin pages and components (#3977)

* feat: add translations support to admin pages and components

Added translations support admin main page and its components, help
page, handware-info page. Added translations support for LogTable,
NewsFeed and StreamHealthOverview components.

* update package.json

* fix rendering issue

* Commit updated API documentation

---------

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

* Offline banner i18n formatting (#3997)

* Fix "Last live ago" string formatting with i18n interpolation

* Change some base translation jsons to use i18n interpolation

* Linting fix

* chore(js): ignore i18n pkgs in knip

* fix(test): fix browser ui test

* fix(js): remove unused var

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: taintedcypher <119351153+taintedcypher@users.noreply.github.com>
Co-authored-by: Le fractal <17422-fractal@users.noreply.framagit.org>
Co-authored-by: Sufyaan Khateeb <81009832+SufyaanKhateeb@users.noreply.github.com>
Co-authored-by: mahmed2000 <mahmad2000@protonmail.com>
2025-01-14 20:54:21 -08:00
Gabe Kangas
b45552ade0 fix(video): remove persistent HTTP connection. Hopefully fixes #4106 2025-01-14 08:37:27 -08:00
Gabe Kangas
2b42ff5ce4 Revert "fix(js): do not fire dangerouslySetInnerHTML if there is nothing to render. Closes #4075"
This reverts commit d91c42bafd9136805fd64018f0db517156bcb263.

Closes #4112
2025-01-14 08:33:03 -08:00
Owncast
a9e4ad55e9 Bundle embedded web app 2025-01-13 12:36:22 +00:00
renovate[bot]
5ccdcc7a9b chore(deps): lock file maintenance (#4109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 12:30:54 +00:00
Owncast
271d9c3b87 Commit updated API documentation 2025-01-13 04:41:40 +00:00
Gabe Kangas
0d46f4a7d0 chore: bump version number to v0.2.1 2025-01-12 20:39:37 -08:00
Martin Wimpress
8ce270b02f feat: enable Intel Quicksync with support for FFmpeg 4.x to 7.1 (#4028)
* feat: enable Intel Quicksync with support for FFmpeg 4.x to 7.1

* fix(go): fix linter warning

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2025-01-12 20:38:26 -08:00
Martin Wimpress
bb4a7479b5 fix: universal Intel and AMD VA-API accelerated pipeline for FFmpeg 4 - 7 (#4022) 2025-01-12 20:10:00 -08:00
renovate[bot]
0105473350 chore(deps): update alpine docker tag to v3.21.2 2025-01-09 00:20:50 +00:00
Owncast
191cf5ee6a Bundle embedded web app 2025-01-09 00:19:59 +00:00
Gabe Kangas
a669686b16 fix(js): move require to top of file 2025-01-08 16:14:25 -08:00
Gabe Kangas
b52bbc7f53 fix(admin): fix version update prompt. Fixes #4097 2025-01-08 15:40:33 -08:00
Owncast
591da94daf Bundle embedded web app 2025-01-08 23:15:32 +00:00
Gabe Kangas
048acbce88 fix(js): do not fire dangerouslySetInnerHTML if there is nothing to render. Closes #4075 (#4076) 2025-01-08 15:10:35 -08:00
renovate[bot]
0140601335 chore(deps): update peter-evans/create-or-update-comment digest to 853a4fc 2025-01-08 08:22:01 +00:00
renovate[bot]
768c9ab9b3 chore(deps): update alpine docker tag to v3.21.1 2025-01-07 09:01:53 +00:00
renovate[bot]
7cfecef39c fix(deps): update module golang.org/x/net to v0.34.0 2025-01-06 21:49:23 +00:00
Gabe Kangas
2d4b5eb105 Do not mark as stale if it is assigned to a milestone 2025-01-06 13:48:06 -08:00
renovate[bot]
790e148050 fix(deps): update module golang.org/x/crypto to v0.32.0 2025-01-06 17:22:48 +00:00
Owncast
dc4562db66 Bundle embedded web app 2025-01-06 13:11:59 +00:00
renovate[bot]
327feaafac chore(deps): lock file maintenance (#4084)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 13:06:11 +00:00
Owncast
d752f51034 Bundle embedded web app 2025-01-06 01:33:33 +00:00
gingervitis
87c7571d5c embed screen style adjustments (#4063)
* restyle and relayout embed screen to account for smaller screen displays.
- address https://github.com/owncast/owncast/issues/3683 to address overflow issues
- address https://github.com/owncast/owncast/issues/4051 to move the name of the stream

* Javascript formatting autofixes

* clean up; restore package lock

* accommodate cases when there's no follow option; put follow form on one line, but wrap if need

* clean up

* separate out follow form into separate standalone component to be used in multiple places

* improve follow error styling; rm defaultProps for Modal to get rid of warning

* improve styling of follow form and components for legibility

* prettyify scss

* prettyify scss again

* one more time

* prettify ant file

* simplify layout, center everything

* just use gap

* tweak and lint

* lint, again

---------

Co-authored-by: Owncast <owncast@owncast.online>
2025-01-05 17:28:35 -08:00
Owncast
4b1a89bb31 Bundle embedded web app 2025-01-06 00:40:18 +00:00
Andy Piper
9f820b00c1 Update mastodon.svg for current colors (#4082) 2025-01-05 16:35:17 -08:00
Owncast
18875f3f2a Bundle embedded web app 2025-01-05 20:27:13 +00:00
Germaine Lee
c23655c210 Update some platform logos (#4081)
* Update discord logo

Discord updated their branding in 2021.
See their brand guidelines: https://discord.com/branding

* Update ko-fi logo to rounded cup

See their website for more details: https://more.ko-fi.com/brand-assets

* Update paypal logo

See Paypal brand logos at: https://newsroom.paypal-corp.com/media-resources
2025-01-05 12:22:20 -08:00
Owncast
3510d19fce Bundle embedded web app 2025-01-05 04:29:29 +00:00
gingervitis
6528633a13 fix skip link visibility and it moving logo upon focus (#4078)
* fix skip link visibility and it moving logo upon focus

* update color
2025-01-04 20:24:27 -08:00
Owncast
678214c19d Bundle embedded web app 2025-01-04 23:13:28 +00:00
renovate[bot]
6355ab3b5f fix(deps): update fontsource monorepo to v5.1.1 (#4074)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-04 15:08:15 -08:00
Owncast
d9da9a3481 Bundle embedded web app 2025-01-04 22:29:34 +00:00
renovate[bot]
4b40ed6a93 fix(deps): update dependency next to v14.2.21 [security] (#4071)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-04 14:24:40 -08:00
Owncast
510cae1b79 Bundle embedded web app 2025-01-04 21:04:36 +00:00
gingervitis
a6dc9645e6 Add local CSS lint checks (#4068)
* update package scripts to include prettifying scss files and stylelint-ing; fix related issues found from stylelinter

* revert old prettier autofix

* lint

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2025-01-04 12:59:45 -08:00
renovate[bot]
c03637fd9b chore(deps): update dependency stylelint-config-standard-scss to v14 (#4070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-04 12:57:02 -08:00
renovate[bot]
bdd25498a8 fix(deps): update module golang.org/x/time to v0.9.0 2025-01-04 16:33:10 +00:00
Owncast
3e7cd32dfa Bundle embedded web app 2025-01-04 01:51:58 +00:00
renovate[bot]
17ee4bba03 chore(deps): update dependency prettier to v3.4.2 (#4069)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 17:46:21 -08:00
renovate[bot]
9e8088fa80 fix(deps): update module github.com/sherclockholmes/webpush-go to v1.4.0 2025-01-03 00:12:45 +00:00
renovate[bot]
009a271c02 fix(deps): update module mvdan.cc/xurls/v2 to v2.6.0 2025-01-02 19:24:02 +00:00
renovate[bot]
092b76b449 chore(deps): update peter-evans/create-or-update-comment digest to 4ed2ee4 2025-01-01 06:17:18 +00:00
renovate[bot]
3bc3799760 fix(deps): update module github.com/shirou/gopsutil/v4 to v4.24.12 2025-01-01 03:50:56 +00:00
Owncast
6b97962da0 Bundle embedded web app 2024-12-23 13:33:14 +00:00
renovate[bot]
262bfd6c41 chore(deps): lock file maintenance (#4064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 13:28:14 +00:00
Owncast
6057fb09d7 Bundle embedded web app 2024-12-20 17:22:34 +00:00
mahmed2000
8a1c05abf4 Make the error alert in OfflineEmbed closable (#4062) 2024-12-20 09:17:34 -08:00
renovate[bot]
0b28a3b483 fix(deps): update module github.com/andybalholm/cascadia to v1.3.3 2024-12-19 18:48:50 +00:00
renovate[bot]
9c745b0ef1 fix(deps): update module golang.org/x/net to v0.33.0 2024-12-18 21:40:17 +00:00
Gabe Kangas
a38c2d8ddf fix: add ETag header for bot/scraper page. For #4020 2024-12-18 07:28:06 -08:00
Gabe Kangas
f59278764b fix: bump bot/webscraper server generated page cache to 1 minute. For #4020 2024-12-18 07:19:31 -08:00
renovate[bot]
852dd61810 chore(deps): update peter-evans/create-or-update-comment digest to 861c151 2024-12-18 07:22:30 +00:00
Gabe Kangas
4fbdb3f0cd fix(ap): increase outbound worker pool size to use follower count (#4049) 2024-12-17 08:47:15 -08:00
Owncast
ae1be1379c Bundle embedded web app 2024-12-16 13:07:51 +00:00
renovate[bot]
8ecd2a2bd1 chore(deps): lock file maintenance (#4057)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 13:02:28 +00:00
renovate[bot]
37d8a0e879 fix(deps): update module github.com/go-chi/chi/v5 to v5.2.0 2024-12-16 00:42:46 +00:00
Owncast
8ddf3b27fa Bundle embedded web app 2024-12-13 06:49:03 +00:00
Gabe Kangas
e1a48909c8 fix(embed): fix follow button not showing up in offline embed. Closes #4053 2024-12-12 22:43:30 -08:00
Owncast
c8d8c8e07c Bundle embedded web app 2024-12-13 06:39:26 +00:00
Gabe Kangas
8ffbf23d4e fix(js): fix social switch not actually turning on feature. Closes #4055 2024-12-12 22:33:37 -08:00
Owncast
06bd9e849f Bundle embedded web app 2024-12-13 05:45:06 +00:00
Gabe Kangas
446d5db085 fix(js): fix followers table being empty when sorted. Closes #3799 (#4054) 2024-12-12 21:40:24 -08:00
Gabe Kangas
3bbbca9465 Remove nightly screenshot job. Re: #3999 2024-12-12 12:14:49 -08:00
renovate[bot]
c86b7cff1b fix(deps): update module golang.org/x/crypto to v0.31.0 2024-12-11 18:49:50 +00:00
dependabot[bot]
9807f60b1b Bump nanoid from 3.3.7 to 3.3.8 in /test/load (#4052)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-11 09:19:02 -08:00
renovate[bot]
a5f25299b5 chore(deps): update peter-evans/create-or-update-comment digest to d7d9eb5 2024-12-11 08:01:06 +00:00
Owncast
1a4819564d Bundle embedded web app 2024-12-10 01:32:35 +00:00
dependabot[bot]
d1124182af Bump nanoid from 3.3.7 to 3.3.8 in /web (#4050)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 17:27:23 -08:00
renovate[bot]
281a93b49d fix(deps): update module github.com/grafov/m3u8 to v0.12.1 (#4048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 23:13:16 +00:00
Gabe Kangas
c24ee6202a Update local tunneling script to no longer use serveo.net 2024-12-09 10:37:47 -08:00
renovate[bot]
4f1c1ec683 chore(deps): update alpine docker tag to v3.21.0 2024-12-06 01:19:20 +00:00
renovate[bot]
122556c440 fix(deps): update module golang.org/x/net to v0.32.0 2024-12-05 00:47:38 +00:00
renovate[bot]
4bdcbb6d0b fix(deps): update module golang.org/x/crypto to v0.30.0 2024-12-04 21:32:54 +00:00
renovate[bot]
26ceac7069 chore(deps): update peter-evans/create-or-update-comment digest to 1abf947 2024-12-04 08:31:53 +00:00
Gabe Kangas
c5ac3a30af fix: pass in config repo instead of using the global getter (#4039) 2024-11-30 23:38:27 -08:00
renovate[bot]
d8aed658a8 fix(deps): update module github.com/shirou/gopsutil/v4 to v4.24.11 2024-12-01 04:24:50 +00:00
Owncast
1777fb9a37 Bundle embedded web app 2024-11-30 22:42:51 +00:00
mahmed2000
d9a0d13479 Communicate and handle apub outgoing updates being delayed (#4009)
* Allow icon only status messages such as STATUS_PROCESSING to be displayed

* Add a processing status state for the EditSocialLinks component

* Log warning for the outbound apub channel being full

* Buffer the outbound apub channel so some API requests are less likely to get blocked during handling

* Make the apub outbound request trace-log always occur after being queued.

* Linting fix
2024-11-30 14:38:00 -08:00
Owncast
df028f90cf Bundle embedded web app 2024-11-30 20:37:06 +00:00
Varun Gujarathi
f59ac63dfe fix(social): set federation enabled state after confirmation (#4038)
* feat(integerations): add route to get user details

* Commit updated API documentation

* test(integrations): implement unit test for get user details

* fix(social): set federation enabled state after confirmation

set federation enabled state only after confirmation in modal

* Javascript formatting autofixes

* chore(social): use variable instead of explicitly setting path value

* Javascript formatting autofixes

---------

Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-11-30 12:32:13 -08:00
renovate[bot]
ff1f201798 chore(deps): update peter-evans/create-or-update-comment digest to 267c060 2024-11-27 06:05:32 +00:00
Varun Gujarathi
d135d2907a feat(integerations): add route to get user details (#4030)
* feat(integerations): add route to get user details

* Commit updated API documentation

* test(integrations): implement unit test for get user details

---------

Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-11-26 11:30:33 -08:00
Owncast
2c2bf2b5bb Bundle embedded web app 2024-11-25 14:10:56 +00:00
renovate[bot]
32bf67b026 chore(deps): lock file maintenance (#4035)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-25 14:05:57 +00:00
renovate[bot]
d578f01348 fix(deps): update module github.com/stretchr/testify to v1.10.0 2024-11-23 12:22:10 +00:00
renovate[bot]
8985947d7f chore(deps): update peter-evans/create-or-update-comment digest to 7157823 2024-11-20 07:57:56 +00:00
Owncast
e1acfee49d Bundle embedded web app 2024-11-18 09:18:37 +00:00
renovate[bot]
49c07594fb chore(deps): lock file maintenance (#4018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-18 09:13:30 +00:00
dependabot[bot]
dc48e0bca7 Bump jsonpath-plus and artillery in /test/load (#4011)
Bumps [jsonpath-plus](https://github.com/s3u/JSONPath) to 10.1.0 and updates ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together.


Updates `jsonpath-plus` from 7.2.0 to 10.1.0
- [Release notes](https://github.com/s3u/JSONPath/releases)
- [Changelog](https://github.com/JSONPath-Plus/JSONPath/blob/main/CHANGES.md)
- [Commits](https://github.com/s3u/JSONPath/compare/v7.2.0...v10.1.0)

Updates `artillery` from 2.0.10 to 2.0.21
- [Release notes](https://github.com/artilleryio/artillery/releases)
- [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.10...artillery-2.0.21)

---
updated-dependencies:
- dependency-name: jsonpath-plus
  dependency-type: indirect
- dependency-name: artillery
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 20:04:45 -08:00
Gabe Kangas
0b5d7c8a4d Config repository (#3988)
* WIP

* fix(test): fix ap test failing

* fix: fix unkeyed fields being used

* chore(tests): clean up browser tests by splitting out federation UI tests
2024-11-15 19:20:58 -08:00
Gabe Kangas
56d52c283c chore(tests): clean up browser tests by splitting out federation UI tests 2024-11-15 18:46:18 -08:00
Owncast
8fa2546bef Bundle embedded web app 2024-11-15 21:31:12 +00:00
Gabe Kangas
70bbcb97b8 fix(js): tweak how the vjs hook is fired and url is created 2024-11-15 13:25:06 -08:00
Owncast
d8abe74e5a Bundle embedded web app 2024-11-15 21:00:08 +00:00
Mahlangu
681111ceb2 refactor: update vjs beforeRequest to onRequest (#3945)
* refactor: update vjs onRequst to onRequest

* fix(js): update vjs to use the new onrequest hook for manipulating request uri

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-11-15 12:55:26 -08:00
Owncast
284833d6a0 Commit updated API documentation 2024-11-15 20:24:14 +00:00
Gabe Kangas
a566b9c9f1 fix(api): define correct inbound api payloads for external requests. Fixes #3966 2024-11-15 12:22:18 -08:00
Owncast
621aebdd3c Commit updated API documentation 2024-11-14 21:44:33 +00:00
Gabe Kangas
2be188a82f Remove API from incorrectly listed as external. For #4015 2024-11-14 13:42:45 -08:00
Owncast
e17b443726 Bundle embedded web app 2024-11-14 18:41:37 +00:00
renovate[bot]
dfc934ce84 chore(deps): update dependency knip to v5.36.6 (#4013)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 10:36:35 -08:00
renovate[bot]
512e4dc575 fix(deps): update dependency date-fns to v4 (#4014)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 10:36:10 -08:00
Owncast
421cdd0693 Bundle embedded web app 2024-11-13 16:16:31 +00:00
Gabe Kangas
df06d9ad97 fix(deps): revert emoji-mart to v5.2.2 again 2024-11-13 08:10:45 -08:00
Gabe Kangas
7f42981ba7 chore(deps): add slashes to renovate config regex 2024-11-13 08:09:30 -08:00
Owncast
f3029ca782 Bundle embedded web app 2024-11-12 23:00:59 +00:00
renovate[bot]
58657804cb chore(deps): update dependency emoji-mart to v5.6.0 2024-11-12 20:44:59 +00:00
renovate[bot]
d21b10f118 fix(deps): update module github.com/twin/go-away to v1.6.14 2024-11-12 20:07:28 +00:00
renovate[bot]
ae48128441 chore(config): migrate config renovate.json (#4012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 12:05:52 -08:00
Gabe Kangas
b278027b88 chore(deps): ignore golang and go-fed when updating go deps 2024-11-12 08:43:45 -08:00
renovate[bot]
f45a5b16fa fix(deps): update github.com/go-fed/activity digest to b14b50e 2024-11-12 16:28:25 +00:00
Owncast
f3d660853c Bundle embedded web app 2024-11-12 16:26:43 +00:00
Gabe Kangas
aecf7aa9bb fix(deps): do not allow statically assigned versions to auto-update. See #4010 2024-11-12 08:21:04 -08:00
Owncast
37c18ec8ab Bundle embedded web app 2024-11-12 02:11:50 +00:00
renovate[bot]
4c7ccdbbf9 chore(deps): update dependency emoji-mart to v5.6.0 2024-11-11 21:43:11 +00:00
Owncast
a20a9931f7 Bundle embedded web app 2024-11-11 21:42:28 +00:00
Gabe Kangas
b177333ec6 fix(web): hardcode emoji-mart picker version to a working version. Fixes #4010 2024-11-11 13:36:15 -08:00
Owncast
5042c7ced2 Bundle embedded web app 2024-11-11 13:02:23 +00:00
renovate[bot]
71c88c94a3 chore(deps): lock file maintenance (#4008)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-11 12:57:29 +00:00
renovate[bot]
41a6449836 chore(deps): update dependency chromatic to v11.18.0 2024-11-11 01:35:04 +00:00
Owncast
b656f88417 Bundle embedded web app 2024-11-10 22:07:19 +00:00
renovate[bot]
ee5dc3b7c8 chore(deps): update dependency chromatic to v11.17.0 2024-11-10 18:05:15 +00:00
Owncast
1476405609 Bundle embedded web app 2024-11-10 01:42:18 +00:00
renovate[bot]
7830b3765a chore(deps): update dependency emoji-mart to ~5.6.0 2024-11-09 22:24:06 +00:00
Owncast
f9f61876df Bundle embedded web app 2024-11-09 22:23:11 +00:00
Rafael Passos
17d433749c fix: registerUser request body is invalid (#4002)
I found two issues:
1. This `options` object is being passed down to fetchData,
 where it is deconstructed by the "data" attribute, not body.
2. the `data` object is being transformed into JSON downstream,
 thus the stringification done here makes for a string json object only

Signed-off-by: auyer <rafael@rcpassos.me>
2024-11-09 14:18:05 -08:00
Owncast
9989653d00 Bundle embedded web app 2024-11-09 22:13:50 +00:00
heongle
6399df7f9e fix: fix runtime caching error and adjust rules (#3970)
* fix: fix runtime caching error and adjust rules

* fix: add cache config for ts and m3u8

* revert ts and m3u8 cache config to previous behaviour

* remove unused runtime caching config

* remove all runtime caching config

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-11-09 14:08:45 -08:00
Owncast
99acc19cee Bundle embedded web app 2024-11-09 22:03:32 +00:00
mahmed2000
eca880ac1f Replace picmo with emoji-mart (#4001)
* Add emoji-mart deps

* Change EmojiPicker to use emoji-mart

* Change ChatTextField to work with the emoji-mart data object

* Remove picmo, commit package-lock

* Fix mutant svgs having a size of 0

* Get the custom emojis to show up earlier in the picker

* Set emoji-mart to exact semver. Later versions break custom category sorting.
2024-11-09 13:58:38 -08:00
renovate[bot]
f215809f1d fix(deps): update module golang.org/x/time to v0.8.0 2024-11-09 20:12:15 +00:00
renovate[bot]
77d2bacbad fix(deps): update module golang.org/x/mod to v0.22.0 (#4006)
* fix(deps): update module golang.org/x/mod to v0.22.0

* chore: go mod tidy

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-11-09 12:11:29 -08:00
renovate[bot]
1b1144c6df fix(deps): update module golang.org/x/net to v0.31.0 (#4007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-09 15:08:38 +00:00
renovate[bot]
971e3ea092 fix(deps): update module golang.org/x/crypto to v0.29.0 (#4005)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-09 15:07:31 +00:00
Owncast
24e2552e4c Bundle embedded web app 2024-11-09 12:20:28 +00:00
renovate[bot]
56f6aa8add fix(deps): update dependency @codemirror/lang-markdown to v6.3.1 2024-11-09 10:29:09 +00:00
Owncast
de8579bcd6 Bundle embedded web app 2024-11-09 10:28:04 +00:00
renovate[bot]
56ede52346 chore(deps): update dependency knip to v5.36.3 2024-11-09 07:56:46 +00:00
Owncast
8269ae3209 Bundle embedded web app 2024-11-09 07:56:04 +00:00
renovate[bot]
674c9168ec fix(deps): update nextjs monorepo to v14.2.17 2024-11-09 04:45:09 +00:00
Owncast
801e91d2f1 Bundle embedded web app 2024-11-09 04:43:25 +00:00
renovate[bot]
1e1dc0ff49 chore(deps): update dependency cypress to v13.15.2 (#4004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 20:38:38 -08:00
Owncast
fb75f1bd95 Bundle embedded web app 2024-11-09 03:24:44 +00:00
renovate[bot]
af56597341 chore(deps): update dependency mdx-mermaid to v2.0.2 2024-11-09 01:04:32 +00:00
Owncast
214c202552 Bundle embedded web app 2024-11-09 01:01:59 +00:00
renovate[bot]
ad64956027 chore(deps): update dependency @types/node to v22 (#4003)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 16:57:04 -08:00
renovate[bot]
13d2ad9079 fix(deps): update module github.com/shirou/gopsutil/v4 to v4.24.10 2024-11-08 21:35:24 +00:00
Gabe Kangas
83ef466ee1 fix(ci): check out repo if event_name is schedule 2024-11-08 13:16:13 -08:00
Owncast
a8026c13bc Bundle embedded web app 2024-11-08 19:48:39 +00:00
mahmed2000
d31d2948c3 Change websocket mock from empty object to empty class (#3998) 2024-11-08 11:43:41 -08:00
Owncast
4d68c7b561 Bundle embedded web app 2024-11-08 18:10:46 +00:00
Gabe Kangas
25cd9b6d53 fix(js): log out unused error value 2024-11-08 10:05:53 -08:00
Owncast
ecba3cc003 Bundle embedded web app 2024-11-08 09:09:49 +00:00
renovate[bot]
89dc1776d7 chore(deps): update storybook monorepo to v8.4.2 2024-11-08 07:11:30 +00:00
Owncast
97fcdfd914 Bundle embedded web app 2024-11-08 03:11:13 +00:00
renovate[bot]
0af864ea8f chore(deps): update dependency chromatic to v11.16.5 2024-11-08 01:54:42 +00:00
Owncast
121cd37c8c Bundle embedded web app 2024-11-08 01:53:07 +00:00
renovate[bot]
06c09f12de chore(deps): update typescript-eslint monorepo to v8.13.0 2024-11-07 21:26:36 +00:00
Owncast
d1117494b0 Bundle embedded web app 2024-11-07 21:24:20 +00:00
renovate[bot]
68a903b83a chore(deps): update dependency eslint-plugin-storybook to v0.11.0 2024-11-07 19:41:56 +00:00
Owncast
c8c91506cd Bundle embedded web app 2024-11-07 19:39:56 +00:00
renovate[bot]
a1a497f5c1 chore(deps): update dependency chromatic to v11.16.4 2024-11-07 16:42:28 +00:00
Owncast
219f76d891 Bundle embedded web app 2024-11-06 14:27:12 +00:00
renovate[bot]
ad9b01f442 chore(deps): update dependency @types/node to v20.17.6 2024-11-06 11:06:34 +00:00
renovate[bot]
962d03710d chore(deps): update peter-evans/create-or-update-comment digest to 213b1f9 2024-11-06 06:21:32 +00:00
dependabot[bot]
2ebc64b3b1 Bump cookie and cookie-parser in /test/load (#3996)
Bumps [cookie](https://github.com/jshttp/cookie) and [cookie-parser](https://github.com/expressjs/cookie-parser). These dependencies needed to be updated together.

Updates `cookie` from 0.4.1 to 0.7.2
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.4.1...v0.7.2)

Updates `cookie-parser` from 1.4.6 to 1.4.7
- [Release notes](https://github.com/expressjs/cookie-parser/releases)
- [Changelog](https://github.com/expressjs/cookie-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/cookie-parser/compare/1.4.6...1.4.7)

---
updated-dependencies:
- dependency-name: cookie
  dependency-type: indirect
- dependency-name: cookie-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-05 16:07:43 -08:00
Owncast
5ca7249388 Bundle embedded web app 2024-11-05 13:19:38 +00:00
renovate[bot]
50a4224224 fix(deps): update dependency react-hotkeys-hook to v4.6.1 2024-11-05 11:18:07 +00:00
Owncast
ac009f574e Bundle embedded web app 2024-11-05 04:06:00 +00:00
renovate[bot]
b9d8fbffe2 chore(deps): update dependency sass to v1.80.6 2024-11-05 00:20:32 +00:00
Owncast
40b97e6bc1 Bundle embedded web app 2024-11-04 18:14:16 +00:00
renovate[bot]
134093b9d2 chore(deps): update dependency eslint-plugin-storybook to v0.10.2 2024-11-04 16:05:27 +00:00
Owncast
d123a2c020 Bundle embedded web app 2024-11-04 12:45:50 +00:00
renovate[bot]
fbd501f57e chore(deps): lock file maintenance 2024-11-04 12:40:56 +00:00
Owncast
ed7bd001ee Bundle embedded web app 2024-11-04 03:13:29 +00:00
renovate[bot]
83b3a0da5e chore(deps): update dependency @storybook/addon-styling-webpack to v1.0.1 2024-11-04 01:21:15 +00:00
Owncast
e04e079243 Bundle embedded web app 2024-11-04 01:19:34 +00:00
renovate[bot]
d4fd75b9c7 chore(deps): update dependency knip to v5.36.0 2024-11-03 21:52:49 +00:00
Owncast
6fbb3b9565 Bundle embedded web app 2024-11-03 21:51:32 +00:00
renovate[bot]
42005608fa chore(deps): update dependency @types/node to v20.17.5 2024-11-03 18:37:38 +00:00
Owncast
538ebaf7bb Bundle embedded web app 2024-11-03 16:22:21 +00:00
renovate[bot]
2be0aebd6d chore(deps): update storybook monorepo to v8.4.0 2024-11-03 13:37:37 +00:00
Owncast
fdaf25d92e Bundle embedded web app 2024-11-03 09:54:53 +00:00
renovate[bot]
5fc4e56bf9 chore(deps): update dependency @types/node to v20.17.4 2024-11-03 07:52:34 +00:00
Owncast
392e437b9a Bundle embedded web app 2024-11-02 19:28:48 +00:00
renovate[bot]
3066d6b82e chore(deps): update dependency mermaid to v11.4.0 2024-11-02 16:46:03 +00:00
Owncast
2f941be5c0 Bundle embedded web app 2024-11-02 16:44:41 +00:00
renovate[bot]
ff058ca777 chore(deps): update dependency knip to v5.34.4 2024-11-02 13:57:16 +00:00
Owncast
3f321d3a1c Bundle embedded web app 2024-11-02 09:46:18 +00:00
renovate[bot]
490c38bd31 fix(deps): update workbox monorepo to v7.3.0 2024-11-02 07:41:14 +00:00
Owncast
019cdb169c Bundle embedded web app 2024-11-02 07:40:21 +00:00
renovate[bot]
9d0c7c1edb chore(deps): update dependency chromatic to v11.16.3 2024-11-02 05:09:06 +00:00
Owncast
88a96f0eae Bundle embedded web app 2024-11-02 05:07:54 +00:00
renovate[bot]
b7d8a5ea99 chore(deps): update dependency sass to v1.80.5 2024-11-02 01:35:53 +00:00
Owncast
5d8c6348bc Bundle embedded web app 2024-11-02 01:34:40 +00:00
renovate[bot]
a934b89a53 chore(deps): update dependency knip to v5.34.3 2024-11-01 22:05:10 +00:00
Owncast
9ccf19eb64 Bundle embedded web app 2024-11-01 22:03:57 +00:00
renovate[bot]
de3eac2b2f chore(deps): update dependency @types/node to v20.17.3 2024-11-01 19:23:53 +00:00
Owncast
76abc0bbfb Bundle embedded web app 2024-11-01 19:22:57 +00:00
renovate[bot]
3bb2ba18e5 chore(deps): update typescript-eslint monorepo to v8.12.2 2024-11-01 16:18:21 +00:00
Owncast
e71144a68d Bundle embedded web app 2024-11-01 03:07:33 +00:00
renovate[bot]
7a367a933b chore(deps): update typescript-eslint monorepo to v8.12.1 2024-11-01 01:12:00 +00:00
Owncast
c1cb96fa57 Bundle embedded web app 2024-10-31 22:35:12 +00:00
renovate[bot]
28c6947a43 chore(deps): update dependency @types/node to v20.17.2 2024-10-31 20:48:45 +00:00
Owncast
00b9dec218 Bundle embedded web app 2024-10-31 05:20:24 +00:00
nekojanai
8e89dfb345 fix: username wrapping (#3975) 2024-10-30 22:13:28 -07:00
renovate[bot]
ed21911288 chore(deps): update peter-evans/create-or-update-comment digest to 6f2ce0e 2024-10-30 08:31:18 +00:00
Owncast
d9aeb32852 Bundle embedded web app 2024-10-29 06:34:21 +00:00
renovate[bot]
3262d3b875 chore(deps): update dependency eslint-plugin-jsx-a11y to v6.10.2 2024-10-29 05:04:08 +00:00
Owncast
af88ee386b Bundle embedded web app 2024-10-29 05:03:00 +00:00
dependabot[bot]
50f39284ce Bump elliptic from 6.5.7 to 6.6.0 in /web (#3990)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.7 to 6.6.0.
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.7...v6.6.0)

---
updated-dependencies:
- dependency-name: elliptic
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-28 21:58:03 -07:00
Owncast
9c36e196b7 Bundle embedded web app 2024-10-29 02:01:49 +00:00
renovate[bot]
274c85ac2b chore(deps): lock file maintenance 2024-10-29 01:56:42 +00:00
Owncast
5eaa06cf15 Bundle embedded web app 2024-10-28 21:46:57 +00:00
renovate[bot]
86c20e0a39 chore(deps): update dependency chromatic to v11.16.1 2024-10-28 18:52:58 +00:00
Owncast
90a8ebbfa4 Bundle embedded web app 2024-10-28 18:50:58 +00:00
renovate[bot]
e995836ee4 chore(deps): update dependency @babel/core to v7.26.0 2024-10-28 15:58:07 +00:00
Owncast
fe040070de Bundle embedded web app 2024-10-28 15:56:15 +00:00
renovate[bot]
9d3290c2c1 chore(deps): update dependency @types/node to v20.17.1 2024-10-28 13:30:53 +00:00
Owncast
97880ce93e Bundle embedded web app 2024-10-28 13:29:58 +00:00
renovate[bot]
c14ec935da fix(deps): update dependency @uiw/react-codemirror to v4.23.6 2024-10-28 09:11:59 +00:00
Owncast
8a3e91fdc8 Bundle embedded web app 2024-10-28 09:10:52 +00:00
renovate[bot]
bdcb481a51 fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.23.6 2024-10-28 06:11:47 +00:00
Gabe Kangas
eed34b528e Update API gen, cleanup, add missing property to status response (#3987)
* fix(api): remove invalid tag properties from components

* chore(api): update api validation/linter to use redocly

* fix(api): add missing streamTitle property to status object. Closes #3983

* chore: add redocly config file

* Commit updated API documentation

---------

Co-authored-by: Owncast <owncast@owncast.online>
2024-10-27 15:36:31 -07:00
Owncast
5a3600e01f Bundle embedded web app 2024-10-27 21:59:35 +00:00
renovate[bot]
022e505ee0 chore(deps): update dependency cypress to v13.15.1 2024-10-27 18:32:10 +00:00
Owncast
b9733109fa Bundle embedded web app 2024-10-27 15:21:45 +00:00
renovate[bot]
3d146de750 chore(deps): update dependency knip to v5.34.0 2024-10-27 12:49:07 +00:00
Owncast
b475fbaa5d Bundle embedded web app 2024-10-27 12:47:39 +00:00
renovate[bot]
fd14133e91 chore(deps): update dependency chromatic to v11.15.0 2024-10-27 09:45:07 +00:00
Owncast
f0c07e6a7b Bundle embedded web app 2024-10-27 09:43:16 +00:00
renovate[bot]
ee568866ec chore(deps): update dependency @types/node to v20.17.0 2024-10-27 07:09:36 +00:00
Owncast
943d8efe0d Bundle embedded web app 2024-10-27 07:08:32 +00:00
renovate[bot]
c9dcc88320 fix(deps): update nextjs monorepo to v14.2.16 2024-10-27 03:49:28 +00:00
Owncast
8819cd8980 Bundle embedded web app 2024-10-27 03:47:01 +00:00
renovate[bot]
016951a3be chore(deps): update dependency sass to v1.80.4 2024-10-27 01:48:56 +00:00
Gabe Kangas
c44d56af63 fix(test): update tests to reflect the new transcoder flag 2024-10-26 15:09:47 -07:00
Owncast
5501e20e82 Bundle embedded web app 2024-10-26 22:02:48 +00:00
renovate[bot]
83c601b5c9 chore(deps): update dependency html-webpack-plugin to v5.6.3 2024-10-26 19:37:01 +00:00
Gabe Kangas
0fccaa61fe fix(video): fix nil reference exception in playback metrics. Closes #3984 2024-10-26 12:22:19 -07:00
Gabe Kangas
05545cb6da Add persistent http connection optimization. Closes #3985 2024-10-26 11:58:02 -07:00
Owncast
0e0f8d7284 Bundle embedded web app 2024-10-26 17:09:58 +00:00
renovate[bot]
734636039f chore(deps): update dependency @types/react to v18.3.12 2024-10-26 13:19:52 +00:00
Owncast
14b73706ce Bundle embedded web app 2024-10-26 13:19:09 +00:00
renovate[bot]
f2600a02fb chore(deps): update dependency @types/node to v20.16.15 2024-10-26 09:30:18 +00:00
Owncast
f7a7eed782 Bundle embedded web app 2024-10-26 09:28:17 +00:00
renovate[bot]
d2bfdab339 chore(deps): update dependency @types/jest to v29.5.14 2024-10-26 06:21:32 +00:00
Owncast
756d407ce2 Bundle embedded web app 2024-10-26 06:20:20 +00:00
renovate[bot]
ec3437f9e1 chore(deps): update dependency @types/classnames to v2.3.4 2024-10-26 03:51:01 +00:00
Owncast
8362589364 Bundle embedded web app 2024-10-26 00:20:03 +00:00
renovate[bot]
bc2f8fed9c chore(deps): update dependency eslint-plugin-react to v7.37.2 2024-10-25 23:08:42 +00:00
Owncast
959ffb58ac Bundle embedded web app 2024-10-25 18:22:32 +00:00
renovate[bot]
4ddc19f91f chore(deps): update babel monorepo to v7.25.9 2024-10-25 17:10:31 +00:00
Owncast
6ea0cb10c5 Bundle embedded web app 2024-10-25 14:35:03 +00:00
renovate[bot]
da23ee8e3e fix(deps): update dependency video.js to v8.19.1 2024-10-25 10:15:08 +00:00
Owncast
85084e4b60 Bundle embedded web app 2024-10-25 06:31:45 +00:00
renovate[bot]
4315d19daa chore(deps): update dependency @types/node to v20.16.14 2024-10-25 03:47:54 +00:00
Owncast
91efec9200 Bundle embedded web app 2024-10-25 01:55:30 +00:00
renovate[bot]
6baa2e28d7 chore(deps): update dependency chromatic to v11.14.0 2024-10-24 21:39:56 +00:00
Owncast
476be88c86 Bundle embedded web app 2024-10-24 21:37:45 +00:00
renovate[bot]
abe0c49b38 chore(deps): update typescript-eslint monorepo to v8.11.0 2024-10-24 19:31:26 +00:00
Owncast
8ca104634b Bundle embedded web app 2024-10-24 15:08:32 +00:00
renovate[bot]
06706702f8 chore(deps): update dependency eslint-plugin-storybook to v0.10.1 2024-10-24 12:25:23 +00:00
Owncast
b3c42769cb Bundle embedded web app 2024-10-24 10:20:13 +00:00
renovate[bot]
7178b3b557 chore(deps): update dependency eslint-plugin-jsx-a11y to v6.10.1 2024-10-24 08:25:23 +00:00
renovate[bot]
01dc997fb4 chore(deps): update peter-evans/create-or-update-comment digest to d5aa8cd 2024-10-23 06:20:24 +00:00
Owncast
a00e726c22 Bundle embedded web app 2024-10-22 23:34:30 +00:00
embr
2015a566cb Fix websocket reconnection (#3959)
The `onerror` event is only triggered if the buffer is full while the
socket is closed, while the `onclose` event is called for any kind of
disconnection: https://websockets.spec.whatwg.org/#closeWebSocket

Fixes: https://github.com/owncast/owncast/issues/3958

Co-authored-by: Alyssa Ross <hi@alyssa.is>
2024-10-22 16:29:46 -07:00
Owncast
45392aa5ad Bundle embedded web app 2024-10-22 07:26:31 +00:00
renovate[bot]
b07413a314 chore(deps): update dependency @types/node to v20.16.13 2024-10-22 05:17:10 +00:00
Owncast
90f6d4333c Bundle embedded web app 2024-10-22 05:15:05 +00:00
renovate[bot]
beeeaede5e chore(deps): update dependency sass to v1.80.3 2024-10-22 02:03:10 +00:00
Owncast
1c09c7c544 Bundle embedded web app 2024-10-21 19:31:41 +00:00
renovate[bot]
352df6a604 chore(deps): update dependency @mdx-js/react to v3.1.0 2024-10-21 17:02:47 +00:00
Owncast
db635a8119 Bundle embedded web app 2024-10-21 13:19:17 +00:00
renovate[bot]
1f06deb52f chore(deps): lock file maintenance 2024-10-21 13:14:19 +00:00
Owncast
29099d5d07 Bundle embedded web app 2024-10-21 04:40:48 +00:00
renovate[bot]
488b5d7d87 chore(deps): update typescript-eslint monorepo to v8.10.0 2024-10-21 00:49:11 +00:00
Owncast
1e9a34b0eb Bundle embedded web app 2024-10-21 00:47:55 +00:00
renovate[bot]
e9b778eba6 chore(deps): update dependency sass to v1.80.2 2024-10-20 22:52:56 +00:00
Owncast
51536bae82 Bundle embedded web app 2024-10-20 22:46:41 +00:00
renovate[bot]
54d8ad5acb chore(deps): update dependency mermaid to v11 (#3965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 15:41:43 -07:00
Owncast
2e0e79162a Bundle embedded web app 2024-10-20 22:38:02 +00:00
renovate[bot]
0e0167d4bd fix(deps): update dependency react-virtuoso to v4.12.0 (#3968)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 15:32:52 -07:00
renovate[bot]
d0a1e78b69 fix(deps): update dependency react-error-boundary to v4.1.1 (#3973)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 15:32:28 -07:00
Owncast
fa6da3b475 Bundle embedded web app 2024-10-20 22:10:37 +00:00
renovate[bot]
87c0b88fda fix(deps): update dependency chart.js to v4.4.5 (#3974)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 15:05:34 -07:00
Owncast
23a91674bc Bundle embedded web app 2024-10-20 21:46:00 +00:00
renovate[bot]
9ddf99ad1a chore(deps): update dependency html-webpack-plugin to v5.6.2 2024-10-20 19:36:45 +00:00
Owncast
3dbc075f9b Bundle embedded web app 2024-10-20 19:34:57 +00:00
Gabe Kangas
4ac3068fcb fix(css): run prittier on css file 2024-10-20 12:29:36 -07:00
Owncast
c23b04c3ab Bundle embedded web app 2024-10-20 19:29:32 +00:00
Gabe Kangas
edc920f7db fix(storybook): update storybook generation templates 2024-10-20 12:23:45 -07:00
Gabe Kangas
78a7a45ff0 fix(sass): resolve sass warning by wrapping in root 2024-10-20 12:20:22 -07:00
Owncast
2e01006126 Bundle embedded web app 2024-10-20 18:47:27 +00:00
renovate[bot]
4cada70b2c chore(deps): update dependency chromatic to v11.12.6 2024-10-20 16:19:08 +00:00
Owncast
464c3154c2 Bundle embedded web app 2024-10-20 16:17:19 +00:00
renovate[bot]
dfb47b5e58 chore(deps): update typescript-eslint monorepo to v8.9.0 2024-10-20 16:12:17 +00:00
Owncast
1454ba5f2d Bundle embedded web app 2024-10-20 13:05:18 +00:00
renovate[bot]
28b6b38613 chore(deps): update dependency sass to v1.80.1 2024-10-20 10:15:04 +00:00
Owncast
8c917d29d4 Bundle embedded web app 2024-10-20 10:07:50 +00:00
renovate[bot]
940a0e2fde fix(deps): update dependency @uiw/react-codemirror to v4.23.5 2024-10-20 07:07:18 +00:00
Owncast
a4ba8827cc Bundle embedded web app 2024-10-20 07:06:07 +00:00
renovate[bot]
59fafc6fc6 fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.23.5 2024-10-20 04:20:54 +00:00
Owncast
c7b0f59e51 Bundle embedded web app 2024-10-20 04:18:44 +00:00
renovate[bot]
6c64e67af9 chore(deps): update dependency @types/node to v20.16.12 2024-10-20 01:13:19 +00:00
Owncast
889c10945b Bundle embedded web app 2024-10-20 01:05:05 +00:00
Gabe Kangas
78146f1ee3 fix(storybook): fix typography page from not rendering 2024-10-19 17:54:29 -07:00
Gabe Kangas
a747aea71c Continued WIP. Most of Storybook 8 runs. 2024-10-19 17:54:27 -07:00
Gabe Kangas
1e362d39ac chore: remove documentation that is better suited to exist elsewhere 2024-10-19 17:53:45 -07:00
mahmed2000
3d9bd9d353 Storybook 8 fixes (#3937)
* Add globs for auto-generated CSF screenshot stories to main.js

* Remove unneeded mdx files for screenshots

* Glob for stories.js instead of just js files in the doc pages directory

* Might as well update it to 8.3 while we're at it

* Update knip config file to make it happy

* Fix linter warning

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-10-19 17:53:45 -07:00
Gabe Kangas
f424fe6dae WIP storybook upgrade 2024-10-19 17:53:42 -07:00
Owncast
d939d9f43d Bundle embedded web app 2024-10-20 00:51:07 +00:00
renovate[bot]
6295f8d1a1 chore(deps): update dependency @types/node to v20.16.12 2024-10-20 00:28:32 +00:00
Owncast
85ded31098 Bundle embedded web app 2024-10-20 00:25:38 +00:00
renovate[bot]
f8444459b8 fix(deps): update dependency chart.js to v4.4.5 2024-10-20 00:20:06 +00:00
Owncast
7b4959cc6d Bundle embedded web app 2024-10-19 22:34:30 +00:00
Gabe Kangas
df3a9424b1 fix(test): fix javascript tests not running 2024-10-19 15:28:41 -07:00
Gabe Kangas
742df5322f fix(web): specify node version to be 22.9.0 for builds 2024-10-19 11:51:23 -07:00
Gabe Kangas
e5a4404770 fix(web): isable swc features and fix build 2024-10-18 08:33:27 -07:00
renovate[bot]
39f486cd52 fix(deps): update module golang.org/x/time to v0.7.0 2024-10-16 22:20:44 +00:00
renovate[bot]
21a40540c2 fix(deps): update module golang.org/x/net to v0.30.0 2024-10-16 20:40:10 +00:00
renovate[bot]
bedbf544ff fix(deps): update module github.com/yuin/goldmark to v1.7.8 2024-10-16 16:30:07 +00:00
renovate[bot]
5ba606903c fix(deps): update module golang.org/x/crypto to v0.28.0 2024-10-16 14:18:33 +00:00
Owncast
18ce952706 Bundle embedded web app 2024-10-16 14:17:28 +00:00
renovate[bot]
0ac5937eea fix(deps): update dependency yaml to v2.6.0 2024-10-16 11:36:14 +00:00
renovate[bot]
390c51bac0 fix(deps): update module github.com/yuin/goldmark-emoji to v1.0.4 2024-10-16 06:38:44 +00:00
renovate[bot]
bbb436e971 fix(deps): update module github.com/yuin/goldmark to v1.7.7 2024-10-16 03:28:07 +00:00
renovate[bot]
c78622ada6 fix(deps): update module github.com/prometheus/client_golang to v1.20.5 2024-10-16 01:28:29 +00:00
renovate[bot]
b95a9d7b7a fix(deps): update module github.com/mattn/go-sqlite3 to v1.14.24 2024-10-15 21:51:23 +00:00
Owncast
6d37dc1e1e Bundle embedded web app 2024-10-14 09:41:19 +00:00
renovate[bot]
65c03ee57b chore(deps): lock file maintenance 2024-10-14 09:35:54 +00:00
Owncast
ec1a0c5fb3 Bundle embedded web app 2024-10-14 04:30:56 +00:00
renovate[bot]
2ff71edb76 chore(deps): update dependency sass to v1.79.5 2024-10-14 01:10:43 +00:00
Owncast
1e470e2ce1 Bundle embedded web app 2024-10-13 19:09:02 +00:00
renovate[bot]
b8f3c7ba54 chore(deps): update dependency @babel/core to v7.25.8 2024-10-13 15:14:22 +00:00
Owncast
04a079b623 Bundle embedded web app 2024-10-13 12:23:07 +00:00
renovate[bot]
d911b0a8ba chore(deps): update dependency knip to v5.33.3 2024-10-13 10:14:41 +00:00
Owncast
cc48275237 Bundle embedded web app 2024-10-13 01:09:49 +00:00
renovate[bot]
6d50f7004d chore(deps): update dependency chromatic to v11.12.5 2024-10-12 23:06:56 +00:00
Owncast
e276e42e1e Bundle embedded web app 2024-10-12 04:30:52 +00:00
renovate[bot]
0b22538af1 fix(deps): update nextjs monorepo to v14.2.15 2024-10-12 01:08:01 +00:00
Owncast
c712c5f793 Bundle embedded web app 2024-10-12 01:05:08 +00:00
renovate[bot]
5b04578765 chore(deps): update dependency typescript to v5.6.3 2024-10-11 22:29:18 +00:00
Owncast
50852921fc Bundle embedded web app 2024-10-11 22:27:54 +00:00
renovate[bot]
8a86914827 chore(deps): update dependency knip to v5.33.2 2024-10-11 19:15:38 +00:00
Eng Zer Jun
08bda166fe Replace github.com/shirou/gopsutil/v3 with v4 (#3956)
* Replace `github.com/shirou/gopsutil/v3` to v4

PR #3925 only added the new v4 dependency into our `go.mod` file. The
actual usages in the source code were not updated to use the new v4
version.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* Tidy `go.mod` correctly

One `require` section for direct dependencies; Another `require` section
for indirect dependencies.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

---------

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2024-10-11 12:13:33 -07:00
mahmed2000
deb938d521 Fix incorrect timestamp on Eartlhy packaged binary (#3955) 2024-10-11 08:31:44 -07:00
Owncast
eec9317b93 Bundle embedded web app 2024-10-11 06:10:53 +00:00
renovate[bot]
bb25bc9a82 chore(deps): update dependency knip to v5.33.1 2024-10-11 04:35:53 +00:00
Owncast
8f6508e7fd Bundle embedded web app 2024-10-11 04:33:36 +00:00
renovate[bot]
4ec00e9033 chore(deps): update dependency chromatic to v11.12.0 2024-10-11 02:09:29 +00:00
Owncast
384cd4b730 Bundle embedded web app 2024-10-11 02:07:13 +00:00
renovate[bot]
193edb4871 chore(deps): update dependency @types/node to v20.16.11 2024-10-10 22:30:25 +00:00
Owncast
369667e8f5 Bundle embedded web app 2024-10-10 22:28:34 +00:00
renovate[bot]
6c6f313de6 chore(deps): update typescript-eslint monorepo to v8.8.1 2024-10-10 18:28:52 +00:00
Owncast
f0323731dd Bundle embedded web app 2024-10-10 15:10:44 +00:00
mahmed2000
dd5a14cd1a Fix mistyped filter value in the admin's log table (#3952) 2024-10-10 08:05:05 -07:00
Owncast
e59285d998 Bundle embedded web app 2024-10-09 22:21:13 +00:00
s-vamshi
c528d3921f fix(web): long usernames in chat truncated (#3949) 2024-10-09 15:15:58 -07:00
renovate[bot]
c00440d918 chore(deps): update peter-evans/create-or-update-comment digest to 1b44297 2024-10-09 10:48:53 +00:00
Owncast
b35b139fbc Bundle embedded web app 2024-10-08 10:16:50 +00:00
renovate[bot]
3afe880b45 fix(deps): update dependency @uiw/react-codemirror to v4.23.5 2024-10-08 08:15:01 +00:00
Owncast
0a878401a4 Bundle embedded web app 2024-10-08 08:12:41 +00:00
renovate[bot]
71c141980a fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.23.5 2024-10-08 03:40:09 +00:00
Owncast
d33954c68d Bundle embedded web app 2024-10-07 15:17:45 +00:00
renovate[bot]
e14713631f chore(deps): lock file maintenance 2024-10-07 15:12:15 +00:00
Owncast
f45cbd421c Bundle embedded web app 2024-10-07 12:11:42 +00:00
renovate[bot]
06dcf82fe1 fix(deps): update dependency video.js to v8.18.1 2024-10-07 10:36:38 +00:00
Owncast
0812dbb1e9 Bundle embedded web app 2024-10-07 10:35:02 +00:00
renovate[bot]
e551096dd1 chore(deps): lock file maintenance 2024-10-07 10:29:17 +00:00
Gabe Kangas
8d08ae5147 chore: tweaking workflow text 2024-10-06 21:44:19 -07:00
Owncast
99652825b6 Bundle embedded web app 2024-10-07 03:35:05 +00:00
renovate[bot]
e074d3e83a chore(deps): update dependency npm to v10.9.0 2024-10-07 02:56:24 +00:00
Gabe Kangas
e5aa3c3cfb fix: remove invalid setting 2024-10-06 19:54:42 -07:00
Gabe Kangas
b55e4045c1 chore: replace old stale github app with workflow action 2024-10-06 18:12:13 -07:00
Owncast
ac3f7a2ac8 Bundle embedded web app 2024-10-06 21:07:23 +00:00
renovate[bot]
5f71210744 chore(deps): update dependency eslint-plugin-import to v2.31.0 2024-10-06 21:02:09 +00:00
Owncast
bc6f5c02cf Bundle embedded web app 2024-10-06 19:45:53 +00:00
renovate[bot]
b104d1222a fix(deps): update dependency sanitize-html to v2.13.1 2024-10-06 15:38:27 +00:00
Owncast
8b1601b76a Bundle embedded web app 2024-10-06 10:50:10 +00:00
renovate[bot]
1e86f3cd8b chore(deps): update dependency knip to v5.31.0 2024-10-06 06:16:07 +00:00
Owncast
a6ff8f14d4 Bundle embedded web app 2024-10-06 04:19:29 +00:00
renovate[bot]
ed04e2e0af fix(deps): update dependency @uiw/react-codemirror to v4.23.4 2024-10-06 00:40:19 +00:00
Owncast
cf237c2923 Bundle embedded web app 2024-10-06 00:39:08 +00:00
renovate[bot]
33807f0acc fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.23.4 2024-10-05 22:10:51 +00:00
Owncast
f439f400e2 Bundle embedded web app 2024-10-05 22:09:38 +00:00
renovate[bot]
9dc090e3dc chore(deps): update dependency @types/react to v18.3.11 2024-10-05 18:40:37 +00:00
Owncast
6c8186b995 Bundle embedded web app 2024-10-05 18:39:22 +00:00
renovate[bot]
f705c887ff chore(deps): update dependency @babel/core to v7.25.7 2024-10-05 17:06:10 +00:00
Owncast
73e9e7eb7c Bundle embedded web app 2024-10-05 17:05:25 +00:00
renovate[bot]
b8ff62d2c5 chore(deps): update dependency mermaid to v10.9.2 2024-10-05 12:43:05 +00:00
Owncast
b5dcbf5d72 Bundle embedded web app 2024-10-04 21:40:36 +00:00
renovate[bot]
f0402792d6 fix(deps): update nextjs monorepo to v14.2.14 2024-10-04 18:48:05 +00:00
Owncast
c5abe686eb Bundle embedded web app 2024-10-04 18:46:30 +00:00
renovate[bot]
61802b6008 chore(deps): update dependency eslint-plugin-react to v7.37.1 2024-10-04 16:00:20 +00:00
Owncast
e6ce12d625 Bundle embedded web app 2024-10-04 01:45:16 +00:00
renovate[bot]
6b84a5248c chore(deps): update dependency chromatic to v11.11.0 2024-10-03 21:44:24 +00:00
Owncast
b73ea79431 Bundle embedded web app 2024-10-03 21:42:58 +00:00
renovate[bot]
edcc428b3c chore(deps): update typescript-eslint monorepo to v8.8.0 2024-10-03 18:49:49 +00:00
renovate[bot]
b00c48e369 chore(deps): update peter-evans/create-or-update-comment digest to 48de637 2024-10-02 06:34:21 +00:00
Florian Greinacher
ee1dc904e1 chore: use correct manager name in Renovate config (#3943) 2024-10-01 09:16:53 -07:00
Owncast
9ce46753fc Bundle embedded web app 2024-10-01 12:13:50 +00:00
renovate[bot]
2fffd175d7 fix(deps): update dependency @codemirror/lang-markdown to v6.3.0 2024-10-01 09:07:25 +00:00
Owncast
0749708942 Bundle embedded web app 2024-10-01 06:41:12 +00:00
renovate[bot]
b7a1bc53c3 chore(deps): update dependency sass to v1.79.4 2024-10-01 03:52:57 +00:00
Owncast
43f99ae3c8 Bundle embedded web app 2024-09-30 22:30:48 +00:00
renovate[bot]
5bd79b01b2 chore(deps): update dependency @types/react to v18.3.10 2024-09-30 19:42:27 +00:00
Owncast
ad165bc76b Bundle embedded web app 2024-09-30 19:41:37 +00:00
renovate[bot]
36373a96e1 chore(deps): update dependency @types/node to v20.16.10 2024-09-30 17:00:21 +00:00
Owncast
f5ebcc76eb Bundle embedded web app 2024-09-30 11:13:57 +00:00
renovate[bot]
3eb214d842 chore(deps): lock file maintenance 2024-09-30 11:08:44 +00:00
Owncast
e1e6d18bf3 Bundle embedded web app 2024-09-30 07:55:12 +00:00
renovate[bot]
00ee31d224 chore(deps): update dependency eslint-plugin-react to v7.37.0 2024-09-30 04:16:20 +00:00
Owncast
63459b2354 Bundle embedded web app 2024-09-29 19:23:50 +00:00
renovate[bot]
656a3156f2 chore(deps): update dependency eslint-plugin-storybook to v0.9.0 2024-09-29 16:13:48 +00:00
Owncast
2447a57e00 Bundle embedded web app 2024-09-29 04:09:23 +00:00
renovate[bot]
066de108db chore(deps): update dependency @types/node to v20.16.9 2024-09-29 00:28:29 +00:00
Owncast
31a1c8b960 Bundle embedded web app 2024-09-29 00:27:49 +00:00
renovate[bot]
21ae3069e2 chore(deps): update dependency cypress to v13.15.0 2024-09-28 21:33:46 +00:00
Owncast
32d796d56c Bundle embedded web app 2024-09-28 21:32:43 +00:00
renovate[bot]
ace38e6b1e chore(deps): update dependency @types/node to v20.16.8 2024-09-28 18:35:06 +00:00
Owncast
1b0d17a602 Bundle embedded web app 2024-09-28 07:10:30 +00:00
renovate[bot]
27260122e2 chore(deps): update dependency @types/node to v20.16.7 2024-09-28 04:30:13 +00:00
Owncast
150a788fc5 Bundle embedded web app 2024-09-27 23:59:04 +00:00
renovate[bot]
0597953ea1 chore(deps): update dependency chromatic to v11.10.4 2024-09-27 21:32:15 +00:00
Owncast
a3bebd98c5 Bundle embedded web app 2024-09-27 21:31:36 +00:00
renovate[bot]
c5c1bc928b chore(deps): update dependency @types/react to v18.3.9 2024-09-27 19:51:57 +00:00
Owncast
6e7e4c9fc1 Bundle embedded web app 2024-09-27 16:22:13 +00:00
dependabot[bot]
99311911f1 Bump rollup from 2.79.1 to 2.79.2 in /web (#3939)
Bumps [rollup](https://github.com/rollup/rollup) from 2.79.1 to 2.79.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.79.1...v2.79.2)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-27 09:15:08 -07:00
Owncast
593a94131d Bundle embedded web app 2024-09-27 06:12:17 +00:00
renovate[bot]
d076fefa99 chore(deps): update typescript-eslint monorepo to v8.7.0 2024-09-27 04:56:31 +00:00
Owncast
0b9260161b Bundle embedded web app 2024-09-27 04:55:04 +00:00
renovate[bot]
dc3aafa6cc chore(deps): update dependency chromatic to v11.10.3 2024-09-27 01:40:10 +00:00
Owncast
7c6dbc94bc Bundle embedded web app 2024-09-27 01:38:30 +00:00
renovate[bot]
e5239c169b chore(deps): update dependency @types/node to v20.16.6 2024-09-26 23:50:06 +00:00
renovate[bot]
5cd4c14943 fix(deps): update module github.com/shirou/gopsutil/v3 to v4 (#3925)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-26 16:49:35 -07:00
Gabe Kangas
ef66e2c3a0 Explicitly set viewer count to 0 if offline. Closes #3830 2024-09-26 13:38:14 -07:00
Florian Greinacher
dcb0ff5f51 fix: update Alpine base image (#3938)
* fix: update Alpine base image

Alpine 3.11 is out of support since nearly a year

* chore: help Renovate detect images in  the Earthfile
2024-09-26 08:21:26 -07:00
Owncast
07b69e1795 Bundle embedded web app 2024-09-26 12:22:20 +00:00
renovate[bot]
e4cf7742d1 fix(deps): update dependency @uiw/react-codemirror to v4.23.3 2024-09-26 09:31:53 +00:00
Owncast
7de49e8605 Bundle embedded web app 2024-09-26 09:30:44 +00:00
renovate[bot]
8a2a0a1249 fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.23.3 2024-09-26 07:15:58 +00:00
renovate[bot]
2794a5d1d8 chore(deps): update peter-evans/create-or-update-comment digest to 5ddb8ea 2024-09-25 09:52:11 +00:00
Owncast
4e29efe24d Bundle embedded web app 2024-09-24 08:10:01 +00:00
renovate[bot]
c9924cdbab chore(deps): update dependency sass to v1.79.3 2024-09-24 08:04:30 +00:00
Owncast
36e1b678ce Bundle embedded web app 2024-09-23 12:39:30 +00:00
renovate[bot]
6fad3b00fa chore(deps): lock file maintenance 2024-09-23 12:34:15 +00:00
Owncast
e7760103ee Bundle embedded web app 2024-09-23 06:10:08 +00:00
renovate[bot]
63fb720955 fix(deps): update nextjs monorepo to v14.2.13 2024-09-23 03:35:45 +00:00
Owncast
43f4d680c7 Bundle embedded web app 2024-09-23 03:33:37 +00:00
renovate[bot]
2db008ad88 chore(deps): update dependency sass to v1.79.2 2024-09-23 01:35:42 +00:00
Owncast
0f4113b673 Bundle embedded web app 2024-09-22 22:02:28 +00:00
renovate[bot]
a91a5ef9e4 chore(deps): update dependency @types/react to v18.3.8 2024-09-22 19:11:41 +00:00
Owncast
cbd984282b Bundle embedded web app 2024-09-21 03:40:10 +00:00
renovate[bot]
cf61b51de7 chore(deps): update dependency sass to v1.79.1 2024-09-21 02:31:32 +00:00
Owncast
7efea74285 Bundle embedded web app 2024-09-21 02:30:11 +00:00
renovate[bot]
45d1b187b1 fix(deps): update nextjs monorepo to v14.2.12 2024-09-20 21:36:30 +00:00
Owncast
dfac42b6ad Bundle embedded web app 2024-09-20 15:59:41 +00:00
renovate[bot]
0758786790 chore(deps): update dependency @types/react to v18.3.7 2024-09-20 13:54:12 +00:00
Owncast
d72c7639f2 Bundle embedded web app 2024-09-20 09:06:53 +00:00
renovate[bot]
bd68667b00 chore(deps): update typescript-eslint monorepo to v8.6.0 2024-09-20 07:24:29 +00:00
Owncast
983db3c675 Javascript formatting autofixes 2024-09-20 03:18:25 +00:00
Aelly Alwardi
84f0dd07ae Move title up a level to allow mouse hover to show timestamp (#3926)
* Move title up a level to allow mouse hover to show timestamp

* Fix bad commit to resolve 3848

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-19 20:15:49 -07:00
Owncast
ac3cc16250 Bundle embedded web app 2024-09-20 01:20:28 +00:00
renovate[bot]
e9cfa5e408 chore(deps): update dependency eslint to v8.57.1 2024-09-19 21:25:28 +00:00
Owncast
7217eaa289 Bundle embedded web app 2024-09-19 21:24:45 +00:00
renovate[bot]
b30d2de195 chore(deps): update dependency @types/prop-types to v15.7.13 2024-09-19 19:19:01 +00:00
Owncast
b2f341a3e5 Bundle embedded web app 2024-09-19 19:18:09 +00:00
renovate[bot]
30bb93ee77 chore(deps): update dependency babel-loader to v9.2.1 2024-09-19 15:15:26 +00:00
Owncast
4e53acddcf Bundle embedded web app 2024-09-19 12:29:33 +00:00
renovate[bot]
96753349bc chore(deps): update dependency @types/react to v18.3.6 2024-09-19 10:58:28 +00:00
Gabe Kangas
387dcd464d chore(go): go mod tidy 2024-09-18 19:38:11 -07:00
renovate[bot]
3cbc9ca57c chore(deps): update peter-evans/create-or-update-comment digest to 1efb899 2024-09-18 06:52:56 +00:00
renovate[bot]
6b7901c7dc fix(deps): update module golang.org/x/net to v0.29.0 2024-09-18 03:55:46 +00:00
renovate[bot]
41075416f8 fix(deps): update module golang.org/x/mod to v0.21.0 (#3928)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 20:52:35 -07:00
renovate[bot]
53a1e5d585 fix(deps): update module golang.org/x/crypto to v0.27.0 (#3927)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 20:52:19 -07:00
Gabe Kangas
3050d64909 fix(go): fix type conversion for windows 2024-09-17 19:11:16 -07:00
Gabe Kangas
99fbefd558 Remove fix flag 2024-09-17 16:44:36 -07:00
Gabe Kangas
0bca16deb6 Only write formatted files in CI when not in a PR 2024-09-17 16:39:54 -07:00
Gabe Kangas
5e5f023b8a Only try to commit formated files if running on the owncast/owncast repo 2024-09-17 16:35:36 -07:00
Owncast
02bfc6b3d9 Bundle embedded web app 2024-09-17 21:44:31 +00:00
renovate[bot]
ec975f1614 fix(deps): update fontsource monorepo to v5.1.0 2024-09-17 19:06:21 +00:00
Gabe Kangas
6d768f0b0a fix(go): fix type conversions for FreeBSD and Windows methods 2024-09-17 08:28:01 -07:00
renovate[bot]
968af5f934 chore(deps): update tj-actions/changed-files action to v45 (#3924)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-17 08:24:24 -07:00
Gabe Kangas
7a65e6d808 fix(go): int64 -> uint64 for connection limit value 2024-09-17 08:12:09 -07:00
Owncast
6cf93b98e1 Bundle embedded web app 2024-09-17 12:19:07 +00:00
renovate[bot]
bba2f3c694 fix(deps): update dependency @codemirror/lang-css to v6.3.0 2024-09-17 10:21:29 +00:00
Owncast
aa288b910b Bundle embedded web app 2024-09-17 10:19:47 +00:00
renovate[bot]
63f52dc2eb fix(deps): update dependency ua-parser-js to v1.0.39 2024-09-17 08:06:38 +00:00
Owncast
a914603245 Bundle embedded web app 2024-09-17 08:05:33 +00:00
renovate[bot]
83acaf97ec chore(deps): update dependency typescript to v5.6.2 2024-09-17 03:22:00 +00:00
Owncast
487180785c Bundle embedded web app 2024-09-17 03:20:12 +00:00
renovate[bot]
eae90af0dd chore(deps): update dependency chromatic to v11.10.2 2024-09-17 01:09:56 +00:00
Owncast
67ee31842b Bundle embedded web app 2024-09-17 01:08:33 +00:00
renovate[bot]
f66fae7724 fix(deps): update nextjs monorepo to v14.2.11 2024-09-16 22:48:32 +00:00
Owncast
e038c65f8b Bundle embedded web app 2024-09-16 22:47:24 +00:00
renovate[bot]
d4aa54874e fix(deps): update dependency video.js to v8.17.4 2024-09-16 20:46:23 +00:00
Owncast
54f4179282 Bundle embedded web app 2024-09-16 20:45:42 +00:00
renovate[bot]
9fb4b4a749 fix(deps): update dependency react-virtuoso to v4.10.4 2024-09-16 18:54:14 +00:00
Owncast
b59d66cdf2 Bundle embedded web app 2024-09-16 18:53:12 +00:00
renovate[bot]
1660147ef3 fix(deps): update dependency react-hotkeys-hook to v4.5.1 2024-09-16 17:14:05 +00:00
Owncast
a7ca77960f Bundle embedded web app 2024-09-16 17:13:03 +00:00
renovate[bot]
ffb6b38561 fix(deps): update dependency @uiw/react-codemirror to v4.23.2 2024-09-16 13:40:39 +00:00
Owncast
18a73ed5a6 Bundle embedded web app 2024-09-16 13:39:37 +00:00
renovate[bot]
3b03b2467d chore(deps): update dependency knip to v5.30.2 2024-09-16 11:08:18 +00:00
Owncast
6fa2e3aa7a Bundle embedded web app 2024-09-16 11:07:21 +00:00
renovate[bot]
837b30fbbb fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.23.2 2024-09-16 07:06:04 +00:00
Owncast
82241ffce8 Bundle embedded web app 2024-09-16 07:05:09 +00:00
renovate[bot]
3d848f505f chore(deps): update dependency eslint-plugin-react to v7.36.1 2024-09-16 04:34:59 +00:00
Owncast
e52247e5ef Bundle embedded web app 2024-09-16 04:34:18 +00:00
renovate[bot]
ed91588ba1 chore(deps): update dependency cypress to v13.14.2 2024-09-16 00:56:10 +00:00
Owncast
6572cbab18 Bundle embedded web app 2024-09-16 00:54:36 +00:00
renovate[bot]
56af5ee111 chore(deps): update dependency @types/jest to v29.5.13 2024-09-15 21:00:16 +00:00
Owncast
c61ede6bab Bundle embedded web app 2024-09-15 20:59:43 +00:00
renovate[bot]
f6a1b1b638 chore(deps): update typescript-eslint monorepo to v8 (major) (#3887)
* chore(deps): update typescript-eslint monorepo to v8

* chore(js): fix linter errors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-15 13:51:33 -07:00
Owncast
86ce875da8 Bundle embedded web app 2024-09-15 20:21:26 +00:00
Gabe Kangas
3ccc92c317 chore(tests): disable no-plusplus rule in js linter 2024-09-15 13:15:19 -07:00
Owncast
b1dde41918 Bundle embedded web app 2024-09-15 19:51:13 +00:00
renovate[bot]
095b8c13fb chore(deps): update dependency knip to v5.30.1 (#3899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 12:45:41 -07:00
renovate[bot]
cbc6ba47ee chore(deps): update peter-evans/create-or-update-comment digest to 00b0d20 2024-09-15 16:41:32 +00:00
Gabe Kangas
78c775747b chore(ci): specify the ref to check out 2024-09-15 09:40:52 -07:00
Owncast
065fbd03ad Bundle embedded web app 2024-09-15 16:09:42 +00:00
renovate[bot]
c01d738476 fix(deps): update module github.com/shirou/gopsutil/v3 to v4 (#3888)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-15 08:51:10 -07:00
dependabot[bot]
73fdf2f087 Bump body-parser and express in /web (#3922)
Bumps [body-parser](https://github.com/expressjs/body-parser) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `body-parser` from 1.20.2 to 1.20.3
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3)

Updates `express` from 4.19.2 to 4.21.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-15 08:50:37 -07:00
dependabot[bot]
cda13d212f Bump serve-static and express in /web (#3923)
Bumps [serve-static](https://github.com/expressjs/serve-static) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `serve-static` from 1.15.0 to 1.16.2
- [Release notes](https://github.com/expressjs/serve-static/releases)
- [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md)
- [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2)

Updates `express` from 4.19.2 to 4.21.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)

---
updated-dependencies:
- dependency-name: serve-static
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-15 08:49:22 -07:00
dependabot[bot]
14461c10c6 Bump send and express in /web (#3921)
Bumps [send](https://github.com/pillarjs/send) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `send` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/pillarjs/send/releases)
- [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md)
- [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0)

Updates `express` from 4.19.2 to 4.21.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)

---
updated-dependencies:
- dependency-name: send
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-15 08:48:19 -07:00
renovate[bot]
0f814d2476 chore(deps): update commitlint monorepo to v19.5.0 (#3907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 08:46:00 -07:00
Owncast
91f77afaf0 Bundle embedded web app 2024-09-15 15:18:15 +00:00
renovate[bot]
c4f4f00d95 chore(deps): update dependency eslint-plugin-react to v7.36.0 (#3914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 08:11:57 -07:00
renovate[bot]
0a5279c92a chore(deps): update dependency sass to v1.78.0 (#3918)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 08:11:40 -07:00
dependabot[bot]
8b43f65904 Bump micromatch from 4.0.5 to 4.0.8 in /test/load (#3903)
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-15 07:09:20 -07:00
Owncast
a16bedab82 Bundle embedded web app 2024-09-15 13:56:45 +00:00
renovate[bot]
41bded3a6b fix(deps): update dependency yaml to v2.5.1 (#3917)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 06:45:46 -07:00
renovate[bot]
150d847f7f chore(deps): update dependency @types/node to v20.16.5 (#3916)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 06:45:25 -07:00
renovate[bot]
6d5e1173a3 chore(deps): update dependency eslint-plugin-jsx-a11y to v6.10.0 (#3919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 06:45:04 -07:00
Gabe Kangas
9b1c4128d8 chore(js): disable react/no-is-mounted rule 2024-09-15 06:44:39 -07:00
Gabe Kangas
4764e27b68 chore(tests): set older node version to work around babel issue in tests 2024-09-15 06:03:53 -07:00
Gabe Kangas
755308eca8 chore(tests): set specific node version in tests and bump Nextjs version 2024-09-15 05:52:20 -07:00
Gabe Kangas
4a317b799c Revert "chore(deps): update nextjs monorepo to v14.2.7"
This reverts commit 416462bd53.
2024-09-09 01:20:12 -04:00
Gabe Kangas
f75c4af2d8 fix(deps): update nextjs to fix babel issue breaking tests 2024-09-06 20:25:53 -07:00
renovate[bot]
5c252e05f9 chore(deps): update alpine docker tag to v3.20.3 2024-09-06 22:59:41 +00:00
Gabe Kangas
59f200c960 fix(test): run javascript tests as a part of build CI job 2024-09-05 18:13:03 -07:00
Owncast
6c9e4704cc Commit updated Storybook stories 2024-09-05 21:48:43 +00:00
Owncast
f7b61d8d9a Javascript formatting autofixes 2024-09-05 21:47:55 +00:00
zockicookie
39e77dc2cc Markdown-Editor-LineWrapping (#3908)
* Markdown-Editor-LineWrapping

* added lineWrapping to js and css editors

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-05 14:45:09 -07:00
Gabe Kangas
7cdf18de99 fix(ci): add support for pull_request_target 2024-09-05 13:58:47 -07:00
Gabe Kangas
89a33ea4e3 fix(ci): split up checkout steps for push vs. pull request (#3911) 2024-09-05 13:50:59 -07:00
Gabe Kangas
90b70612c9 fix(go): update to resolve linter errors (#3913) 2024-09-05 13:41:10 -07:00
Owncast
208fafaaab Bundle embedded web app 2024-09-05 13:44:28 +00:00
renovate[bot]
8d723340fe fix(deps): update dependency react-hotkeys-hook to v4.5.1 2024-09-05 11:26:21 +00:00
Owncast
5e57bdb926 Commit screenshots 2024-09-05 04:09:17 +00:00
Owncast
46d777a46a Bundle embedded web app 2024-09-04 22:51:23 +00:00
renovate[bot]
bff66a5921 fix(deps): update dependency react-virtuoso to v4.10.2 2024-09-04 18:58:02 +00:00
Owncast
65cd387677 Bundle embedded web app 2024-09-04 18:56:50 +00:00
renovate[bot]
416462bd53 chore(deps): update nextjs monorepo to v14.2.7 2024-09-04 18:50:28 +00:00
Owncast
29a79c6fc8 Bundle embedded web app 2024-09-04 16:30:23 +00:00
renovate[bot]
ebab382da3 chore(deps): update dependency @types/node to v20.16.3 2024-09-04 13:55:51 +00:00
Owncast
58aa45e509 Bundle embedded web app 2024-09-04 13:54:24 +00:00
renovate[bot]
59f09d4260 chore(deps): lock file maintenance 2024-09-04 13:36:26 +00:00
renovate[bot]
d84e8db88c chore(deps): update dependency ts-jest to v29.2.5 2024-09-04 13:32:36 +00:00
renovate[bot]
06a8266c7c chore(deps): update peter-evans/create-or-update-comment digest to 56f64a7 2024-09-04 07:26:28 +00:00
Owncast
af785cccb5 Bundle embedded web app 2024-09-04 07:25:10 +00:00
renovate[bot]
91d63702d3 chore(deps): update dependency @types/react to v18.3.5 2024-09-04 07:16:37 +00:00
Owncast
78aec72c1f Commit screenshots 2024-09-04 04:12:27 +00:00
Owncast
9dff14d5dd Commit screenshots 2024-09-03 04:11:40 +00:00
Owncast
785064ae30 Commit screenshots 2024-09-02 04:12:31 +00:00
Owncast
4475c0caba Commit screenshots 2024-09-01 04:12:36 +00:00
Owncast
aa12e45588 Commit screenshots 2024-08-31 04:11:05 +00:00
Owncast
af130a7c47 Commit screenshots 2024-08-30 04:12:47 +00:00
Owncast
50464f35d0 Commit screenshots 2024-08-29 04:22:32 +00:00
Owncast
5b551fc293 Commit screenshots 2024-08-28 04:12:00 +00:00
renovate[bot]
ff74d6ce95 fix(deps): update module github.com/jellydator/ttlcache/v3 to v3.3.0 2024-08-27 13:00:34 +00:00
Owncast
7b98260176 Commit screenshots 2024-08-27 04:13:30 +00:00
Owncast
dcf4b716c3 Commit screenshots 2024-08-26 04:13:12 +00:00
Owncast
a28fc8411e Commit screenshots 2024-08-25 04:11:34 +00:00
Owncast
b70323fa05 Commit screenshots 2024-08-24 04:11:37 +00:00
Owncast
9c1267b39e Commit screenshots 2024-08-23 04:12:10 +00:00
Owncast
f0f9567f41 Bundle embedded web app 2024-08-22 12:20:14 +00:00
renovate[bot]
00d2ac8cb2 chore(deps): update dependency @types/node to v20.16.1 2024-08-22 06:05:45 +00:00
Owncast
deaa3754e0 Commit screenshots 2024-08-22 04:15:06 +00:00
Owncast
8d9268753b Bundle embedded web app 2024-08-22 01:14:40 +00:00
renovate[bot]
fb9594e322 chore(deps): update dependency @types/sanitize-html to v2.13.0 2024-08-21 22:06:39 +00:00
renovate[bot]
f9df95a9fe fix(deps): update module github.com/aws/aws-sdk-go to v1.55.5 (#3890)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-21 15:04:28 -07:00
Gabe Kangas
04b1b30b7d Update API tests (#3894)
* fix(test): remove done callback in tests

* fix(test): expect correct status code

* fix(test): remove logging of var
2024-08-21 14:44:09 -07:00
Gabe Kangas
545b9983f7 fix(api): return http 405 if federation is diabled 2024-08-21 14:16:55 -07:00
Owncast
7ca17eae84 Bundle embedded web app 2024-08-21 14:07:21 +00:00
renovate[bot]
b8d3da6b8a chore(deps): update dependency @types/node to v20.16.0 2024-08-21 09:40:06 +00:00
renovate[bot]
1fdedf8f5f chore(deps): update peter-evans/create-or-update-comment digest to 2830915 2024-08-21 09:38:51 +00:00
Owncast
c43bdda277 Bundle embedded web app 2024-08-21 07:48:18 +00:00
renovate[bot]
f2b78b9ca4 fix(deps): update dependency @fontsource/poppins to v5.0.15 2024-08-21 05:21:42 +00:00
Owncast
13b017e22e Commit screenshots 2024-08-21 04:12:53 +00:00
Owncast
b4896f139f Commit screenshots 2024-08-20 04:12:08 +00:00
renovate[bot]
dbcd6827b7 chore(deps): update actions/setup-node action to v4 (#3886)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 17:19:41 -07:00
Gabe Kangas
7084ece117 go mod tidy 2024-08-19 17:18:23 -07:00
Gabe Kangas
a8f358b2a5 Bump ffmpeg version + add support for running tests under macOS 2024-08-19 16:22:12 -07:00
Owncast
c73e106c17 Bundle embedded web app 2024-08-19 22:11:13 +00:00
renovate[bot]
cd23d7b573 chore(deps): update dependency @types/node to v20.15.0 2024-08-19 21:37:16 +00:00
renovate[bot]
2433d26445 fix(deps): update module golang.org/x/mod to v0.20.0 (#3878)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 14:36:04 -07:00
renovate[bot]
1bc5be6064 fix(deps): update module golang.org/x/net to v0.28.0 (#3879)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 14:35:32 -07:00
renovate[bot]
224fb776a6 fix(deps): update module github.com/prometheus/client_golang to v1.20.0 (#3876)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 13:59:17 -07:00
Owncast
e1735e0175 Bundle embedded web app 2024-08-19 20:44:59 +00:00
renovate[bot]
4a7876c4f5 fix(deps): update module github.com/shirou/gopsutil/v4 to v4.24.7 (#3875)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 13:09:06 -07:00
dependabot[bot]
ded6d5cb6d Bump elliptic from 6.5.6 to 6.5.7 in /web (#3881)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.6 to 6.5.7.
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.6...v6.5.7)

---
updated-dependencies:
- dependency-name: elliptic
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-19 13:08:44 -07:00
renovate[bot]
5218e78537 fix(deps): update module golang.org/x/time to v0.6.0 (#3880)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 12:56:44 -07:00
Gabe Kangas
7c3d4d26df Remove done callback in tests (#3885) 2024-08-19 12:10:46 -07:00
Owncast
b9e22e4d9c Bundle embedded web app 2024-08-19 16:45:44 +00:00
renovate[bot]
8c1c95e2ef fix(deps): update dependency sharp to v0.33.5 2024-08-19 14:11:59 +00:00
Owncast
4dd00fbbcc Commit screenshots 2024-08-19 04:12:22 +00:00
Owncast
ae75d8e1b8 Bundle embedded web app 2024-08-18 22:25:13 +00:00
renovate[bot]
79cdf7299c chore(deps): update dependency mdx-mermaid to v2.0.1 2024-08-18 20:50:47 +00:00
Owncast
10b5c6d252 Bundle embedded web app 2024-08-18 20:50:10 +00:00
renovate[bot]
1b17947835 chore(deps): update dependency stylelint to v16.8.2 2024-08-18 16:20:51 +00:00
Owncast
8e26fec4ad Commit screenshots 2024-08-18 04:13:12 +00:00
Owncast
2532f3c29b Bundle embedded web app 2024-08-18 01:59:29 +00:00
renovate[bot]
235e716d78 chore(deps): update dependency chromatic to v11.7.1 2024-08-17 23:26:01 +00:00
Owncast
f66774e02b Bundle embedded web app 2024-08-17 20:28:04 +00:00
renovate[bot]
b2444a1d88 chore(deps): update dependency cypress to v13.13.3 2024-08-17 15:44:36 +00:00
Owncast
95842639b6 Bundle embedded web app 2024-08-17 11:47:48 +00:00
renovate[bot]
d1e3c3889f fix(deps): update dependency react-virtuoso to v4.10.1 2024-08-17 06:51:20 +00:00
Owncast
0dcf0f5967 Commit screenshots 2024-08-17 04:11:13 +00:00
Owncast
856564e746 Bundle embedded web app 2024-08-16 10:48:10 +00:00
renovate[bot]
af0abab590 fix(deps): update dependency react-virtuoso to v4.10.0 2024-08-16 06:47:15 +00:00
Owncast
4c078d1342 Commit screenshots 2024-08-16 04:12:39 +00:00
Owncast
7f7307a4e7 Commit screenshots 2024-08-15 04:12:34 +00:00
renovate[bot]
8cc0e5399c chore(deps): update peter-evans/create-or-update-comment digest to 0c2659f 2024-08-14 07:08:00 +00:00
Owncast
fb8627953a Commit screenshots 2024-08-14 04:11:39 +00:00
Owncast
b8bbe89a94 Bundle embedded web app 2024-08-13 14:13:42 +00:00
renovate[bot]
628c7ee717 fix(deps): update dependency video.js to v8.17.3 2024-08-13 11:53:06 +00:00
Owncast
0f525e9df7 Bundle embedded web app 2024-08-12 23:14:09 +00:00
renovate[bot]
0328e0aa11 chore(deps): update dependency @types/node to v20.14.15 2024-08-12 19:57:00 +00:00
Owncast
1251ab21a4 Bundle embedded web app 2024-08-12 17:53:29 +00:00
renovate[bot]
1862d9bdca chore(deps): lock file maintenance 2024-08-12 17:47:36 +00:00
Owncast
ae5b59d221 Bundle embedded web app 2024-08-11 11:38:48 +00:00
renovate[bot]
10bace1e7f chore(deps): update dependency knip to v5.27.2 2024-08-11 08:35:01 +00:00
Owncast
d90f5b92ec Bundle embedded web app 2024-08-10 12:26:19 +00:00
renovate[bot]
67d038ecfc chore(deps): update dependency @commitlint/cli to v19.4.0 2024-08-10 10:14:12 +00:00
Owncast
6d0d3be857 Bundle embedded web app 2024-08-10 10:12:26 +00:00
renovate[bot]
1c5c5bba57 chore(deps): update dependency knip to v5.27.1 2024-08-10 06:06:36 +00:00
Owncast
5867400af2 Commit screenshots 2024-08-08 04:16:35 +00:00
renovate[bot]
ad87eef636 chore(deps): update peter-evans/create-or-update-comment digest to 842a986 2024-08-07 08:40:58 +00:00
Owncast
8e25f49cd0 Commit screenshots 2024-08-07 04:12:55 +00:00
Owncast
63d4ddf2d0 Commit screenshots 2024-08-06 04:13:00 +00:00
Owncast
ebd74103cf Bundle embedded web app 2024-08-06 01:27:25 +00:00
renovate[bot]
8f71861db3 fix(deps): update dependency autoprefixer to v10.4.20 2024-08-05 22:05:55 +00:00
Owncast
0e273de0fc Bundle embedded web app 2024-08-05 16:48:11 +00:00
renovate[bot]
867bfa3b8b fix(deps): update dependency video.js to v8.17.2 2024-08-05 13:18:50 +00:00
Owncast
359cf9c02a Bundle embedded web app 2024-08-05 13:17:08 +00:00
renovate[bot]
76e3f9e07a chore(deps): update dependency @types/node to v20.14.14 2024-08-05 10:52:57 +00:00
Owncast
2d241508f5 Commit screenshots 2024-08-05 04:12:37 +00:00
Owncast
5dd2d27fe7 Bundle embedded web app 2024-08-05 00:47:16 +00:00
renovate[bot]
f1a37c1db3 fix(deps): update dependency react-virtuoso to v4.9.0 2024-08-04 22:45:39 +00:00
Owncast
fb8b3d174f Bundle embedded web app 2024-08-04 22:44:25 +00:00
renovate[bot]
6d43f1d6cf chore(deps): update dependency chromatic to v11.7.0 2024-08-04 20:21:46 +00:00
Owncast
d40a9ae6d7 Bundle embedded web app 2024-08-04 20:19:37 +00:00
renovate[bot]
2f04a417c8 chore(deps): update dependency ts-jest to v29.2.4 2024-08-04 15:35:28 +00:00
Owncast
dd3e364a6e Commit screenshots 2024-08-04 10:02:07 +00:00
Owncast
6db7eec41c Bundle embedded web app 2024-08-04 09:54:45 +00:00
renovate[bot]
fc76c3be7c fix(deps): update dependency @fontsource/inter to v5.0.20 2024-08-03 22:11:40 +00:00
Owncast
6edcd5df3d Bundle embedded web app 2024-08-03 22:09:49 +00:00
renovate[bot]
fb1455e468 fix(deps): update dependency react-virtuoso to v4.8.0 2024-08-03 22:02:45 +00:00
Owncast
b1899cc060 Bundle embedded web app 2024-08-03 18:20:36 +00:00
renovate[bot]
b11329564d chore(deps): update dependency cypress to v13.13.2 2024-08-03 16:19:30 +00:00
Owncast
72ee2e5cb3 Bundle embedded web app 2024-08-03 16:18:16 +00:00
renovate[bot]
ddd37ddfe2 chore(deps): update dependency chromatic to v11.6.0 2024-08-03 12:57:55 +00:00
Owncast
964ed53375 Commit screenshots 2024-08-03 04:11:35 +00:00
Owncast
411583e7af Bundle embedded web app 2024-08-02 16:35:16 +00:00
renovate[bot]
6323730a80 chore(deps): update dependency stylelint to v16.8.1 2024-08-02 12:20:56 +00:00
Owncast
f02aca5f94 Bundle embedded web app 2024-08-02 11:35:36 +00:00
renovate[bot]
8370574b14 chore(deps): update dependency @babel/core to v7.25.2 2024-08-02 06:20:05 +00:00
Owncast
05f451723a Commit screenshots 2024-08-02 04:12:24 +00:00
Owncast
ad9dd6140c Bundle embedded web app 2024-08-01 22:35:28 +00:00
renovate[bot]
6dc41de650 chore(deps): update typescript-eslint monorepo to v7.18.0 2024-08-01 18:19:46 +00:00
Owncast
d5ab817379 Bundle embedded web app 2024-08-01 18:17:55 +00:00
renovate[bot]
d787408c5f chore(deps): update dependency stylelint to v16.8.0 2024-08-01 16:21:44 +00:00
Owncast
34085cbd3f Commit screenshots 2024-08-01 04:16:38 +00:00
dependabot[bot]
950f80d7f5 Bump fast-xml-parser, @aws-sdk/credential-providers and @aws-sdk/client-cloudwatch (#3861)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser), [@aws-sdk/credential-providers](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/credential-providers) and [@aws-sdk/client-cloudwatch](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-cloudwatch). These dependencies needed to be updated together.

Updates `fast-xml-parser` from 4.2.5 to 4.4.1
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.2.5...v4.4.1)

Updates `@aws-sdk/credential-providers` from 3.556.0 to 3.621.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages/credential-providers/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.621.0/packages/credential-providers)

Updates `@aws-sdk/client-cloudwatch` from 3.556.0 to 3.621.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-cloudwatch/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.621.0/clients/client-cloudwatch)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: indirect
- dependency-name: "@aws-sdk/credential-providers"
  dependency-type: indirect
- dependency-name: "@aws-sdk/client-cloudwatch"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-31 15:18:50 -07:00
Owncast
0cd9bc7053 Bundle embedded web app 2024-07-31 16:31:02 +00:00
renovate[bot]
898a6e8744 chore(deps): update dependency @types/node to v20.14.13 2024-07-31 13:20:51 +00:00
Owncast
184c4cd382 Commit screenshots 2024-07-31 04:10:56 +00:00
Owncast
ceebf4d4e1 Commit screenshots 2024-07-30 04:11:10 +00:00
Owncast
b183e5a5ca Bundle embedded web app 2024-07-29 13:04:18 +00:00
renovate[bot]
bc05379321 fix(deps): update dependency video.js to v8.17.1 2024-07-29 11:12:12 +00:00
Owncast
147d217e1a Bundle embedded web app 2024-07-29 11:11:02 +00:00
renovate[bot]
ddd13b74f8 chore(deps): lock file maintenance 2024-07-29 11:05:12 +00:00
Owncast
bcdf45b37f Commit screenshots 2024-07-29 04:11:54 +00:00
Owncast
f14d36b5cc Bundle embedded web app 2024-07-28 10:06:47 +00:00
renovate[bot]
f81d4650fc chore(deps): update dependency @types/markdown-it to v14.1.2 2024-07-28 07:35:44 +00:00
Owncast
312c787ea6 Commit screenshots 2024-07-28 04:10:57 +00:00
Owncast
e0d04a75ca Bundle embedded web app 2024-07-27 18:24:37 +00:00
renovate[bot]
e93f5fb7e9 fix(deps): update dependency yaml to v2.5.0 2024-07-27 17:19:55 +00:00
dependabot[bot]
40c3eb1f75 Bump braces and jest in /test/automated/hls (#3834)
Bumps [braces](https://github.com/micromatch/braces) to 3.0.3 and updates ancestor dependency [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest). These dependencies need to be updated together.


Updates `braces` from 3.0.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

Updates `jest` from 26.6.3 to 29.7.0
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v29.7.0/packages/jest)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
- dependency-name: jest
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-27 08:00:42 -07:00
Owncast
aafca27c58 Commit screenshots 2024-07-27 04:21:09 +00:00
Owncast
49c956498d Bundle embedded web app 2024-07-27 00:22:37 +00:00
renovate[bot]
9abbf0dfb7 chore(deps): update dependency knip to v5.27.0 2024-07-27 00:16:17 +00:00
Owncast
d0961df566 Bundle embedded web app 2024-07-26 21:57:46 +00:00
renovate[bot]
acc20111c5 chore(deps): update dependency @types/node to v20.14.12 2024-07-26 18:37:44 +00:00
Owncast
0f62d88793 Commit screenshots 2024-07-26 04:11:38 +00:00
Owncast
22521d9b85 Bundle embedded web app 2024-07-26 03:24:09 +00:00
renovate[bot]
bd6c41aed2 chore(deps): update dependency typescript to v5.5.4 2024-07-25 23:54:45 +00:00
dependabot[bot]
f42f6d9890 Bump requirejs from 2.3.6 to 2.3.7 in /test/load (#3849)
Bumps [requirejs](https://github.com/jrburke/r.js) from 2.3.6 to 2.3.7.
- [Commits](https://github.com/jrburke/r.js/compare/2.3.6...2.3.7)

---
updated-dependencies:
- dependency-name: requirejs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-25 16:52:13 -07:00
Owncast
41e36fbaea Bundle embedded web app 2024-07-25 22:08:02 +00:00
renovate[bot]
8f41dc6466 chore(deps): update typescript-eslint monorepo to v7.17.0 2024-07-25 19:12:26 +00:00
Owncast
77a029f9d8 Commit screenshots 2024-07-25 04:12:03 +00:00
renovate[bot]
36f6360a0f chore(deps): update peter-evans/create-or-update-comment digest to e5db2e4 2024-07-24 08:26:23 +00:00
Owncast
e1895d0ad0 Commit screenshots 2024-07-24 04:11:44 +00:00
Owncast
801baf69e4 Bundle embedded web app 2024-07-23 17:06:37 +00:00
renovate[bot]
30ec3e6813 chore(deps): update dependency eslint-plugin-react to v7.35.0 2024-07-23 14:11:17 +00:00
Owncast
825a2225eb Bundle embedded web app 2024-07-23 14:10:18 +00:00
renovate[bot]
b8fe546312 fix(deps): update dependency react-virtuoso to v4.7.13 2024-07-23 09:13:25 +00:00
renovate[bot]
32e6b050ac chore(deps): update alpine docker tag to v3.20.2 2024-07-23 04:58:43 +00:00
Owncast
7709d7b9a6 Commit screenshots 2024-07-23 04:11:06 +00:00
Owncast
d4f52320ee Bundle embedded web app 2024-07-23 00:02:42 +00:00
renovate[bot]
8693c80095 chore(deps): update dependency chromatic to v11.5.6 2024-07-22 19:12:32 +00:00
Owncast
59bdc92689 Bundle embedded web app 2024-07-22 13:18:48 +00:00
renovate[bot]
4b919a7f2f chore(deps): lock file maintenance 2024-07-22 13:12:38 +00:00
Owncast
314d2c5df2 Commit screenshots 2024-07-22 04:21:20 +00:00
Mahlangu
95d1912a92 change twitter label to x (#3846) 2024-07-21 19:54:21 -07:00
Owncast
4c551a0501 Bundle embedded web app 2024-07-21 19:26:07 +00:00
renovate[bot]
0350d11b11 chore(deps): update dependency ts-jest to v29.2.3 2024-07-21 17:24:19 +00:00
Owncast
c67e22c9f7 Commit screenshots 2024-07-21 04:11:27 +00:00
Owncast
eb80b0cf0e Bundle embedded web app 2024-07-20 16:43:34 +00:00
renovate[bot]
fcd0004ffb chore(deps): update dependency eslint-plugin-prettier to v5.2.1 2024-07-20 12:19:09 +00:00
Owncast
ecc2742f70 Commit screenshots 2024-07-20 04:17:03 +00:00
Owncast
49db2e7a0f Bundle embedded web app 2024-07-20 02:42:55 +00:00
renovate[bot]
fa30e08686 chore(deps): update dependency cypress to v13.13.1 2024-07-19 23:07:21 +00:00
Owncast
5f663d5f1b Bundle embedded web app 2024-07-19 23:05:45 +00:00
renovate[bot]
9898fb45b5 chore(deps): update dependency @types/node to v20.14.11 2024-07-19 20:09:16 +00:00
Logan Fick
3fc127ba34 Adjust CleanupDirectory function to support tmpfs mounts. (#3818)
* Refactored directory cleanup function to remove contents instead of recreating directory.

* Fixed regression by ensuring directory cleanup creates directory if it does not exist.

* Modified errors in directory cleanup function to provide more information.

* Resolved use of deprecated package in directory cleanup function.

* Reformatted directory cleanup function.
2024-07-19 13:07:45 -07:00
Owncast
db1f64ee45 Bundle embedded web app 2024-07-19 19:46:58 +00:00
Manish Giri
4579d9074e Initial change for Social Media validation (#3819)
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-07-19 12:41:22 -07:00
Owncast
56d4ac0c62 Bundle embedded web app 2024-07-19 19:32:57 +00:00
renovate[bot]
24719039a3 chore(deps): update typescript-eslint monorepo to v7.16.1 (#3844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-19 12:24:40 -07:00
Owncast
a67a1be36c Bundle embedded web app 2024-07-19 18:44:27 +00:00
renovate[bot]
81fb47dca4 chore(deps): update dependency @babel/core to v7.24.9 (#3843)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-19 11:38:33 -07:00
Owncast
490d7f2e42 Bundle embedded web app 2024-07-19 18:09:15 +00:00
Nirajan
468abb272a little color change in dropdown (#3828)
* little color change in dropdown

* small-lint-fix

* lint fix

* it should fix
2024-07-19 11:03:18 -07:00
Owncast
37bcb67f6b Commit screenshots 2024-07-19 04:12:14 +00:00
Owncast
496fced9b3 Commit screenshots 2024-07-18 04:11:23 +00:00
renovate[bot]
ca9428ba6e chore(deps): update peter-evans/create-or-update-comment digest to 3496b39 2024-07-17 08:26:58 +00:00
Owncast
c12e2a5add Commit screenshots 2024-07-17 04:12:19 +00:00
Owncast
b9503cc9f9 Bundle embedded web app 2024-07-16 23:49:33 +00:00
renovate[bot]
fb244578a3 chore(deps): update dependency eslint-plugin-react to v7.34.4 2024-07-16 18:31:13 +00:00
Owncast
c8b9a058c0 Bundle embedded web app 2024-07-16 15:51:30 +00:00
renovate[bot]
54dd1b7dc2 chore(deps): update dependency prettier to v3.3.3 2024-07-16 13:19:56 +00:00
Owncast
d6265b936f Commit screenshots 2024-07-16 04:11:54 +00:00
Owncast
01d70828ca Bundle embedded web app 2024-07-15 15:41:51 +00:00
renovate[bot]
a0e53a7e51 chore(deps): lock file maintenance 2024-07-15 15:35:33 +00:00
renovate[bot]
16de438ced chore(deps): update dependency stylelint to v16.7.0 2024-07-15 13:43:54 +00:00
Owncast
9207d0a36e Bundle embedded web app 2024-07-15 13:42:20 +00:00
renovate[bot]
b63c82955f fix(deps): update dependency react-virtuoso to v4.7.12 2024-07-15 09:51:54 +00:00
Owncast
dcea496ed5 Bundle embedded web app 2024-07-15 00:52:02 +00:00
renovate[bot]
49a1ef5748 chore(deps): update dependency sass to v1.77.8 2024-07-14 21:36:31 +00:00
Owncast
c60936b124 Bundle embedded web app 2024-07-14 18:37:25 +00:00
renovate[bot]
28eb3e0332 chore(deps): update dependency @babel/core to v7.24.8 2024-07-14 15:45:03 +00:00
Owncast
eb08054596 Bundle embedded web app 2024-07-14 09:31:31 +00:00
renovate[bot]
585fb4d35b chore(deps): update dependency knip to v5.25.2 2024-07-14 06:55:57 +00:00
Owncast
0db6869c6b Commit screenshots 2024-07-14 04:12:57 +00:00
Owncast
f6d8fac3c4 Bundle embedded web app 2024-07-14 02:28:55 +00:00
renovate[bot]
1202487efc chore(deps): update dependency npm to v10.8.2 2024-07-14 02:23:00 +00:00
Owncast
1c0363f9d6 Bundle embedded web app 2024-07-13 23:02:54 +00:00
renovate[bot]
f6ef566496 chore(deps): update dependency ts-jest to v29.2.2 2024-07-13 18:17:54 +00:00
Owncast
bb307c36ad Bundle embedded web app 2024-07-13 18:15:59 +00:00
renovate[bot]
0e724a49ee fix(deps): update nextjs monorepo to v14.2.5 2024-07-13 16:23:27 +00:00
Owncast
2263c79bfa Bundle embedded web app 2024-07-13 13:04:15 +00:00
renovate[bot]
2b60bc701e chore(deps): update dependency ts-jest to v29.2.1 2024-07-13 11:34:25 +00:00
Owncast
8304aba714 Commit screenshots 2024-07-13 04:11:35 +00:00
Owncast
188bb7e0b6 Bundle embedded web app 2024-07-13 01:08:06 +00:00
renovate[bot]
fb760df090 chore(deps): update dependency sass to v1.77.7 2024-07-12 22:48:41 +00:00
Owncast
fc1d281d71 Bundle embedded web app 2024-07-12 14:03:21 +00:00
renovate[bot]
d1f333e89c chore(deps): update typescript-eslint monorepo to v7.16.0 2024-07-12 13:57:27 +00:00
Owncast
dcc838a7e2 Bundle embedded web app 2024-07-12 10:12:11 +00:00
renovate[bot]
cce6a2e523 chore(deps): update dependency knip to v5.25.1 2024-07-12 10:06:21 +00:00
Owncast
fca4a701fe Bundle embedded web app 2024-07-12 06:41:23 +00:00
renovate[bot]
3acce5046b chore(deps): update dependency chromatic to v11.5.5 (#3837)
* chore(deps): update dependency chromatic to v11.5.5

* fix: always checkout repo on chromatic workflow

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-07-11 23:33:29 -07:00
Owncast
917299db4a Commit screenshots 2024-07-12 04:11:41 +00:00
Owncast
fd6ab358e0 Bundle embedded web app 2024-07-11 21:18:38 +00:00
Owncast
5e621baf23 Commit updated Storybook stories 2024-07-11 21:14:31 +00:00
Gabe Kangas
57652900f3 Remove documentation that is better suited to exist elsewhere 2024-07-11 14:10:57 -07:00
Owncast
1b746120c7 Bundle embedded web app 2024-07-11 20:59:44 +00:00
samwherever
fdcfb34531 Update config-constants.tsx (#3835)
Fix for #3827. Removed extraneous "to" and rewrote sentence for clarity.
2024-07-11 13:54:01 -07:00
dependabot[bot]
1cecdbbf54 Bump @grpc/grpc-js from 1.10.6 to 1.10.11 in /test/load (#3833)
Bumps [@grpc/grpc-js](https://github.com/grpc/grpc-node) from 1.10.6 to 1.10.11.
- [Release notes](https://github.com/grpc/grpc-node/releases)
- [Commits](https://github.com/grpc/grpc-node/compare/@grpc/grpc-js@1.10.6...@grpc/grpc-js@1.10.11)

---
updated-dependencies:
- dependency-name: "@grpc/grpc-js"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-11 12:22:42 -07:00
Gabe Kangas
bf07c977d7 Fix go test workflow 2024-07-11 11:53:35 -07:00
Gabe Kangas
05c54eaad8 Troubleshoot workflow errors 2024-07-11 11:51:51 -07:00
Gabe Kangas
91b176a8e4 Fix checkouts 2024-07-11 11:47:33 -07:00
Gabe Kangas
c4756a9a45 Reduce CI jobs being run when not needed 2024-07-11 11:44:39 -07:00
Owncast
e7d90d441e Bundle embedded web app 2024-07-11 18:39:29 +00:00
Gabe Kangas
fe5fbea623 Add css linter step (#3832)
* Add css linter step

* Add test css file

* Set working directory

* Only run against changed files

* remove test css file

* only run workflow steps if any css files were changed

* commiting a file with issues

* fixing file with linter warnings
2024-07-11 11:33:07 -07:00
Owncast
8e5454ee7e Bundle embedded web app 2024-07-11 18:09:02 +00:00
renovate[bot]
b04ca2ec1a chore(deps): update dependency ts-jest to v29.2.0 2024-07-11 17:50:13 +00:00
Owncast
430c4e20d7 Bundle embedded web app 2024-07-11 17:49:07 +00:00
renovate[bot]
9ff2677ced chore(deps): update dependency knip to v5.24.4 2024-07-11 15:41:48 +00:00
Owncast
79fc96fde8 Commit screenshots 2024-07-11 04:12:20 +00:00
Owncast
c7d2e4d6fe Commit screenshots 2024-07-10 04:12:58 +00:00
Owncast
60a467071e Bundle embedded web app 2024-07-09 21:30:49 +00:00
renovate[bot]
6fb7d81126 fix(deps): update dependency video.js to v8.16.1 2024-07-09 19:03:32 +00:00
Owncast
161a580f69 Bundle embedded web app 2024-07-09 10:20:39 +00:00
renovate[bot]
d1b5923351 chore(deps): update dependency @types/node to v20.14.10 2024-07-09 10:14:30 +00:00
Owncast
ddd828e00f Commit screenshots 2024-07-09 04:11:56 +00:00
renovate[bot]
4c4bc90460 fix(deps): update module mvdan.cc/xurls to v2 (#3815)
* fix(deps): update module mvdan.cc/xurls to v2

* mvdan/xurls 2.x bump fixes (#3823)

* Bump xurls import to v2

* Change Strict to function calls, v2.0.0 change

* Add go.sum entry for xurls/v2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: mahmed2000 <mahmad2000@protonmail.com>
2024-07-08 11:24:48 -07:00
Owncast
aa8193bb9e Bundle embedded web app 2024-07-08 13:44:05 +00:00
renovate[bot]
d6d2c94ab9 chore(deps): lock file maintenance 2024-07-08 13:38:20 +00:00
Owncast
6d076ef241 Bundle embedded web app 2024-07-08 10:13:07 +00:00
renovate[bot]
634cf552b9 chore(deps): lock file maintenance 2024-07-08 10:07:22 +00:00
Owncast
2141a6ef04 Commit screenshots 2024-07-08 04:21:39 +00:00
Owncast
b41a6f5873 Bundle embedded web app 2024-07-08 02:10:32 +00:00
renovate[bot]
4c548a1fb6 fix(deps): update dependency @fontsource/inter to v5.0.19 2024-07-07 23:16:10 +00:00
Owncast
a14a0af75c Bundle embedded web app 2024-07-07 15:39:52 +00:00
renovate[bot]
09534aab99 fix(deps): update dependency @uiw/react-codemirror to v4.23.0 2024-07-07 15:34:05 +00:00
Owncast
3236cbbdd2 Bundle embedded web app 2024-07-07 13:57:20 +00:00
renovate[bot]
23982b6cdf chore(deps): update dependency knip to v5.24.1 2024-07-07 10:27:48 +00:00
Owncast
315af47c86 Bundle embedded web app 2024-07-07 07:07:35 +00:00
renovate[bot]
a9a626b507 fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.23.0 2024-07-07 04:42:19 +00:00
Owncast
8a2374309a Commit screenshots 2024-07-07 04:10:57 +00:00
Owncast
37a4c965f9 Bundle embedded web app 2024-07-06 13:58:31 +00:00
renovate[bot]
d8864a1dc0 chore(deps): update dependency knip to v5.24.0 2024-07-06 10:00:29 +00:00
Owncast
1ba486c72c Commit screenshots 2024-07-06 04:12:08 +00:00
Owncast
89f145ac52 Bundle embedded web app 2024-07-05 11:39:44 +00:00
renovate[bot]
8546dc309e chore(deps): update dependency cypress to v13.13.0 2024-07-05 06:14:40 +00:00
Owncast
6cdcbb3005 Commit screenshots 2024-07-05 04:12:01 +00:00
Gabe Kangas
e864562995 chore: update PR template 2024-07-04 19:57:16 -07:00
Owncast
be498069aa Bundle embedded web app 2024-07-05 01:08:14 +00:00
renovate[bot]
c791be2122 chore(deps): update dependency typescript to v5.5.3 2024-07-04 21:17:06 +00:00
Owncast
b4239af403 Bundle embedded web app 2024-07-04 21:15:40 +00:00
renovate[bot]
a6bf93f525 chore(deps): update typescript-eslint monorepo to v7.15.0 2024-07-04 18:34:21 +00:00
renovate[bot]
6636b686cd fix(deps): update module github.com/microcosm-cc/bluemonday to v1.0.27 2024-07-04 16:18:17 +00:00
Owncast
8b4922abec Commit screenshots 2024-07-04 04:10:47 +00:00
renovate[bot]
2173aa219d fix(deps): update module github.com/shirou/gopsutil/v3 to v4 (#3814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-03 13:44:48 -07:00
renovate[bot]
9636fd4619 fix(deps): update module golang.org/x/net to v0.26.0 2024-07-03 18:33:50 +00:00
renovate[bot]
2c88db62a5 fix(deps): update module golang.org/x/mod to v0.18.0 2024-07-03 15:59:50 +00:00
renovate[bot]
df2f548de8 fix(deps): update module golang.org/x/crypto to v0.24.0 2024-07-03 14:21:16 +00:00
Germaine Lee
264876cbd3 Update video passthrough warning banner styling (#3810)
Update styling for better contrast and legibility.

Closes #3798
2024-07-03 07:19:46 -07:00
Germaine Lee
a382a895d0 Update patreon logo to blob from website (#3808)
Updating the Patreon Logo to the blob looking P logo. 

Closes #3807
2024-07-03 07:12:01 -07:00
renovate[bot]
3fa7984d3f fix(deps): update module github.com/oschwald/geoip2-golang to v1.11.0 2024-07-03 10:51:32 +00:00
renovate[bot]
08abb4f635 fix(deps): update module github.com/go-chi/chi/v5 to v5.1.0 2024-07-03 08:11:32 +00:00
renovate[bot]
bce170f47c fix(deps): update module github.com/yuin/goldmark-emoji to v1.0.3 2024-07-03 05:10:02 +00:00
Gabe Kangas
c963512934 chore: move geoip into services directory 2024-07-02 21:26:43 -07:00
Owncast
228e821a5f Commit screenshots 2024-07-03 04:17:21 +00:00
Gabe Kangas
15d0e3dd1f chore(api): move more types to generated ones 2024-07-02 20:37:58 -07:00
renovate[bot]
8f9229d47d fix(deps): update module mvdan.cc/xurls to v2 (#3806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 17:34:16 -07:00
renovate[bot]
29c4e4a350 fix(deps): update module github.com/yuin/goldmark to v1.7.4 2024-07-02 21:47:26 +00:00
renovate[bot]
914fd924d1 fix(deps): update module github.com/gorilla/websocket to v1.5.3 (#3803)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 14:45:42 -07:00
Gabe Kangas
dd5fa8dd57 chore(docs): add redocly config file 2024-07-02 14:22:04 -07:00
Owncast
dddd6b8f8d Commit updated API documentation 2024-07-02 21:13:05 +00:00
Gabe Kangas
e26525549c chore(docs): attempt to hide opts by marking 204options as internal 2024-07-02 14:09:27 -07:00
Owncast
ca825e8819 Commit updated API documentation 2024-07-02 21:06:52 +00:00
Gabe Kangas
995235eba7 chore(docs): hide opts methods from docs + add logo 2024-07-02 14:04:46 -07:00
Gabe Kangas
7b40006841 chore(docs): Update docs gen path + cli 2024-07-02 14:03:45 -07:00
renovate[bot]
dea1af6990 fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.5 (#3804)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 13:25:30 -07:00
renovate[bot]
8c31cca4d1 fix(deps): update module github.com/aws/aws-sdk-go to v1.54.13 (#3805)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 13:03:17 -07:00
G2G2G2G
4c64fa26ac fixing grammar (#3801)
I guess California no speak english
2024-07-02 11:55:25 -07:00
Gabe Kangas
96119efa41 chore(api): start moving some types to the codegen types 2024-07-01 22:17:10 -07:00
Gabe Kangas
93c0a20935 chore(api): reorganize handlers into webserver package 2024-07-01 21:44:51 -07:00
Owncast
e200692502 Commit screenshots 2024-07-02 04:11:50 +00:00
Gabe Kangas
5cb4850fce chore(api): reorganize web assets and codegen types+handlers 2024-07-01 20:14:17 -07:00
Gabe Kangas
2ccd3aad87 User repository (#3795)
* It builds with the new user repository

* fix(test): fix broken test

* fix(api): fix registration endpoint that was broken after the change

* fix(test): update test to reflect new user repository

* fix: use interface type instead of concrete type

* fix: restore commented out code
2024-07-01 18:58:50 -07:00
Owncast
76be78d1b8 Bundle embedded web app 2024-07-01 12:27:41 +00:00
renovate[bot]
41ec8294b2 chore(deps): lock file maintenance 2024-07-01 12:21:50 +00:00
Owncast
8bb9a026b2 Commit screenshots 2024-07-01 04:11:22 +00:00
Owncast
1ad8dc15d6 Bundle embedded web app 2024-07-01 02:59:02 +00:00
mahmed2000
43fdadd361 Override default videojs volume panel width (#3796) 2024-06-30 19:53:27 -07:00
Owncast
94f42910da Bundle embedded web app 2024-06-30 16:14:16 +00:00
renovate[bot]
a80bdf8ea1 chore(deps): update dependency knip to v5.23.1 2024-06-30 12:15:14 +00:00
Owncast
d9af841b9d Commit screenshots 2024-06-30 04:11:21 +00:00
Owncast
dfdc6cc353 Bundle embedded web app 2024-06-29 08:22:22 +00:00
renovate[bot]
b9f400c809 chore(deps): update dependency @types/node to v20.14.9 2024-06-29 04:31:47 +00:00
Owncast
7e1d9616b6 Commit screenshots 2024-06-29 04:12:07 +00:00
Owncast
8d5c61b72e Bundle embedded web app 2024-06-28 16:52:15 +00:00
renovate[bot]
1c803f636b chore(deps): update dependency knip to v5.23.0 2024-06-28 13:14:09 +00:00
Owncast
9aff5089b9 Commit screenshots 2024-06-28 04:10:55 +00:00
Owncast
9ad0b5c364 Bundle embedded web app 2024-06-27 21:14:11 +00:00
renovate[bot]
75ec8e4fce chore(deps): update typescript-eslint monorepo to v7.14.1 2024-06-27 19:11:01 +00:00
Owncast
e8a8311a33 Bundle embedded web app 2024-06-27 19:10:08 +00:00
renovate[bot]
eb11659940 chore(deps): update dependency knip to v5.22.3 2024-06-27 15:40:06 +00:00
Owncast
bafff45e72 Bundle embedded web app 2024-06-27 15:38:29 +00:00
renovate[bot]
94bb3f3567 chore(deps): update storybook monorepo to v7.6.20 2024-06-27 13:36:04 +00:00
Owncast
0dce87ec5a Bundle embedded web app 2024-06-27 04:25:55 +00:00
Owncast
846ff17221 Commit screenshots 2024-06-27 04:21:33 +00:00
mahmed2000
a7e5f20337 Implement admin password hashing with bcrypt (#3754)
* Add bcrypt hashing helpers

* SetAdminPassword now hashes the password before saving it

* BasicAuth now compares the bcrypt hash for the password

* Modify migration2 to avoid a double password hash when upgrading

* Add migration for bcrypt hashed password

* Do not show admin password hash as initial value

* Update api tests to compare the bcrypt hash of the admin password instead

* Remove old admin password api tests

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-06-26 21:20:22 -07:00
renovate[bot]
51cd16dcc1 chore(deps): update peter-evans/create-or-update-comment digest to 71ac479 2024-06-26 06:05:38 +00:00
Owncast
07fc051086 Bundle embedded web app 2024-06-26 05:48:16 +00:00
Bruno
d10aa36317 added span tag to text (#3789)
Co-authored-by: Begench <forgithubtobegench@gmail.com>
Co-authored-by: Begench <93909709+begench-g@users.noreply.github.com>
2024-06-25 22:42:22 -07:00
Owncast
6b7e686707 Commit screenshots 2024-06-26 04:11:49 +00:00
Owncast
67ad3172d3 Bundle embedded web app 2024-06-25 13:54:16 +00:00
renovate[bot]
28a9daf8b3 chore(deps): update dependency @types/node to v20.14.8 2024-06-25 10:31:52 +00:00
Owncast
4258353d1b Commit screenshots 2024-06-25 04:11:26 +00:00
Owncast
d1a89a8b22 Bundle embedded web app 2024-06-24 15:24:28 +00:00
renovate[bot]
b367ffcff7 chore(deps): lock file maintenance (#3794)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-24 08:18:45 -07:00
Owncast
e2b4929dd1 Bundle embedded web app 2024-06-24 14:15:51 +00:00
renovate[bot]
775b4ff6dc chore(deps): update dependency knip to v5.22.2 2024-06-24 10:15:41 +00:00
Owncast
102a8ff168 Bundle embedded web app 2024-06-24 10:14:50 +00:00
renovate[bot]
2526b4fd2e chore(deps): update dependency stylelint-config-standard to v36.0.1 2024-06-24 08:35:59 +00:00
Owncast
2ef5d15dfe Commit screenshots 2024-06-24 04:13:23 +00:00
Owncast
c4d49280bb Bundle embedded web app 2024-06-24 02:09:04 +00:00
renovate[bot]
28b1614769 chore(deps): update dependency @types/node to v20.14.7 2024-06-23 21:19:55 +00:00
Owncast
d663b9ff82 Bundle embedded web app 2024-06-23 21:18:29 +00:00
renovate[bot]
355bfbf338 chore(deps): update dependency typescript to v5.5.2 2024-06-23 18:38:36 +00:00
Owncast
e1431a0afd Bundle embedded web app 2024-06-23 14:18:32 +00:00
renovate[bot]
7337382394 chore(deps): update dependency eslint-plugin-jsx-a11y to v6.9.0 2024-06-23 10:01:57 +00:00
Owncast
6b8e50b5bd Commit screenshots 2024-06-23 04:10:52 +00:00
Owncast
e0cf689396 Bundle embedded web app 2024-06-22 18:49:41 +00:00
renovate[bot]
cac299302f chore(deps): update dependency @types/node to v20.14.6 2024-06-22 16:13:48 +00:00
Owncast
cba7dcf237 Bundle embedded web app 2024-06-22 16:12:26 +00:00
renovate[bot]
2d3d7f284c chore(deps): update dependency knip to v5.22.0 2024-06-22 13:08:24 +00:00
Owncast
f914186a85 Bundle embedded web app 2024-06-22 07:10:25 +00:00
renovate[bot]
4d540628c3 chore(deps): update dependency cypress to v13.12.0 2024-06-22 05:33:45 +00:00
Owncast
35eb4a42de Commit screenshots 2024-06-22 04:11:16 +00:00
Owncast
e2aab760fb Bundle embedded web app 2024-06-22 00:57:11 +00:00
renovate[bot]
fe9aacc1fd chore(deps): update dependency eslint-plugin-react to v7.34.3 2024-06-21 22:50:41 +00:00
Owncast
1281eceac3 Bundle embedded web app 2024-06-21 22:49:26 +00:00
renovate[bot]
aeb674e0c3 chore(deps): update dependency knip to v5.21.2 2024-06-21 19:16:41 +00:00
Owncast
eaa8434902 Bundle embedded web app 2024-06-21 19:15:09 +00:00
renovate[bot]
623463f117 chore(deps): update typescript-eslint monorepo to v7.13.1 (#3792)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-21 12:07:47 -07:00
Owncast
ac909963c1 Bundle embedded web app 2024-06-21 18:55:06 +00:00
renovate[bot]
63e0f6da3d chore(deps): update dependency @types/node to v20.14.5 (#3791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-21 11:47:09 -07:00
Owncast
4c0233a601 Bundle embedded web app 2024-06-21 06:53:48 +00:00
renovate[bot]
e0d484f2e2 chore(deps): update dependency sass to v1.77.6 2024-06-21 04:26:43 +00:00
Owncast
97e31e63c2 Commit screenshots 2024-06-21 04:12:43 +00:00
renovate[bot]
e7a6c36055 chore(deps): update alpine docker tag to v3.20.1 2024-06-20 18:42:39 +00:00
Owncast
e3c23af080 Bundle embedded web app 2024-06-20 18:42:02 +00:00
renovate[bot]
6ebc28c524 chore(deps): update dependency knip to v5.21.0 2024-06-20 17:07:24 +00:00
Owncast
4fcce62342 Commit screenshots 2024-06-20 04:12:09 +00:00
dependabot[bot]
4a5f771220 Bump ws from 8.2.3 to 8.17.1 in /test (#3790)
Bumps [ws](https://github.com/websockets/ws) from 8.2.3 to 8.17.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.2.3...8.17.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 09:23:01 -07:00
renovate[bot]
933d349095 chore(deps): update peter-evans/create-or-update-comment digest to b9ec247 2024-06-19 09:00:50 +00:00
Owncast
28604ab644 Commit screenshots 2024-06-19 04:12:52 +00:00
renovate[bot]
5f943b4f46 chore(deps): update peter-evans/create-or-update-comment digest to 1f5fc38 2024-06-18 20:04:24 +00:00
Owncast
9ce1b0eaaf Commit screenshots 2024-06-18 04:12:03 +00:00
dependabot[bot]
ef9d36bd03 Bump ws from 7.4.6 to 7.5.10 in /test/automated/hls (#3788)
Bumps [ws](https://github.com/websockets/ws) from 7.4.6 to 7.5.10.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.6...7.5.10)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-17 17:12:35 -07:00
dependabot[bot]
c23726786a Bump ws from 7.4.6 to 7.5.10 in /test/load (#3787)
Bumps [ws](https://github.com/websockets/ws) from 7.4.6 to 7.5.10.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.6...7.5.10)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-17 17:00:18 -07:00
Owncast
0ee21156d8 Bundle embedded web app 2024-06-17 12:34:10 +00:00
renovate[bot]
a42425e195 chore(deps): lock file maintenance 2024-06-17 12:28:16 +00:00
Owncast
6113ab8573 Commit screenshots 2024-06-17 04:42:51 +00:00
Owncast
b54c372489 Commit screenshots 2024-06-16 04:11:36 +00:00
Owncast
246c207ca3 Bundle embedded web app 2024-06-16 00:10:28 +00:00
renovate[bot]
d7f3628800 chore(deps): update dependency chromatic to v11.5.4 2024-06-15 18:12:48 +00:00
Owncast
1cacdcd8a7 Bundle embedded web app 2024-06-15 18:11:57 +00:00
renovate[bot]
8e19719f59 chore(deps): update dependency knip to v5.19.0 2024-06-15 16:02:51 +00:00
Owncast
db681b5fa8 Bundle embedded web app 2024-06-15 10:40:33 +00:00
renovate[bot]
217d54815b fix(deps): update nextjs monorepo to v14.2.4 2024-06-15 07:09:03 +00:00
Owncast
4f75a3e258 Commit screenshots 2024-06-15 04:22:34 +00:00
Owncast
efce6c1f54 Bundle embedded web app 2024-06-15 03:38:15 +00:00
renovate[bot]
f3e1e14e21 chore(deps): update dependency sass to v1.77.5 2024-06-15 01:41:09 +00:00
dependabot[bot]
7b867af8c8 Bump braces and jest in /test/automated/api (#3781)
* Bump braces and jest in /test/automated/api

Bumps [braces](https://github.com/micromatch/braces) to 3.0.3 and updates ancestor dependency [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest). These dependencies need to be updated together.


Updates `braces` from 3.0.2 to 3.0.3
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

Updates `jest` from 26.6.3 to 29.7.0
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v29.7.0/packages/jest)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
- dependency-name: jest
  dependency-type: direct:development
...

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

* Add previous testRunner jasmine2, add ws dependency explicitly (#3784)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mahmed2000 <mahmad2000@protonmail.com>
2024-06-14 11:20:50 -07:00
Owncast
b8f4ba211b Bundle embedded web app 2024-06-14 09:27:47 +00:00
renovate[bot]
6387896c30 chore(deps): update dependency prettier to v3.3.2 2024-06-14 08:27:55 +00:00
Owncast
7171b621c1 Commit screenshots 2024-06-14 04:12:25 +00:00
Owncast
be5bd6f6c2 Bundle embedded web app 2024-06-13 21:29:32 +00:00
renovate[bot]
26b12faabf chore(deps): update typescript-eslint monorepo to v7.13.0 2024-06-13 20:39:54 +00:00
Owncast
f11cc9eb16 Bundle embedded web app 2024-06-13 04:41:53 +00:00
Owncast
16a1de12db Commit updated Storybook stories 2024-06-13 04:38:58 +00:00
mahmed2000
f6045fbd63 Add modal state for browser notifications being denied (#3771) 2024-06-12 21:34:53 -07:00
Owncast
23b9c3226e Commit screenshots 2024-06-13 04:21:59 +00:00
Owncast
a5f14217f2 Bundle embedded web app 2024-06-12 15:48:15 +00:00
renovate[bot]
dbff9dd50d chore(deps): update dependency knip to v5.18.2 2024-06-12 14:53:27 +00:00
renovate[bot]
f274a21271 chore(deps): update peter-evans/create-or-update-comment digest to 86dc0e1 2024-06-12 10:16:46 +00:00
Owncast
3832ea3852 Commit screenshots 2024-06-12 04:11:27 +00:00
Owncast
1b3accf9a6 Bundle embedded web app 2024-06-12 00:54:37 +00:00
renovate[bot]
f1290f70a2 fix(deps): update dependency yaml to v2.4.5 2024-06-11 22:33:11 +00:00
Owncast
7377ebc798 Bundle embedded web app 2024-06-11 18:16:39 +00:00
renovate[bot]
6312e1de98 fix(deps): update dependency yaml to v2.4.4 2024-06-11 16:38:24 +00:00
Owncast
23ecb58471 Bundle embedded web app 2024-06-11 16:37:25 +00:00
renovate[bot]
fb5464a8c5 chore(deps): update dependency knip to v5.18.1 2024-06-11 13:45:01 +00:00
Owncast
a65dd748ea Commit screenshots 2024-06-11 04:11:18 +00:00
dependabot[bot]
c77759a4e2 Bump braces from 3.0.2 to 3.0.3 in /test/load (#3777)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 15:05:03 -07:00
Owncast
b22033049a Bundle embedded web app 2024-06-10 21:56:50 +00:00
renovate[bot]
9d539b6db8 chore(deps): update dependency knip to v5.18.0 2024-06-10 19:29:06 +00:00
Owncast
3f4af08ac3 Bundle embedded web app 2024-06-10 15:21:17 +00:00
renovate[bot]
78e1e69161 fix(deps): update dependency @uiw/react-codemirror to v4.22.2 2024-06-10 12:23:49 +00:00
Owncast
93b8bafd8a Bundle embedded web app 2024-06-10 12:22:47 +00:00
renovate[bot]
aed8e2056c fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.22.2 2024-06-10 06:04:49 +00:00
Owncast
399c7d38c2 Commit screenshots 2024-06-10 04:12:35 +00:00
Owncast
619489ef19 Bundle embedded web app 2024-06-09 13:42:44 +00:00
renovate[bot]
23e2604c22 chore(deps): update dependency chromatic to v11.5.3 2024-06-09 11:12:06 +00:00
Owncast
78757a406b Commit screenshots 2024-06-09 04:12:13 +00:00
Owncast
b41fdf848a Bundle embedded web app 2024-06-08 18:10:59 +00:00
renovate[bot]
cc458f4987 chore(deps): update dependency prettier to v3.3.1 2024-06-08 16:31:17 +00:00
Owncast
721a7826cc Bundle embedded web app 2024-06-08 16:30:17 +00:00
renovate[bot]
fc7ff3b59f chore(deps): update dependency @babel/core to v7.24.7 2024-06-08 13:20:52 +00:00
Owncast
e688ac964c Bundle embedded web app 2024-06-08 13:20:02 +00:00
renovate[bot]
115b22df7c chore(deps): update dependency @types/node to v20.14.2 2024-06-08 10:09:43 +00:00
Owncast
bd720e32e2 Commit screenshots 2024-06-08 04:11:08 +00:00
Owncast
d266f562c9 Bundle embedded web app 2024-06-08 00:55:46 +00:00
renovate[bot]
71ba8b13f2 chore(deps): update dependency cypress to v13.11.0 2024-06-07 21:42:06 +00:00
Owncast
513bac52cf Bundle embedded web app 2024-06-07 06:50:04 +00:00
renovate[bot]
e2b3141058 chore(deps): update dependency @types/node to v20.14.1 2024-06-07 05:16:47 +00:00
Owncast
ac9dfa2160 Commit screenshots 2024-06-07 04:11:51 +00:00
Owncast
92da934ddf Bundle embedded web app 2024-06-07 00:30:06 +00:00
renovate[bot]
465518282f chore(deps): update dependency chromatic to v11.5.1 2024-06-06 22:30:53 +00:00
Owncast
4d9893d40d Bundle embedded web app 2024-06-06 22:29:27 +00:00
renovate[bot]
d60c680b7d chore(deps): update typescript-eslint monorepo to v7.12.0 2024-06-06 18:23:53 +00:00
Owncast
b8f4c6d4a6 Bundle embedded web app 2024-06-06 12:27:04 +00:00
renovate[bot]
3d2304dac8 chore(deps): update dependency knip to v5.17.4 2024-06-06 10:40:24 +00:00
Owncast
a78eab0c2d Commit screenshots 2024-06-06 04:15:10 +00:00
Owncast
3e719f2726 Bundle embedded web app 2024-06-06 00:45:44 +00:00
renovate[bot]
f25ec59220 chore(deps): update dependency @types/node to v20.14.0 2024-06-05 21:14:35 +00:00
Owncast
1dc84d00d6 Bundle embedded web app 2024-06-05 13:05:39 +00:00
renovate[bot]
97e318e1c5 fix(deps): update dependency yaml to v2.4.3 2024-06-05 10:11:27 +00:00
renovate[bot]
43ee6ef4dd chore(deps): update peter-evans/create-or-update-comment digest to 9bb5d83 2024-06-05 07:47:31 +00:00
Owncast
a0d3409422 Commit screenshots 2024-06-05 04:13:04 +00:00
Owncast
732863ec35 Bundle embedded web app 2024-06-04 22:42:12 +00:00
renovate[bot]
e2e84fb516 chore(deps): update dependency prettier to v3.3.0 2024-06-04 18:25:44 +00:00
Owncast
95c3b205a3 Commit screenshots 2024-06-04 04:11:08 +00:00
Owncast
bb70a5c62d Bundle embedded web app 2024-06-04 02:22:51 +00:00
renovate[bot]
a2c987ee9b chore(deps): update dependency chromatic to v11.5.0 2024-06-03 21:42:44 +00:00
Owncast
882f292aeb Bundle embedded web app 2024-06-03 21:41:04 +00:00
renovate[bot]
5a19cd4897 chore(deps): update dependency @types/node to v20.13.0 2024-06-03 20:02:56 +00:00
Owncast
c41f83ff94 Bundle embedded web app 2024-06-03 16:53:05 +00:00
renovate[bot]
63c6484c55 chore(deps): update dependency stylelint-config-standard to v36 (#3676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-03 09:47:11 -07:00
renovate[bot]
79fb0d4e17 chore(deps): update dependency stylelint to v16 (#3491)
* chore(deps): update dependency stylelint to v16

* Commit updated API documentation

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>
2024-06-03 09:38:59 -07:00
renovate[bot]
072fe57daf chore(deps): update dependency stylelint-config-standard-scss to v13 (#3677)
* chore(deps): update dependency stylelint-config-standard-scss to v13

* Commit updated API documentation

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>
2024-06-03 09:00:35 -07:00
Owncast
96a40fbc51 Bundle embedded web app 2024-06-03 06:23:44 +00:00
renovate[bot]
c9d3cd662d chore(deps): update dependency sass to v1.77.4 2024-06-03 04:21:22 +00:00
Owncast
92bc671282 Commit screenshots 2024-06-03 04:13:17 +00:00
Owncast
f971b1851b Bundle embedded web app 2024-06-03 01:22:52 +00:00
renovate[bot]
afdbf3a831 chore(deps): lock file maintenance (#3745)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-02 18:17:13 -07:00
Owncast
499dcaa734 Bundle embedded web app 2024-06-02 22:08:12 +00:00
Gabe Kangas
3f6d7affe8 chore(docs): update readme to call out Lambda test for #3734 2024-06-02 15:06:02 -07:00
renovate[bot]
fa7e0c6ee1 chore(deps): update dependency knip to v5.17.3 (#3751)
* chore(deps): update dependency knip to v5.17.3

* fix(js): resolve errors with new version of knip

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-06-02 15:02:24 -07:00
Owncast
77fac8bd27 Commit screenshots 2024-06-02 04:11:28 +00:00
Owncast
d129c33143 Bundle embedded web app 2024-06-02 04:01:05 +00:00
renovate[bot]
6a343272cf chore(deps): update dependency npm to v10.8.1 2024-06-02 03:55:10 +00:00
Owncast
41b39a7863 Bundle embedded web app 2024-06-02 00:09:57 +00:00
renovate[bot]
c6cc8b7931 chore(deps): update dependency sass to v1.77.3 2024-06-01 23:13:19 +00:00
Owncast
390c20e812 Bundle embedded web app 2024-06-01 23:11:15 +00:00
renovate[bot]
5ea6ca5a91 chore(deps): update dependency @types/node to v20.12.13 2024-06-01 20:25:54 +00:00
Owncast
e5e526cbe0 Commit screenshots 2024-06-01 04:16:12 +00:00
Owncast
e500bd7305 Bundle embedded web app 2024-05-31 18:58:42 +00:00
Germaine Lee
ef72021f87 Update README.md (#3756)
- Add MIT license badge
- Update TOC
- Update Contributing and add Backer section that lists backers from Open Collective

(PS. practising my html so that they don't go rusty)
2024-05-31 11:55:40 -07:00
renovate[bot]
81773e568c fix(deps): update dependency ua-parser-js to v1.0.38 2024-05-31 15:11:55 +00:00
Germaine Lee
2a0296116d Update DESIGN.md (#3755)
Removed duplicates of "is a" in sentences.
2024-05-31 08:10:46 -07:00
Owncast
6ac641168d Bundle embedded web app 2024-05-31 13:39:02 +00:00
renovate[bot]
74d51ebaa7 chore(deps): update dependency ts-jest to v29.1.4 2024-05-31 10:13:55 +00:00
Owncast
7339d23c0c Bundle embedded web app 2024-05-31 10:13:07 +00:00
renovate[bot]
27708665b6 chore(deps): update dependency eslint-plugin-react to v7.34.2 2024-05-31 07:01:46 +00:00
Owncast
2bbe497faf Commit screenshots 2024-05-31 04:11:53 +00:00
Owncast
46143e4722 Bundle embedded web app 2024-05-31 02:13:27 +00:00
renovate[bot]
874dc4445a chore(deps): update typescript-eslint monorepo to v7.11.0 2024-05-30 23:02:06 +00:00
mahmed2000
414a8aeed8 Rework utils/restendpointhelper to use the new chi router functionality (#3750)
* Remove old implementation, add new function to work with the chi router

* Use new URL Param function to get clientID instead

* Remove usage of old restendpoint functions

* Fix typo in url param name

* Remove unused tests
2024-05-30 12:31:07 -07:00
Owncast
a529502809 Bundle embedded web app 2024-05-30 15:26:47 +00:00
renovate[bot]
d245cc1ebd chore(deps): update dependency chromatic to v11.4.1 2024-05-30 13:14:56 +00:00
Owncast
eec8743c18 Commit screenshots 2024-05-30 04:11:37 +00:00
Owncast
eb223599f0 Commit screenshots 2024-05-29 04:12:55 +00:00
Owncast
5a773df0d5 Commit screenshots 2024-05-28 04:12:00 +00:00
Owncast
03a7eb9359 Bundle embedded web app 2024-05-27 19:33:42 +00:00
renovate[bot]
21fe8b8831 fix(deps): update dependency react-virtuoso to v4.7.11 2024-05-27 15:54:46 +00:00
Owncast
57d569f7d9 Bundle embedded web app 2024-05-27 15:53:31 +00:00
renovate[bot]
5af8338a92 chore(deps): update dependency @babel/core to v7.24.6 2024-05-27 14:15:53 +00:00
Owncast
7922610442 Commit screenshots 2024-05-27 04:11:08 +00:00
Owncast
cd76c3a22f Bundle embedded web app 2024-05-27 02:29:35 +00:00
renovate[bot]
002107f1c8 chore(deps): update dependency @types/react to v18.3.3 2024-05-26 21:44:37 +00:00
Owncast
d1035a2967 Commit screenshots 2024-05-26 04:10:21 +00:00
Owncast
0022399cd6 Bundle embedded web app 2024-05-25 19:08:41 +00:00
renovate[bot]
a796c2e8fe chore(deps): update dependency css-loader to v7.1.2 2024-05-25 16:03:49 +00:00
Owncast
597a88ec09 Commit screenshots 2024-05-25 04:10:26 +00:00
Owncast
8dccb1f641 Bundle embedded web app 2024-05-25 01:52:09 +00:00
renovate[bot]
52bbbd85e4 chore(deps): update dependency cypress to v13.10.0 2024-05-24 21:09:14 +00:00
Owncast
e2b92d88b2 Bundle embedded web app 2024-05-24 21:07:50 +00:00
renovate[bot]
065ba49821 chore(deps): update dependency chromatic to v11.4.0 2024-05-24 15:24:05 +00:00
Owncast
ac4019ec0f Bundle embedded web app 2024-05-24 09:38:47 +00:00
renovate[bot]
40a05c2dd5 chore(deps): update dependency ts-jest to v29.1.3 2024-05-24 06:54:35 +00:00
Owncast
2caf1de850 Commit screenshots 2024-05-24 04:10:42 +00:00
Owncast
4612540b10 Bundle embedded web app 2024-05-24 00:20:31 +00:00
renovate[bot]
6bf3e12b0a chore(deps): update typescript-eslint monorepo to v7.10.0 2024-05-23 21:29:30 +00:00
Owncast
c4157bcdfd Commit screenshots 2024-05-23 04:11:06 +00:00
renovate[bot]
8f618148c0 chore(deps): update alpine docker tag to v3.20.0 2024-05-22 22:11:57 +00:00
Owncast
6fd81b536a Bundle embedded web app 2024-05-22 13:55:02 +00:00
renovate[bot]
61a6f59838 chore(deps): update dependency npm to v10.8.0 2024-05-22 11:50:49 +00:00
Owncast
ebb7f539b9 Commit screenshots 2024-05-22 04:17:03 +00:00
Owncast
486e89cd87 Bundle embedded web app 2024-05-22 01:56:32 +00:00
renovate[bot]
a0446a51e6 fix(deps): update dependency chart.js to v4.4.3 2024-05-21 15:05:49 +00:00
Owncast
77b98bc6bc Commit screenshots 2024-05-21 04:11:01 +00:00
Gabe Kangas
1f4506d43f Remove link to old broadcast server 2024-05-20 12:44:56 -07:00
Owncast
46369e104b Bundle embedded web app 2024-05-20 17:10:51 +00:00
renovate[bot]
c9de3d3cc1 chore(deps): update dependency sass to v1.77.2 (#3742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-20 10:03:10 -07:00
Owncast
5b1069cedb Commit screenshots 2024-05-20 04:11:46 +00:00
Owncast
531c5ca1c7 Bundle embedded web app 2024-05-20 03:21:13 +00:00
renovate[bot]
bcb4d53195 fix(deps): update dependency sharp to v0.33.4 2024-05-19 22:34:05 +00:00
Owncast
065efc50db Bundle embedded web app 2024-05-19 22:32:42 +00:00
renovate[bot]
5dc52158d8 fix(deps): update dependency @uiw/react-codemirror to v4.22.1 2024-05-19 16:27:52 +00:00
Owncast
095e83eecd Bundle embedded web app 2024-05-19 16:26:28 +00:00
renovate[bot]
13c3481970 fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.22.1 2024-05-19 09:41:34 +00:00
Owncast
b26ad4e48c Commit screenshots 2024-05-19 04:42:13 +00:00
renovate[bot]
d62a198ab5 fix(deps): update module golang.org/x/net to v0.25.0 2024-05-18 21:39:19 +00:00
Owncast
193dfdffb5 Bundle embedded web app 2024-05-18 21:37:57 +00:00
renovate[bot]
5b88238147 chore(deps): update dependency chromatic to v11.3.5 2024-05-18 16:34:59 +00:00
renovate[bot]
ae977bc748 chore(deps): update golangci/golangci-lint-action action to v6 (#3739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-18 09:33:27 -07:00
renovate[bot]
a8c44facfc fix(deps): update module github.com/aws/aws-sdk-go to v1.53.5 2024-05-18 11:12:57 +00:00
renovate[bot]
bbccbd102e fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.4 2024-05-18 08:02:23 +00:00
Owncast
34c59d3c34 Commit screenshots 2024-05-18 04:10:29 +00:00
renovate[bot]
4e13fdb296 fix(deps): update module github.com/prometheus/client_golang to v1.19.1 2024-05-18 00:09:45 +00:00
Owncast
65a1c6835b Bundle embedded web app 2024-05-18 00:08:20 +00:00
renovate[bot]
f4c6b2d4a0 chore(deps): update dependency knip to v5.16.0 2024-05-17 23:26:03 +00:00
Owncast
e48732acbe Bundle embedded web app 2024-05-17 23:24:42 +00:00
renovate[bot]
2fb6ff1637 chore(deps): update dependency mermaid to v10.9.1 2024-05-17 16:33:00 +00:00
Owncast
c11fcb550d Bundle embedded web app 2024-05-17 16:31:26 +00:00
renovate[bot]
d6cd1b0f12 chore(deps): update dependency @types/node to v20.12.12 2024-05-17 06:59:54 +00:00
Owncast
4bca9dd958 Commit screenshots 2024-05-17 04:11:31 +00:00
Owncast
7b9f516305 Bundle embedded web app 2024-05-17 02:55:51 +00:00
renovate[bot]
874bb9511e chore(deps): update typescript-eslint monorepo to v7.9.0 2024-05-16 19:59:41 +00:00
Owncast
070e06718c Bundle embedded web app 2024-05-16 19:58:08 +00:00
renovate[bot]
a740961cd6 chore(deps): update dependency knip to v5.15.1 2024-05-16 07:28:50 +00:00
Owncast
0846e457a1 Commit screenshots 2024-05-16 04:10:35 +00:00
renovate[bot]
d8fe5dc70e chore(deps): update peter-evans/create-or-update-comment digest to 8da4c50 2024-05-15 06:02:04 +00:00
Owncast
929d27a3b7 Commit screenshots 2024-05-15 04:20:45 +00:00
Owncast
dd89543aec Bundle embedded web app 2024-05-14 20:53:08 +00:00
renovate[bot]
7d5551c702 chore(deps): update dependency @types/react to v18.3.2 2024-05-14 12:00:04 +00:00
Owncast
1bcdad7502 Bundle embedded web app 2024-05-14 11:58:43 +00:00
renovate[bot]
f018adb842 chore(deps): update dependency knip to v5.15.0 2024-05-14 07:34:01 +00:00
Owncast
95760cf9b7 Bundle embedded web app 2024-05-14 07:32:47 +00:00
renovate[bot]
3e44d29b7a chore(deps): update dependency sass to v1.77.1 2024-05-14 05:12:24 +00:00
Owncast
3864e9870b Commit screenshots 2024-05-14 04:14:05 +00:00
Owncast
e24831f4cf Bundle embedded web app 2024-05-13 12:10:39 +00:00
renovate[bot]
9e0bb3ff27 chore(deps): update dependency knip to v5.14.0 2024-05-13 11:12:54 +00:00
Owncast
4ceb43b05b Commit screenshots 2024-05-13 04:11:49 +00:00
Owncast
dad0690a1f Commit screenshots 2024-05-12 04:11:10 +00:00
Owncast
72ac80fe34 Bundle embedded web app 2024-05-11 21:32:42 +00:00
renovate[bot]
d9ac224ac2 chore(deps): update dependency chromatic to v11.3.2 2024-05-11 18:29:14 +00:00
Owncast
ee391277b2 Bundle embedded web app 2024-05-11 18:27:48 +00:00
renovate[bot]
a0a8a470ae chore(deps): update dependency @types/node to v20.12.11 2024-05-11 15:45:25 +00:00
Owncast
cacc76603d Commit screenshots 2024-05-11 04:10:55 +00:00
Owncast
f576230ee6 Bundle embedded web app 2024-05-11 01:45:00 +00:00
renovate[bot]
7792102fba chore(deps): update dependency cypress to v13.9.0 2024-05-10 23:12:33 +00:00
Owncast
967b8c5776 Bundle embedded web app 2024-05-10 17:17:35 +00:00
renovate[bot]
dac9a320a5 chore(deps): update dependency knip to v5.13.0 2024-05-10 14:22:35 +00:00
Owncast
04f0a6b153 Bundle embedded web app 2024-05-10 14:21:11 +00:00
renovate[bot]
766a0fb368 chore(deps): update dependency chromatic to v11.3.1 2024-05-10 10:09:19 +00:00
Owncast
a3bf2b1466 Bundle embedded web app 2024-05-10 10:07:58 +00:00
renovate[bot]
da340df397 chore(deps): update dependency sass to v1.77.0 2024-05-10 07:24:34 +00:00
Owncast
f142185191 Commit screenshots 2024-05-10 04:10:59 +00:00
Owncast
613f00bd48 Bundle embedded web app 2024-05-09 22:44:24 +00:00
renovate[bot]
78e4fc90e4 chore(deps): update dependency @types/node to v20.12.10 2024-05-09 20:14:40 +00:00
Owncast
000c4401c1 Bundle embedded web app 2024-05-09 16:31:39 +00:00
renovate[bot]
36537a6ea6 chore(deps): update dependency @types/node to v20.12.9 2024-05-09 14:31:00 +00:00
Owncast
61cf6b1ca0 Bundle embedded web app 2024-05-09 10:51:32 +00:00
renovate[bot]
4ce68d553a chore(deps): update dependency knip to v5.12.3 2024-05-09 08:10:00 +00:00
Owncast
43c64c7874 Commit screenshots 2024-05-09 04:11:52 +00:00
renovate[bot]
a5955b8be6 chore(deps): update peter-evans/create-or-update-comment digest to 34c499d 2024-05-08 10:01:45 +00:00
Owncast
8d4656588d Commit screenshots 2024-05-08 04:10:08 +00:00
Owncast
c29b4d5e34 Bundle embedded web app 2024-05-07 14:51:23 +00:00
renovate[bot]
a44f9c1b6c chore(deps): update dependency knip to v5.12.2 2024-05-07 10:12:56 +00:00
Owncast
1d509d91e2 Commit screenshots 2024-05-07 04:10:39 +00:00
Owncast
9f8108f6ce Bundle embedded web app 2024-05-06 21:42:03 +00:00
renovate[bot]
8748611d21 chore(deps): update dependency knip to v5.12.1 2024-05-06 18:25:04 +00:00
Owncast
eca4e7b8db Commit screenshots 2024-05-06 04:11:13 +00:00
Owncast
cf5b607200 Bundle embedded web app 2024-05-06 00:59:18 +00:00
renovate[bot]
fe96c22be9 chore(deps): update dependency knip to v5.12.0 2024-05-05 21:22:46 +00:00
Owncast
e232358180 Bundle embedded web app 2024-05-05 10:40:29 +00:00
renovate[bot]
5eaac5db31 chore(deps): update dependency @types/markdown-it to v14.1.1 2024-05-05 07:24:20 +00:00
Owncast
0525e9aed6 Bundle embedded web app 2024-05-05 07:23:03 +00:00
renovate[bot]
ebc0104de1 chore(deps): update storybook monorepo to v7.6.19 2024-05-05 07:17:37 +00:00
Owncast
8ef2edeb05 Commit screenshots 2024-05-05 04:12:29 +00:00
Gabe Kangas
aee4699c8b Update spec path in workflow 2024-05-04 18:39:34 -07:00
Owncast
9007ea2d9a Bundle embedded web app 2024-05-04 22:09:54 +00:00
renovate[bot]
19f7fff024 chore(deps): update dependency @types/node to v20.12.8 2024-05-04 19:50:03 +00:00
renovate[bot]
0e6ff12ffe chore(deps): update dependency sass to v1.76.0 2024-05-04 05:12:23 +00:00
Owncast
aba49b532c Commit screenshots 2024-05-04 04:11:36 +00:00
Owncast
971c77f5c0 Bundle embedded web app 2024-05-04 01:28:04 +00:00
renovate[bot]
df19bce74d chore(deps): update dependency npm to v10.7.0 2024-05-03 22:42:15 +00:00
Gabe Kangas
1ca7a877e4 Organize new openapi spec with tags and generate API docs with the new spec 2024-05-03 15:39:59 -07:00
Owncast
ae76abbb34 Bundle embedded web app 2024-05-03 05:09:18 +00:00
mahmed2000
d9ee7578d1 Rework stream duration string formatting for the status bar (#3729)
* Use date-fns formatDuration to generate stream duration string

* Remove unneeded pluralize function
2024-05-02 22:03:26 -07:00
Owncast
da46a2ff7f Commit screenshots 2024-05-03 04:12:11 +00:00
Owncast
48bb70c1ce Bundle embedded web app 2024-05-03 01:04:23 +00:00
renovate[bot]
422a5112ec chore(deps): update typescript-eslint monorepo to v7.8.0 2024-05-02 21:30:17 +00:00
Owncast
48f76fe284 Bundle embedded web app 2024-05-02 21:27:46 +00:00
renovate[bot]
8eb7aedba1 chore(deps): update dependency @babel/core to v7.24.5 2024-05-02 19:31:46 +00:00
Owncast
1f22094d82 Bundle embedded web app 2024-05-02 09:14:31 +00:00
renovate[bot]
4d8e569b0b fix(deps): update dependency @uiw/react-codemirror to v4.22.0 2024-05-02 07:56:30 +00:00
Owncast
14e02df3d6 Bundle embedded web app 2024-05-02 07:54:32 +00:00
renovate[bot]
96cb802b88 fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.22.0 2024-05-02 05:38:28 +00:00
Owncast
56c1a78889 Commit screenshots 2024-05-02 04:11:03 +00:00
Owncast
2ac8e3a475 Commit updated API documentation 2024-05-01 19:22:30 -07:00
Brenden Ehlers
2513b15b40 Spec-based API (#3653)
* chore(deps): update dependency sass to v1.74.1

* Bundle embedded web app

* chore(deps): update dependency typescript to v5.4.4

* Bundle embedded web app

* Commit screenshots

* fix(deps): update module github.com/yuin/goldmark to v1.7.1

* chore(deps): lock file maintenance (#3662)

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

* Bundle embedded web app

* Commit screenshots

* chore(deps): update dependency @types/node to v20.12.5

* Bundle embedded web app

* fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3

* fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17

* fix(deps): update module golang.org/x/net to v0.24.0

* fix(deps): update module golang.org/x/mod to v0.17.0

* add get admin chat clients

* comment out old code

* add get admin logs

* add get admin warnings

* add get admin chat

* add post admin chat messageVisibility

* add post admin chat users enabled

* add post admin chat users ipban create

* add post admin chat users ipban remove

* add get admin chat users ipbans

* chore(deps): update dependency sass-loader to v14 (#3674)

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

* chore(deps): update typescript-eslint monorepo to v7 (#3680)

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

* chore(deps): update dependency less-loader to v12 (#3673)

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

* chore(deps): update dependency chromatic to v11 (#3669)

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

* chore(deps): update dependency knip to v5 (#3672)

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

* chore(deps): update nick-fields/retry action to v3 (#3678)

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

* chore(deps): update dependency @types/markdown-it to v14 (#3668)

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

* chore(deps): update chromaui/action action to v11 (#3666)

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

* Bundle embedded web app

* Bump version number

* Bundle embedded web app

* Bundle embedded web app

* Bundle embedded web app

* fix(deps): update dependency react-virtuoso to v4.7.8

* Commit screenshots

* Bundle embedded web app

* Optionally disable chat rate limiter and add optional chat slur/language filter (#3681)

* feat(chat): basic profanity filter. For #3139

* feat(chat): add setting for disabling chat spam protection. Closes #3523

* feat(chat): wire up the new chat slur filter to admin and chat. Closes #3139

* Bundle embedded web app

* chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b

* fix(deps): update dependency @codemirror/language-data to v6.5.0

* Bundle embedded web app

* chore(deps): update dependency css-loader to v7 (#3670)

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

* Bundle embedded web app

* add get admin chat users disabled

* add get admin chat users setModerator

* add get admin chat users moderators

* add get admin followers

* chore(deps): update tj-actions/changed-files action to v44 (#3679)

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

* Fix for copying stream key without revealing it only copies asterisks (#3663)

* asterisk copy fix for #3460

* rename text to keys for consistency + linting fix

* make onCopy spawn an antd message directly, remove redundant copyText function

---------

Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>

* Commit updated Storybook stories

* Bundle embedded web app

* Commit screenshots

* chore(deps): update dependency css-loader to v7.1.0

* Bundle embedded web app

* chore(deps): update typescript-eslint monorepo to v7.6.0

* Bundle embedded web app

* chore(deps): update dependency @types/react to v18.2.75 (#3686)

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

* Bundle embedded web app

* stream offline status embed updated (#3684)

* Commit screenshots

* add get admin followers pending

* add get admin followers blocked

* add post admin followers approve

* add 400 error to admin requests

* add post admin emoji upload

* add post admin emoji delete

* add post admin config adminpass

* add post admin config streamkeys

* add post admin config pagecontent

* add post admin config streamtitle

* add post admin config streamtitle

* add post admin config serversummary

* add post admin config offlinemessage

* add post admin config welcomemessage

* add post admin config chat disable

* add post admin config chat joinmessageenabled

* add post admin config chat establishedusermode

* add post admin config chat forbiddenusernames

* add post admin config chat suggestedusernames

* add post admin config video codec

* add post admin config appearance

* Allow react/no-danger

* Commit screenshots

* Change tag to self-closing since the linter complains otherwise (#3690)

Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>

* Bundle embedded web app

* chore(deps): update dependency css-loader to v7.1.1 (#3691)

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

* Bundle embedded web app

* chore(deps): update dependency @types/node to v20.12.7 (#3688)

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

* Bundle embedded web app

* Commit screenshots

* chore(deps): update dependency npm to v10.5.2

* Bundle embedded web app

* chore(deps): update dependency knip to v5.9.4

* Bundle embedded web app

* chore(deps): update dependency typescript to v5.4.5

* Bundle embedded web app

* prevent css-loader v7 renaming default to _default, needed for storybook (#3692)

Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>

* Bundle embedded web app

* chore(deps): update dependency cypress to v13.7.3

* Bundle embedded web app

* Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685)

Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>

* Bundle embedded web app

* Fixes for aria-live bugs (#3694)

* make the aria-live text adhere to the last message's username

* Wrap lastMessage in an Interweave to handle pre-encoded characters properly

---------

Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>

* Bundle embedded web app

* chore(deps): update dependency @types/react to v18.2.77

* Bundle embedded web app

* chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667)

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

* Bundle embedded web app

* chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675)

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

* Bundle embedded web app

* chore(deps): update dependency sass to v1.75.0

* Bundle embedded web app

* Commit screenshots

* chore(deps): update dependency sass-loader to v14.2.0

* Bundle embedded web app

* fix(deps): update codemirror

* add get admin webhooks

* add create and delete webhooks

* add get, delete, create access token endpoints

* add update endpoints

* Bundle embedded web app

* fix(deps): update nextjs monorepo to v14.2.0

* Bundle embedded web app

* fix(deps): update nextjs monorepo to v14.2.1

* Bundle embedded web app

* Commit screenshots

* chore(deps): update dependency @types/markdown-it to v14.0.1

* Bundle embedded web app

* chore(deps): update dependency @types/react to v18.2.78

* Bundle embedded web app

* add send message to connected client

* add deprecated send user message

* add send message to 3rd party

* add send user action

* add update external message visibility

* add update external stream title

* add external get chat messages and fixed error with chat

* add external get clients

* remove options request

* add update logo

* add update tags

* add update ffmpeg path

* add update server port

* add update server ip

* add update rtmp port

* add update websocket host override

* add update custom video serving endpoint

* add update nsfw

* add update directory enabled

* Commit screenshots

* add update social handles

* add update stream latency level

* add update stream output variants

* add update s3 config

* add update server url

* add reset yp registration

* add update external action links

* add update custom styles

* add update custom javascript

* add get video metrics

* add update hide viewer count

* add update search indexing

* Change fediAuth message to be more succinct (#3696)

* Change fediAuth message to be more succint

* Update controllers/auth/fediverse/fediverse.go

for -> from

---------

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

* Mute the 'stream ended' clip's audio (#3630)

* Mute the 'stream ended' clip's audio

The 'stream ended' clip plays at the at the end of every stream broadcast using owncast.
It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter)
This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment.
As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR.

This issue is discussed in more detail in #1965.

Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio.

Specifically, I used this ffmpeg command:
```
ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts
```

There are no other modifications to the clip.

* Commit updated API documentation

* feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached

* Fix conflict

* force add new offline file

---------

Co-authored-by: vivlim <vivlim@vivl.im>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>

* Commit screenshots

* chore(tests): retry cypress tests on failure

* fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23

* chore(deps): update dependency @types/video.js to v7.3.58 (#3705)

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

* Bundle embedded web app

* fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706)

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

* Bundle embedded web app

* add update message visibility

* add update user status

* add get moderation user details

* create file for /admin/config endpoints

* chore(deps): update dependency style-loader to v4 (#3703)

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

* Bundle embedded web app

* chore(deps): update typescript-eslint monorepo to v7.7.0

* Bundle embedded web app

* add non-api endpoints to new router

* add set federation enabled

* add set federation private

* chore(tests): attempt to clean up test flakiness (#3710)

* chore(deps): update dependency @types/react to v18.2.79

* add show federation engagement

* add set federation username

* add set federation go live message

* add set federation blocked domains

* add set discord notification configuration

* add set browser notification configuration

* add prometheus endpoint

* add send federation message

* add get federation activities

* add indie auth documentation

* add changes to indie auth server

* Bundle embedded web app

* add fediverse auth

* add spam protection and slur filter

* Commit screenshots

* fix bug with hls endpoint

* Add effect to set media session metadata (#3713)

* Bundle embedded web app

* chore(deps): update dependency sass-loader to v14.2.1

* Bundle embedded web app

* Commit screenshots

* fix(deps): update nextjs monorepo to v14.2.2

* Bundle embedded web app

* Commit screenshots

* fix(deps): update dependency react-virtuoso to v4.7.9

* Bundle embedded web app

* chore(deps): update dependency cypress to v13.8.0

* Bundle embedded web app

* Commit screenshots

* chore(deps): lock file maintenance

* Bundle embedded web app

* add options requests and reformat operationIds

* chore(go): update to go 1.22 (#3708)

* chore(go): update to go 1.22

* fix: install go before running codeql to fix autobild

* chore(test): explicitly set base crosscompile image

* fix(test): do not point at image with incorrect version of Go

* chore: troubleshoot js autoformating in workflow

* Commit screenshots

* add wildcard to index path

* give /admin/ routes precedence

* fix(deps): update dependency @fontsource/poppins to v5.0.14

* Bundle embedded web app

* Bump formidable and artillery in /test/load (#3718)

Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together.

Removes `formidable`

Updates `artillery` from 2.0.2 to 2.0.10
- [Release notes](https://github.com/artilleryio/artillery/releases)
- [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10)

---
updated-dependencies:
- dependency-name: formidable
  dependency-type: indirect
- dependency-name: artillery
  dependency-type: direct:production
...

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

* Commit screenshots

* chore(deps): update peter-evans/create-or-update-comment digest to da12db3

* fix(deps): update dependency react-virtuoso to v4.7.10

* add verbose logging and update handler precedence

* Bundle embedded web app

* Commit screenshots

* chore(deps): update golangci/golangci-lint-action action to v5 (#3722)

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

* chore(deps): update typescript-eslint monorepo to v7.7.1

* Bundle embedded web app

* Commit screenshots

* chore(deps): update dependency knip to v5.10.0

* Bundle embedded web app

* add federation routers

* updated comments to pass linter

* fix bug with mount

* fix linting errors

* add router logs to log files

* update emoji dir

* fixed linting error

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com>
Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>
Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com>
Co-authored-by: Vivian Lim  <1565930+vivlim@users.noreply.github.com>
Co-authored-by: vivlim <vivlim@vivl.im>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-01 19:22:27 -07:00
Gabe Kangas
1d49801a27 feat(api): cache thumb and preview in memory for fast retrieval. Help address #3462 2024-05-01 18:56:38 -07:00
Owncast
aa0b74e236 Bundle embedded web app 2024-05-01 12:39:54 +00:00
renovate[bot]
14286f1470 fix(deps): update dependency yaml to v2.4.2 2024-05-01 11:08:56 +00:00
Owncast
a0a40864cc Commit screenshots 2024-05-01 04:11:02 +00:00
Owncast
b583fa67e1 Bundle embedded web app 2024-04-30 09:23:13 +00:00
renovate[bot]
4f43833756 fix(deps): update dependency video.js to v8.12.0 2024-04-30 08:47:44 +00:00
Owncast
c5b1a315ae Bundle embedded web app 2024-04-30 05:16:42 +00:00
renovate[bot]
99dc8fc1c0 chore(deps): update dependency knip to v5.11.0 (#3726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-29 22:10:04 -07:00
Owncast
fc741ba4b6 Commit screenshots 2024-04-30 04:12:25 +00:00
Owncast
2249739f4e Bundle embedded web app 2024-04-30 00:42:40 +00:00
renovate[bot]
35f8e989a6 chore(deps): update react monorepo 2024-04-29 23:28:11 +00:00
Owncast
8bf98289f4 Commit screenshots 2024-04-29 04:10:55 +00:00
Owncast
8ef5c8b940 Bundle embedded web app 2024-04-29 00:12:23 +00:00
renovate[bot]
f4b6ab1a5b chore(deps): update react monorepo 2024-04-28 21:33:23 +00:00
Owncast
a04e953a51 Bundle embedded web app 2024-04-28 21:31:14 +00:00
renovate[bot]
2600e62626 chore(deps): update dependency npm to v10.6.0 2024-04-28 19:42:34 +00:00
Owncast
759c4460da Commit screenshots 2024-04-28 04:16:45 +00:00
Owncast
5b60588cd5 Bundle embedded web app 2024-04-27 22:23:59 +00:00
renovate[bot]
fe25271c53 fix(deps): update nextjs monorepo to v14.2.3 2024-04-27 19:53:28 +00:00
Owncast
94ebf11779 Bundle embedded web app 2024-04-27 08:38:41 +00:00
renovate[bot]
94fb37c445 fix(deps): update workbox monorepo to v7.1.0 2024-04-27 04:59:04 +00:00
Owncast
f642ba4f15 Commit screenshots 2024-04-27 04:10:09 +00:00
Owncast
7b108a5489 Bundle embedded web app 2024-04-27 01:44:33 +00:00
renovate[bot]
adb39f382c chore(deps): update dependency cypress to v13.8.1 2024-04-26 23:26:33 +00:00
Owncast
e140f82f00 Bundle embedded web app 2024-04-26 13:21:24 +00:00
renovate[bot]
d39e02811a chore(deps): update dependency knip to v5.10.0 2024-04-26 11:16:39 +00:00
Owncast
e6c974601e Commit screenshots 2024-04-26 04:10:41 +00:00
Owncast
d390b0722d Bundle embedded web app 2024-04-25 21:50:09 +00:00
renovate[bot]
14a4808f9a chore(deps): update typescript-eslint monorepo to v7.7.1 2024-04-25 19:32:21 +00:00
renovate[bot]
c9f50b51a9 chore(deps): update golangci/golangci-lint-action action to v5 (#3722)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-25 08:31:57 -07:00
Owncast
95bb90b6ef Commit screenshots 2024-04-25 04:11:42 +00:00
Owncast
23435c554b Bundle embedded web app 2024-04-24 17:42:37 +00:00
renovate[bot]
a6ce15727e fix(deps): update dependency react-virtuoso to v4.7.10 2024-04-24 13:58:33 +00:00
renovate[bot]
5dbf55bfc7 chore(deps): update peter-evans/create-or-update-comment digest to da12db3 2024-04-24 07:42:04 +00:00
Owncast
708b5b2afc Commit screenshots 2024-04-24 04:10:30 +00:00
dependabot[bot]
a33b2d13b6 Bump formidable and artillery in /test/load (#3718)
Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together.


Removes `formidable`

Updates `artillery` from 2.0.2 to 2.0.10
- [Release notes](https://github.com/artilleryio/artillery/releases)
- [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10)

---
updated-dependencies:
- dependency-name: formidable
  dependency-type: indirect
- dependency-name: artillery
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-23 12:48:16 -07:00
Owncast
983848d706 Bundle embedded web app 2024-04-23 19:00:51 +00:00
renovate[bot]
1d25bd703d fix(deps): update dependency @fontsource/poppins to v5.0.14 2024-04-23 17:22:03 +00:00
Owncast
b2a7d81d12 Commit screenshots 2024-04-23 04:11:37 +00:00
Gabe Kangas
2acbda625b chore: troubleshoot js autoformating in workflow 2024-04-22 18:11:31 -07:00
Gabe Kangas
439da013d8 chore(go): update to go 1.22 (#3708)
* chore(go): update to go 1.22

* fix: install go before running codeql to fix autobild

* chore(test): explicitly set base crosscompile image

* fix(test): do not point at image with incorrect version of Go
2024-04-22 13:23:52 -07:00
Owncast
ac0204104d Bundle embedded web app 2024-04-22 11:48:06 +00:00
renovate[bot]
4767f7f615 chore(deps): lock file maintenance 2024-04-22 11:42:27 +00:00
Owncast
7e30ed3a1f Commit screenshots 2024-04-22 04:10:42 +00:00
Owncast
1349e5cc44 Bundle embedded web app 2024-04-22 03:54:24 +00:00
renovate[bot]
a5442f8723 chore(deps): update dependency cypress to v13.8.0 2024-04-22 01:15:55 +00:00
Owncast
09029e1ccd Bundle embedded web app 2024-04-21 10:43:54 +00:00
renovate[bot]
9616d69158 fix(deps): update dependency react-virtuoso to v4.7.9 2024-04-21 08:16:58 +00:00
Owncast
6eff5f2ceb Commit screenshots 2024-04-21 04:11:22 +00:00
Owncast
72b2598e89 Bundle embedded web app 2024-04-21 03:59:49 +00:00
renovate[bot]
a3c457363e fix(deps): update nextjs monorepo to v14.2.2 2024-04-21 00:25:12 +00:00
Owncast
e40ba1d725 Commit screenshots 2024-04-20 04:10:20 +00:00
Owncast
7d42f01ecb Bundle embedded web app 2024-04-20 01:32:14 +00:00
renovate[bot]
984f5bd562 chore(deps): update dependency sass-loader to v14.2.1 2024-04-19 21:08:33 +00:00
Owncast
65e1a4fc3f Bundle embedded web app 2024-04-19 21:07:12 +00:00
mahmed2000
56eef2e601 Add effect to set media session metadata (#3713) 2024-04-19 14:01:50 -07:00
Owncast
8dd43ea6cc Commit screenshots 2024-04-19 04:21:00 +00:00
Owncast
82271a9b08 Bundle embedded web app 2024-04-19 00:09:04 +00:00
renovate[bot]
288219d40c chore(deps): update dependency @types/react to v18.2.79 2024-04-18 22:12:23 +00:00
Gabe Kangas
9b569f3293 chore(tests): attempt to clean up test flakiness (#3710) 2024-04-18 15:11:06 -07:00
Owncast
fec0e9d11f Bundle embedded web app 2024-04-18 19:59:12 +00:00
renovate[bot]
cd8cf2fc7a chore(deps): update typescript-eslint monorepo to v7.7.0 2024-04-18 19:35:52 +00:00
Owncast
304652047d Bundle embedded web app 2024-04-18 19:34:18 +00:00
renovate[bot]
52243fda36 chore(deps): update dependency style-loader to v4 (#3703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-18 12:27:31 -07:00
Owncast
47ea42d7f2 Bundle embedded web app 2024-04-18 15:28:43 +00:00
renovate[bot]
30a008d85b fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-18 08:23:18 -07:00
Owncast
c6570edfa4 Bundle embedded web app 2024-04-18 15:10:34 +00:00
renovate[bot]
9fa761b130 chore(deps): update dependency @types/video.js to v7.3.58 (#3705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-18 08:04:51 -07:00
renovate[bot]
4ac08252c1 fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 2024-04-18 10:18:31 +00:00
Gabe Kangas
799e880718 chore(tests): retry cypress tests on failure 2024-04-17 22:10:39 -07:00
Owncast
201689cb66 Commit screenshots 2024-04-18 04:10:59 +00:00
Vivian Lim ⭐
f81e8dcda7 Mute the 'stream ended' clip's audio (#3630)
* Mute the 'stream ended' clip's audio

The 'stream ended' clip plays at the at the end of every stream broadcast using owncast.
It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter)
This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment.
As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR.

This issue is discussed in more detail in #1965.

Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio.

Specifically, I used this ffmpeg command:
```
ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts
```

There are no other modifications to the clip.

* Commit updated API documentation

* feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached

* Fix conflict

* force add new offline file

---------

Co-authored-by: vivlim <vivlim@vivl.im>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-04-17 11:44:19 -07:00
mahmed2000
d3b0cb261a Change fediAuth message to be more succinct (#3696)
* Change fediAuth message to be more succint

* Update controllers/auth/fediverse/fediverse.go

for -> from

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-04-17 11:01:32 -07:00
Owncast
3fd18a73ae Commit screenshots 2024-04-17 04:12:19 +00:00
Owncast
6c02683122 Bundle embedded web app 2024-04-16 12:53:44 +00:00
renovate[bot]
26f602a6a5 chore(deps): update dependency @types/react to v18.2.78 2024-04-16 09:44:05 +00:00
Owncast
4380b6c8d9 Bundle embedded web app 2024-04-16 09:42:45 +00:00
renovate[bot]
5a9075d017 chore(deps): update dependency @types/markdown-it to v14.0.1 2024-04-16 08:21:47 +00:00
Owncast
e059c6bcdf Commit screenshots 2024-04-16 04:11:19 +00:00
Owncast
0b93575209 Bundle embedded web app 2024-04-16 03:09:06 +00:00
renovate[bot]
07b5f3b96f fix(deps): update nextjs monorepo to v14.2.1 2024-04-15 22:38:08 +00:00
Owncast
75bab43954 Bundle embedded web app 2024-04-15 18:45:22 +00:00
renovate[bot]
717dd67ffc fix(deps): update nextjs monorepo to v14.2.0 2024-04-15 17:02:11 +00:00
Owncast
a7922c1721 Bundle embedded web app 2024-04-15 17:00:28 +00:00
renovate[bot]
dc742e3d10 fix(deps): update codemirror 2024-04-15 11:59:19 +00:00
Owncast
83ed34d422 Bundle embedded web app 2024-04-15 11:57:36 +00:00
renovate[bot]
1967da067e chore(deps): update dependency sass-loader to v14.2.0 2024-04-15 06:40:43 +00:00
Owncast
b7cd4b6323 Commit screenshots 2024-04-15 04:24:19 +00:00
Owncast
3a11e5a9ab Bundle embedded web app 2024-04-15 03:59:22 +00:00
renovate[bot]
fc997fd49b chore(deps): update dependency sass to v1.75.0 2024-04-15 02:25:22 +00:00
Owncast
3535823e4d Bundle embedded web app 2024-04-15 02:23:55 +00:00
renovate[bot]
f626dbafe0 chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-14 19:18:36 -07:00
Owncast
cb3d7ea46e Bundle embedded web app 2024-04-15 02:00:43 +00:00
renovate[bot]
0262b449c2 chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-14 18:55:16 -07:00
Owncast
ecd68e4d4b Bundle embedded web app 2024-04-15 01:34:25 +00:00
renovate[bot]
6afa3ab832 chore(deps): update dependency @types/react to v18.2.77 2024-04-15 01:29:00 +00:00
Owncast
5762e91a7c Bundle embedded web app 2024-04-15 01:12:22 +00:00
mahmed2000
5a145eb407 Fixes for aria-live bugs (#3694)
* make the aria-live text adhere to the last message's username

* Wrap lastMessage in an Interweave to handle pre-encoded characters properly

---------

Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>
2024-04-14 18:06:29 -07:00
Owncast
1d3e52d2bb Bundle embedded web app 2024-04-14 22:48:24 +00:00
mahmed2000
1a5e7cb113 Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685)
Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>
2024-04-14 15:41:39 -07:00
Owncast
aa4a3024d9 Bundle embedded web app 2024-04-14 20:17:11 +00:00
renovate[bot]
06a40a346e chore(deps): update dependency cypress to v13.7.3 2024-04-14 19:49:39 +00:00
Owncast
59dc83a02a Bundle embedded web app 2024-04-14 19:47:56 +00:00
mahmed2000
57135960cb prevent css-loader v7 renaming default to _default, needed for storybook (#3692)
Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>
2024-04-14 12:40:54 -07:00
Owncast
12a6ebed54 Bundle embedded web app 2024-04-14 14:17:48 +00:00
renovate[bot]
16eb1754c7 chore(deps): update dependency typescript to v5.4.5 2024-04-14 10:18:21 +00:00
Owncast
cd06207866 Bundle embedded web app 2024-04-14 10:16:56 +00:00
renovate[bot]
f38d7bb6c8 chore(deps): update dependency knip to v5.9.4 2024-04-14 10:11:24 +00:00
Owncast
ec85a0f264 Bundle embedded web app 2024-04-14 07:33:27 +00:00
renovate[bot]
dc98ac0fe4 chore(deps): update dependency npm to v10.5.2 2024-04-14 04:42:58 +00:00
Owncast
371a42c49d Commit screenshots 2024-04-14 04:25:23 +00:00
Owncast
d9f22f99b1 Bundle embedded web app 2024-04-14 00:22:43 +00:00
renovate[bot]
10147cdf9f chore(deps): update dependency @types/node to v20.12.7 (#3688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-13 17:16:21 -07:00
Owncast
95819ca1a5 Bundle embedded web app 2024-04-14 00:02:41 +00:00
renovate[bot]
f7906cd7ce chore(deps): update dependency css-loader to v7.1.1 (#3691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-13 16:55:23 -07:00
Owncast
859ff3f082 Bundle embedded web app 2024-04-13 20:59:19 +00:00
mahmed2000
9c3a4acb16 Change tag to self-closing since the linter complains otherwise (#3690)
Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>
2024-04-13 13:51:43 -07:00
Owncast
921f4f9e4c Commit screenshots 2024-04-13 04:10:16 +00:00
Gabe Kangas
30d51d81ac Allow react/no-danger 2024-04-12 10:20:06 -07:00
Owncast
3e1cd98e5f Commit screenshots 2024-04-12 04:10:40 +00:00
Jeet Chawda
39078babbe stream offline status embed updated (#3684) 2024-04-11 19:57:25 -07:00
Owncast
3cafe0533c Bundle embedded web app 2024-04-12 01:53:39 +00:00
renovate[bot]
2731b2a26e chore(deps): update dependency @types/react to v18.2.75 (#3686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-11 18:48:20 -07:00
Owncast
ac69fc38b0 Bundle embedded web app 2024-04-12 01:31:52 +00:00
renovate[bot]
e604d52f64 chore(deps): update typescript-eslint monorepo to v7.6.0 2024-04-11 22:51:26 +00:00
Owncast
7c11c91324 Bundle embedded web app 2024-04-11 22:49:34 +00:00
renovate[bot]
2c6bba025c chore(deps): update dependency css-loader to v7.1.0 2024-04-11 19:47:06 +00:00
Owncast
87dbb58711 Commit screenshots 2024-04-11 04:11:18 +00:00
Owncast
aa9d799128 Bundle embedded web app 2024-04-10 20:21:21 +00:00
Owncast
f8a3d0559b Commit updated Storybook stories 2024-04-10 20:19:25 +00:00
mahmed2000
de8bc8d41b Fix for copying stream key without revealing it only copies asterisks (#3663)
* asterisk copy fix for #3460

* rename text to keys for consistency + linting fix

* make onCopy spawn an antd message directly, remove redundant copyText function

---------

Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>
2024-04-10 13:15:53 -07:00
renovate[bot]
9bbb09c911 chore(deps): update tj-actions/changed-files action to v44 (#3679)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 12:35:43 -07:00
Owncast
e50e4473dd Bundle embedded web app 2024-04-10 15:18:38 +00:00
renovate[bot]
4b52800061 chore(deps): update dependency css-loader to v7 (#3670)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 08:13:06 -07:00
Owncast
c618fb0a4e Bundle embedded web app 2024-04-10 14:37:39 +00:00
renovate[bot]
ecdfd977dd fix(deps): update dependency @codemirror/language-data to v6.5.0 2024-04-10 09:53:30 +00:00
renovate[bot]
92aa873365 chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b 2024-04-10 05:33:12 +00:00
Owncast
e6e73d1750 Bundle embedded web app 2024-04-10 05:32:15 +00:00
Gabe Kangas
a450e62397 Optionally disable chat rate limiter and add optional chat slur/language filter (#3681)
* feat(chat): basic profanity filter. For #3139

* feat(chat): add setting for disabling chat spam protection. Closes #3523

* feat(chat): wire up the new chat slur filter to admin and chat. Closes #3139
2024-04-09 22:25:41 -07:00
Owncast
04eaf8c20e Bundle embedded web app 2024-04-10 04:15:02 +00:00
Owncast
a7134edafb Commit screenshots 2024-04-10 04:10:32 +00:00
renovate[bot]
7837c7656c fix(deps): update dependency react-virtuoso to v4.7.8 2024-04-10 04:09:42 +00:00
Owncast
5792343eef Bundle embedded web app 2024-04-10 02:23:43 +00:00
Owncast
c066cd9035 Bundle embedded web app 2024-04-10 01:58:24 +00:00
Owncast
9e533498a3 Bundle embedded web app 2024-04-10 01:57:05 +00:00
Gabe Kangas
68645ab8e7 Bump version number 2024-04-09 18:56:31 -07:00
Owncast
cd3015466e Bundle embedded web app 2024-04-10 01:51:30 +00:00
renovate[bot]
91788c9087 chore(deps): update chromaui/action action to v11 (#3666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 18:25:55 -07:00
renovate[bot]
a02e9a5601 chore(deps): update dependency @types/markdown-it to v14 (#3668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 18:25:22 -07:00
renovate[bot]
a1a879a768 chore(deps): update nick-fields/retry action to v3 (#3678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 18:23:40 -07:00
renovate[bot]
e3c93d9c59 chore(deps): update dependency knip to v5 (#3672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 18:22:43 -07:00
renovate[bot]
58e11d4880 chore(deps): update dependency chromatic to v11 (#3669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 18:21:53 -07:00
renovate[bot]
568b9cace4 chore(deps): update dependency less-loader to v12 (#3673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 18:21:21 -07:00
renovate[bot]
dcba3818c6 chore(deps): update typescript-eslint monorepo to v7 (#3680)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 18:20:47 -07:00
renovate[bot]
50ee6426b6 chore(deps): update dependency sass-loader to v14 (#3674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 18:20:13 -07:00
renovate[bot]
a06db37cd9 fix(deps): update module golang.org/x/mod to v0.17.0 2024-04-09 16:18:22 +00:00
renovate[bot]
2d03ea5691 fix(deps): update module golang.org/x/net to v0.24.0 2024-04-09 13:52:36 +00:00
renovate[bot]
9c973f3d5b fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 2024-04-09 10:14:48 +00:00
renovate[bot]
f4cae0f1dd fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 2024-04-09 06:39:54 +00:00
Owncast
db0ef04127 Bundle embedded web app 2024-04-09 06:38:39 +00:00
renovate[bot]
43e18267b6 chore(deps): update dependency @types/node to v20.12.5 2024-04-09 04:17:47 +00:00
Owncast
50d6443a13 Commit screenshots 2024-04-09 04:12:54 +00:00
Owncast
d7bee391d6 Bundle embedded web app 2024-04-09 01:33:07 +00:00
renovate[bot]
75b4feddeb chore(deps): lock file maintenance (#3662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-08 18:20:01 -07:00
renovate[bot]
fd271c23f0 fix(deps): update module github.com/yuin/goldmark to v1.7.1 2024-04-08 22:54:43 +00:00
Owncast
e0fcce3efb Commit screenshots 2024-04-08 04:10:43 +00:00
Owncast
10cb2e4b5b Bundle embedded web app 2024-04-07 22:07:22 +00:00
renovate[bot]
ec8bfb3e0f chore(deps): update dependency typescript to v5.4.4 2024-04-07 19:28:08 +00:00
Owncast
6ae3167b61 Bundle embedded web app 2024-04-07 13:31:22 +00:00
renovate[bot]
0ee640ed46 chore(deps): update dependency sass to v1.74.1 2024-04-07 10:36:36 +00:00
Owncast
799693d5e8 Bundle embedded web app 2024-04-07 10:35:13 +00:00
renovate[bot]
9f864e2757 chore(deps): update dependency @types/node to v20.12.4 2024-04-07 05:26:19 +00:00
Owncast
e6d5cbc655 Commit screenshots 2024-04-07 04:12:10 +00:00
Owncast
289a046aca Bundle embedded web app 2024-04-07 02:35:01 +00:00
renovate[bot]
4539bbc44d chore(deps): update dependency css-loader to v6.11.0 2024-04-06 21:10:01 +00:00
Owncast
0f1b41b4d1 Bundle embedded web app 2024-04-06 21:08:19 +00:00
renovate[bot]
ef63822e86 chore(deps): update dependency npm to v10.5.1 2024-04-06 18:11:13 +00:00
Owncast
8064c0163b Bundle embedded web app 2024-04-06 18:09:36 +00:00
renovate[bot]
e5533eac0f chore(deps): update dependency @babel/core to v7.24.4 2024-04-06 17:09:53 +00:00
Owncast
e3c85938c2 Bundle embedded web app 2024-04-06 08:31:57 +00:00
renovate[bot]
d7915e1e13 chore(deps): update dependency cypress to v13.7.2 2024-04-06 04:41:02 +00:00
Owncast
462ed806e4 Commit screenshots 2024-04-06 04:11:05 +00:00
Owncast
02729beaa9 Bundle embedded web app 2024-04-06 00:34:34 +00:00
renovate[bot]
09e3bd1f22 chore(deps): update dependency @types/node to v20.12.3 2024-04-05 23:08:19 +00:00
Owncast
a468e1f85d Bundle embedded web app 2024-04-05 15:23:50 +00:00
renovate[bot]
f2af9b5697 chore(deps): update dependency @types/react to v18.2.74 2024-04-05 13:40:15 +00:00
Owncast
46ab21157f Commit screenshots 2024-04-05 04:16:04 +00:00
Owncast
42b39989f8 Commit screenshots 2024-04-04 04:20:44 +00:00
renovate[bot]
892485064b chore(deps): update peter-evans/create-or-update-comment digest to 8d281ec 2024-04-03 06:57:31 +00:00
Owncast
2831addc6f Bundle embedded web app 2024-04-03 04:12:58 +00:00
Owncast
80b0158d40 Commit screenshots 2024-04-03 04:11:31 +00:00
renovate[bot]
81000dc09d fix(deps): update dependency @fontsource/poppins to v5.0.13 2024-04-03 00:58:28 +00:00
Owncast
7bdb5ec4e6 Bundle embedded web app 2024-04-02 10:25:13 +00:00
renovate[bot]
a13f66ddff chore(deps): update dependency @types/node to v20.12.2 2024-04-02 06:43:51 +00:00
Owncast
35cbe5e861 Commit screenshots 2024-04-02 04:20:50 +00:00
Owncast
cb6775ba32 Commit screenshots 2024-04-01 04:15:53 +00:00
Owncast
6391e35524 Commit updated API documentation 2024-03-31 22:51:31 +00:00
Gabe Kangas
9ebfb67ef3 docs: bump openapi spec version 2024-03-31 15:49:57 -07:00
Owncast
4db8bd6e09 Commit screenshots 2024-03-31 04:13:10 +00:00
Owncast
3c8ec0b050 Bundle embedded web app 2024-03-31 01:44:29 +00:00
renovate[bot]
75bdd54eb9 chore(deps): update dependency @types/react to v18.2.73 (#3654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-30 18:38:40 -07:00
Owncast
28368ce202 Bundle embedded web app 2024-03-30 07:17:59 +00:00
renovate[bot]
341b627f97 chore(deps): update dependency @types/react to v18.2.72 2024-03-30 05:08:13 +00:00
Owncast
76a974979f Commit screenshots 2024-03-30 04:10:09 +00:00
Owncast
d9916134b1 Bundle embedded web app 2024-03-29 13:56:30 +00:00
renovate[bot]
1ea2cb2bed chore(deps): update dependency @types/react to v18.2.71 2024-03-29 10:35:31 +00:00
Owncast
dae199d33d Bundle embedded web app 2024-03-29 04:25:17 +00:00
Owncast
583cb1f353 Commit updated Storybook stories 2024-03-29 04:22:55 +00:00
Gabe Kangas
805f96e271 fix(web): resolve the status bar duration string. Fixes #3652 2024-03-28 21:18:28 -07:00
Owncast
afeb04c9ba Commit screenshots 2024-03-29 04:11:54 +00:00
Owncast
172fea46af Bundle embedded web app 2024-03-28 14:52:42 +00:00
renovate[bot]
0f57648a51 chore(deps): update dependency @types/react to v18.2.70 2024-03-28 11:56:05 +00:00
Owncast
b2c44a1af6 Commit screenshots 2024-03-28 04:10:33 +00:00
Owncast
be8e368d7d Commit screenshots 2024-03-27 04:11:13 +00:00
Owncast
7b88fa62d7 Bundle embedded web app 2024-03-27 00:24:47 +00:00
renovate[bot]
ac3cb54309 fix(deps): update dependency sharp to v0.33.3 2024-03-26 21:16:13 +00:00
Owncast
5c6db59aef Bundle embedded web app 2024-03-26 21:14:40 +00:00
renovate[bot]
a939a07c3e fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.21.25 2024-03-26 21:08:05 +00:00
Owncast
23a5a24899 Bundle embedded web app 2024-03-26 20:53:48 +00:00
renovate[bot]
c0253f446a fix(deps): update dependency @uiw/react-codemirror to v4.21.25 2024-03-26 17:04:31 +00:00
Owncast
108a9dce9e Bundle embedded web app 2024-03-26 17:02:48 +00:00
renovate[bot]
756a1822d7 chore(deps): update dependency @types/react to v18.2.69 (#3648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-26 09:54:36 -07:00
Owncast
5946162c1d Commit screenshots 2024-03-26 04:11:12 +00:00
Owncast
677a78dd99 Bundle embedded web app 2024-03-26 02:14:55 +00:00
renovate[bot]
81652fc485 chore(deps): update dependency @types/prop-types to v15.7.12 (#3647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-03-25 19:08:31 -07:00
dependabot[bot]
40942123e6 Bump webpack-dev-middleware from 6.1.1 to 6.1.2 in /web (#3639)
Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 6.1.1 to 6.1.2.
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v6.1.2/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v6.1.1...v6.1.2)

---
updated-dependencies:
- dependency-name: webpack-dev-middleware
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-25 13:14:07 -07:00
dependabot[bot]
cda2178fe6 Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#3629)
Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-25 13:13:43 -07:00
dependabot[bot]
5dae071c00 Bump follow-redirects from 1.15.4 to 1.15.6 in /test/load (#3632)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-25 13:13:27 -07:00
Owncast
cd5e0913e2 Bundle embedded web app 2024-03-25 19:13:25 +00:00
renovate[bot]
7c9c5880bc chore(deps): lock file maintenance (#3645)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-25 12:03:05 -07:00
Owncast
c79a706f38 Bundle embedded web app 2024-03-25 16:13:47 +00:00
renovate[bot]
9d4f21a4be chore(deps): update dependency cypress to v13.7.1 2024-03-25 16:04:54 +00:00
Owncast
875f8e0ee4 Bundle embedded web app 2024-03-25 13:52:52 +00:00
renovate[bot]
81560036ff fix(deps): update dependency @ant-design/icons to v4.8.3 2024-03-25 10:11:02 +00:00
Owncast
6c4201d63b Commit screenshots 2024-03-25 04:11:45 +00:00
Owncast
d93ed6c642 Bundle embedded web app 2024-03-24 06:48:49 +00:00
renovate[bot]
44157ff715 fix(deps): update dependency autoprefixer to v10.4.19 2024-03-24 04:25:34 +00:00
Owncast
7e6f7a6922 Commit screenshots 2024-03-24 04:10:32 +00:00
Owncast
915d191941 Bundle embedded web app 2024-03-24 01:42:37 +00:00
renovate[bot]
086d88b29d chore(deps): update dependency typescript to v5.4.3 2024-03-23 22:37:14 +00:00
Owncast
e74549cd90 Bundle embedded web app 2024-03-23 16:45:41 +00:00
renovate[bot]
9dd38baaaa chore(deps): update dependency @babel/core to v7.24.3 2024-03-23 13:43:13 +00:00
Owncast
2c4bb19b1f Bundle embedded web app 2024-03-23 10:12:56 +00:00
renovate[bot]
d566978273 chore(deps): update dependency @babel/core to v7.24.1 2024-03-23 10:06:58 +00:00
Owncast
f2214ba351 Commit screenshots 2024-03-23 04:11:34 +00:00
Owncast
01cfcac9db Bundle embedded web app 2024-03-23 04:07:09 +00:00
renovate[bot]
e54dadc331 fix(deps): update nextjs monorepo to v14.1.4 2024-03-23 02:40:20 +00:00
Owncast
9e2722b027 Bundle embedded web app 2024-03-22 22:06:57 +00:00
renovate[bot]
24e47879a0 fix(deps): update dependency antd to v4.24.16 2024-03-22 19:31:14 +00:00
Owncast
4004625350 Bundle embedded web app 2024-03-22 15:29:13 +00:00
renovate[bot]
3491adc2fc chore(deps): update dependency @types/node to v20.11.30 2024-03-22 14:09:25 +00:00
Owncast
3067dea1cd Commit screenshots 2024-03-22 04:10:48 +00:00
Owncast
f3456bbd6d Bundle embedded web app 2024-03-21 23:09:39 +00:00
renovate[bot]
6577a72d7d chore(deps): update dependency @types/node to v20.11.29 2024-03-21 20:03:47 +00:00
Owncast
03033802c5 Bundle embedded web app 2024-03-21 16:04:54 +00:00
renovate[bot]
64123c8577 chore(deps): update dependency @types/react to v18.2.67 2024-03-21 14:42:34 +00:00
Owncast
91c9b16279 Bundle embedded web app 2024-03-21 10:01:20 +00:00
renovate[bot]
55be7be9e5 chore(deps): update dependency @types/react to v18.2.66 2024-03-21 09:55:43 +00:00
Owncast
71fc4ed3d2 Bundle embedded web app 2024-03-21 07:38:04 +00:00
renovate[bot]
0be271b81b fix(deps): update dependency @ant-design/icons to v4.8.2 2024-03-21 05:17:54 +00:00
Owncast
e01576c5d4 Commit screenshots 2024-03-21 04:11:58 +00:00
renovate[bot]
ad1ec85f97 chore(deps): update peter-evans/create-or-update-comment digest to 5e08535 2024-03-20 08:17:34 +00:00
Owncast
00541f8b30 Commit screenshots 2024-03-20 04:20:46 +00:00
Owncast
849cba7af6 Bundle embedded web app 2024-03-19 07:46:40 +00:00
renovate[bot]
987ab309a9 chore(deps): update dependency eslint-plugin-react to v7.34.1 2024-03-19 07:40:08 +00:00
Owncast
7b730a2c8f Commit screenshots 2024-03-19 04:10:49 +00:00
Owncast
a0189b988d Bundle embedded web app 2024-03-18 15:16:12 +00:00
renovate[bot]
46d59a93ea chore(deps): lock file maintenance 2024-03-18 15:09:12 +00:00
Owncast
362e6b4294 Bundle embedded web app 2024-03-18 11:00:20 +00:00
renovate[bot]
f3a54157a1 chore(deps): update dependency @types/node to v20.11.28 2024-03-18 08:03:02 +00:00
Owncast
3ab8e4bb0e Commit screenshots 2024-03-18 04:10:30 +00:00
Owncast
43c383059a Commit screenshots 2024-03-17 04:11:15 +00:00
Owncast
f2f809bd68 Bundle embedded web app 2024-03-17 01:43:39 +00:00
renovate[bot]
1bde1fbf50 chore(deps): update dependency sass to v1.72.0 2024-03-16 21:58:06 +00:00
Owncast
0cd67c6500 Bundle embedded web app 2024-03-16 21:56:48 +00:00
renovate[bot]
9f30855029 chore(deps): update dependency cypress to v13.7.0 2024-03-16 19:35:39 +00:00
Owncast
4916f027e4 Bundle embedded web app 2024-03-16 19:34:46 +00:00
renovate[bot]
2aad414242 chore(deps): update dependency @types/node to v20.11.27 2024-03-16 16:19:52 +00:00
Owncast
a918a24686 Commit screenshots 2024-03-16 04:11:11 +00:00
Owncast
c8d8ea52aa Bundle embedded web app 2024-03-15 11:57:51 +00:00
renovate[bot]
7fc0a96354 fix(deps): update dependency date-fns to v3.4.0 2024-03-15 11:52:12 +00:00
Owncast
9d7897f02f Commit screenshots 2024-03-15 04:12:01 +00:00
Owncast
89de15681c Bundle embedded web app 2024-03-15 03:18:25 +00:00
renovate[bot]
16b6d72053 chore(deps): update dependency @types/react to v18.2.65 2024-03-15 02:04:20 +00:00
Owncast
37bc8e96dc Bundle embedded web app 2024-03-15 02:03:11 +00:00
renovate[bot]
09c033592e chore(deps): update dependency @types/node to v20.11.26 2024-03-14 23:22:18 +00:00
Owncast
e99b87e0c5 Commit screenshots 2024-03-14 04:11:52 +00:00
renovate[bot]
f863bc9b59 chore(deps): update peter-evans/create-or-update-comment digest to 5add1d7 2024-03-13 06:05:28 +00:00
Owncast
f3efc77cc4 Commit screenshots 2024-03-13 04:11:26 +00:00
Owncast
17245bf4ec Commit screenshots 2024-03-12 04:11:46 +00:00
Owncast
ee1e6a4897 Bundle embedded web app 2024-03-11 09:29:30 +00:00
renovate[bot]
160462de6e chore(deps): lock file maintenance 2024-03-11 09:23:53 +00:00
Owncast
044de59451 Commit screenshots 2024-03-11 04:10:41 +00:00
Gabe Kangas
a42071951d feat: add rel-me link attr and enclosing list tags. Closes #3290 2024-03-10 15:48:33 -07:00
Owncast
f84276ac39 Bundle embedded web app 2024-03-10 06:50:29 +00:00
renovate[bot]
03ed9f4875 fix(deps): update nextjs monorepo to v14.1.3 2024-03-10 06:44:24 +00:00
Owncast
eaeb6dbd12 Commit screenshots 2024-03-10 04:10:10 +00:00
Owncast
9f41bd805c Bundle embedded web app 2024-03-10 01:31:56 +00:00
renovate[bot]
874e521333 chore(deps): update dependency typescript to v5.4.2 2024-03-09 21:30:36 +00:00
Owncast
eee9bb5fde Bundle embedded web app 2024-03-09 21:28:56 +00:00
renovate[bot]
b5e0c7a72b chore(deps): update dependency @types/react to v18.2.64 2024-03-09 19:26:29 +00:00
Owncast
73bff6ff0f Bundle embedded web app 2024-03-09 19:25:17 +00:00
renovate[bot]
84192583ed chore(deps): update dependency @types/node to v20.11.25 2024-03-09 17:16:29 +00:00
Owncast
b9f2d6754b Bundle embedded web app 2024-03-09 17:15:24 +00:00
renovate[bot]
e370fe507b fix(deps): update dependency yaml to v2.4.1 2024-03-09 13:15:23 +00:00
Owncast
6b48ffb3c6 Commit screenshots 2024-03-09 04:20:31 +00:00
Owncast
4c15fb324e Bundle embedded web app 2024-03-08 22:51:43 +00:00
renovate[bot]
8985342f1f chore(deps): update dependency @types/react to v18.2.63 (#3624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-08 14:45:46 -08:00
Owncast
3ccce6ac2e Bundle embedded web app 2024-03-08 21:26:13 +00:00
renovate[bot]
9f063b51d6 chore(deps): update dependency mermaid to v10.9.0 2024-03-08 19:31:38 +00:00
renovate[bot]
99ac8ed6a7 fix(deps): update module gopkg.in/evanphx/json-patch.v5 to v5.9.0 2024-03-08 07:05:23 +00:00
Owncast
6e9b6b749a Bundle embedded web app 2024-03-08 07:03:59 +00:00
renovate[bot]
6e31882e86 fix(deps): update nextjs monorepo to v14.1.2 2024-03-08 05:04:38 +00:00
Owncast
e56a0938bc Commit screenshots 2024-03-08 04:30:39 +00:00
Owncast
59c85d17fd Bundle embedded web app 2024-03-08 01:06:59 +00:00
Gabe Kangas
70fdc2c642 fix(web): remove rounded corner in video embed 2024-03-07 17:00:32 -08:00
Owncast
0be0c36c86 Bundle embedded web app 2024-03-07 22:49:25 +00:00
renovate[bot]
9ccb3d00a3 chore(deps): update dependency @types/react to v18.2.62 2024-03-07 18:31:40 +00:00
Owncast
e26ee1259c Bundle embedded web app 2024-03-07 18:30:25 +00:00
renovate[bot]
72a8dfab67 chore(deps): update dependency eslint-plugin-react to v7.34.0 2024-03-07 18:22:55 +00:00
renovate[bot]
bf3194fddb fix(deps): update module golang.org/x/net to v0.22.0 2024-03-07 13:21:55 +00:00
renovate[bot]
b6b7f1a8d5 fix(deps): update module golang.org/x/mod to v0.16.0 2024-03-07 09:43:50 +00:00
Owncast
315b1f2b77 Bundle embedded web app 2024-03-07 09:41:58 +00:00
renovate[bot]
327a4cc5ce fix(deps): update dependency @fontsource/poppins to v5.0.12 2024-03-07 06:03:30 +00:00
Owncast
053d7f5b4c Bundle embedded web app 2024-03-07 06:02:17 +00:00
Gabe Kangas
46d0be3e6d fix(web): fix incorrect image 2024-03-06 21:55:49 -08:00
Owncast
b2604115a4 Bundle embedded web app 2024-03-07 05:25:12 +00:00
renovate[bot]
44eafe69ac fix(deps): update dependency date-fns to v3 (#3619)
* fix(deps): update dependency date-fns to v3

* fix(deps): update usage of date-fns format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-03-06 21:13:13 -08:00
Owncast
63964f046e Commit screenshots 2024-03-07 04:10:59 +00:00
renovate[bot]
564a48e600 fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.2 2024-03-07 02:15:50 +00:00
renovate[bot]
34f5fd0114 fix(deps): update module github.com/aws/aws-sdk-go to v1.50.33 2024-03-06 23:03:56 +00:00
renovate[bot]
90895ac68f fix(deps): update module mvdan.cc/xurls to v2 (#3621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-06 15:02:57 -08:00
renovate[bot]
aba23ddb50 chore(deps): update peter-evans/create-or-update-comment digest to cddb636 2024-03-06 06:12:12 +00:00
Owncast
d73084a7da Bundle embedded web app 2024-03-06 06:11:33 +00:00
Riya Bhatia
1ddba0118e State-changed events modified to be in aria live region (#3469)
* Made changes to chatcontainer, still facing issue with only reading out the newest message

* Added accessibility measure for chat to allow for latest message to be read by screen reader

* Fixed linting errors

* Fixed linting errors pt. 2

* Fixed linting errors, the finale?

* Ok this is actually it i promise

* add username to be read out by screenreader

* fix string concat linter issue

* fix linting indexing issue

* remove test mp4 files

---------

Co-authored-by: melghali <melghali@andrew.cmu.edu>
2024-03-05 22:02:58 -08:00
Aziz Rmadi
45436162bd Hide chat button on mobile when chat is disabled (#3616) 2024-03-05 21:58:17 -08:00
Owncast
8ec4182699 Commit screenshots 2024-03-06 04:11:12 +00:00
Max
96e73576af set content-type for customjavascript (#3612)
* set content-type for customjavascript

* change content-type in order to comply with RFC 9239
2024-03-04 21:40:57 -08:00
Owncast
8491d99eba Commit screenshots 2024-03-05 04:11:08 +00:00
Owncast
65a8a9c50a Bundle embedded web app 2024-03-04 16:23:57 +00:00
renovate[bot]
bcba7965dc chore(deps): lock file maintenance (#3613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 08:18:28 -08:00
Owncast
f85da19f92 Bundle embedded web app 2024-03-04 13:05:09 +00:00
renovate[bot]
6a4bfda228 fix(deps): update nextjs monorepo to v14.1.1 2024-03-04 09:53:29 +00:00
Owncast
a8d4d486e4 Bundle embedded web app 2024-03-04 09:51:58 +00:00
renovate[bot]
9d8128306f chore(deps): update dependency @types/video.js to v7.3.57 2024-03-04 06:06:22 +00:00
Owncast
85784f1883 Commit screenshots 2024-03-04 04:29:09 +00:00
renovate[bot]
b604206897 chore(deps): update peter-evans/repository-dispatch action to v3 (#3606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 18:58:33 -08:00
renovate[bot]
0b8c93a934 chore(deps): update golangci/golangci-lint-action action to v4 (#3605)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 18:46:07 -08:00
renovate[bot]
8c13a81be7 chore(deps): update actions/cache action to v4 (#3608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 18:45:28 -08:00
Owncast
c6780bd359 Bundle embedded web app 2024-03-03 19:25:11 +00:00
renovate[bot]
2d92fa4e0a chore(deps): update dependency @types/node to v20.11.24 2024-03-03 16:42:35 +00:00
Owncast
abba12fe23 Bundle embedded web app 2024-03-03 16:41:51 +00:00
renovate[bot]
8d1531eac4 chore(deps): update dependency @types/react to v18.2.61 2024-03-03 13:23:25 +00:00
Owncast
dffb23c0c2 Bundle embedded web app 2024-03-03 10:24:31 +00:00
renovate[bot]
282948651c chore(deps): update dependency npm to v10.5.0 2024-03-03 06:04:46 +00:00
Owncast
78df28ceee Commit screenshots 2024-03-03 04:40:30 +00:00
Owncast
5b2a30d442 Bundle embedded web app 2024-03-03 03:22:27 +00:00
renovate[bot]
ec9ef0091d chore(deps): update dependency @types/node to v20.11.22 2024-03-03 03:16:34 +00:00
Owncast
d65c2a1e8a Bundle embedded web app 2024-03-02 22:00:26 +00:00
renovate[bot]
41221e32e4 fix(deps): update dependency chart.js to v4.4.2 2024-03-02 18:13:39 +00:00
Owncast
5564d50b0c Bundle embedded web app 2024-03-02 15:49:16 +00:00
renovate[bot]
756688c188 chore(deps): update dependency @babel/core to v7.24.0 2024-03-02 13:28:09 +00:00
Owncast
33149d6ab8 Commit screenshots 2024-03-02 04:10:30 +00:00
renovate[bot]
a7f7ce1d65 fix(deps): update module github.com/stretchr/testify to v1.9.0 2024-03-01 18:01:55 +00:00
renovate[bot]
446ee8e27a fix(deps): update module github.com/prometheus/client_golang to v1.19.0 2024-03-01 16:34:40 +00:00
renovate[bot]
28f1094b4b fix(deps): update module github.com/mattn/go-sqlite3 to v1.14.22 2024-03-01 16:32:58 +00:00
Owncast
386d8e476a Bundle embedded web app 2024-03-01 12:40:29 +00:00
renovate[bot]
17e073cd9d chore(deps): update dependency @types/react to v18.2.60 2024-03-01 10:54:10 +00:00
renovate[bot]
06dedec90a fix(deps): update module github.com/aws/aws-sdk-go to v1.50.29 2024-03-01 06:59:27 +00:00
Owncast
42ead2d6fe Commit screenshots 2024-03-01 04:13:37 +00:00
Owncast
ccd8d6e1b6 Bundle embedded web app 2024-03-01 01:33:21 +00:00
renovate[bot]
428c9669a6 fix(deps): update dependency yaml to v2.4.0 2024-03-01 01:27:51 +00:00
Owncast
6b753d6185 Bundle embedded web app 2024-02-29 21:55:40 +00:00
renovate[bot]
86939e58f9 chore(deps): update dependency @types/react to v18.2.59 2024-02-29 19:52:15 +00:00
Owncast
f772d6b355 Commit screenshots 2024-02-29 04:11:31 +00:00
Owncast
64a8e6ed3c Bundle embedded web app 2024-02-28 13:03:20 +00:00
renovate[bot]
384b35a8c4 fix(deps): update dependency @uiw/react-codemirror to v4.21.24 2024-02-28 11:16:19 +00:00
renovate[bot]
af544886f1 chore(deps): update peter-evans/create-or-update-comment digest to 4e4c9d2 2024-02-28 07:06:26 +00:00
Owncast
874e178fb1 Commit screenshots 2024-02-28 04:10:42 +00:00
Owncast
fb81fa21a2 Bundle embedded web app 2024-02-28 03:42:33 +00:00
renovate[bot]
3300f7f9fc fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.21.24 2024-02-28 02:05:43 +00:00
dependabot[bot]
162da792e4 Bump es5-ext from 0.10.53 to 0.10.63 in /test/automated/api (#3603)
Bumps [es5-ext](https://github.com/medikoo/es5-ext) from 0.10.53 to 0.10.63.
- [Release notes](https://github.com/medikoo/es5-ext/releases)
- [Changelog](https://github.com/medikoo/es5-ext/blob/main/CHANGELOG.md)
- [Commits](https://github.com/medikoo/es5-ext/compare/v0.10.53...v0.10.63)

---
updated-dependencies:
- dependency-name: es5-ext
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-26 22:33:19 -08:00
Owncast
13cec2888c Commit screenshots 2024-02-27 04:10:56 +00:00
Owncast
40c7066c28 Bundle embedded web app 2024-02-27 01:01:35 +00:00
renovate[bot]
3b8b7817e4 chore(deps): update dependency eslint to v8.57.0 2024-02-26 21:47:17 +00:00
Owncast
fdb3bd1b90 Bundle embedded web app 2024-02-26 15:57:35 +00:00
renovate[bot]
b8c780741b chore(deps): lock file maintenance 2024-02-26 15:52:24 +00:00
renovate[bot]
454c39b2f1 fix(deps): update dependency sanitize-html to v2.12.1 2024-02-26 13:23:30 +00:00
Owncast
e9f5c2c4b0 Bundle embedded web app 2024-02-26 13:22:46 +00:00
renovate[bot]
0102ab452e chore(deps): update dependency @types/react to v18.2.58 2024-02-26 10:31:25 +00:00
Owncast
b032607816 Bundle embedded web app 2024-02-26 10:30:45 +00:00
renovate[bot]
56ab1d1ee2 fix(deps): update dependency @uiw/react-codemirror to v4.21.23 2024-02-26 07:13:47 +00:00
Owncast
2b880a930d Commit screenshots 2024-02-26 04:10:42 +00:00
Owncast
37c3329f52 Bundle embedded web app 2024-02-26 03:29:14 +00:00
renovate[bot]
959a50fd5a chore(deps): update dependency cypress to v13.6.6 2024-02-26 02:00:10 +00:00
Owncast
f1508ec3ae Bundle embedded web app 2024-02-26 01:59:28 +00:00
renovate[bot]
8244c5a93c chore(deps): update dependency @types/node to v20.11.20 2024-02-25 21:37:32 +00:00
Owncast
2d5bf4d7d2 Bundle embedded web app 2024-02-25 21:36:14 +00:00
renovate[bot]
e2fdc32028 fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.21.23 (#3600)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-25 13:30:49 -08:00
Owncast
9fc2cb27ef Bundle embedded web app 2024-02-25 21:08:58 +00:00
Gabe Kangas
5ce78fbad4 New offline embed (#3599)
* WIP

* feat(web): add new offline embed view. First step of #2917

* feat(web): support remote fediverse follow flow from embed

* feat(chore): add back offline video embed browser test
2024-02-25 12:52:32 -08:00
Owncast
96c769cf6f Commit screenshots 2024-02-25 04:10:25 +00:00
Owncast
98b5b7cd64 Bundle embedded web app 2024-02-24 18:07:57 +00:00
renovate[bot]
b97301a935 fix(deps): update dependency sanitize-html to v2.12.0 2024-02-24 16:48:40 +00:00
Owncast
f930198430 Bundle embedded web app 2024-02-24 07:12:02 +00:00
renovate[bot]
c7fafec407 chore(deps): update dependency sass to v1.71.1 2024-02-24 04:31:27 +00:00
Owncast
b93e3b420e Commit screenshots 2024-02-24 04:10:59 +00:00
Owncast
4201479395 Bundle embedded web app 2024-02-24 02:27:51 +00:00
renovate[bot]
378263de4d fix(deps): update dependency @codemirror/lang-javascript to v6.2.2 (#3596)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-23 18:22:20 -08:00
Owncast
69ca8c0276 Bundle embedded web app 2024-02-24 00:54:16 +00:00
renovate[bot]
533bab40f9 chore(deps): update dependency cypress to v13.6.5 2024-02-23 22:43:43 +00:00
Owncast
eec723b034 Bundle embedded web app 2024-02-23 17:29:56 +00:00
renovate[bot]
2cc3c4a2a2 chore(deps): update storybook monorepo to v7.6.17 2024-02-23 13:30:03 +00:00
Owncast
c75513931a Commit screenshots 2024-02-23 04:10:34 +00:00
Owncast
675e9be6db Bundle embedded web app 2024-02-23 00:11:33 +00:00
renovate[bot]
792f2d2934 chore(deps): update dependency @types/react to v18.2.57 2024-02-22 21:53:21 +00:00
Owncast
17561ae021 Bundle embedded web app 2024-02-22 07:57:03 +00:00
renovate[bot]
baa411a8e8 fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.21.22 2024-02-22 07:51:55 +00:00
Owncast
d654f6b0e9 Bundle embedded web app 2024-02-22 04:51:15 +00:00
Gabe Kangas
82d0b9c121 fix(web): make video embed player fit entire window. Closes #3587 2024-02-21 20:41:25 -08:00
Owncast
c58240ce53 Commit screenshots 2024-02-22 04:13:32 +00:00
Owncast
9aea00a32a Bundle embedded web app 2024-02-21 12:17:03 +00:00
renovate[bot]
ab71c1393d chore(deps): update dependency eslint-plugin-storybook to v0.8.0 2024-02-21 12:10:23 +00:00
renovate[bot]
cfab3a0550 chore(deps): update peter-evans/create-or-update-comment digest to c79b3ca 2024-02-21 07:00:03 +00:00
Owncast
a944cdd5d2 Bundle embedded web app 2024-02-21 06:58:59 +00:00
renovate[bot]
14af7bd813 fix(deps): update dependency @uiw/react-codemirror to v4.21.22 2024-02-21 04:39:19 +00:00
dependabot[bot]
d10f533597 Bump ip from 1.1.8 to 1.1.9 in /test/load (#3593)
Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9.
- [Commits](https://github.com/indutny/node-ip/compare/v1.1.8...v1.1.9)

---
updated-dependencies:
- dependency-name: ip
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 20:37:38 -08:00
Owncast
b1ee7f3754 Commit screenshots 2024-02-21 04:10:08 +00:00
Owncast
b09c7e4e5d Bundle embedded web app 2024-02-20 10:28:27 +00:00
renovate[bot]
3e6e2135f0 chore(deps): update dependency @types/react to v18.2.56 2024-02-20 07:45:01 +00:00
Owncast
71f3389b7c Commit screenshots 2024-02-20 04:11:52 +00:00
renovate[bot]
76515246d9 fix(deps): update module github.com/jellydator/ttlcache/v3 to v3.2.0 (#3591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-19 16:34:08 -08:00
Owncast
69e6e5d2c9 Bundle embedded web app 2024-02-19 19:22:22 +00:00
renovate[bot]
7341983a61 chore(deps): update dependency sass to v1.71.0 (#3588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-19 11:16:18 -08:00
Owncast
0bc8a7494e Bundle embedded web app 2024-02-19 18:46:56 +00:00
renovate[bot]
2cb6ad370a chore(deps): update dependency @types/node to v20.11.19 2024-02-19 18:41:42 +00:00
Gabe Kangas
d1f5872b5a chore(test): add followers fixture test data 2024-02-19 07:46:48 -08:00
Owncast
fd36b0f4b1 Bundle embedded web app 2024-02-19 13:30:18 +00:00
renovate[bot]
8f2d4dd295 chore(deps): lock file maintenance 2024-02-19 13:19:39 +00:00
Owncast
9f0abd1fb2 Commit screenshots 2024-02-19 04:10:53 +00:00
Owncast
ad8f249eb1 Bundle embedded web app 2024-02-19 03:20:48 +00:00
Gabe Kangas
7b783ac00e fix(admin): fix admin followers pagination. Closes #3510 2024-02-18 19:14:20 -08:00
Gabe Kangas
eb41bc0af3 chore(test): support followers fixture data for testing 2024-02-18 19:14:19 -08:00
Owncast
3b50e87015 Bundle embedded web app 2024-02-19 00:45:32 +00:00
Pratyay Roy
ff3c1a4587 fix: remove autoscroll to readwrite chat embed input field (#3582) 2024-02-18 16:39:24 -08:00
Gabe Kangas
797e464767 fix(webhooks): fix chat user parted webhook creation error. Closes #3524 2024-02-18 16:20:58 -08:00
Gabe Kangas
ebf64dd17d fix(chat): do not send chat join message
If a user is already connected to chat from elsewhere, do not send an
additional chat join message. Closes #3487
2024-02-18 15:49:50 -08:00
Owncast
19f257151e Bundle embedded web app 2024-02-18 20:04:13 +00:00
renovate[bot]
4cc7b997ee chore(deps): update storybook monorepo to v7.6.16 2024-02-18 16:18:54 +00:00
Owncast
43c224111f Bundle embedded web app 2024-02-18 16:17:24 +00:00
renovate[bot]
c8bcd38a38 chore(deps): update dependency @types/node to v20.11.18 2024-02-18 13:11:46 +00:00
Owncast
ba279b26e8 Commit screenshots 2024-02-18 04:10:18 +00:00
renovate[bot]
cbb839c0bf fix(deps): update module golang.org/x/net to v0.21.0 2024-02-17 07:37:48 +00:00
Owncast
da91786e0a Commit screenshots 2024-02-17 04:17:54 +00:00
renovate[bot]
2333c7539d fix(deps): update module golang.org/x/mod to v0.15.0 2024-02-17 01:23:53 +00:00
renovate[bot]
851805af6b fix(deps): update module github.com/yuin/goldmark to v1.7.0 2024-02-16 22:59:51 +00:00
Owncast
8253765df3 Bundle embedded web app 2024-02-16 19:12:54 +00:00
renovate[bot]
3c2c20d6bc chore(deps): update storybook monorepo to v7.6.15 2024-02-16 16:54:00 +00:00
Owncast
f12bbf86c5 Commit screenshots 2024-02-16 04:09:55 +00:00
Owncast
80af34d370 Bundle embedded web app 2024-02-15 15:38:42 +00:00
renovate[bot]
d61006cce0 chore(deps): update dependency @mdx-js/react to v3.0.1 2024-02-15 13:50:39 +00:00
Owncast
05130beb91 Commit screenshots 2024-02-15 04:10:36 +00:00
renovate[bot]
0251314a97 chore(deps): update peter-evans/create-or-update-comment digest to 16e4c42 2024-02-14 06:31:52 +00:00
Owncast
d3c2b7e1bb Commit screenshots 2024-02-14 04:12:23 +00:00
Owncast
6b2baaa6ad Bundle embedded web app 2024-02-14 01:36:30 +00:00
renovate[bot]
e7307fb90e chore(deps): update storybook monorepo to v7.6.14 2024-02-13 21:29:13 +00:00
Owncast
479e37ab27 Bundle embedded web app 2024-02-13 00:52:10 +00:00
renovate[bot]
cbde11be75 fix(deps): update dependency @codemirror/language-data to v6.4.1 2024-02-12 22:48:34 +00:00
Owncast
129e958b14 Commit screenshots 2024-02-12 04:29:57 +00:00
Owncast
6d3ce52348 Bundle embedded web app 2024-02-12 01:58:46 +00:00
renovate[bot]
37a76ea0b1 chore(deps): update dependency @types/node to v20.11.17 2024-02-11 21:50:28 +00:00
Owncast
c3371ded0b Bundle embedded web app 2024-02-11 11:06:33 +00:00
renovate[bot]
e208775805 chore(deps): update storybook monorepo to v7.6.13 2024-02-11 11:01:13 +00:00
Owncast
3c5bc1d89d Commit screenshots 2024-02-11 04:17:11 +00:00
Owncast
84682370da Bundle embedded web app 2024-02-09 16:29:26 +00:00
renovate[bot]
3e86736a04 chore(deps): update typescript-eslint monorepo to v6.21.0 2024-02-09 16:24:02 +00:00
Owncast
b2d6d0f9e4 Bundle embedded web app 2024-02-09 13:11:30 +00:00
renovate[bot]
803132e3ed chore(deps): update dependency @types/react to v18.2.55 2024-02-09 11:02:56 +00:00
Owncast
5c37f2c763 Commit screenshots 2024-02-09 04:10:24 +00:00
Owncast
513bd65d5c Bundle embedded web app 2024-02-08 22:20:41 +00:00
renovate[bot]
c752373472 chore(deps): update dependency @types/react to v18.2.54 2024-02-08 19:47:58 +00:00
Owncast
a7b63503cb Bundle embedded web app 2024-02-08 09:32:02 +00:00
renovate[bot]
31dd1eba5b chore(deps): update dependency @types/react to v18.2.53 2024-02-08 06:49:59 +00:00
Owncast
09ca6dbf73 Commit screenshots 2024-02-08 04:10:05 +00:00
Owncast
e6aca55145 Bundle embedded web app 2024-02-07 19:05:09 +00:00
renovate[bot]
f6767de266 chore(deps): update nextjs monorepo to v14.1.0 (#3439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-07 10:57:31 -08:00
Owncast
b8a1d8b3f6 Bundle embedded web app 2024-02-07 18:35:33 +00:00
Gabe Kangas
b14a7c2f44 Try to fix new next+ant build errors 2024-02-07 10:30:18 -08:00
Owncast
4122929220 Bundle embedded web app 2024-02-07 13:24:10 +00:00
renovate[bot]
697ddc8931 chore(deps): update dependency prettier to v3.2.5 2024-02-07 10:04:27 +00:00
renovate[bot]
e40d1f75b8 chore(deps): update peter-evans/create-or-update-comment digest to 804884b 2024-02-07 06:59:41 +00:00
Owncast
202a545303 Bundle embedded web app 2024-02-07 04:12:49 +00:00
Owncast
af4734ddae Commit screenshots 2024-02-07 04:09:59 +00:00
renovate[bot]
8069ca782f chore(deps): update dependency @types/react to v18.2.52 (#3479)
* chore(deps): update dependency @types/react to v18.2.52

* fix(chat): missing placeholder prop in interface

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-02-06 20:07:31 -08:00
Owncast
3734884201 Bundle embedded web app 2024-02-06 04:07:12 +00:00
Varun Gujarathi
b694be1052 fix(admin): sanitize fediverse username (#3437)
* test: add config federation test

* fix: santize fediverse username

fixes #3424

* refactor: remove commented code

* refactor: change username const to usernameValue

* refactor: use shorthand property

* build: move stories page out of build directory

* fix: allow only alphanumeric chars in username

* fix: filter out special chars in username

Added a regex filter to strip non-alphanumeric chars in username field.

* chore: clean unused fields
2024-02-05 20:00:50 -08:00
Owncast
74e9509844 Bundle embedded web app 2024-02-05 16:48:51 +00:00
renovate[bot]
337e1f96d5 chore(deps): lock file maintenance 2024-02-05 16:42:53 +00:00
Owncast
0cb5c2711c Bundle embedded web app 2024-02-05 13:14:10 +00:00
renovate[bot]
d56d913630 chore(deps): update dependency mermaid to v10.8.0 2024-02-05 10:36:23 +00:00
Owncast
1a55eddc4d Bundle embedded web app 2024-02-05 04:15:50 +00:00
renovate[bot]
d098aa45d5 fix(deps): update dependency react-hotkeys-hook to v4.5.0 (#3539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-04 20:08:35 -08:00
Owncast
eb146d9506 Bundle embedded web app 2024-02-05 01:06:09 +00:00
renovate[bot]
289e8778dd chore(deps): update dependency @types/node to v20.11.16 2024-02-04 22:17:08 +00:00
Owncast
762115eaf1 Bundle embedded web app 2024-02-04 22:16:13 +00:00
renovate[bot]
49d8d1cdd1 chore(deps): update dependency @types/jest to v29.5.12 2024-02-04 19:09:51 +00:00
Owncast
7db0a4c226 Bundle embedded web app 2024-02-04 15:24:31 +00:00
renovate[bot]
e89e0519d6 chore(deps): update dependency @types/node to v20.11.15 2024-02-04 10:32:34 +00:00
Owncast
d55b8b9668 Bundle embedded web app 2024-02-03 21:11:13 +00:00
renovate[bot]
0632d07f58 chore(deps): update dependency @types/node to v20.11.14 2024-02-03 20:07:24 +00:00
Owncast
c4d800b3d2 Bundle embedded web app 2024-02-03 20:06:32 +00:00
renovate[bot]
5fef8928a2 chore(deps): update storybook monorepo to v7.6.12 2024-02-03 15:17:30 +00:00
Owncast
d50326d3d7 Bundle embedded web app 2024-02-03 10:33:01 +00:00
renovate[bot]
46bb17e886 chore(deps): update storybook monorepo to v7.6.11 2024-02-03 10:27:06 +00:00
Owncast
e2c5e87d36 Bundle embedded web app 2024-02-03 08:17:53 +00:00
renovate[bot]
87e4ca2a66 chore(deps): update dependency @types/node to v20.11.13 2024-02-03 03:36:21 +00:00
Owncast
789fdd3e2d Bundle embedded web app 2024-02-03 03:35:27 +00:00
renovate[bot]
b28caa3b4d chore(deps): update dependency css-loader to v6.10.0 2024-02-02 22:34:43 +00:00
Owncast
718e5c90df Bundle embedded web app 2024-02-02 22:32:41 +00:00
renovate[bot]
8c6fdc5dfb chore(deps): update dependency cypress to v13.6.4 2024-02-02 19:25:17 +00:00
Owncast
a2b57556d8 Commit screenshots 2024-02-02 04:11:49 +00:00
Owncast
f14e1e31cf Bundle embedded web app 2024-02-01 21:50:00 +00:00
renovate[bot]
f19936914b chore(deps): update typescript-eslint monorepo to v6.20.0 2024-02-01 19:41:27 +00:00
Owncast
f9b1582923 Commit screenshots 2024-02-01 04:10:53 +00:00
Owncast
5d91824a11 Bundle embedded web app 2024-02-01 01:04:38 +00:00
renovate[bot]
6171bf366a chore(deps): update dependency @types/node to v20.11.10 2024-01-31 22:02:32 +00:00
Owncast
c046b6a136 Bundle embedded web app 2024-01-31 16:14:21 +00:00
renovate[bot]
468527392a fix(deps): update dependency react-virtuoso to v4.6.3 2024-01-31 12:27:47 +00:00
Owncast
eec6fc8a39 Bundle embedded web app 2024-01-31 12:27:00 +00:00
renovate[bot]
4b3dea41d6 chore(deps): update dependency @types/node to v20.11.9 2024-01-31 11:09:19 +00:00
renovate[bot]
a918e96ec0 chore(deps): update peter-evans/create-or-update-comment digest to 3509deb 2024-01-31 08:04:13 +00:00
Owncast
9e529e6ae4 Commit screenshots 2024-01-31 04:25:13 +00:00
Owncast
f9138cf1a0 Bundle embedded web app 2024-01-30 18:14:51 +00:00
renovate[bot]
9209939755 chore(deps): update dependency @types/node to v20.11.8 2024-01-30 16:58:46 +00:00
Owncast
3ae6262135 Commit screenshots 2024-01-30 04:10:13 +00:00
Owncast
36d03fdbac Bundle embedded web app 2024-01-29 12:32:02 +00:00
renovate[bot]
17c7defec7 chore(deps): update dependency @types/node to v20.11.7 2024-01-29 06:03:30 +00:00
Owncast
4c2e7d17e6 Commit screenshots 2024-01-29 04:11:43 +00:00
Owncast
21e4b9d764 Bundle embedded web app 2024-01-28 20:44:24 +00:00
renovate[bot]
c41f549792 chore(deps): update dependency @babel/core to v7.23.9 2024-01-28 17:04:57 +00:00
Owncast
366de5527d Commit screenshots 2024-01-28 04:11:10 +00:00
Owncast
71c050ceb2 Bundle embedded web app 2024-01-28 02:27:28 +00:00
renovate[bot]
cfa9ff90a9 chore(deps): update dependency npm to v10.4.0 2024-01-27 22:38:41 +00:00
Owncast
8cda00e233 Bundle embedded web app 2024-01-27 12:11:59 +00:00
renovate[bot]
b766d3d05e chore(deps): update dependency @types/node to v20.11.6 2024-01-27 09:39:44 +00:00
renovate[bot]
8d5970c4aa chore(deps): update alpine docker tag to v3.19.1 2024-01-27 08:34:07 +00:00
Owncast
72b5ab9c17 Commit screenshots 2024-01-27 04:12:36 +00:00
Owncast
4caf1e6877 Bundle embedded web app 2024-01-26 18:33:20 +00:00
renovate[bot]
22edb6c5d2 fix(deps): update dependency @codemirror/lang-html to v6.4.8 2024-01-26 12:43:03 +00:00
Owncast
c681314aaf Commit screenshots 2024-01-26 04:11:05 +00:00
Owncast
ee08a95cdb Bundle embedded web app 2024-01-25 22:15:46 +00:00
renovate[bot]
d9dda6af68 chore(deps): update typescript-eslint monorepo to v6.19.1 2024-01-25 18:54:50 +00:00
Owncast
01548a4d37 Bundle embedded web app 2024-01-25 18:52:50 +00:00
renovate[bot]
d98ac8af24 chore(deps): update dependency ts-jest to v29.1.2 2024-01-25 17:09:09 +00:00
renovate[bot]
a8ac489165 chore(deps): update peter-evans/create-or-update-comment digest to 71345be 2024-01-25 14:18:25 +00:00
Owncast
2b277b95c2 Bundle embedded web app 2024-01-25 14:17:46 +00:00
renovate[bot]
9764917d47 fix(deps): update dependency @codemirror/language-data to v6.4.0 2024-01-25 09:07:42 +00:00
Owncast
047c4a3d82 Commit screenshots 2024-01-25 04:21:41 +00:00
Owncast
b8706be3ef Bundle embedded web app 2024-01-24 22:50:14 +00:00
renovate[bot]
91a835a45d fix(deps): update dependency video.js to v8.10.0 2024-01-24 18:30:26 +00:00
Aziz Rmadi
b532b1545c Modified rate limit conditions to exclude moderators (#3534) 2024-01-24 10:27:38 -08:00
renovate[bot]
8abddf5ced chore(deps): update peter-evans/create-or-update-comment digest to d41bfe3 2024-01-24 06:53:30 +00:00
Owncast
0526f71277 Commit screenshots 2024-01-24 04:20:21 +00:00
Owncast
01c2e11eca Bundle embedded web app 2024-01-23 04:39:28 +00:00
Aziz Rmadi
6c644330e7 Fixed page size stale state on LogTable component (#3516) 2024-01-22 20:31:23 -08:00
Gabe Kangas
841c300431 fix: share local hls file cleanup between s3 and filesystem providers. Fixes #3522 (#3531) 2024-01-22 20:26:36 -08:00
Owncast
8a90e86c5b Commit screenshots 2024-01-23 04:11:16 +00:00
Owncast
8e4079f649 Bundle embedded web app 2024-01-22 13:02:59 +00:00
renovate[bot]
6797fbffa3 chore(deps): lock file maintenance 2024-01-22 12:56:58 +00:00
Owncast
cd66581998 Bundle embedded web app 2024-01-22 04:31:31 +00:00
Gabe Kangas
2b57741397 fix: treat matrix links as regular web urls. Closes #3329 2024-01-21 20:25:05 -08:00
Owncast
f9915c9a72 Commit screenshots 2024-01-22 04:10:54 +00:00
Owncast
10ddd58426 Bundle embedded web app 2024-01-22 03:47:04 +00:00
renovate[bot]
03e35ddd12 chore(deps): update storybook monorepo to v7.6.10 2024-01-22 03:40:12 +00:00
Gabe Kangas
7399bee276 Gek/cache bot search page (#3530)
* feat: add general purpose key/val caching layer

* feat: cache bot/metadata response page for 10 seconds
2024-01-21 17:18:47 -08:00
Owncast
9b698336dc Bundle embedded web app 2024-01-21 23:32:02 +00:00
renovate[bot]
9edeb5df6e chore(deps): update dependency css-loader to v6.9.1 2024-01-21 18:56:36 +00:00
Owncast
44c177aa05 Bundle embedded web app 2024-01-21 10:27:46 +00:00
renovate[bot]
73c805a01b chore(deps): update dependency sass to v1.70.0 2024-01-21 07:21:25 +00:00
Gabe Kangas
1b14800c7d fix(api): protect emoji delete api from path traversal exploit 2024-01-20 20:30:29 -08:00
Owncast
225dc98736 Commit screenshots 2024-01-21 04:10:41 +00:00
Owncast
f1788c0ff5 Bundle embedded web app 2024-01-21 03:24:43 +00:00
renovate[bot]
3b184b0261 chore(deps): update storybook monorepo to v7.6.9 (#3527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 19:18:30 -08:00
Gabe Kangas
c9f70ffa65 chore(tests): need to use more recent node version in browser test 2024-01-20 18:35:07 -08:00
Owncast
32a1ad3dcb Bundle embedded web app 2024-01-21 02:05:30 +00:00
renovate[bot]
2300e6b8b7 chore(deps): update dependency style-dictionary to v3.9.2 2024-01-21 01:58:40 +00:00
Owncast
7bcfe043fe Bundle embedded web app 2024-01-20 21:52:06 +00:00
renovate[bot]
52c4fc2682 fix(deps): update dependency autoprefixer to v10.4.17 2024-01-20 18:26:02 +00:00
Owncast
d05799406a Bundle embedded web app 2024-01-20 18:24:06 +00:00
renovate[bot]
4430cb533d chore(deps): update dependency @types/node to v20.11.5 (#3525)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 10:16:54 -08:00
Owncast
d64ee37980 Bundle embedded web app 2024-01-20 16:07:38 +00:00
renovate[bot]
c91c44f4fa chore(deps): update dependency prettier to v3.2.4 2024-01-20 12:31:45 +00:00
Owncast
9b374cf858 Bundle embedded web app 2024-01-20 07:15:15 +00:00
renovate[bot]
dbf3ad93f1 chore(deps): update dependency prettier to v3.2.3 (#3520)
* chore(deps): update dependency prettier to v3.2.3

* chore(js): fix updated prettier whitespace

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-01-19 23:08:07 -08:00
Owncast
66b04cf4dd Commit screenshots 2024-01-20 04:10:32 +00:00
Owncast
9b157102c5 Bundle embedded web app 2024-01-20 00:20:02 +00:00
renovate[bot]
2f20b94749 chore(deps): update dependency cypress to v13.6.3 2024-01-19 21:27:35 +00:00
Owncast
34f87dfa1c Bundle embedded web app 2024-01-19 18:38:52 +00:00
renovate[bot]
49c81c02b7 fix(deps): update dependency @codemirror/lang-markdown to v6.2.4 2024-01-19 16:28:49 +00:00
Owncast
8c50007ebe Bundle embedded web app 2024-01-19 16:27:40 +00:00
renovate[bot]
c247044627 chore(deps): update dependency @types/node to v20.11.4 2024-01-19 13:59:45 +00:00
Owncast
e49e6d9090 Commit screenshots 2024-01-19 04:10:39 +00:00
Owncast
dde92f6676 Bundle embedded web app 2024-01-19 01:50:16 +00:00
renovate[bot]
0e0c42e4a3 chore(deps): update dependency @types/node to v20.11.3 2024-01-18 21:40:02 +00:00
Owncast
42c1323a2f Bundle embedded web app 2024-01-18 21:39:20 +00:00
renovate[bot]
1caccf6ca0 chore(deps): update typescript-eslint monorepo to v6.19.0 2024-01-18 19:33:42 +00:00
Owncast
8884b58297 Bundle embedded web app 2024-01-18 19:32:20 +00:00
renovate[bot]
94f6f7ccb4 chore(deps): update dependency @types/node to v20.11.2 2024-01-18 14:57:30 +00:00
Owncast
3a8b64d371 Bundle embedded web app 2024-01-18 14:56:46 +00:00
renovate[bot]
95a12b2a12 chore(deps): update dependency mermaid to v10.7.0 2024-01-18 10:11:56 +00:00
Owncast
be8d799af2 Bundle embedded web app 2024-01-18 10:09:56 +00:00
renovate[bot]
852c2d56ce chore(deps): update dependency @types/node to v20.11.1 2024-01-18 07:44:01 +00:00
Owncast
0d3d058b69 Commit screenshots 2024-01-18 04:10:55 +00:00
renovate[bot]
b33f834fde chore(deps): update peter-evans/create-or-update-comment digest to b865fac 2024-01-17 07:16:00 +00:00
Owncast
5aa991ffd5 Commit screenshots 2024-01-17 04:10:36 +00:00
Owncast
01c95bf2a9 Commit screenshots 2024-01-16 04:12:17 +00:00
Owncast
686bfd26bb Bundle embedded web app 2024-01-15 21:54:31 +00:00
renovate[bot]
229f7759c3 fix(deps): update dependency sharp to v0.33.2 2024-01-15 21:48:31 +00:00
Owncast
c81e5b7c62 Bundle embedded web app 2024-01-15 20:25:02 +00:00
renovate[bot]
b5c1fa5600 fix(deps): update dependency react-hotkeys-hook to v4.4.4 2024-01-15 19:46:25 +00:00
Owncast
538af9a4e1 Bundle embedded web app 2024-01-15 19:45:16 +00:00
renovate[bot]
f38117a40f chore(deps): update storybook monorepo to v7.6.8 2024-01-15 15:36:58 +00:00
Owncast
147187e1a7 Commit screenshots 2024-01-15 04:19:57 +00:00
Owncast
73f06800a7 Bundle embedded web app 2024-01-14 09:26:45 +00:00
renovate[bot]
dd461e9b3e chore(deps): update dependency @types/node to v20.11.0 2024-01-14 08:00:09 +00:00
Owncast
d2dd2bc01d Commit screenshots 2024-01-14 04:10:56 +00:00
Owncast
127c02d24b Bundle embedded web app 2024-01-14 01:06:46 +00:00
renovate[bot]
ad19e9108c chore(deps): update dependency npm to v10.3.0 2024-01-13 21:44:38 +00:00
Owncast
aeb9181a4b Bundle embedded web app 2024-01-13 07:28:57 +00:00
renovate[bot]
f5e37bc1b2 chore(deps): update dependency eslint-plugin-prettier to v5.1.3 2024-01-13 04:22:17 +00:00
Owncast
7f0f22342b Commit screenshots 2024-01-13 04:11:00 +00:00
Owncast
81382f0b4c Bundle embedded web app 2024-01-13 01:29:07 +00:00
renovate[bot]
4348178273 chore(deps): update dependency css-loader to v6.9.0 2024-01-12 21:25:03 +00:00
Owncast
61b1f9a9aa Bundle embedded web app 2024-01-12 21:23:54 +00:00
renovate[bot]
592c462b38 chore(deps): update dependency style-loader to v3.3.4 2024-01-12 20:01:27 +00:00
Owncast
7b93c73f98 Bundle embedded web app 2024-01-12 20:00:32 +00:00
renovate[bot]
9e029bff38 chore(deps): update dependency @types/node to v20.10.8 2024-01-12 17:20:05 +00:00
Owncast
79fc04ae42 Commit screenshots 2024-01-12 04:13:58 +00:00
Owncast
37f5da66c5 Bundle embedded web app 2024-01-12 00:56:32 +00:00
renovate[bot]
bd7da99ff0 chore(deps): update typescript-eslint monorepo to v6.18.1 2024-01-11 23:34:29 +00:00
Owncast
71f35f138c Commit screenshots 2024-01-11 04:36:19 +00:00
dependabot[bot]
5dc3182367 Bump follow-redirects from 1.15.3 to 1.15.4 in /test/load (#3515)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-10 18:03:37 -08:00
Owncast
ee0625c5b5 Bundle embedded web app 2024-01-10 19:04:17 +00:00
renovate[bot]
f5b0557021 chore(deps): update dependency @types/node to v20.10.7 2024-01-10 17:23:22 +00:00
renovate[bot]
57ffce48a3 chore(deps): update peter-evans/create-or-update-comment digest to 2cbfe8b 2024-01-10 05:54:24 +00:00
Owncast
830ab1f0e7 Bundle embedded web app 2024-01-10 05:53:51 +00:00
Varun Gujarathi
139ec51dde fix: add eventType support for touch devices (#3508)
fixes Not selectable items in quality settings menu #3368
2024-01-09 21:45:57 -08:00
Owncast
d3a8ffb3b7 Commit screenshots 2024-01-10 04:10:45 +00:00
Owncast
e36b5e3f7e Bundle embedded web app 2024-01-09 19:52:26 +00:00
renovate[bot]
5334ab622a chore(deps): update typescript-eslint monorepo to v6.18.0 2024-01-09 15:32:23 +00:00
Owncast
b41d16e9d8 Commit screenshots 2024-01-09 04:20:34 +00:00
Owncast
a0741ad87e Bundle embedded web app 2024-01-08 12:51:02 +00:00
renovate[bot]
3e9ac4a49e chore(deps): lock file maintenance 2024-01-08 12:45:32 +00:00
Owncast
7e8fc2ee54 Commit screenshots 2024-01-08 04:10:43 +00:00
Owncast
4f2f170cdd Bundle embedded web app 2024-01-07 17:25:47 +00:00
renovate[bot]
1af8fafd8c fix(deps): update dependency react-hotkeys-hook to v4.4.3 2024-01-07 12:47:26 +00:00
Owncast
4cb5d54256 Commit screenshots 2024-01-07 04:10:23 +00:00
Owncast
8cef300b3e Bundle embedded web app 2024-01-06 22:12:34 +00:00
renovate[bot]
2225a04085 chore(deps): update dependency @storybook/addon-styling-webpack to ^0.0.6 2024-01-06 19:27:01 +00:00
Owncast
0751d957a7 Commit screenshots 2024-01-06 04:15:30 +00:00
Owncast
c741a92e1c Bundle embedded web app 2024-01-06 03:18:39 +00:00
renovate[bot]
efe5a9974d fix(deps): update dependency video.js to v8.9.0 2024-01-06 03:13:20 +00:00
Owncast
c1f47384c2 Bundle embedded web app 2024-01-06 00:33:12 +00:00
renovate[bot]
05527c8fec chore(deps): update dependency sass to v1.69.7 2024-01-05 22:25:02 +00:00
Owncast
fb337e8367 Bundle embedded web app 2024-01-04 21:21:48 +00:00
renovate[bot]
f424d50e90 chore(deps): update typescript-eslint monorepo to v6.17.0 2024-01-04 20:02:47 +00:00
Owncast
a092e6b221 Bundle embedded web app 2024-01-04 20:01:41 +00:00
renovate[bot]
716f756f7e chore(deps): update storybook monorepo to v7.6.7 2024-01-04 16:49:32 +00:00
Owncast
ec0e59e778 Commit screenshots 2024-01-04 04:14:20 +00:00
Aziz Rmadi
bc1f66c858 Refactored the GetIpddressFromRequest function to support ipv4 as well as ipv6 addresses (#3496) 2024-01-03 11:07:11 -08:00
renovate[bot]
468e32a2f0 chore(deps): update peter-evans/create-or-update-comment digest to 72c3238 2024-01-03 06:56:03 +00:00
Owncast
cc43114684 Commit screenshots 2024-01-03 04:20:28 +00:00
Owncast
f1e2128d67 Bundle embedded web app 2024-01-02 22:38:42 +00:00
renovate[bot]
bf92677818 fix(deps): update dependency video.js to v8.8.0 2024-01-02 19:39:06 +00:00
dependabot[bot]
2b696b640a Bump tj-actions/changed-files from 40 to 41 in /.github/workflows (#3506)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 40 to 41.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v40...v41)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 11:37:54 -08:00
Owncast
78de2a01d2 Bundle embedded web app 2024-01-02 06:47:35 +00:00
renovate[bot]
5efbe6d02a chore(deps): update dependency @types/node to v20.10.6 2024-01-02 04:27:58 +00:00
Owncast
cd0efdf577 Commit screenshots 2024-01-02 04:11:27 +00:00
Owncast
f8738ce0a8 Bundle embedded web app 2024-01-02 01:29:27 +00:00
renovate[bot]
e94814eb21 chore(deps): update dependency @babel/core to v7.23.7 2024-01-01 22:44:47 +00:00
Owncast
d81bd0c377 Bundle embedded web app 2024-01-01 22:44:06 +00:00
renovate[bot]
93ef63ba17 fix(deps): update dependency classnames to v2.5.1 2024-01-01 18:12:12 +00:00
Owncast
be95e97b00 Bundle embedded web app 2024-01-01 18:10:58 +00:00
renovate[bot]
0079dcd44c chore(deps): update dependency sass to v1.69.6 2024-01-01 17:28:50 +00:00
Owncast
f59191fd48 Commit screenshots 2024-01-01 04:10:39 +00:00
Owncast
0d1785baa7 Bundle embedded web app 2023-12-31 12:56:36 +00:00
renovate[bot]
4cb68a4219 chore(deps): update dependency less-loader to v11.1.4 2023-12-31 12:51:10 +00:00
Owncast
00cec55fe7 Bundle embedded web app 2023-12-31 10:52:32 +00:00
renovate[bot]
d8382a2d36 fix(deps): update dependency classnames to v2.5.0 2023-12-31 10:45:04 +00:00
Owncast
cf9ff9d516 Commit screenshots 2023-12-31 04:10:36 +00:00
dependabot[bot]
9763a1a549 Bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#3502)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.16.0 to 0.17.0.
- [Commits](https://github.com/golang/crypto/compare/v0.16.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-30 08:45:46 -08:00
Owncast
4037bf21a6 Commit screenshots 2023-12-30 04:10:52 +00:00
Owncast
525f1f589f Bundle embedded web app 2023-12-30 03:51:21 +00:00
renovate[bot]
7b86dbd50a chore(deps): update dependency cypress to v13.6.2 2023-12-30 01:20:45 +00:00
Owncast
1928d62f52 Bundle embedded web app 2023-12-29 18:24:45 +00:00
renovate[bot]
72b640ae7f fix(deps): update dependency classnames to v2.4.0 2023-12-29 16:09:08 +00:00
Owncast
5fd2551ab9 Commit screenshots 2023-12-29 04:10:50 +00:00
Owncast
6e0dd8dc96 Bundle embedded web app 2023-12-29 01:54:03 +00:00
renovate[bot]
bd7a4a88c6 chore(deps): update dependency sass-loader to v13.3.3 2023-12-28 22:18:34 +00:00
Owncast
5eb47dd24e Bundle embedded web app 2023-12-28 22:17:52 +00:00
renovate[bot]
9a58d2547f fix(deps): update dependency classnames to v2.3.3 2023-12-28 22:11:42 +00:00
Owncast
7b3aaf09ef Bundle embedded web app 2023-12-28 19:58:33 +00:00
renovate[bot]
90c4545474 chore(deps): update typescript-eslint monorepo to v6.16.0 2023-12-28 17:32:05 +00:00
Owncast
ebcd8b7bad Commit screenshots 2023-12-28 04:11:41 +00:00
renovate[bot]
cb812b98c0 chore(deps): update peter-evans/create-or-update-comment digest to 0f44b01 2023-12-27 06:17:38 +00:00
Owncast
473e11d8f7 Commit screenshots 2023-12-27 04:20:16 +00:00
Owncast
8c157e7b13 Commit screenshots 2023-12-26 04:27:40 +00:00
Owncast
1b9598e4d6 Bundle embedded web app 2023-12-25 13:29:37 +00:00
renovate[bot]
ed10125c70 chore(deps): lock file maintenance 2023-12-25 13:22:57 +00:00
Owncast
f8152e70c3 Commit screenshots 2023-12-25 04:10:37 +00:00
Owncast
21d9642e2a Bundle embedded web app 2023-12-24 22:30:53 +00:00
renovate[bot]
dd59a11e23 chore(deps): update dependency eslint-plugin-prettier to v5.1.1 2023-12-24 19:39:27 +00:00
Owncast
e1fe7f0ea5 Commit screenshots 2023-12-24 04:10:40 +00:00
Owncast
f9535dd07c Bundle embedded web app 2023-12-23 09:38:34 +00:00
renovate[bot]
7291466871 chore(deps): update dependency eslint-plugin-prettier to v5.1.0 2023-12-23 09:33:10 +00:00
Owncast
051fff4a62 Commit screenshots 2023-12-23 04:11:04 +00:00
Owncast
92a267a56d Bundle embedded web app 2023-12-22 21:44:19 +00:00
renovate[bot]
afa5174abd chore(deps): update dependency html-webpack-plugin to v5.6.0 2023-12-22 18:22:46 +00:00
Owncast
0b703e748b Bundle embedded web app 2023-12-22 18:21:39 +00:00
renovate[bot]
9d6c7752a0 chore(deps): update storybook monorepo to v7.6.6 2023-12-22 17:05:43 +00:00
Owncast
ccbf6664d9 Commit screenshots 2023-12-22 04:30:43 +00:00
Owncast
c336752ee5 Bundle embedded web app 2023-12-21 21:12:17 +00:00
renovate[bot]
953915e500 chore(deps): update typescript-eslint monorepo to v6.15.0 2023-12-21 18:06:38 +00:00
Owncast
150bbb571d Commit screenshots 2023-12-21 04:20:19 +00:00
renovate[bot]
68a09f41e0 fix(deps): update module golang.org/x/time to v0.5.0 2023-12-21 02:59:00 +00:00
Owncast
00f1901d7a Bundle embedded web app 2023-12-21 02:56:29 +00:00
renovate[bot]
116260280c fix(deps): update dependency sharp to v0.33.1 2023-12-21 01:54:18 +00:00
Owncast
5e0fe58fae Bundle embedded web app 2023-12-21 01:53:03 +00:00
renovate[bot]
491ad01e4c chore(deps): update dependency @types/node to v20.10.5 2023-12-20 22:50:56 +00:00
renovate[bot]
2f5a372138 fix(deps): update module golang.org/x/net to v0.19.0 2023-12-20 19:37:19 +00:00
renovate[bot]
8f03437a05 fix(deps): update module github.com/aws/aws-sdk-go to v1.49.6 2023-12-20 18:39:04 +00:00
renovate[bot]
186d6a83b8 chore(deps): update peter-evans/create-or-update-comment digest to 76318d6 2023-12-20 16:03:52 +00:00
renovate[bot]
3098890187 chore(deps): update github/codeql-action action to v3 (#3492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 08:02:56 -08:00
renovate[bot]
59fec3c47e chore(deps): update docker.io/ubuntu docker tag to v24 (#3493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 08:01:40 -08:00
renovate[bot]
6f52bec22f fix(deps): update module github.com/shirou/gopsutil/v3 to v3.23.11 2023-12-20 11:18:57 +00:00
renovate[bot]
2c7dd3a59b fix(deps): update module github.com/mattn/go-sqlite3 to v1.14.19 2023-12-20 06:07:08 +00:00
renovate[bot]
6486bd2039 fix(deps): update module github.com/gorilla/websocket to v1.5.1 2023-12-20 04:55:33 +00:00
Owncast
5c0d82f713 Commit screenshots 2023-12-20 04:35:20 +00:00
Gabe Kangas
bb7de347c5 chore: reverting the current implementation of http response caching 2023-12-19 18:27:42 -08:00
renovate[bot]
df7eb5e38d chore(deps): update actions/setup-go action to v5 (#3489)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-19 17:51:40 -08:00
Gabe Kangas
9215d9ba0f fix(auth): limit admin cors access to only localhost:3000 2023-12-18 22:05:49 -08:00
Owncast
2c8e11db8a Bundle embedded web app 2023-12-19 05:48:54 +00:00
renovate[bot]
e666d92749 chore(deps): update dependency eslint to v8.56.0 (#3486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 21:41:01 -08:00
Gabe Kangas
5bb8a8b5aa fix: address potential crash that can happen with queued object storage uploads. Fixes #3440 2023-12-18 21:12:50 -08:00
Owncast
5d78574083 Commit screenshots 2023-12-19 04:20:25 +00:00
Owncast
9ae90dc899 Bundle embedded web app 2023-12-19 04:16:27 +00:00
renovate[bot]
d7aa9cea17 chore(deps): lock file maintenance 2023-12-19 04:08:33 +00:00
dependabot[bot]
ff3949278d Bump golang.org/x/crypto from 0.15.0 to 0.17.0 (#3485)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.15.0 to 0.17.0.
- [Commits](https://github.com/golang/crypto/compare/v0.15.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-18 17:33:32 -08:00
Owncast
4e252015bc Bundle embedded web app 2023-12-18 22:32:16 +00:00
renovate[bot]
693b6a16ee fix(deps): update dependency react-error-boundary to v4.0.12 2023-12-18 20:15:51 +00:00
Owncast
9e5f310ff2 Bundle embedded web app 2023-12-18 20:14:53 +00:00
renovate[bot]
4e9946ce3b chore(deps): update storybook monorepo to v7.6.5 2023-12-18 16:53:58 +00:00
Owncast
fdecfb10af Commit screenshots 2023-12-18 04:11:06 +00:00
Owncast
9d68090667 Bundle embedded web app 2023-12-17 21:51:11 +00:00
renovate[bot]
273af311fc chore(deps): update dependency eslint-plugin-import to v2.29.1 2023-12-17 19:02:21 +00:00
Owncast
1e3a2c1abb Commit screenshots 2023-12-17 04:10:39 +00:00
Owncast
c04f9ed419 Commit screenshots 2023-12-16 04:10:13 +00:00
Owncast
9b62ed6b51 Bundle embedded web app 2023-12-15 09:51:49 +00:00
renovate[bot]
9288418622 chore(deps): update typescript-eslint monorepo to v6.14.0 2023-12-15 09:45:58 +00:00
Owncast
bbd5140387 Commit screenshots 2023-12-15 04:10:53 +00:00
Owncast
a7adb99973 Bundle embedded web app 2023-12-14 23:19:27 +00:00
renovate[bot]
f59b3e6d31 chore(deps): update dependency @babel/core to v7.23.6 2023-12-14 19:50:10 +00:00
Owncast
b3aee6ae88 Commit screenshots 2023-12-14 04:10:47 +00:00
Owncast
920c8af253 Bundle embedded web app 2023-12-13 15:52:36 +00:00
renovate[bot]
03ba0d395e chore(deps): update dependency prettier to v3.1.1 2023-12-13 15:46:30 +00:00
Owncast
d40ae868c6 Bundle embedded web app 2023-12-13 13:10:34 +00:00
renovate[bot]
650a1061e1 chore(deps): update dependency style-dictionary to v3.9.1 2023-12-13 13:03:08 +00:00
renovate[bot]
f36c3b65f2 chore(deps): update peter-evans/create-or-update-comment digest to 83d7ae3 2023-12-13 07:52:23 +00:00
Owncast
c91d2e10d9 Commit screenshots 2023-12-13 04:10:18 +00:00
Gabe Kangas
e235c7aea2 chore: remove reponse cache from root route 2023-12-11 20:19:50 -08:00
Owncast
a3a4cbaf0f Bundle embedded web app 2023-12-11 15:33:37 +00:00
renovate[bot]
765ed4c5a8 chore(deps): lock file maintenance (#3478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 07:27:49 -08:00
Owncast
1988b82e6e Bundle embedded web app 2023-12-11 06:07:29 +00:00
renovate[bot]
70e31aff01 chore(deps): update dependency @types/node to v20.10.4 2023-12-11 06:02:04 +00:00
Owncast
d4fd72ce2c Commit screenshots 2023-12-11 04:10:38 +00:00
Gabe Kangas
0827af6cc8 fix: split out the botscraper response cache from the web app 2023-12-10 18:14:26 -08:00
Gabe Kangas
c8985093fb fix(video): fix hls in-memory cache being recreated on every request 2023-12-10 12:28:35 -08:00
Owncast
42249fbc58 Bundle embedded web app 2023-12-10 19:50:43 +00:00
renovate[bot]
33eb894687 chore(deps): update storybook monorepo to v7.6.4 2023-12-10 16:43:07 +00:00
Owncast
116cfcdd4b Commit screenshots 2023-12-10 04:10:21 +00:00
Owncast
4bd35c6f7f Bundle embedded web app 2023-12-10 03:39:22 +00:00
renovate[bot]
2437e01f12 fix(deps): update dependency @fontsource/inter to v5.0.16 2023-12-10 00:32:48 +00:00
Gabe Kangas
2217f0614a feat(api): add server-side caching for requests that could benefit (#3463)
* feat(api): add server-side caching for requests that could benefit for them

* fix(tests): do not cache responses while in tests

* fix: remove commented out leftover code

* chore(deps): update dependency html-webpack-plugin to v5.5.4

* Bundle embedded web app

* fix: remove caching for web app assets under test

* chore(tests): re-enable temporarily disabled test

* chore(deps): update dependency typescript to v5.3.3

* Bundle embedded web app

* chore(deps): update dependency npm to v10.2.5

* Bundle embedded web app

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>
2023-12-09 16:31:50 -08:00
Owncast
b6efe49086 Bundle embedded web app 2023-12-10 00:14:24 +00:00
renovate[bot]
d4ee6eaeca chore(deps): update dependency npm to v10.2.5 2023-12-09 23:52:10 +00:00
Owncast
d55aeeddcc Bundle embedded web app 2023-12-09 23:51:38 +00:00
renovate[bot]
c97a85af1d chore(deps): update dependency typescript to v5.3.3 2023-12-09 21:12:41 +00:00
Owncast
46979a564c Bundle embedded web app 2023-12-09 21:12:01 +00:00
renovate[bot]
2758e53495 chore(deps): update dependency html-webpack-plugin to v5.5.4 2023-12-09 18:25:30 +00:00
Owncast
a006eb0a60 Bundle embedded web app 2023-12-09 06:44:16 +00:00
renovate[bot]
63ce053ffb chore(deps): update dependency @types/jest to v29.5.11 2023-12-09 04:35:13 +00:00
Owncast
b11fc8deb1 Commit screenshots 2023-12-09 04:10:09 +00:00
Owncast
8fd2c5b3c8 Bundle embedded web app 2023-12-08 21:03:10 +00:00
renovate[bot]
37ee16c51b chore(deps): update dependency cypress to v13.6.1 2023-12-08 20:12:43 +00:00
renovate[bot]
c439bded27 chore(deps): update alpine docker tag to v3.19.0 2023-12-08 07:38:32 +00:00
Owncast
3a8d7a610c Bundle embedded web app 2023-12-08 07:37:43 +00:00
renovate[bot]
fbb04ec354 fix(deps): update dependency chart.js to v4.4.1 2023-12-08 04:19:02 +00:00
Owncast
237d212c62 Commit screenshots 2023-12-08 04:10:26 +00:00
Owncast
e3c4f7b21f Bundle embedded web app 2023-12-08 01:42:24 +00:00
renovate[bot]
5360ee6012 chore(deps): update dependency @types/react to v18.2.42 2023-12-07 21:57:40 +00:00
Owncast
0a6000c84d Bundle embedded web app 2023-12-07 21:56:57 +00:00
renovate[bot]
aa8b6f5c7f chore(deps): update typescript-eslint monorepo to v6.13.2 2023-12-07 18:07:15 +00:00
Owncast
ac49168d44 Commit screenshots 2023-12-07 04:10:42 +00:00
Owncast
6b48a37066 Bundle embedded web app 2023-12-06 23:22:02 +00:00
renovate[bot]
486752d75e chore(deps): update dependency @types/node to v20.10.3 2023-12-06 18:14:05 +00:00
renovate[bot]
dd51656e6d chore(deps): update peter-evans/create-or-update-comment digest to f9285f9 2023-12-06 07:01:04 +00:00
Owncast
71385f71bb Commit screenshots 2023-12-06 04:20:54 +00:00
Owncast
53f12158c6 Bundle embedded web app 2023-12-06 00:04:07 +00:00
jhimanish
1f7ffdea27 Updating twitter logo to X using logo from Twitter's website (#3468)
* Updating twitter logo to X using logo from Twitter's website

* Removing change from static/web twitter logo as this is auto generated code
2023-12-05 15:58:47 -08:00
Owncast
e1452aa8b4 Bundle embedded web app 2023-12-05 21:48:42 +00:00
renovate[bot]
37811994c1 chore(deps): update dependency @types/react to v18.2.41 2023-12-05 19:10:43 +00:00
Gabe Kangas
a56f0f2ed6 Create README.md for /static/web
To let people know they're in the wrong place if they're looking to make web changes.
2023-12-05 09:39:16 -08:00
Owncast
108527532b Bundle embedded web app 2023-12-05 14:08:29 +00:00
renovate[bot]
b14e9c5c02 chore(deps): update dependency eslint-config-prettier to v9.1.0 2023-12-05 11:42:46 +00:00
Owncast
9959704e17 Bundle embedded web app 2023-12-05 11:41:52 +00:00
renovate[bot]
eeb2b83373 chore(deps): update dependency eslint to v8.55.0 2023-12-05 07:01:02 +00:00
Owncast
ab1f0a8d75 Commit screenshots 2023-12-05 04:10:42 +00:00
Owncast
c2d26e3c88 Bundle embedded web app 2023-12-05 03:49:25 +00:00
renovate[bot]
0dab0b4f55 chore(deps): update dependency @types/react to v18.2.40 2023-12-05 02:37:19 +00:00
dependabot[bot]
bccc67e4b6 Bump postcss and artillery in /test/load (#3467)
Bumps [postcss](https://github.com/postcss/postcss) to 8.4.32 and updates ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together.


Updates `postcss` from 7.0.39 to 8.4.32
- [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/7.0.39...8.4.32)

Updates `artillery` from 2.0.0-36-f351294 to 2.0.2
- [Release notes](https://github.com/artilleryio/artillery/releases)
- [Commits](https://github.com/artilleryio/artillery/commits/artillery-2.0.2)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
- dependency-name: artillery
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 18:36:43 -08:00
Owncast
684f7828ed Bundle embedded web app 2023-12-05 02:16:06 +00:00
renovate[bot]
5e7c5e263f chore(deps): update dependency @types/node to v20.10.2 2023-12-04 23:02:00 +00:00
Owncast
1565c1deb2 Bundle embedded web app 2023-12-04 15:40:34 +00:00
renovate[bot]
f3d9fe215c chore(deps): update storybook monorepo to v7.6.3 2023-12-04 13:55:48 +00:00
Owncast
f4bd33dde7 Bundle embedded web app 2023-12-04 13:54:51 +00:00
renovate[bot]
b41e3620d1 chore(deps): lock file maintenance 2023-12-04 13:48:47 +00:00
Owncast
90a56cc61d Commit screenshots 2023-12-04 04:11:10 +00:00
Owncast
6889919db3 Bundle embedded web app 2023-12-03 21:41:59 +00:00
renovate[bot]
38104d5aaf chore(deps): update storybook monorepo to v7.6.2 2023-12-03 18:38:58 +00:00
Owncast
f6837fcce7 Commit screenshots 2023-12-03 04:10:09 +00:00
Owncast
9c12ad53e2 Bundle embedded web app 2023-12-03 02:09:38 +00:00
renovate[bot]
a98d057ac2 chore(deps): update storybook monorepo to v7.6.1 2023-12-03 02:04:35 +00:00
Owncast
5ec8ab22d6 Bundle embedded web app 2023-12-02 22:36:14 +00:00
renovate[bot]
7714b79a9f chore(deps): update dependency @types/node to v20.10.1 2023-12-02 20:02:56 +00:00
Owncast
dbae8c5f37 Bundle embedded web app 2023-12-02 17:06:50 +00:00
renovate[bot]
e41c2306ab fix(deps): update dependency sharp to v0.33.0 2023-12-02 13:31:07 +00:00
Owncast
896db68278 Bundle embedded web app 2023-12-02 13:30:11 +00:00
renovate[bot]
946a3bbc35 chore(deps): update dependency @babel/core to v7.23.5 2023-12-02 10:48:15 +00:00
renovate[bot]
b24d160685 fix(deps): update module mvdan.cc/xurls to v2 (#3420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-01 20:48:15 -08:00
Owncast
40fd2bfd7a Commit screenshots 2023-12-02 04:10:17 +00:00
Owncast
3a779e9db8 Bundle embedded web app 2023-12-01 16:27:17 +00:00
renovate[bot]
3480c9fb92 chore(deps): update storybook monorepo to v7.6.0 2023-12-01 12:21:02 +00:00
Owncast
ee923c77ce Bundle embedded web app 2023-12-01 12:19:53 +00:00
renovate[bot]
6b2a308ed3 chore(deps): update typescript-eslint monorepo to v6.13.1 2023-12-01 10:44:38 +00:00
Owncast
5f7f75c229 Commit screenshots 2023-12-01 04:11:14 +00:00
renovate[bot]
42778e0e3c chore(deps): update alpine docker tag to v3.18.5 2023-12-01 03:02:10 +00:00
Owncast
26c62600df Bundle embedded web app 2023-12-01 03:01:48 +00:00
Annie Pauline
5eb043dfad Admin horizontal scroll on narrower screens (#3406)
* admin horizontal scoll

* fixed lint errors

* Update web/public/styles/admin/config-public-details.css

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2023-11-30 18:53:22 -08:00
Owncast
214de6db11 Bundle embedded web app 2023-12-01 02:00:32 +00:00
renovate[bot]
54764857b1 chore(deps): update typescript-eslint monorepo to v6.13.0 2023-11-30 22:29:30 +00:00
Owncast
956ed9e921 Bundle embedded web app 2023-11-30 22:28:35 +00:00
renovate[bot]
c3b3dface3 chore(deps): update dependency @types/react to v18.2.39 2023-11-30 20:13:35 +00:00
Owncast
df2cb90c13 Bundle embedded web app 2023-11-30 16:38:00 +00:00
renovate[bot]
5e3ed74025 fix(deps): update dependency @codemirror/lang-markdown to v6.2.3 2023-11-30 13:37:27 +00:00
Owncast
70255a0b8c Bundle embedded web app 2023-11-30 06:49:54 +00:00
Gabe Kangas
27c48c4068 chore(deps): update to next config to address build errors 2023-11-29 20:31:54 -08:00
Gabe Kangas
6d217b4f5a fix(web): do not set nextjs rewrites on prod builds 2023-11-29 20:29:26 -08:00
Gabe Kangas
b145f3da9a chore(deps): additional things to ignore in unused code check 2023-11-29 20:29:26 -08:00
Owncast
804ef4caf5 Commit screenshots 2023-11-30 04:12:42 +00:00
Owncast
32f30ecfc7 Bundle embedded web app 2023-11-29 18:53:41 +00:00
renovate[bot]
c7f8bd8f54 fix(deps): update dependency @uiw/react-codemirror to v4.21.21 2023-11-29 17:54:57 +00:00
Owncast
4c1e42a33c Bundle embedded web app 2023-11-29 17:54:03 +00:00
renovate[bot]
8ecbe79284 fix(deps): update dependency @uiw/codemirror-theme-bbedit to v4.21.21 2023-11-29 12:19:35 +00:00
renovate[bot]
f707f07aae chore(deps): update peter-evans/create-or-update-comment digest to 89116ac 2023-11-29 06:08:19 +00:00
Owncast
11eaaf4310 Commit screenshots 2023-11-29 04:20:28 +00:00
Owncast
8294cd5a44 Commit screenshots 2023-11-28 04:10:37 +00:00
Owncast
509774e5ae Bundle embedded web app 2023-11-27 15:21:13 +00:00
renovate[bot]
689905471f chore(deps): lock file maintenance 2023-11-27 15:15:55 +00:00
Owncast
418da09dae Bundle embedded web app 2023-11-27 13:55:36 +00:00
renovate[bot]
a6f408b6f9 chore(deps): update dependency @types/node to v20.10.0 2023-11-27 11:41:48 +00:00
Owncast
472d3f8e35 Commit screenshots 2023-11-27 04:10:41 +00:00
Owncast
10120123e8 Bundle embedded web app 2023-11-27 03:56:48 +00:00
renovate[bot]
200ca747ad chore(deps): update dependency @types/node to v20.9.5 2023-11-27 02:24:08 +00:00
Owncast
06326a7e64 Bundle embedded web app 2023-11-27 02:23:33 +00:00
renovate[bot]
ea6bf24029 chore(deps): update dependency knip to v2.43.0 2023-11-26 21:16:50 +00:00
Owncast
5a949bd89e Bundle embedded web app 2023-11-26 12:30:34 +00:00
renovate[bot]
6cba556926 chore(deps): update dependency knip to v2.42.0 2023-11-26 10:59:20 +00:00
Owncast
a49b758746 Commit screenshots 2023-11-26 04:40:16 +00:00
Owncast
3442857422 Bundle embedded web app 2023-11-25 18:57:14 +00:00
renovate[bot]
8d439909b5 chore(deps): update dependency knip to v2.41.6 2023-11-25 18:52:19 +00:00
Owncast
c146555979 Bundle embedded web app 2023-11-25 15:31:39 +00:00
renovate[bot]
5e1f03b5cf chore(deps): update dependency cypress to v13.6.0 2023-11-25 12:53:02 +00:00
Owncast
8a160342b6 Bundle embedded web app 2023-11-25 12:51:44 +00:00
renovate[bot]
be0a62f898 fix(deps): update dependency antd to v4.24.15 2023-11-25 09:39:25 +00:00
Owncast
66c5f38e41 Bundle embedded web app 2023-11-25 09:38:31 +00:00
renovate[bot]
256d6c7928 chore(deps): update dependency @types/node to v20.9.4 2023-11-25 07:33:51 +00:00
Owncast
78055ef9df Bundle embedded web app 2023-11-25 07:33:15 +00:00
renovate[bot]
04b985d33c chore(deps): update dependency @types/jest to v29.5.10 2023-11-25 04:39:09 +00:00
Owncast
14e9ca2a56 Commit screenshots 2023-11-25 04:17:42 +00:00
Owncast
a1b3f47863 Bundle embedded web app 2023-11-25 01:30:04 +00:00
renovate[bot]
e9e10d059e chore(deps): update dependency typescript to v5.3.2 (#3435)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 17:24:31 -08:00
Owncast
cba878f70d Bundle embedded web app 2023-11-25 00:57:31 +00:00
renovate[bot]
6115baad9d chore(deps): update dependency @types/sanitize-html to v2.9.5 2023-11-24 22:13:10 +00:00
Owncast
2164ad39db Bundle embedded web app 2023-11-24 22:12:34 +00:00
renovate[bot]
5633581711 chore(deps): update dependency @types/react to v18.2.38 2023-11-24 19:12:37 +00:00
Owncast
df8019af5f Bundle embedded web app 2023-11-24 19:12:03 +00:00
renovate[bot]
b3690ef970 chore(deps): update dependency @types/markdown-it to v13.0.7 (#3436)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-24 11:05:13 -08:00
Owncast
e758cf82e0 Bundle embedded web app 2023-11-24 16:57:46 +00:00
renovate[bot]
2b86f5b733 chore(deps): update dependency @types/prop-types to v15.7.11 2023-11-24 14:14:09 +00:00
Owncast
a3ac75f116 Bundle embedded web app 2023-11-24 14:13:16 +00:00
renovate[bot]
a7207e3d2c chore(deps): update dependency @types/node to v20.9.3 2023-11-24 09:43:21 +00:00
Owncast
5c4bbd7ef5 Bundle embedded web app 2023-11-24 09:42:28 +00:00
renovate[bot]
53ba75d7e9 chore(deps): update dependency @types/jest to v29.5.9 2023-11-24 06:25:38 +00:00
Owncast
707472792b Bundle embedded web app 2023-11-24 06:25:00 +00:00
renovate[bot]
89091fcefa fix(deps): update nextjs monorepo to v14 (major) (#3404)
* fix(deps): update nextjs monorepo to v14

* chore: update build scripts to support next 14. Closes #3413

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2023-11-23 22:07:21 -08:00
Owncast
a809a56e0c Commit screenshots 2023-11-24 04:15:25 +00:00
Owncast
0815ab3e9f Bundle embedded web app 2023-11-24 03:38:47 +00:00
renovate[bot]
11d48cbaa1 chore(deps): update dependency @types/chart.js to v2.9.41 2023-11-24 00:26:22 +00:00
Owncast
b3ce115bec Bundle embedded web app 2023-11-23 22:32:38 +00:00
renovate[bot]
5061598795 chore(deps): update typescript-eslint monorepo to v6.12.0 2023-11-23 18:27:01 +00:00
Owncast
9a9b081a25 Bundle embedded web app 2023-11-23 18:26:07 +00:00
renovate[bot]
c1fbf09333 chore(deps): update dependency knip to v2.41.5 2023-11-23 15:36:46 +00:00
Owncast
922ecf55a7 Commit screenshots 2023-11-23 04:20:34 +00:00
renovate[bot]
bd91ee5a97 chore(deps): update peter-evans/create-or-update-comment digest to 0917427 2023-11-22 07:52:30 +00:00
Owncast
3e4fdfa25a Commit screenshots 2023-11-22 04:10:52 +00:00
Owncast
8686eed98b Bundle embedded web app 2023-11-22 01:26:03 +00:00
renovate[bot]
30062b4e55 chore(deps): update dependency @types/node to v20.9.2 2023-11-21 22:23:30 +00:00
Owncast
c5dc1212c3 Commit screenshots 2023-11-21 04:14:25 +00:00
Gabe Kangas
b4c73315fa feat(log): point to passthrough as a potential issue when unable to generate thumbnails
Re: #3433 and #3431
2023-11-20 18:04:01 -08:00
Gabe Kangas
dfe5dd494e chore: bump version number 2023-11-20 18:04:00 -08:00
Owncast
b3bb5b9b4a Bundle embedded web app 2023-11-21 00:13:47 +00:00
renovate[bot]
f987cb996c chore(deps): update dependency eslint to v8.54.0 2023-11-20 21:46:56 +00:00
Owncast
1575a147f5 Bundle embedded web app 2023-11-20 20:35:08 +00:00
renovate[bot]
d79fcf1f36 chore(deps): update dependency chromatic to v9.1.0 2023-11-20 16:03:05 +00:00
Owncast
c960ceb3c6 Bundle embedded web app 2023-11-20 09:38:21 +00:00
renovate[bot]
273795590e chore(deps): lock file maintenance 2023-11-20 09:32:10 +00:00
Owncast
50bf241531 Commit screenshots 2023-11-20 04:10:47 +00:00
Owncast
db3ec9c123 Bundle embedded web app 2023-11-20 03:55:55 +00:00
renovate[bot]
0d05a2784a chore(deps): update dependency knip to v2.41.3 2023-11-20 02:26:44 +00:00
Owncast
c8616c5a68 Bundle embedded web app 2023-11-20 02:26:10 +00:00
renovate[bot]
d163a6078b chore(deps): update dependency @types/node to v20.9.1 2023-11-19 22:25:01 +00:00
Owncast
cfd41090a9 Commit screenshots 2023-11-19 04:15:28 +00:00
Owncast
b9be7591ce Bundle embedded web app 2023-11-19 00:12:09 +00:00
renovate[bot]
e97d524293 chore(deps): update dependency npm to v10.2.4 2023-11-18 21:53:20 +00:00
1192 changed files with 64130 additions and 49260 deletions

View File

@@ -7,7 +7,7 @@ A collection of design contribution guidelines and resources for the Owncast int
## 👋 Welcome
Owncast is a is a live streaming and chat server targeted to anybody who has live streaming needs. This means anybody from corporate events, government meetings, game streamers, musicians, churches, TV stations, and more.
Owncast is a live streaming and chat server targeted to anybody who has live streaming needs. This means anybody from corporate events, government meetings, game streamers, musicians, churches, TV stations, and more.
Read the detailed [product definition](https://github.com/owncast/owncast/blob/develop/docs/product-definition.md) to learn more.
@@ -25,7 +25,7 @@ Read the detailed [product definition](https://github.com/owncast/owncast/blob/d
## 🎭 Target audience
Owncast is a is a live streaming and chat server targeted to anybody who has live streaming needs. This means anything from corporate events, government meetings, game streams, concerts, TV stations, and more.
Owncast is a live streaming and chat server targeted to anybody who has live streaming needs. This means anything from corporate events, government meetings, game streams, concerts, TV stations, and more.
## 🧑‍🎨 Product design opportunities
@@ -57,7 +57,7 @@ https://owncast.online/components/?path=%2Fdocs%2Fowncast-styles-colors-componen
### Design Files, Screenshots, etc
We do not currently have any design files that fully represent the state of
the Owncast interface. However going forward it would be nice to resolve this
the Owncast interface. However, going forward it would be nice to resolve this
and collaborate on designs.
We do have a [PenPot organization](https://design.penpot.app/#/dashboard/team/8373f780-f255-11ec-b774-f940e3befd53/projects). Please ask for access.

1
.earthlyignore Normal file
View File

@@ -0,0 +1 @@
test/automated/api/node_modules

View File

@@ -1,12 +1,17 @@
# Read first
Please include a summary of the change and which issue number is fixed, including relevant motivation and context. Feel free to mark this as a Draft or WIP and write up some details later.
If this is an unsolicited change, or there is no existing issue filed for it, please open a GitHub issue before creating a pull request. This will allow us to discuss the motivations and the big picture behind the change first. It's possible there may be other solutions that should be discussed for what you think should be built. It is possible your change will be rejected unless some discussion around your proposal happens first. While creating this PR means you probably already did the work, it still makes sense to file an issue now, and into the future when you have proposed changes.
If there is no issue filed for this particular change it's highly recommended you file one. While creating this PR means you probably already did the work, in the future make sure an issue is filed beforehand so changes, fixes and features can be discussed ahead of time.
## Description
# Description
Please include a summary of the change and which issue number is fixed, including relevant motivation and context. Feel free to mark this as a Draft or WIP and write up some details later and start a conversation, even if your PR is not ready for review.
Fixes # (issue)
## Screenshot Examples or Logs
If this is a frontend change, please include a screenshot of the change. If this is a backend change, please include relevant logs or examples of the change in action if applicable.
---
Some things you might want to mention:
@@ -16,4 +21,4 @@ Some things you might want to mention:
3. If you're fixing something, what was wrong? How should we stop from having this issue happen again?
4. If this is a new feature or addition to functionality, why should it be added? What are the use cases? Who was asking for this functionality?
If this is an unsolicited change or have no issue associated please do your best to detail the motivations behind this PR, and think about filing an issue to discuss changes ahead of time in the future.
Thank you so much for contributing to Owncast! 🎉

31
.github/stale.yml vendored
View File

@@ -1,31 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- backlog
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. If this
was a feature request that others have shown no interest in then it's
likely to not get implemented due to lack of interest. If others also
want to see this feature then now is the time to say something!
Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
exemptMilestones: true
# Since old PRs are less useful than old issues ping them sooner.
pulls:
daysUntilStale: 30
markComment: >
This pull request has not had any activity in 30 days. Since things move fast it's best
to get PRs merged in. If this PR addresses a previously filed issue that needs to be
resolved please work to get it merged in, or allow somebody else to work on a fix.
This PR will be closed if no further activity occurs. Thank you for your contributions!
exemptLabels:
- bot

View File

@@ -13,7 +13,15 @@ jobs:
name: GitHub actions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- uses: docker://rhysd/actionlint:latest
with:

View File

@@ -11,7 +11,7 @@ jobs:
issues: write
steps:
- name: Add comment
uses: peter-evans/create-or-update-comment@b2c2ea48c8372531b25379e516637a72161eedbe
uses: peter-evans/create-or-update-comment@fdb73c443d3a4f66832374f01fb9a713fad84937
with:
issue-number: ${{ github.event.issue.number }}
body: |

View File

@@ -18,24 +18,44 @@ jobs:
with:
concurrent_skipping: 'same_content_newer'
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Get changed files
id: changed-files-yaml
uses: tj-actions/changed-files@v45
with:
files_yaml: |
src:
- '**/*.{go,mod,sum}'
- uses: earthly/actions-setup@v1
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
with:
version: 'latest' # or pin to an specific version, e.g. "v0.6.10"
- name: Earthly version
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
run: earthly --version
- name: Set up QEMU
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
id: qemu
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:latest
platforms: all
- uses: actions/checkout@v4
- name: Run API tests
uses: nick-fields/retry@v2
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 3

View File

@@ -19,15 +19,22 @@ jobs:
with:
concurrent_skipping: 'same_content_newer'
- name: Checkout
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- uses: actions/setup-node@v4
with:
node-version: 18.9.0
node-version: '22.9.0'
- name: Cache node modules
uses: actions/cache@v3
uses: actions/cache@v4
env:
cache-name: cache-node-modules-browser-tests
with:
@@ -38,16 +45,16 @@ jobs:
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21'
go-version: '1.22'
cache: true
- name: Install Google Chrome
run: sudo apt-get update && sudo apt-get install google-chrome-stable
- name: Run Browser tests
uses: nick-fields/retry@v2
uses: nick-fields/retry@v3
with:
timeout_minutes: 20
max_attempts: 3

View File

@@ -3,7 +3,12 @@ on:
push:
branches:
- develop
paths: ['web/stories/**', 'web/components/**', 'web/.storybook/**'] # Trigger the action only when files change in the folders defined here
paths: [
'web/stories/**',
'web/components/**',
'web/.storybook/**',
'web/i18n/**',
] # Trigger the action only when files change in the folders defined here
jobs:
build-and-deploy:
@@ -11,11 +16,18 @@ jobs:
if: github.repository == 'owncast/owncast'
steps:
- name: Checkout
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Cache node modules
uses: actions/cache@v3
uses: actions/cache@v4
env:
cache-name: cache-node-modules-bundle-web-app
with:
@@ -47,7 +59,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Dispatch event to web site
uses: peter-evans/repository-dispatch@v2
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.BUNDLE_STORYBOOK_OWNCAST_ONLINE }}
repository: owncast/owncast.github.io

View File

@@ -27,23 +27,37 @@ jobs:
uses: fkirc/skip-duplicate-actions@v5
with:
concurrent_skipping: 'same_content_newer'
- name: Check out code
if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' }}
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target'
with:
# Make sure the actual branch is checked out when running on pull requests
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Get changed files
id: changed-files-yaml
uses: tj-actions/changed-files@v45
with:
path: 'web'
files_ignore: |
static/**
web/next.config.js
files_yaml: |
src:
- '**/*.{js,ts,tsx,jsx,md}'
- name: Install dependencies
if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' }}
if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' && steps.changed-files-yaml.outputs.src_any_changed == 'true'}}
run: npm install
- name: Publish to Chromatic
if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' }}
if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' && steps.changed-files-yaml.outputs.src_any_changed == 'true' }}
uses: chromaui/action@v11
uses: chromaui/action@v1
# Chromatic GitHub Action options
with:
workingDir: web

View File

@@ -9,16 +9,16 @@
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
name: 'CodeQL'
on:
push:
branches: [ develop ]
branches: [develop]
paths-ignore:
- 'static/**'
pull_request:
# The branches below must be a subset of the branches above
branches: [ develop ]
branches: [develop]
paths-ignore:
- 'static/**'
@@ -30,41 +30,53 @@ jobs:
strategy:
fail-fast: false
matrix:
language: [ 'go', 'javascript' ]
language: ['go', 'javascript']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql/${{ matrix.language }}.yml
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
- uses: actions/setup-go@v5
with:
go-version: '1.22'
cache: true
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql/${{ matrix.language }}.yml
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
#- run: |
# make bootstrap
# make release
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

View File

@@ -19,7 +19,15 @@ jobs:
container:
image: aquasec/trivy
steps:
- uses: actions/checkout@v4
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Check critical issues
run: trivy config --exit-code 1 --severity "HIGH,CRITICAL" ./Dockerfile

View File

@@ -37,10 +37,15 @@ jobs:
image: tonistiigi/binfmt:latest
platforms: all
- name: Checkout repo
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
fetch-depth: 0
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push' || github.event_name == 'schedule'
- name: Build and push
if: ${{ github.event_name == 'schedule' && env.GH_CR_PAT != null }}
@@ -49,7 +54,7 @@ jobs:
EARTHLY_BUILD_TAG: 'nightly'
EARTHLY_BUILD_BRANCH: 'develop'
EARTHLY_PUSH: true
uses: nick-fields/retry@v2
uses: nick-fields/retry@v3
with:
timeout_minutes: 20
max_attempts: 3

53
.github/workflows/css-lint.yaml vendored Normal file
View File

@@ -0,0 +1,53 @@
name: CSS Lint and Formatting
on:
push:
paths:
- 'web/**'
pull_request:
paths:
- 'web/**'
jobs:
css-lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./web
steps:
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Get changed files
id: changed-files-yaml
uses: tj-actions/changed-files@v45
with:
path: 'web'
files_yaml: |
src:
- '**/*.{css,scss}'
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '22.9.0'
- name: Install dependencies
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
run: npm install
- name: Run Prettier
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
run: npx prettier --check ${{ steps.changed-files-yaml.outputs.src_all_changed_files }}
- name: Run Stylelint
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
run: npx stylelint ${{ steps.changed-files-yaml.outputs.src_all_changed_files }}

View File

@@ -9,19 +9,26 @@ jobs:
name: Generate API Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Run redoc on openapi.yaml
run: |
npx redoc-cli bundle openapi.yaml -o docs/api/index.html --options '{"hideHostname": true, "pathInMiddlePanel": true}'
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
author_name: Owncast
author_email: owncast@owncast.online
message: "Commit updated API documentation"
add: "docs/api/index.html"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run redoc on openapi.yaml
run: |
npx @redocly/cli --config docs/api/redocly.yaml build-docs openapi.yaml -o docs/api/index.html
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
author_name: Owncast
author_email: owncast@owncast.online
message: 'Commit updated API documentation'
add: 'docs/api/index.html'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -26,13 +26,13 @@ jobs:
with:
fetch-depth: 0
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21'
go-version: '1.22'
cache: true
- uses: actions/checkout@v4
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
uses: golangci/golangci-lint-action@v6
with:
only-new-issues: true
args: --timeout=3m

View File

@@ -12,13 +12,22 @@ jobs:
test:
strategy:
matrix:
go-version: [1.20.x, 1.21.x]
go-version: [1.21.x, 1.22.x]
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
- name: Get changed files
id: changed-files-yaml
uses: tj-actions/changed-files@v45
with:
files_yaml: |
src:
- '**/*.{go,mod,sum}'
- uses: actions/cache@v4
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
with:
path: |
~/.cache/go-build
@@ -28,12 +37,14 @@ jobs:
go-test-
- name: Install go
uses: actions/setup-go@v4
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
uses: actions/setup-go@v5
with:
go-version: '^1'
cache: true
- name: Run tests
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
run: go test ./...
test-bsds:
@@ -49,7 +60,15 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
- name: Get changed files
id: changed-files-yaml
uses: tj-actions/changed-files@v45
with:
files_yaml: |
src:
- '**/*.{go,mod,sum}'
- uses: actions/cache@v4
with:
path: |
~/.cache/go-build
@@ -59,10 +78,12 @@ jobs:
go-test-
- name: Install go
uses: actions/setup-go@v4
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
uses: actions/setup-go@v5
with:
go-version: '^1'
cache: true
- name: Run tests
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
run: go test ./...

View File

@@ -24,14 +24,33 @@ jobs:
uses: fkirc/skip-duplicate-actions@v5
with:
concurrent_skipping: 'same_content_newer'
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
go-version: '1.21'
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Get changed files
id: changed-files-yaml
uses: tj-actions/changed-files@v45
with:
files_yaml: |
src:
- '**/*.{go,mod,sum}'
- uses: actions/setup-go@v5
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
with:
go-version: '1.22'
cache: true
- name: Cache node modules
uses: actions/cache@v3
uses: actions/cache@v4
env:
cache-name: cache-node-modules-hls-tests
with:
@@ -43,14 +62,16 @@ jobs:
${{ runner.os }}-
- name: Local stroage
uses: nick-fields/retry@v2
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 3
command: cd test/automated/hls && ./run.sh
- name: S3 storage
uses: nick-fields/retry@v2
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 3

View File

@@ -28,18 +28,25 @@ jobs:
cancel_others: 'true'
skip_after_successful_duplicate: 'true'
- name: Checkout
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
# Make sure the actual branch is checked out when running on pull requests
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
persist-credentials: true
ref: ${{github.event.pull_request.head.ref}}
- name: Setup Nodejs
uses: actions/setup-node@v4
with:
node-version: '22.9.0'
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Get changed files
id: changed-files-yaml
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v45
with:
path: 'web'
files_ignore: |
@@ -47,10 +54,10 @@ jobs:
web/next.config.js
files_yaml: |
src:
- '**/*.{js,ts,tsx,jsx,css,md}'
- '**/*.{js,ts,tsx,jsx,md}'
- name: Cache node modules
uses: actions/cache@v3
uses: actions/cache@v4
env:
cache-name: cache-node-modules-bundle-web-app
with:
@@ -64,22 +71,34 @@ jobs:
- name: Install Dependencies
run: npm install
- name: Lint
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
- name: Lint and fix
if: steps.changed-files-yaml.outputs.src_any_changed == 'true' && github.event_name != 'pull_request'
run: npx eslint --fix ${{ steps.changed-files-yaml.outputs.src_all_changed_files }}
- name: Prettier
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
- name: Lint
if: steps.changed-files-yaml.outputs.src_any_changed == 'true' && github.event_name == 'pull_request'
run: npx eslint ${{ steps.changed-files-yaml.outputs.src_all_changed_files }}
- name: Prettier formatting
if: steps.changed-files-yaml.outputs.src_any_changed == 'true' && github.event_name == 'pull_request'
run: npx prettier --write ${{ steps.changed-files-yaml.outputs.src_all_changed_files }}
- name: Prettier check
if: steps.changed-files-yaml.outputs.src_any_changed == 'true' && github.event_name != 'pull_request'
run: npx prettier ${{ steps.changed-files-yaml.outputs.src_all_changed_files }}
- name: Debug changed files output
run: 'pwd && echo "Changed files: ${{ steps.changed-files-yaml.outputs.src_all_changed_files }}"'
- name: Commit changes
if: steps.changed-files-yaml.outputs.src_any_changed == 'true'
if: steps.changed-files-yaml.outputs.src_any_changed == 'true' && github.event_name != 'pull_request'
uses: EndBug/add-and-commit@v9
with:
author_name: Owncast
author_email: owncast@owncast.online
message: 'Javascript formatting autofixes'
add: ${{ steps.changed-files-yaml.outputs.src_all_changed_files }}
cwd: './web' # Ensure this is the correct relative directory
pull: '--rebase --autostash'
unused-code:
@@ -97,16 +116,23 @@ jobs:
cancel_others: 'true'
skip_after_successful_duplicate: 'true'
- name: Checkout
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
# Make sure the actual branch is checked out when running on pull requests
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Setup Nodejs
uses: actions/setup-node@v4
with:
node-version: '22.9.0'
- name: Cache node modules
uses: actions/cache@v3
uses: actions/cache@v4
env:
cache-name: cache-node-modules-bundle-web-app
with:
@@ -123,6 +149,10 @@ jobs:
- name: Check for unused JS code and dependencies
run: npx knip --include dependencies,files,exports
- name: Run tests
working-directory: ./web
run: npm test
# After any formatting and linting is complete we can run the build
# and bundle step. This both will verify that the build is successful as
# well as commiting the updated static files into the repository for use.
@@ -139,8 +169,13 @@ jobs:
cancel_others: 'true'
skip_after_successful_duplicate: 'true'
- name: Setup Nodejs
uses: actions/setup-node@v4
with:
node-version: '22.9.0'
- name: Cache node modules
uses: actions/cache@v3
uses: actions/cache@v4
env:
cache-name: cache-node-modules-bundle-web-app
with:
@@ -151,13 +186,15 @@ jobs:
${{ runner.os }}-build-
${{ runner.os }}-
- name: Checkout
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
# Make sure the actual branch is checked out when running on pull requests
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Bundle web app (next.js build)
run: build/web/bundleWeb.sh

View File

@@ -1,45 +0,0 @@
name: Javascript Tests
on:
push:
paths:
- 'web/**'
pull_request:
paths:
- 'web/**'
jobs:
jest-run:
runs-on: ubuntu-latest
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
concurrent_skipping: 'same_content_newer'
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.9.0
- name: Cache node modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules-javascript-tests
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('web/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install Dependencies
working-directory: ./web
run: npm install
- name: Run tests
working-directory: ./web
run: npm test

View File

@@ -1,58 +0,0 @@
name: Take nightly screenshots
on:
schedule:
- cron: '0 4 * * *'
env:
BROWSERSTACK_KEY: ${{ secrets.BROWSERSTACK_KEY }}
BROWSERSTACK_PASSWORD: ${{ secrets.BROWSERSTACK_PASSWORD }}
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
TEST_URL: http://localhost:8080
jobs:
Screenshots:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
cache: true
- name: Cache node modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules-screenshots
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('test/automated/screenshots/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Automate screenshots
uses: nick-fields/retry@v2
with:
timeout_minutes: 10
max_attempts: 4
command: cd test/automated/screenshots && ./run.sh
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
author_name: Owncast
author_email: owncast@owncast.online
message: 'Commit screenshots'
add: '*.png'
pull: '--rebase --autostash'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Dispatch event to web site
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.BUNDLE_STORYBOOK_OWNCAST_ONLINE }}
repository: owncast/owncast.github.io
event-type: bundle-components-library

View File

@@ -18,9 +18,17 @@ jobs:
env:
LANG: C.UTF-8
container:
image: docker.io/ubuntu:23.10
image: docker.io/ubuntu:24.04
steps:
- uses: actions/checkout@v4
- name: Check out pull request code
uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Check out repository code
uses: actions/checkout@v4
if: github.event_name == 'push'
- name: Install shellcheck
run: apt update && apt install -y shellcheck bash && shellcheck --version

49
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '30 */2 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
exempt-all-milestones: true
days-before-issue-stale: 60
days-before-issue-close: 67
exempt-issue-labels: backlog,long-lived,bot
exempt-all-issue-milestones: true
stale-issue-message: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. If this
was a feature request that others have shown no interest in, then it's
unlikely to get implemented due to lack of interest. If others also
want to see this feature then now is the time to say something! If this
is a bug report or you have questions that still need answering, please say
something. Feel free to drop by [our chat](https://owncast.rocket.chat) if
you'd like to discuss in real-time with people.
close-issue-message: >
This issue has been automatically closed due to inactivity. This isn't done
to be a jerk, or because the project doesn't care. But simply to keep the focus
on things that are actively discussed, and has continued interest from the community and
Owncast developers. Feel free to to comment if there is still discussion to be
had, or if you plan to work on it. Feel free to drop by [our chat](https://owncast.rocket.chat)
if you'd like to discuss in real-time with people. Thank you for being involved!
days-before-pr-stale: 30
days-before-pr-close: 37
exempt-pr-labels: backlog,long-lived,bot
exempt-all-pr-milestones: true
stale-pr-message: >
This pull request has not had any activity in 30 days. If it has been abandoned
no future actions are necessary, it will be automatically closed. If this is a PR
with no clear plan on how to move forward on it getting into the project, then
further discussion is needed. Now is a good time to discuss if this is still
something that should be worked on. If this PR is idle simply because nobody
has reviewed it, then feel free to ping somebody. However, if this PR is not linked to an
existing issue regarding something that was previously determined to be important, then even
more discussion needs to take place before it can get anywhere.
This PR will be closed if no further activity occurs. Thank you for your contributions!
close-pr-message: 'This PR was closed because it has been stalled for 10 days with no activity.'

62
.github/workflows/translations.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
name: Translation job
on:
schedule:
# Run the workflow every hour
- cron: '0 * * * *'
push:
paths:
- 'web/i18n/en/translation.json'
- 'web/**/*.tsx'
- 'web/**/*.js'
- 'crowdin.yml'
- '.github/workflows/translations.yml'
- 'web/i18next-parser.config.mjs'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
generate-translations:
defaults:
run:
working-directory: ./web
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' }}
run: npm install
- name: Generate translation files
run: npm run translate
- name: Crowdin upload sources/download translations
uses: crowdin/github-action@v1
with:
upload_sources: true
download_translations: true
create_pull_request: true
pull_request_title: 'New Translations'
localization_branch_name: translations
pull_request_base_branch_name: 'develop'
commit_message: 'Updated translations'
config: crowdin.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
# - name: Commit changes
# uses: EndBug/add-and-commit@v9
# with:
# author_name: Owncast
# author_email: owncast@owncast.online
# message: 'Commit updated translations'
# add: 'web/i18n/**'
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

1
.gitignore vendored
View File

@@ -4,6 +4,7 @@
*.dll
*.so
*.dylib
.DS_Store
# Test binary, built with `go test -c`
*.test

View File

@@ -5,7 +5,7 @@ run:
# Define the Go version limit.
# Mainly related to generics support in go1.18.
# Default: use Go version from the go.mod file, fallback on the env var `GOVERSION`, fallback on 1.18
go: '1.21'
go: '1.22'
issues:
# The linter has a default list of ignorable errors. Turning this on will enable that list.
@@ -28,7 +28,6 @@ linters:
- bodyclose
- dupl
- errcheck
- exportloopref
- goconst
- godot
- godox
@@ -49,7 +48,7 @@ linters:
- cyclop
- gosimple
- unused
- exportloopref
- copyloopvar
- gocritic
- forbidigo
- unparam
@@ -67,12 +66,6 @@ linters-settings:
# should ignore tests
skip-tests: true
gosimple:
# Select the Go version to target. The default is '1.13'.
go: '1.21'
# https://staticcheck.io/docs/options#checks
checks: ['all']
gocritic:
disabled-checks:
- ifElseChain

View File

@@ -22,7 +22,7 @@ ENV NAME=${NAME}
RUN CGO_ENABLED=1 GOOS=linux go build -a -installsuffix cgo -ldflags "-extldflags \"-static\" -s -w -X github.com/owncast/owncast/config.GitCommit=$GIT_COMMIT -X github.com/owncast/owncast/config.VersionNumber=$VERSION -X github.com/owncast/owncast/config.BuildPlatform=$NAME" -o owncast .
# Create the image by copying the result of the build into a new alpine image
FROM alpine:3.18.4
FROM alpine:3.21.2
RUN apk update && apk add --no-cache ffmpeg ffmpeg-libs ca-certificates && update-ca-certificates
RUN addgroup -g 101 -S owncast && adduser -u 101 -S owncast -G owncast

View File

@@ -1,6 +1,6 @@
VERSION --new-platform 0.6
FROM --platform=linux/amd64 alpine:3.15.5
FROM --platform=linux/amd64 alpine:3.21.2
ARG version=develop
WORKDIR /build
@@ -87,7 +87,7 @@ build:
RUN upx -t owncast
END
SAVE ARTIFACT owncast owncast
SAVE ARTIFACT --keep-ts owncast owncast
package:
RUN apk add --update --no-cache zip >> /dev/null
@@ -109,7 +109,7 @@ package:
ARG NAME=custom
END
COPY (+build/owncast --platform $TARGETPLATFORM) /build/dist/owncast
COPY --keep-ts (+build/owncast --platform $TARGETPLATFORM) /build/dist/owncast
ENV ZIPNAME owncast-$version-$NAME.zip
RUN cd /build/dist && zip -r -q -8 /build/dist/owncast.zip .
SAVE ARTIFACT --keep-ts /build/dist/owncast.zip owncast.zip AS LOCAL dist/$ZIPNAME
@@ -119,11 +119,11 @@ docker:
# in as space separated strings using the full account/repo:tag format.
# https://github.com/earthly/earthly/blob/aea38448fa9c0064b1b70d61be717ae740689fb9/docs/earthfile/earthfile.md#assigning-multiple-image-names
ARG TARGETPLATFORM
FROM --platform=$TARGETPLATFORM alpine:3.15.5
FROM --platform=$TARGETPLATFORM alpine:3.21.2
RUN apk update && apk add --no-cache ffmpeg ffmpeg-libs ca-certificates unzip && update-ca-certificates
RUN addgroup -g 101 -S owncast && adduser -u 101 -S owncast -G owncast
WORKDIR /app
COPY --platform=$TARGETPLATFORM +package/owncast.zip /app
COPY --keep-ts --platform=$TARGETPLATFORM +package/owncast.zip /app
RUN unzip -x owncast.zip && mkdir data
# temporarily disable until we figure out how to move forward

View File

@@ -1,37 +1,48 @@
<br />
<p align="center">
<a href="https://github.com/owncast/owncast" alt="Owncast">
<img src="https://owncast.online/images/logo.png" alt="Logo" width="200">
<img src="https://owncast.online/images/logo.png" alt="Owncast Logo" width="200">
</a>
</p>
<p align="center">
<strong>Take control over your content and stream it yourself.</strong>
</p>
<br/>
<p align="center">
<a href="https://github.com/owncast/owncast/blob/develop/LICENSE">
<img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License" />
</a>
</p>
<br/>
<p align="center">
<strong>Take control over your content and stream it yourself.</strong>
<br />
<a href="https://owncast.online"><strong>Explore the docs »</strong></a>
<br />
<a href="https://watch.owncast.online/">View Demo</a>
·
<a href="https://broadcast.owncast.online/">Use Our Server for Testing</a>
·
<a href="https://owncast.online/faq/">FAQ</a>
·
<a href="https://github.com/owncast/owncast/issues">Report Bug</a>
</p>
<p align="center">
<a href="https://owncast.online"><strong>Explore the docs »</strong></a>
<br />
<a href="https://watch.owncast.online/">View Demo</a>
·
<a href="https://owncast.online/faq/">FAQ</a>
·
<a href="https://github.com/owncast/owncast/issues">Report Bug</a>
</p>
<!-- TABLE OF CONTENTS -->
## Table of Contents
- [About the Project](#about-the-project)
- [Getting Started](#getting-started)
- [Use with your broadcasting software](#use-with-your-existing-broadcasting-software)
- [Building from source](#building-from-source)
- [Contributing](#contributing)
- [License](#license)
- 📒 [About the Project](#about-the-project)
- 🚀 [Getting Started](#getting-started)
- 👨‍💻 [Use with your broadcasting software](#use-with-your-existing-broadcasting-software)
- 🛠 [Building from source](#building-from-source)
- 🚨 [Important note about source code and the develop branch](#important-note-about-source-code-and-the-develop-branch)
- 🗄️ [Backend](#backend)
- ⚛️ [Frontend](#frontend)
- 👏 [Contributing](#contributing)
- 💵 [Donors](#donors)
- 📝 [License](#license)
- [Contact](#contact)
<!-- ABOUT THE PROJECT -->
@@ -95,7 +106,7 @@ The Owncast backend is a service written in Go.
1. Ensure you have prerequisites installed.
- C compiler, such as [GCC compiler](https://gcc.gnu.org/install/download.html) or a [Musl-compatible compiler](https://musl.libc.org/)
- [ffmpeg](https://ffmpeg.org/download.html)
1. Install the [Go toolchain](https://golang.org/dl/) (1.21 or above).
1. Install the [Go toolchain](https://golang.org/dl/) (1.22 or above).
1. Clone the repo. `git clone https://github.com/owncast/owncast`
1. `go run main.go` will run from the source.
1. Visit `http://yourserver:8080` to access the web interface or `http://yourserver:8080/admin` to access the admin.
@@ -117,18 +128,50 @@ And while we have a small team of kind, talented and thoughtful volunteers, we h
We abide by our [Code of Conduct](https://owncast.online/contribute/) and feel strongly about open, appreciative, and empathetic people joining us.
Weve been very lucky to have this so far, so maybe you can help us with your skills and passion, too!
If you're new to the project, maybe you'd be interested in looking at [![Good First Issue](https://img.shields.io/github/issues/owncast/owncast/good%20first%20issue.svg)](https://github.com/owncast/owncast/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
There is a larger, more detailed, and more up-to-date [guide for helping contribute to Owncast on our website](https://owncast.online/help/).
### Donors
The Owncast project is possible thanks to the people who make a donation to support us and our work.
Thank you to all our donors who help keep Owncast running by donating on OpenCollective. You can support this project by [becoming a backer/sponsor](https://opencollective.com/owncast#suppor).
<div>
<a href="https://opencollective.com/owncast#support">
<img alt="GitHub issues by-label" src="https://opencollective.com/owncast/tiers/backers.svg?avatarHeight=36&width=600" alt="Backer button">
</a>
</div>
<!-- LICENSE -->
## License
Distributed under the MIT License. See `LICENSE` for more information.
## Supported by
- This project is tested with [BrowserStack](https://browserstack.com).
## Support
<ul style="font-size:21px; color:black; ">
<li>Browser testing via <a
href="https://www.lambdatest.com/" target="_blank"><img
src="https://www.lambdatest.com/support/img/logo.svg"
style="vertical-align: middle;margin-left:5px" width="147" height="26"
/></a></li>
<li>Project chat provided by
<a href="https://rocket.chat" target="_blank">
<img src="https://owncast.online/images/sponsors/rocketchat.png" width="147" height="26" style="vertical-align: middle;margin-left:5px">
</a>
</li>
<li>CDN services by
<a href="https://fastly.com" target="_blank">
<img src="https://owncast.online/images/sponsors/fastly.png" height="26" style="vertical-align: middle;margin-left:5px">
</a>
</li>
<li>UI testing with Chromatic
<a href="https://chromatic.com" target="_blank">
<img src="https://owncast.online/images/sponsors/chromatic.png" height="26" style="vertical-align: middle;margin-left:5px">
</a>
</li>
</ul>
<!-- CONTACT -->
## Contact

View File

@@ -1,11 +1,14 @@
package activitypub
import (
"math"
"github.com/owncast/owncast/activitypub/crypto"
"github.com/owncast/owncast/activitypub/inbox"
"github.com/owncast/owncast/activitypub/outbox"
"github.com/owncast/owncast/activitypub/persistence"
"github.com/owncast/owncast/activitypub/workerpool"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/models"
@@ -14,22 +17,35 @@ import (
// Start will initialize and start the federation support.
func Start(datastore *data.Datastore) {
configRepository := configrepository.Get()
persistence.Setup(datastore)
workerpool.InitOutboundWorkerPool()
outboundWorkerPoolSize := getOutboundWorkerPoolSize()
workerpool.InitOutboundWorkerPool(outboundWorkerPoolSize)
inbox.InitInboxWorkerPool()
StartRouter()
// Generate the keys for signing federated activity if needed.
if data.GetPrivateKey() == "" {
if configRepository.GetPrivateKey() == "" {
privateKey, publicKey, err := crypto.GenerateKeys()
_ = data.SetPrivateKey(string(privateKey))
_ = data.SetPublicKey(string(publicKey))
_ = configRepository.SetPrivateKey(string(privateKey))
_ = configRepository.SetPublicKey(string(publicKey))
if err != nil {
log.Errorln("Unable to get private key", err)
}
}
}
func getOutboundWorkerPoolSize() int {
var followerCount int64
fc, err := persistence.GetFollowerCount()
if err != nil {
log.Errorln("Unable to get follower count", err)
fc = 50 // Arbitrary fallback value.
}
followerCount = int64(math.Max(float64(fc), 50))
return int(followerCount * 5)
}
// SendLive will send a "Go Live" message to followers.
func SendLive() error {
return outbox.SendLive()

View File

@@ -6,7 +6,7 @@ import (
"github.com/go-fed/activity/streams"
"github.com/go-fed/activity/streams/vocab"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
)
// PrivacyAudience represents the audience for an activity.
@@ -87,8 +87,10 @@ func MakeActivityDirect(activity vocab.ActivityStreamsCreate, toIRI *url.URL) vo
// MakeActivityPublic sets the required properties to make this activity
// seen as public.
func MakeActivityPublic(activity vocab.ActivityStreamsCreate) vocab.ActivityStreamsCreate {
configRepository := configrepository.Get()
// TO the public if we're not treating ActivityPub as "private".
if !data.GetFederationIsPrivate() {
if !configRepository.GetFederationIsPrivate() {
public, _ := url.Parse(PUBLIC)
to := streams.NewActivityStreamsToProperty()
@@ -121,7 +123,9 @@ func MakeUpdateActivity(activityID *url.URL) vocab.ActivityStreamsUpdate {
activity.SetJSONLDId(id)
// CC the public if we're not treating ActivityPub as "private".
if !data.GetFederationIsPrivate() {
configRepository := configrepository.Get()
if !configRepository.GetFederationIsPrivate() {
public, _ := url.Parse(PUBLIC)
cc := streams.NewActivityStreamsCcProperty()
cc.AppendIRI(public)

View File

@@ -9,8 +9,8 @@ import (
"github.com/go-fed/activity/streams"
"github.com/go-fed/activity/streams/vocab"
"github.com/owncast/owncast/activitypub/crypto"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/persistence/configrepository"
log "github.com/sirupsen/logrus"
)
@@ -101,11 +101,13 @@ func MakeActorPropertyWithID(idIRI *url.URL) vocab.ActivityStreamsActorProperty
// MakeServiceForAccount will create a new local actor service with the the provided username.
func MakeServiceForAccount(accountName string) vocab.ActivityStreamsService {
configRepository := configrepository.Get()
actorIRI := MakeLocalIRIForAccount(accountName)
person := streams.NewActivityStreamsService()
nameProperty := streams.NewActivityStreamsNameProperty()
nameProperty.AppendXMLSchemaString(data.GetServerName())
nameProperty.AppendXMLSchemaString(configRepository.GetServerName())
person.SetActivityStreamsName(nameProperty)
preferredUsernameProperty := streams.NewActivityStreamsPreferredUsernameProperty()
@@ -119,7 +121,7 @@ func MakeServiceForAccount(accountName string) vocab.ActivityStreamsService {
person.SetActivityStreamsInbox(inboxProp)
needsFollowApprovalProperty := streams.NewActivityStreamsManuallyApprovesFollowersProperty()
needsFollowApprovalProperty.Set(data.GetFederationIsPrivate())
needsFollowApprovalProperty.Set(configRepository.GetFederationIsPrivate())
person.SetActivityStreamsManuallyApprovesFollowers(needsFollowApprovalProperty)
outboxIRI := MakeLocalIRIForResource("/user/" + accountName + "/outbox")
@@ -152,7 +154,7 @@ func MakeServiceForAccount(accountName string) vocab.ActivityStreamsService {
publicKeyProp.AppendW3IDSecurityV1PublicKey(publicKeyType)
person.SetW3IDSecurityV1PublicKey(publicKeyProp)
if t, err := data.GetServerInitTime(); t != nil {
if t, err := configRepository.GetServerInitTime(); t != nil {
publishedDateProp := streams.NewActivityStreamsPublishedProperty()
publishedDateProp.Set(t.Time)
person.SetActivityStreamsPublished(publishedDateProp)
@@ -163,8 +165,8 @@ func MakeServiceForAccount(accountName string) vocab.ActivityStreamsService {
// Profile properties
// Avatar
uniquenessString := data.GetLogoUniquenessString()
userAvatarURLString := data.GetServerURL() + "/logo/external"
uniquenessString := configRepository.GetLogoUniquenessString()
userAvatarURLString := configRepository.GetServerURL() + "/logo/external"
userAvatarURL, err := url.Parse(userAvatarURLString)
userAvatarURL.RawQuery = "uc=" + uniquenessString
if err != nil {
@@ -195,14 +197,14 @@ func MakeServiceForAccount(accountName string) vocab.ActivityStreamsService {
// Profile bio
summaryProperty := streams.NewActivityStreamsSummaryProperty()
summaryProperty.AppendXMLSchemaString(data.GetServerSummary())
summaryProperty.AppendXMLSchemaString(configRepository.GetServerSummary())
person.SetActivityStreamsSummary(summaryProperty)
// Links
if serverURL := data.GetServerURL(); serverURL != "" {
if serverURL := configRepository.GetServerURL(); serverURL != "" {
addMetadataLinkToProfile(person, "Stream", serverURL)
}
for _, link := range data.GetSocialHandles() {
for _, link := range configRepository.GetSocialHandles() {
addMetadataLinkToProfile(person, link.Platform, link.URL)
}
@@ -220,7 +222,7 @@ func MakeServiceForAccount(accountName string) vocab.ActivityStreamsService {
// Tags
tagProp := streams.NewActivityStreamsTagProperty()
for _, tagString := range data.GetServerMetadataTags() {
for _, tagString := range configRepository.GetServerMetadataTags() {
hashtag := MakeHashtag(tagString)
tagProp.AppendTootHashtag(hashtag)
}
@@ -229,7 +231,7 @@ func MakeServiceForAccount(accountName string) vocab.ActivityStreamsService {
// Work around an issue where a single attachment will not serialize
// as an array, so add another item to the mix.
if len(data.GetSocialHandles()) == 1 {
if len(configRepository.GetSocialHandles()) == 1 {
addMetadataLinkToProfile(person, "Owncast", "https://owncast.online")
}

View File

@@ -9,6 +9,7 @@ import (
"github.com/go-fed/activity/streams"
"github.com/go-fed/activity/streams/vocab"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
)
func makeFakeService() vocab.ActivityStreamsService {
@@ -55,9 +56,11 @@ func TestMain(m *testing.M) {
if err != nil {
panic(err)
}
data.SetupPersistence(dbFile.Name())
data.SetServerURL("https://my.cool.site.biz")
configRepository := configrepository.Get()
configRepository.SetServerURL("https://my.cool.site.biz")
m.Run()
}

View File

@@ -8,7 +8,7 @@ import (
"github.com/go-fed/activity/streams"
"github.com/go-fed/activity/streams/vocab"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
log "github.com/sirupsen/logrus"
)
@@ -27,7 +27,9 @@ func MakeRemoteIRIForResource(resourcePath string, host string) (*url.URL, error
// MakeLocalIRIForResource will create an IRI for the local server.
func MakeLocalIRIForResource(resourcePath string) *url.URL {
host := data.GetServerURL()
configRepository := configrepository.Get()
host := configRepository.GetServerURL()
u, err := url.Parse(host)
if err != nil {
log.Errorln("unable to parse local IRI url", host, err)
@@ -41,7 +43,9 @@ func MakeLocalIRIForResource(resourcePath string) *url.URL {
// MakeLocalIRIForAccount will return a full IRI for the local server account username.
func MakeLocalIRIForAccount(account string) *url.URL {
host := data.GetServerURL()
configRepository := configrepository.Get()
host := configRepository.GetServerURL()
u, err := url.Parse(host)
if err != nil {
log.Errorln("unable to parse local IRI account server url", err)
@@ -64,7 +68,9 @@ func Serialize(obj vocab.Type) ([]byte, error) {
// MakeLocalIRIForStreamURL will return a full IRI for the local server stream url.
func MakeLocalIRIForStreamURL() *url.URL {
host := data.GetServerURL()
configRepository := configrepository.Get()
host := configRepository.GetServerURL()
u, err := url.Parse(host)
if err != nil {
log.Errorln("unable to parse local IRI stream url", err)
@@ -78,7 +84,9 @@ func MakeLocalIRIForStreamURL() *url.URL {
// MakeLocalIRIforLogo will return a full IRI for the local server logo.
func MakeLocalIRIforLogo() *url.URL {
host := data.GetServerURL()
configRepository := configrepository.Get()
host := configRepository.GetServerURL()
u, err := url.Parse(host)
if err != nil {
log.Errorln("unable to parse local IRI stream url", err)
@@ -93,7 +101,9 @@ func MakeLocalIRIforLogo() *url.URL {
// GetLogoType will return the rel value for the webfinger response and
// the default static image is of type png.
func GetLogoType() string {
imageFilename := data.GetLogoPath()
configRepository := configrepository.Get()
imageFilename := configRepository.GetLogoPath()
if imageFilename == "" {
return "image/png"
}

View File

@@ -9,12 +9,14 @@ import (
"github.com/owncast/owncast/activitypub/apmodels"
"github.com/owncast/owncast/activitypub/crypto"
"github.com/owncast/owncast/activitypub/requests"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
)
// ActorHandler handles requests for a single actor.
func ActorHandler(w http.ResponseWriter, r *http.Request) {
if !data.GetFederationEnabled() {
configRepository := configrepository.Get()
if !configRepository.GetFederationEnabled() {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}
@@ -22,7 +24,7 @@ func ActorHandler(w http.ResponseWriter, r *http.Request) {
pathComponents := strings.Split(r.URL.Path, "/")
accountName := pathComponents[3]
if _, valid := data.GetFederatedInboxMap()[accountName]; !valid {
if _, valid := configRepository.GetFederatedInboxMap()[accountName]; !valid {
// User is not valid
w.WriteHeader(http.StatusNotFound)
return

View File

@@ -16,7 +16,7 @@ import (
"github.com/owncast/owncast/activitypub/crypto"
"github.com/owncast/owncast/activitypub/persistence"
"github.com/owncast/owncast/activitypub/requests"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
)
const (
@@ -145,7 +145,9 @@ func getFollowersPage(page string, r *http.Request) (vocab.ActivityStreamsOrdere
}
func createPageURL(r *http.Request, page *string) (*url.URL, error) {
domain := data.GetServerURL()
configRepository := configrepository.Get()
domain := configRepository.GetServerURL()
if domain == "" {
return nil, errors.New("unable to get server URL")
}

View File

@@ -7,7 +7,7 @@ import (
"github.com/owncast/owncast/activitypub/apmodels"
"github.com/owncast/owncast/activitypub/inbox"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
log "github.com/sirupsen/logrus"
)
@@ -22,7 +22,9 @@ func InboxHandler(w http.ResponseWriter, r *http.Request) {
}
func acceptInboxRequest(w http.ResponseWriter, r *http.Request) {
if !data.GetFederationEnabled() {
configRepository := configrepository.Get()
if !configRepository.GetFederationEnabled() {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}
@@ -39,7 +41,7 @@ func acceptInboxRequest(w http.ResponseWriter, r *http.Request) {
// The account this request is for must match the account name we have set
// for federation.
if forLocalAccount != data.GetFederationUsername() {
if forLocalAccount != configRepository.GetFederationUsername() {
w.WriteHeader(http.StatusNotFound)
return
}

View File

@@ -10,7 +10,7 @@ import (
"github.com/owncast/owncast/activitypub/persistence"
"github.com/owncast/owncast/activitypub/requests"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
log "github.com/sirupsen/logrus"
)
@@ -25,12 +25,14 @@ func NodeInfoController(w http.ResponseWriter, r *http.Request) {
Links []links `json:"links"`
}
if !data.GetFederationEnabled() {
configRepository := configrepository.Get()
if !configRepository.GetFederationEnabled() {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}
serverURL := data.GetServerURL()
serverURL := configRepository.GetServerURL()
if serverURL == "" {
w.WriteHeader(http.StatusNotFound)
return
@@ -89,7 +91,9 @@ func NodeInfoV2Controller(w http.ResponseWriter, r *http.Request) {
Metadata metadata `json:"metadata"`
}
if !data.GetFederationEnabled() {
configRepository := configrepository.Get()
if !configRepository.GetFederationEnabled() {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}
@@ -117,7 +121,7 @@ func NodeInfoV2Controller(w http.ResponseWriter, r *http.Request) {
OpenRegistrations: false,
Protocols: []string{"activitypub"},
Metadata: metadata{
ChatEnabled: !data.GetChatDisabled(),
ChatEnabled: !configRepository.GetChatDisabled(),
},
}
@@ -163,12 +167,14 @@ func XNodeInfo2Controller(w http.ResponseWriter, r *http.Request) {
OpenRegistrations bool `json:"openRegistrations"`
}
if !data.GetFederationEnabled() {
configRepository := configrepository.Get()
if !configRepository.GetFederationEnabled() {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}
serverURL := data.GetServerURL()
serverURL := configRepository.GetServerURL()
if serverURL == "" {
w.WriteHeader(http.StatusNotFound)
return
@@ -178,7 +184,7 @@ func XNodeInfo2Controller(w http.ResponseWriter, r *http.Request) {
res := &response{
Organization: Organization{
Name: data.GetServerName(),
Name: configRepository.GetServerName(),
Contact: serverURL,
},
Server: Server{
@@ -232,12 +238,14 @@ func InstanceV1Controller(w http.ResponseWriter, r *http.Request) {
InvitesEnabled bool `json:"invites_enabled"`
}
if !data.GetFederationEnabled() {
configRepository := configrepository.Get()
if !configRepository.GetFederationEnabled() {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}
serverURL := data.GetServerURL()
serverURL := configRepository.GetServerURL()
if serverURL == "" {
w.WriteHeader(http.StatusNotFound)
return
@@ -254,9 +262,9 @@ func InstanceV1Controller(w http.ResponseWriter, r *http.Request) {
res := response{
URI: serverURL,
Title: data.GetServerName(),
ShortDescription: data.GetServerSummary(),
Description: data.GetServerSummary(),
Title: configRepository.GetServerName(),
ShortDescription: configRepository.GetServerSummary(),
Description: configRepository.GetServerSummary(),
Version: config.GetReleaseString(),
Stats: Stats{
UserCount: 1,
@@ -275,7 +283,9 @@ func InstanceV1Controller(w http.ResponseWriter, r *http.Request) {
}
func writeResponse(payload interface{}, w http.ResponseWriter) error {
accountName := data.GetDefaultFederationUsername()
configRepository := configrepository.Get()
accountName := configRepository.GetDefaultFederationUsername()
actorIRI := apmodels.MakeLocalIRIForAccount(accountName)
publicKey := crypto.GetPublicKey(actorIRI)
@@ -284,7 +294,15 @@ func writeResponse(payload interface{}, w http.ResponseWriter) error {
// HostMetaController points to webfinger.
func HostMetaController(w http.ResponseWriter, r *http.Request) {
serverURL := data.GetServerURL()
configRepository := configrepository.Get()
if !configRepository.GetFederationEnabled() {
w.WriteHeader(http.StatusMethodNotAllowed)
log.Debugln("host meta request rejected! Federation is not enabled")
return
}
serverURL := configRepository.GetServerURL()
if serverURL == "" {
w.WriteHeader(http.StatusNotFound)
return

View File

@@ -8,31 +8,33 @@ import (
"github.com/owncast/owncast/activitypub/crypto"
"github.com/owncast/owncast/activitypub/persistence"
"github.com/owncast/owncast/activitypub/requests"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
log "github.com/sirupsen/logrus"
)
// ObjectHandler handles requests for a single federated ActivityPub object.
func ObjectHandler(w http.ResponseWriter, r *http.Request) {
if !data.GetFederationEnabled() {
configRepository := configrepository.Get()
if !configRepository.GetFederationEnabled() {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}
// If private federation mode is enabled do not allow access to objects.
if data.GetFederationIsPrivate() {
if configRepository.GetFederationIsPrivate() {
w.WriteHeader(http.StatusNotFound)
return
}
iri := strings.Join([]string{strings.TrimSuffix(data.GetServerURL(), "/"), r.URL.Path}, "")
iri := strings.Join([]string{strings.TrimSuffix(configRepository.GetServerURL(), "/"), r.URL.Path}, "")
object, _, _, err := persistence.GetObjectByIRI(iri)
if err != nil {
w.WriteHeader(http.StatusNotFound)
return
}
accountName := data.GetDefaultFederationUsername()
accountName := configRepository.GetDefaultFederationUsername()
actorIRI := apmodels.MakeLocalIRIForAccount(accountName)
publicKey := crypto.GetPublicKey(actorIRI)

View File

@@ -6,20 +6,22 @@ import (
"strings"
"github.com/owncast/owncast/activitypub/apmodels"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/owncast/owncast/utils"
log "github.com/sirupsen/logrus"
)
// WebfingerHandler will handle webfinger lookup requests.
func WebfingerHandler(w http.ResponseWriter, r *http.Request) {
if !data.GetFederationEnabled() {
configRepository := configrepository.Get()
if !configRepository.GetFederationEnabled() {
w.WriteHeader(http.StatusMethodNotAllowed)
log.Debugln("webfinger request rejected! Federation is not enabled")
return
}
instanceHostURL := data.GetServerURL()
instanceHostURL := configRepository.GetServerURL()
if instanceHostURL == "" {
w.WriteHeader(http.StatusNotFound)
log.Warnln("webfinger request rejected! Federation is enabled but server URL is empty.")
@@ -29,7 +31,7 @@ func WebfingerHandler(w http.ResponseWriter, r *http.Request) {
instanceHostString := utils.GetHostnameFromURLString(instanceHostURL)
if instanceHostString == "" {
w.WriteHeader(http.StatusNotFound)
log.Warnln("webfinger request rejected! Federation is enabled but server URL is not set properly. data.GetServerURL(): " + data.GetServerURL())
log.Warnln("webfinger request rejected! Federation is enabled but server URL is not set properly. data.GetServerURL(): " + configRepository.GetServerURL())
return
}
@@ -51,7 +53,7 @@ func WebfingerHandler(w http.ResponseWriter, r *http.Request) {
host := userComponents[1]
user := userComponents[0]
if _, valid := data.GetFederatedInboxMap()[user]; !valid {
if _, valid := configRepository.GetFederatedInboxMap()[user]; !valid {
w.WriteHeader(http.StatusNotFound)
log.Debugln("webfinger request rejected! Invalid user: " + user)
return

View File

@@ -8,13 +8,15 @@ import (
"errors"
"net/url"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
log "github.com/sirupsen/logrus"
)
// GetPublicKey will return the public key for the provided actor.
func GetPublicKey(actorIRI *url.URL) PublicKey {
key := data.GetPublicKey()
configRepository := configrepository.Get()
key := configRepository.GetPublicKey()
idURL, err := url.Parse(actorIRI.String() + "#main-key")
if err != nil {
log.Errorln("unable to parse actor iri string", idURL, err)
@@ -29,7 +31,9 @@ func GetPublicKey(actorIRI *url.URL) PublicKey {
// GetPrivateKey will return the internal server private key.
func GetPrivateKey() *rsa.PrivateKey {
key := data.GetPrivateKey()
configRepository := configrepository.Get()
key := configRepository.GetPrivateKey()
block, _ := pem.Decode([]byte(key))
if block == nil {

View File

@@ -7,17 +7,19 @@ import (
"github.com/owncast/owncast/activitypub/resolvers"
"github.com/owncast/owncast/core/chat"
"github.com/owncast/owncast/core/chat/events"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
)
func handleEngagementActivity(eventType events.EventType, isLiveNotification bool, actorReference vocab.ActivityStreamsActorProperty, action string) error {
configRepository := configrepository.Get()
// Do nothing if displaying engagement actions has been turned off.
if !data.GetFederationShowEngagement() {
if !configRepository.GetFederationShowEngagement() {
return nil
}
// Do nothing if chat is disabled
if data.GetChatDisabled() {
if configRepository.GetChatDisabled() {
return nil
}
@@ -36,11 +38,11 @@ func handleEngagementActivity(eventType events.EventType, isLiveNotification boo
if isLiveNotification && action == events.FediverseEngagementLike {
suffix = "liked that this stream went live."
} else if action == events.FediverseEngagementLike {
suffix = fmt.Sprintf("liked a post from %s.", data.GetServerName())
suffix = fmt.Sprintf("liked a post from %s.", configRepository.GetServerName())
} else if isLiveNotification && action == events.FediverseEngagementRepost {
suffix = "shared this stream with their followers."
} else if action == events.FediverseEngagementRepost {
suffix = fmt.Sprintf("shared a post from %s.", data.GetServerName())
suffix = fmt.Sprintf("shared a post from %s.", configRepository.GetServerName())
} else if action == events.FediverseEngagementFollow {
suffix = "followed this stream."
} else {

View File

@@ -10,13 +10,15 @@ import (
"github.com/owncast/owncast/activitypub/requests"
"github.com/owncast/owncast/activitypub/resolvers"
"github.com/owncast/owncast/core/chat/events"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
)
func handleFollowInboxRequest(c context.Context, activity vocab.ActivityStreamsFollow) error {
configRepository := configrepository.Get()
follow, err := resolvers.MakeFollowRequest(c, activity)
if err != nil {
log.Errorln("unable to create follow inbox request", err)
@@ -27,7 +29,7 @@ func handleFollowInboxRequest(c context.Context, activity vocab.ActivityStreamsF
return fmt.Errorf("unable to handle request")
}
approved := !data.GetFederationIsPrivate()
approved := !configRepository.GetFederationIsPrivate()
followRequest := *follow
@@ -36,7 +38,7 @@ func handleFollowInboxRequest(c context.Context, activity vocab.ActivityStreamsF
return err
}
localAccountName := data.GetDefaultFederationUsername()
localAccountName := configRepository.GetDefaultFederationUsername()
if approved {
if err := requests.SendFollowAccept(follow.Inbox, activity, localAccountName); err != nil {

View File

@@ -15,7 +15,7 @@ import (
"github.com/owncast/owncast/activitypub/apmodels"
"github.com/owncast/owncast/activitypub/persistence"
"github.com/owncast/owncast/activitypub/resolvers"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
log "github.com/sirupsen/logrus"
)
@@ -131,7 +131,9 @@ func Verify(request *http.Request) (bool, error) {
}
func isBlockedDomain(domain string) bool {
blockedDomains := data.GetBlockedFederatedDomains()
configRepository := configrepository.Get()
blockedDomains := configRepository.GetBlockedFederatedDomains()
for _, blockedDomain := range blockedDomains {
if strings.Contains(domain, blockedDomain) {

View File

@@ -9,6 +9,7 @@ import (
"github.com/owncast/owncast/activitypub/apmodels"
"github.com/owncast/owncast/activitypub/persistence"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
)
func makeFakePerson() vocab.ActivityStreamsPerson {
@@ -49,21 +50,24 @@ func makeFakePerson() vocab.ActivityStreamsPerson {
func TestMain(m *testing.M) {
data.SetupPersistence(":memory:")
data.SetServerURL("https://my.cool.site.biz")
configRepository := configrepository.Get()
configRepository.SetServerURL("https://my.cool.site.biz")
persistence.Setup(data.GetDatastore())
m.Run()
}
func TestBlockedDomains(t *testing.T) {
configRepository := configrepository.Get()
person := makeFakePerson()
data.SetBlockedFederatedDomains([]string{"freedom.eagle", "guns.life"})
configRepository.SetBlockedFederatedDomains([]string{"freedom.eagle", "guns.life"})
if len(data.GetBlockedFederatedDomains()) != 2 {
if len(configRepository.GetBlockedFederatedDomains()) != 2 {
t.Error("Blocked federated domains is not set correctly")
}
for _, domain := range data.GetBlockedFederatedDomains() {
for _, domain := range configRepository.GetBlockedFederatedDomains() {
if domain == person.GetJSONLDId().GetIRI().Host {
return
}

View File

@@ -16,10 +16,10 @@ import (
"github.com/owncast/owncast/activitypub/resolvers"
"github.com/owncast/owncast/activitypub/webfinger"
"github.com/owncast/owncast/activitypub/workerpool"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/pkg/errors"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/utils"
log "github.com/sirupsen/logrus"
"github.com/teris-io/shortid"
@@ -27,7 +27,9 @@ import (
// SendLive will send all followers the message saying you started a live stream.
func SendLive() error {
textContent := data.GetFederationGoLiveMessage()
configRepository := configrepository.Get()
textContent := configRepository.GetFederationGoLiveMessage()
// If the message is empty then do not send it.
if textContent == "" {
@@ -38,7 +40,7 @@ func SendLive() error {
reg := regexp.MustCompile("[^a-zA-Z0-9]+")
tagProp := streams.NewActivityStreamsTagProperty()
for _, tagString := range data.GetServerMetadataTags() {
for _, tagString := range configRepository.GetServerMetadataTags() {
tagWithoutSpecialCharacters := reg.ReplaceAllString(tagString, "")
hashtag := apmodels.MakeHashtag(tagWithoutSpecialCharacters)
tagProp.AppendTootHashtag(hashtag)
@@ -57,15 +59,15 @@ func SendLive() error {
tagsString := strings.Join(tagStrings, " ")
var streamTitle string
if title := data.GetStreamTitle(); title != "" {
if title := configRepository.GetStreamTitle(); title != "" {
streamTitle = fmt.Sprintf("<p>%s</p>", title)
}
textContent = fmt.Sprintf("<p>%s</p>%s<p>%s</p><p><a href=\"%s\">%s</a></p>", textContent, streamTitle, tagsString, data.GetServerURL(), data.GetServerURL())
textContent = fmt.Sprintf("<p>%s</p>%s<p>%s</p><p><a href=\"%s\">%s</a></p>", textContent, streamTitle, tagsString, configRepository.GetServerURL(), configRepository.GetServerURL())
activity, _, note, noteID := createBaseOutboundMessage(textContent)
// To the public if we're not treating ActivityPub as "private".
if !data.GetFederationIsPrivate() {
if !configRepository.GetFederationIsPrivate() {
note = apmodels.MakeNotePublic(note)
activity = apmodels.MakeActivityPublic(activity)
}
@@ -73,7 +75,7 @@ func SendLive() error {
note.SetActivityStreamsTag(tagProp)
// Attach an image along with the Federated message.
previewURL, err := url.Parse(data.GetServerURL())
previewURL, err := url.Parse(configRepository.GetServerURL())
if err == nil {
var imageToAttach string
var mediaType string
@@ -94,7 +96,7 @@ func SendLive() error {
}
}
if data.GetNSFW() {
if configRepository.GetNSFW() {
// Mark content as sensitive.
sensitive := streams.NewActivityStreamsSensitiveProperty()
sensitive.AppendXMLSchemaBoolean(true)
@@ -151,6 +153,8 @@ func SendDirectMessageToAccount(textContent, account string) error {
// SendPublicMessage will send a public message to all followers.
func SendPublicMessage(textContent string) error {
configRepository := configrepository.Get()
originalContent := textContent
textContent = utils.RenderSimpleMarkdown(textContent)
@@ -173,7 +177,7 @@ func SendPublicMessage(textContent string) error {
activity, _, note, noteID := createBaseOutboundMessage(textContent)
note.SetActivityStreamsTag(tagProp)
if !data.GetFederationIsPrivate() {
if !configRepository.GetFederationIsPrivate() {
note = apmodels.MakeNotePublic(note)
activity = apmodels.MakeActivityPublic(activity)
}
@@ -197,7 +201,8 @@ func SendPublicMessage(textContent string) error {
// nolint: unparam
func createBaseOutboundMessage(textContent string) (vocab.ActivityStreamsCreate, string, vocab.ActivityStreamsNote, string) {
localActor := apmodels.MakeLocalIRIForAccount(data.GetDefaultFederationUsername())
configRepository := configrepository.Get()
localActor := apmodels.MakeLocalIRIForAccount(configRepository.GetDefaultFederationUsername())
noteID := shortid.MustGenerate()
noteIRI := apmodels.MakeLocalIRIForResource(noteID)
id := shortid.MustGenerate()
@@ -218,7 +223,8 @@ func getHashtagLinkHTMLFromTagString(baseHashtag string) string {
// SendToFollowers will send an arbitrary payload to all follower inboxes.
func SendToFollowers(payload []byte) error {
localActor := apmodels.MakeLocalIRIForAccount(data.GetDefaultFederationUsername())
configRepository := configrepository.Get()
localActor := apmodels.MakeLocalIRIForAccount(configRepository.GetDefaultFederationUsername())
followers, _, err := persistence.GetFederationFollowers(-1, 0)
if err != nil {
@@ -241,7 +247,8 @@ func SendToFollowers(payload []byte) error {
// SendToUser will send a payload to a single specific inbox.
func SendToUser(inbox *url.URL, payload []byte) error {
localActor := apmodels.MakeLocalIRIForAccount(data.GetDefaultFederationUsername())
configRepository := configrepository.Get()
localActor := apmodels.MakeLocalIRIForAccount(configRepository.GetDefaultFederationUsername())
req, err := requests.CreateSignedRequest(payload, inbox, localActor)
if err != nil {
@@ -255,8 +262,10 @@ func SendToUser(inbox *url.URL, payload []byte) error {
// UpdateFollowersWithAccountUpdates will send an update to all followers alerting of a profile update.
func UpdateFollowersWithAccountUpdates() error {
configRepository := configrepository.Get()
// Don't do anything if federation is disabled.
if !data.GetFederationEnabled() {
if !configRepository.GetFederationEnabled() {
return nil
}
@@ -265,7 +274,7 @@ func UpdateFollowersWithAccountUpdates() error {
activity := apmodels.MakeUpdateActivity(objectID)
actor := streams.NewActivityStreamsPerson()
actorID := apmodels.MakeLocalIRIForAccount(data.GetDefaultFederationUsername())
actorID := apmodels.MakeLocalIRIForAccount(configRepository.GetDefaultFederationUsername())
actorIDProperty := streams.NewJSONLDIdProperty()
actorIDProperty.Set(actorID)
actor.SetJSONLDId(actorIDProperty)

View File

@@ -45,8 +45,8 @@ func GetFederationFollowers(limit int, offset int) ([]models.Follower, int, erro
}
followersResult, err := _datastore.GetQueries().GetFederationFollowersWithOffset(ctx, db.GetFederationFollowersWithOffsetParams{
Limit: int32(limit),
Offset: int32(offset),
Limit: limit,
Offset: offset,
})
if err != nil {
return nil, 0, err

View File

@@ -0,0 +1,36 @@
//go:build fixture
// +build fixture
package persistence
import (
"encoding/json"
"fmt"
"os"
"github.com/owncast/owncast/models"
log "github.com/sirupsen/logrus"
)
func addFollowersFixtureData() {
log.Println("Adding followers fixture data...")
file, err := os.Open("./test/fixture/followers_fixture.json")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()
var followers []models.Follower
decoder := json.NewDecoder(file)
err = decoder.Decode(&followers)
if err != nil {
fmt.Println("Error decoding JSON:", err)
return
}
// Iterate over the followers array
for _, follower := range followers {
createFollow(follower.ActorIRI, follower.Inbox, "", follower.Name, follower.Username, follower.Image, nil, true)
}
}

View File

@@ -0,0 +1,8 @@
//go:build !fixture
// +build !fixture
package persistence
func addFollowersFixtureData() {
// no-op
}

View File

@@ -27,6 +27,7 @@ func Setup(datastore *data.Datastore) {
createFederationFollowersTable()
createFederationOutboxTable()
createFederatedActivitiesTable()
addFollowersFixtureData()
}
// AddFollow will save a follow to the datastore.
@@ -236,7 +237,7 @@ func GetOutbox(limit int, offset int) (vocab.ActivityStreamsOrderedCollection, e
orderedItems := streams.NewActivityStreamsOrderedItemsProperty()
rows, err := _datastore.GetQueries().GetOutboxWithOffset(
context.Background(),
db.GetOutboxWithOffsetParams{Limit: int32(limit), Offset: int32(offset)},
db.GetOutboxWithOffsetParams{Limit: limit, Offset: offset},
)
if err != nil {
return collection, err
@@ -308,8 +309,8 @@ func SaveInboundFediverseActivity(objectIRI string, actorIRI string, eventType s
func GetInboundActivities(limit int, offset int) ([]models.FederatedActivity, int, error) {
ctx := context.Background()
rows, err := _datastore.GetQueries().GetInboundActivitiesWithOffset(ctx, db.GetInboundActivitiesWithOffsetParams{
Limit: int32(limit),
Offset: int32(offset),
Limit: limit,
Offset: offset,
})
if err != nil {
return nil, 0, err

View File

@@ -10,7 +10,7 @@ import (
"github.com/go-fed/activity/streams/vocab"
"github.com/owncast/owncast/activitypub/apmodels"
"github.com/owncast/owncast/activitypub/crypto"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
)
@@ -47,11 +47,12 @@ func Resolve(c context.Context, data []byte, callbacks ...interface{}) error {
// ResolveIRI will resolve an IRI ahd call the correct callback for the resolved type.
func ResolveIRI(c context.Context, iri string, callbacks ...interface{}) error {
configRepository := configrepository.Get()
log.Debugln("Resolving", iri)
req, _ := http.NewRequest(http.MethodGet, iri, nil)
actor := apmodels.MakeLocalIRIForAccount(data.GetDefaultFederationUsername())
actor := apmodels.MakeLocalIRIForAccount(configRepository.GetDefaultFederationUsername())
if err := crypto.SignRequest(req, nil, actor); err != nil {
return err
}

View File

@@ -1,35 +0,0 @@
package activitypub
import (
"net/http"
"github.com/owncast/owncast/activitypub/controllers"
"github.com/owncast/owncast/router/middleware"
)
// StartRouter will start the federation specific http router.
func StartRouter() {
// WebFinger
http.HandleFunc("/.well-known/webfinger", controllers.WebfingerHandler)
// Host Metadata
http.HandleFunc("/.well-known/host-meta", controllers.HostMetaController)
// Nodeinfo v1
http.HandleFunc("/.well-known/nodeinfo", controllers.NodeInfoController)
// x-nodeinfo v2
http.HandleFunc("/.well-known/x-nodeinfo2", controllers.XNodeInfo2Controller)
// Nodeinfo v2
http.HandleFunc("/nodeinfo/2.0", controllers.NodeInfoV2Controller)
// Instance details
http.HandleFunc("/api/v1/instance", controllers.InstanceV1Controller)
// Single ActivityPub Actor
http.HandleFunc("/federation/user/", middleware.RequireActivityPubOrRedirect(controllers.ActorHandler))
// Single AP object
http.HandleFunc("/federation/", middleware.RequireActivityPubOrRedirect(controllers.ObjectHandler))
}

View File

@@ -2,14 +2,10 @@ package workerpool
import (
"net/http"
"runtime"
log "github.com/sirupsen/logrus"
)
// workerPoolSize defines the number of concurrent HTTP ActivityPub requests.
var workerPoolSize = runtime.GOMAXPROCS(0)
// Job struct bundling the ActivityPub and the payload in one struct.
type Job struct {
request *http.Request
@@ -18,8 +14,8 @@ type Job struct {
var queue chan Job
// InitOutboundWorkerPool starts n go routines that await ActivityPub jobs.
func InitOutboundWorkerPool() {
queue = make(chan Job)
func InitOutboundWorkerPool(workerPoolSize int) {
queue = make(chan Job, workerPoolSize)
// start workers
for i := 1; i <= workerPoolSize; i++ {
@@ -29,8 +25,13 @@ func InitOutboundWorkerPool() {
// AddToOutboundQueue will queue up an outbound http request.
func AddToOutboundQueue(req *http.Request) {
select {
case queue <- Job{req}:
default:
log.Debugln("Outbound ActivityPub job queue is full")
queue <- Job{req} // will block until received by a worker at this point
}
log.Tracef("Queued request for ActivityPub destination %s", req.RequestURI)
queue <- Job{req}
}
func worker(workerID int, queue <-chan Job) {

View File

@@ -11,7 +11,7 @@ import (
"sync"
"time"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/owncast/owncast/utils"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
@@ -47,6 +47,8 @@ func setupExpiredRequestPruner() {
// StartAuthFlow will begin the IndieAuth flow by generating an auth request.
func StartAuthFlow(authHost, userID, accessToken, displayName string) (*url.URL, error) {
configRepository := configrepository.Get()
// Limit the number of pending requests
if len(pendingAuthRequests) >= maxPendingRequests {
return nil, errors.New("Please try again later. Too many pending requests.")
@@ -68,7 +70,7 @@ func StartAuthFlow(authHost, userID, accessToken, displayName string) (*url.URL,
return nil, errors.New("only servers secured with https are supported")
}
serverURL := data.GetServerURL()
serverURL := configRepository.GetServerURL()
if serverURL == "" {
return nil, errors.New("Owncast server URL must be set when using auth")
}

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"time"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/pkg/errors"
"github.com/teris-io/shortid"
)
@@ -70,6 +70,8 @@ func StartServerAuth(clientID, redirectURI, codeChallenge, state, me string) (*S
// CompleteServerAuth will verify that the values provided in the final step
// of the IndieAuth flow are correct, and return some basic profile info.
func CompleteServerAuth(code, redirectURI, clientID string, codeVerifier string) (*ServerProfileResponse, error) {
configRepository := configrepository.Get()
request, pending := pendingServerAuthRequests[code]
if !pending {
return nil, errors.New("no pending authentication request")
@@ -89,11 +91,11 @@ func CompleteServerAuth(code, redirectURI, clientID string, codeVerifier string)
}
response := ServerProfileResponse{
Me: data.GetServerURL(),
Me: configRepository.GetServerURL(),
Profile: ServerProfile{
Name: data.GetServerName(),
URL: data.GetServerURL(),
Photo: fmt.Sprintf("%s/%s", data.GetServerURL(), data.GetLogoPath()),
Name: configRepository.GetServerName(),
URL: configRepository.GetServerURL(),
Photo: fmt.Sprintf("%s/%s", configRepository.GetServerURL(), configRepository.GetLogoPath()),
},
}

View File

@@ -1,13 +1,7 @@
package auth
import (
"context"
"strings"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/db"
)
var _datastore *data.Datastore
@@ -27,41 +21,3 @@ func Setup(db *data.Datastore) {
_datastore.MustExec(createTableSQL)
_datastore.MustExec(`CREATE INDEX IF NOT EXISTS idx_auth_token ON auth (token);`)
}
// AddAuth will add an external authentication token and type for a user.
func AddAuth(userID, authToken string, authType Type) error {
return _datastore.GetQueries().AddAuthForUser(context.Background(), db.AddAuthForUserParams{
UserID: userID,
Token: authToken,
Type: string(authType),
})
}
// GetUserByAuth will return an existing user given auth details if a user
// has previously authenticated with that method.
func GetUserByAuth(authToken string, authType Type) *user.User {
u, err := _datastore.GetQueries().GetUserByAuth(context.Background(), db.GetUserByAuthParams{
Token: authToken,
Type: string(authType),
})
if err != nil {
return nil
}
var scopes []string
if u.Scopes.Valid {
scopes = strings.Split(u.Scopes.String, ",")
}
return &user.User{
ID: u.ID,
DisplayName: u.DisplayName,
DisplayColor: int(u.DisplayColor),
CreatedAt: u.CreatedAt.Time,
DisabledAt: &u.DisabledAt.Time,
PreviousNames: strings.Split(u.PreviousNames.String, ","),
NameChangedAt: &u.NamechangedAt.Time,
AuthenticatedAt: &u.AuthenticatedAt.Time,
Scopes: scopes,
}
}

38
build/gen-api.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/bin/bash
# go install github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen@latest
# setup
package="generated"
folderPath="webserver/handlers/generated"
specPath="openapi.yaml"
# validate scripts are installed
if ! command -v redocly &>/dev/null; then
echo "Please install \`redocly cli\` before running this script: npm install -g @redocly/cli"
exit 1
fi
if ! command -v oapi-codegen &>/dev/null; then
echo "Please install \`oapi-codegen\` before running this script"
echo "Hint: run \`go install github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen@latest\` to install"
exit 1
fi
# validate schema
npx redocly lint $specPath
if [ $? -ne 0 ]; then
echo "Open API specification is not valid"
exit 1
fi
# cleanup
rm -r $folderPath
mkdir -p $folderPath
# codegen
oapi-codegen -generate types -o $folderPath/$package-types.gen.go -package $package $specPath
oapi-codegen -generate "chi-server" -o $folderPath/$package.gen.go -package $package $specPath
# go
go mod tidy

View File

@@ -7,12 +7,12 @@ set -o pipefail
OFFLINE=
while [[ $# -gt 0 ]]; do
case $1 in
--offline)
OFFLINE=1
;;
esac
shift
case $1 in
--offline)
OFFLINE=1
;;
esac
shift
done
# Change to the root directory of the repository
@@ -20,15 +20,14 @@ cd "$(git rev-parse --show-toplevel)"
cd web
if [ ! "$OFFLINE" ]
then
echo "Installing npm modules for the owncast web..."
npm --silent install 2>/dev/null
if [ ! "$OFFLINE" ]; then
echo "Installing npm modules for the owncast web..."
npm --silent install 2>/dev/null
fi
echo "Building owncast web..."
rm -rf .next
(node_modules/.bin/next build && node_modules/.bin/next export) | grep info
node_modules/.bin/next build | grep info
echo "Copying web project to dist directory..."

View File

@@ -4,7 +4,7 @@ import "path/filepath"
const (
// StaticVersionNumber is the version of Owncast that is used when it's not overwritten via build-time settings.
StaticVersionNumber = "0.1.2" // Shown when you build from develop
StaticVersionNumber = "0.2.2" // Shown when you build from develop
// FfmpegSuggestedVersion is the version of ffmpeg we suggest.
FfmpegSuggestedVersion = "v4.1.5" // Requires the v
// DataDirectory is the directory we save data to.

View File

@@ -4,6 +4,7 @@ import (
"time"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/webserver/handlers/generated"
)
// Defaults will hold default configuration values.
@@ -25,7 +26,7 @@ type Defaults struct {
WebServerIP string
Name string
AdminPassword string
StreamKeys []models.StreamKey
StreamKeys []generated.StreamKey
StreamVariants []models.StreamOutputVariant
@@ -43,14 +44,16 @@ type Defaults struct {
// GetDefaults will return default configuration values.
func GetDefaults() Defaults {
defaultStreamKey := "abc123"
defaultStreamKeyComment := "Default stream key"
return Defaults{
Name: "New Owncast Server",
Summary: "This is a new live video streaming server powered by Owncast.",
ServerWelcomeMessage: "",
Logo: "logo.svg",
AdminPassword: "abc123",
StreamKeys: []models.StreamKey{
{Key: "abc123", Comment: "Default stream key"},
StreamKeys: []generated.StreamKey{
{Key: &defaultStreamKey, Comment: &defaultStreamKeyComment},
},
Tags: []string{
"owncast",

View File

@@ -1,13 +0,0 @@
package controllers
import (
"net/http"
"github.com/owncast/owncast/core/rtmp"
)
// DisconnectInboundConnection will force-disconnect an inbound stream.
func DisconnectInboundConnection(w http.ResponseWriter, r *http.Request) {
rtmp.Disconnect()
w.WriteHeader(http.StatusOK)
}

View File

@@ -1,35 +0,0 @@
package admin
import (
"encoding/json"
"net/http"
"github.com/owncast/owncast/controllers"
"github.com/owncast/owncast/core/data"
)
// SetCustomColorVariableValues sets the custom color variables.
func SetCustomColorVariableValues(w http.ResponseWriter, r *http.Request) {
if !requirePOST(w, r) {
return
}
type request struct {
Value map[string]string `json:"value"`
}
decoder := json.NewDecoder(r.Body)
var values request
if err := decoder.Decode(&values); err != nil {
controllers.WriteSimpleResponse(w, false, "unable to update appearance variable values")
return
}
if err := data.SetCustomColorVariableValues(values.Value); err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
controllers.WriteSimpleResponse(w, true, "custom appearance variables updated")
}

View File

@@ -1,375 +0,0 @@
package admin
// this is endpoint logic
import (
"encoding/json"
"errors"
"fmt"
"net/http"
"strconv"
"github.com/owncast/owncast/controllers"
"github.com/owncast/owncast/core/chat"
"github.com/owncast/owncast/core/chat/events"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/utils"
log "github.com/sirupsen/logrus"
)
// ExternalUpdateMessageVisibility updates an array of message IDs to have the same visiblity.
func ExternalUpdateMessageVisibility(integration user.ExternalAPIUser, w http.ResponseWriter, r *http.Request) {
UpdateMessageVisibility(w, r)
}
// UpdateMessageVisibility updates an array of message IDs to have the same visiblity.
func UpdateMessageVisibility(w http.ResponseWriter, r *http.Request) {
type messageVisibilityUpdateRequest struct {
IDArray []string `json:"idArray"`
Visible bool `json:"visible"`
}
if r.Method != controllers.POST {
// nolint:goconst
controllers.WriteSimpleResponse(w, false, r.Method+" not supported")
return
}
decoder := json.NewDecoder(r.Body)
var request messageVisibilityUpdateRequest
if err := decoder.Decode(&request); err != nil {
log.Errorln(err)
controllers.WriteSimpleResponse(w, false, "")
return
}
if err := chat.SetMessagesVisibility(request.IDArray, request.Visible); err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
controllers.WriteSimpleResponse(w, true, "changed")
}
// BanIPAddress will manually ban an IP address.
func BanIPAddress(w http.ResponseWriter, r *http.Request) {
if !requirePOST(w, r) {
return
}
configValue, success := getValueFromRequest(w, r)
if !success {
controllers.WriteSimpleResponse(w, false, "unable to ban IP address")
return
}
if err := data.BanIPAddress(configValue.Value.(string), "manually added"); err != nil {
controllers.WriteSimpleResponse(w, false, "error saving IP address ban")
return
}
controllers.WriteSimpleResponse(w, true, "IP address banned")
}
// UnBanIPAddress will remove an IP address ban.
func UnBanIPAddress(w http.ResponseWriter, r *http.Request) {
if !requirePOST(w, r) {
return
}
configValue, success := getValueFromRequest(w, r)
if !success {
controllers.WriteSimpleResponse(w, false, "unable to unban IP address")
return
}
if err := data.RemoveIPAddressBan(configValue.Value.(string)); err != nil {
controllers.WriteSimpleResponse(w, false, "error removing IP address ban")
return
}
controllers.WriteSimpleResponse(w, true, "IP address unbanned")
}
// GetIPAddressBans will return all the banned IP addresses.
func GetIPAddressBans(w http.ResponseWriter, r *http.Request) {
bans, err := data.GetIPAddressBans()
if err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
controllers.WriteResponse(w, bans)
}
// UpdateUserEnabled enable or disable a single user by ID.
func UpdateUserEnabled(w http.ResponseWriter, r *http.Request) {
type blockUserRequest struct {
UserID string `json:"userId"`
Enabled bool `json:"enabled"`
}
if r.Method != controllers.POST {
controllers.WriteSimpleResponse(w, false, r.Method+" not supported")
return
}
decoder := json.NewDecoder(r.Body)
var request blockUserRequest
if err := decoder.Decode(&request); err != nil {
log.Errorln(err)
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
if request.UserID == "" {
controllers.WriteSimpleResponse(w, false, "must provide userId")
return
}
// Disable/enable the user
if err := user.SetEnabled(request.UserID, request.Enabled); err != nil {
log.Errorln("error changing user enabled status", err)
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
// Hide/show the user's chat messages if disabling.
// Leave hidden messages hidden to be safe.
if !request.Enabled {
if err := chat.SetMessageVisibilityForUserID(request.UserID, request.Enabled); err != nil {
log.Errorln("error changing user messages visibility", err)
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
}
// Forcefully disconnect the user from the chat
if !request.Enabled {
clients, err := chat.GetClientsForUser(request.UserID)
if len(clients) == 0 {
// Nothing to do
return
}
if err != nil {
log.Errorln("error fetching clients for user: ", err)
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
chat.DisconnectClients(clients)
disconnectedUser := user.GetUserByID(request.UserID)
_ = chat.SendSystemAction(fmt.Sprintf("**%s** has been removed from chat.", disconnectedUser.DisplayName), true)
localIP4Address := "127.0.0.1"
localIP6Address := "::1"
// Ban this user's IP address.
for _, client := range clients {
ipAddress := client.IPAddress
if ipAddress != localIP4Address && ipAddress != localIP6Address {
reason := fmt.Sprintf("Banning of %s", disconnectedUser.DisplayName)
if err := data.BanIPAddress(ipAddress, reason); err != nil {
log.Errorln("error banning IP address: ", err)
}
}
}
}
controllers.WriteSimpleResponse(w, true, fmt.Sprintf("%s enabled: %t", request.UserID, request.Enabled))
}
// GetDisabledUsers will return all the disabled users.
func GetDisabledUsers(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
users := user.GetDisabledUsers()
controllers.WriteResponse(w, users)
}
// UpdateUserModerator will set the moderator status for a user ID.
func UpdateUserModerator(w http.ResponseWriter, r *http.Request) {
type request struct {
UserID string `json:"userId"`
IsModerator bool `json:"isModerator"`
}
if r.Method != controllers.POST {
controllers.WriteSimpleResponse(w, false, r.Method+" not supported")
return
}
decoder := json.NewDecoder(r.Body)
var req request
if err := decoder.Decode(&req); err != nil {
controllers.WriteSimpleResponse(w, false, "")
return
}
// Update the user object with new moderation access.
if err := user.SetModerator(req.UserID, req.IsModerator); err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
// Update the clients for this user to know about the moderator access change.
if err := chat.SendConnectedClientInfoToUser(req.UserID); err != nil {
log.Debugln(err)
}
controllers.WriteSimpleResponse(w, true, fmt.Sprintf("%s is moderator: %t", req.UserID, req.IsModerator))
}
// GetModerators will return a list of moderator users.
func GetModerators(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
users := user.GetModeratorUsers()
controllers.WriteResponse(w, users)
}
// GetChatMessages returns all of the chat messages, unfiltered.
func GetChatMessages(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
messages := chat.GetChatModerationHistory()
controllers.WriteResponse(w, messages)
}
// SendSystemMessage will send an official "SYSTEM" message to chat on behalf of your server.
func SendSystemMessage(integration user.ExternalAPIUser, w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
var message events.SystemMessageEvent
if err := json.NewDecoder(r.Body).Decode(&message); err != nil {
controllers.InternalErrorHandler(w, err)
return
}
if err := chat.SendSystemMessage(message.Body, false); err != nil {
controllers.BadRequestHandler(w, err)
}
controllers.WriteSimpleResponse(w, true, "sent")
}
// SendSystemMessageToConnectedClient will handle incoming requests to send a single message to a single connected client by ID.
func SendSystemMessageToConnectedClient(integration user.ExternalAPIUser, w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
clientIDText, err := utils.ReadRestURLParameter(r, "clientId")
if err != nil {
controllers.BadRequestHandler(w, err)
return
}
clientIDNumeric, err := strconv.ParseUint(clientIDText, 10, 32)
if err != nil {
controllers.BadRequestHandler(w, err)
return
}
var message events.SystemMessageEvent
if err := json.NewDecoder(r.Body).Decode(&message); err != nil {
controllers.InternalErrorHandler(w, err)
return
}
chat.SendSystemMessageToClient(uint(clientIDNumeric), message.Body)
controllers.WriteSimpleResponse(w, true, "sent")
}
// SendUserMessage will send a message to chat on behalf of a user. *Depreciated*.
func SendUserMessage(integration user.ExternalAPIUser, w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
controllers.BadRequestHandler(w, errors.New("no longer supported. see /api/integrations/chat/send"))
}
// SendIntegrationChatMessage will send a chat message on behalf of an external chat integration.
func SendIntegrationChatMessage(integration user.ExternalAPIUser, w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
name := integration.DisplayName
if name == "" {
controllers.BadRequestHandler(w, errors.New("unknown integration for provided access token"))
return
}
var event events.UserMessageEvent
if err := json.NewDecoder(r.Body).Decode(&event); err != nil {
controllers.InternalErrorHandler(w, err)
return
}
event.SetDefaults()
event.RenderBody()
event.Type = "CHAT"
if event.Empty() {
controllers.BadRequestHandler(w, errors.New("invalid message"))
return
}
event.User = &user.User{
ID: integration.ID,
DisplayName: name,
DisplayColor: integration.DisplayColor,
CreatedAt: integration.CreatedAt,
IsBot: true,
}
if err := chat.Broadcast(&event); err != nil {
controllers.BadRequestHandler(w, err)
return
}
chat.SaveUserMessage(event)
controllers.WriteSimpleResponse(w, true, "sent")
}
// SendChatAction will send a generic chat action.
func SendChatAction(integration user.ExternalAPIUser, w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
var message events.SystemActionEvent
if err := json.NewDecoder(r.Body).Decode(&message); err != nil {
controllers.InternalErrorHandler(w, err)
return
}
message.SetDefaults()
message.RenderBody()
if err := chat.SendSystemAction(message.Body, false); err != nil {
controllers.BadRequestHandler(w, err)
return
}
controllers.WriteSimpleResponse(w, true, "sent")
}
// SetEnableEstablishedChatUserMode sets the requirement for a chat user
// to be "established" for some time before taking part in chat.
func SetEnableEstablishedChatUserMode(w http.ResponseWriter, r *http.Request) {
if !requirePOST(w, r) {
return
}
configValue, success := getValueFromRequest(w, r)
if !success {
controllers.WriteSimpleResponse(w, false, "unable to update chat established user only mode")
return
}
if err := data.SetChatEstablishedUsersOnlyMode(configValue.Value.(bool)); err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
controllers.WriteSimpleResponse(w, true, "chat established users only mode updated")
}

View File

@@ -1,102 +0,0 @@
package admin
import (
"encoding/json"
"errors"
"net/http"
"time"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/controllers"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/utils"
)
type deleteExternalAPIUserRequest struct {
Token string `json:"token"`
}
type createExternalAPIUserRequest struct {
Name string `json:"name"`
Scopes []string `json:"scopes"`
}
// CreateExternalAPIUser will generate a 3rd party access token.
func CreateExternalAPIUser(w http.ResponseWriter, r *http.Request) {
decoder := json.NewDecoder(r.Body)
var request createExternalAPIUserRequest
if err := decoder.Decode(&request); err != nil {
controllers.BadRequestHandler(w, err)
return
}
// Verify all the scopes provided are valid
if !user.HasValidScopes(request.Scopes) {
controllers.BadRequestHandler(w, errors.New("one or more invalid scopes provided"))
return
}
token, err := utils.GenerateAccessToken()
if err != nil {
controllers.InternalErrorHandler(w, err)
return
}
color := utils.GenerateRandomDisplayColor(config.MaxUserColor)
if err := user.InsertExternalAPIUser(token, request.Name, color, request.Scopes); err != nil {
controllers.InternalErrorHandler(w, err)
return
}
w.Header().Set("Content-Type", "application/json")
controllers.WriteResponse(w, user.ExternalAPIUser{
AccessToken: token,
DisplayName: request.Name,
DisplayColor: color,
Scopes: request.Scopes,
CreatedAt: time.Now(),
LastUsedAt: nil,
})
}
// GetExternalAPIUsers will return all 3rd party access tokens.
func GetExternalAPIUsers(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
tokens, err := user.GetExternalAPIUser()
if err != nil {
controllers.InternalErrorHandler(w, err)
return
}
controllers.WriteResponse(w, tokens)
}
// DeleteExternalAPIUser will return a single 3rd party access token.
func DeleteExternalAPIUser(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
if r.Method != controllers.POST {
controllers.WriteSimpleResponse(w, false, r.Method+" not supported")
return
}
decoder := json.NewDecoder(r.Body)
var request deleteExternalAPIUserRequest
if err := decoder.Decode(&request); err != nil {
controllers.BadRequestHandler(w, err)
return
}
if request.Token == "" {
controllers.BadRequestHandler(w, errors.New("must provide a token"))
return
}
if err := user.DeleteExternalAPIUser(request.Token); err != nil {
controllers.InternalErrorHandler(w, err)
return
}
controllers.WriteSimpleResponse(w, true, "deleted token")
}

View File

@@ -1,82 +0,0 @@
package admin
import (
"encoding/json"
"net/http"
"github.com/owncast/owncast/activitypub/persistence"
"github.com/owncast/owncast/activitypub/requests"
"github.com/owncast/owncast/controllers"
"github.com/owncast/owncast/core/data"
)
// ApproveFollower will approve a federated follow request.
func ApproveFollower(w http.ResponseWriter, r *http.Request) {
if !requirePOST(w, r) {
return
}
type approveFollowerRequest struct {
ActorIRI string `json:"actorIRI"`
Approved bool `json:"approved"`
}
decoder := json.NewDecoder(r.Body)
var approval approveFollowerRequest
if err := decoder.Decode(&approval); err != nil {
controllers.WriteSimpleResponse(w, false, "unable to handle follower state with provided values")
return
}
if approval.Approved {
// Approve a follower
if err := persistence.ApprovePreviousFollowRequest(approval.ActorIRI); err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
localAccountName := data.GetDefaultFederationUsername()
followRequest, err := persistence.GetFollower(approval.ActorIRI)
if err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
// Send the approval to the follow requestor.
if err := requests.SendFollowAccept(followRequest.Inbox, followRequest.RequestObject, localAccountName); err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
} else {
// Remove/block a follower
if err := persistence.BlockOrRejectFollower(approval.ActorIRI); err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
}
controllers.WriteSimpleResponse(w, true, "follower updated")
}
// GetPendingFollowRequests will return a list of pending follow requests.
func GetPendingFollowRequests(w http.ResponseWriter, r *http.Request) {
requests, err := persistence.GetPendingFollowRequests()
if err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
controllers.WriteResponse(w, requests)
}
// GetBlockedAndRejectedFollowers will return blocked and rejected followers.
func GetBlockedAndRejectedFollowers(w http.ResponseWriter, r *http.Request) {
rejections, err := persistence.GetBlockedAndRejectedFollowers()
if err != nil {
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
controllers.WriteResponse(w, rejections)
}

View File

@@ -1,170 +0,0 @@
package admin
import (
"encoding/json"
"net/http"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/core/transcoder"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/router/middleware"
"github.com/owncast/owncast/utils"
log "github.com/sirupsen/logrus"
)
// GetServerConfig gets the config details of the server.
func GetServerConfig(w http.ResponseWriter, r *http.Request) {
ffmpeg := utils.ValidatedFfmpegPath(data.GetFfMpegPath())
usernameBlocklist := data.GetForbiddenUsernameList()
usernameSuggestions := data.GetSuggestedUsernamesList()
videoQualityVariants := make([]models.StreamOutputVariant, 0)
for _, variant := range data.GetStreamOutputVariants() {
videoQualityVariants = append(videoQualityVariants, models.StreamOutputVariant{
Name: variant.GetName(),
IsAudioPassthrough: variant.GetIsAudioPassthrough(),
IsVideoPassthrough: variant.IsVideoPassthrough,
Framerate: variant.GetFramerate(),
VideoBitrate: variant.VideoBitrate,
AudioBitrate: variant.AudioBitrate,
CPUUsageLevel: variant.CPUUsageLevel,
ScaledWidth: variant.ScaledWidth,
ScaledHeight: variant.ScaledHeight,
})
}
response := serverConfigAdminResponse{
InstanceDetails: webConfigResponse{
Name: data.GetServerName(),
Summary: data.GetServerSummary(),
Tags: data.GetServerMetadataTags(),
ExtraPageContent: data.GetExtraPageBodyContent(),
StreamTitle: data.GetStreamTitle(),
WelcomeMessage: data.GetServerWelcomeMessage(),
OfflineMessage: data.GetCustomOfflineMessage(),
Logo: data.GetLogoPath(),
SocialHandles: data.GetSocialHandles(),
NSFW: data.GetNSFW(),
CustomStyles: data.GetCustomStyles(),
CustomJavascript: data.GetCustomJavascript(),
AppearanceVariables: data.GetCustomColorVariableValues(),
},
FFmpegPath: ffmpeg,
AdminPassword: data.GetAdminPassword(),
StreamKeys: data.GetStreamKeys(),
StreamKeyOverridden: config.TemporaryStreamKey != "",
WebServerPort: config.WebServerPort,
WebServerIP: config.WebServerIP,
RTMPServerPort: data.GetRTMPPortNumber(),
ChatDisabled: data.GetChatDisabled(),
ChatJoinMessagesEnabled: data.GetChatJoinPartMessagesEnabled(),
SocketHostOverride: data.GetWebsocketOverrideHost(),
VideoServingEndpoint: data.GetVideoServingEndpoint(),
ChatEstablishedUserMode: data.GetChatEstbalishedUsersOnlyMode(),
HideViewerCount: data.GetHideViewerCount(),
DisableSearchIndexing: data.GetDisableSearchIndexing(),
VideoSettings: videoSettings{
VideoQualityVariants: videoQualityVariants,
LatencyLevel: data.GetStreamLatencyLevel().Level,
},
YP: yp{
Enabled: data.GetDirectoryEnabled(),
InstanceURL: data.GetServerURL(),
},
S3: data.GetS3Config(),
ExternalActions: data.GetExternalActions(),
SupportedCodecs: transcoder.GetCodecs(ffmpeg),
VideoCodec: data.GetVideoCodec(),
ForbiddenUsernames: usernameBlocklist,
SuggestedUsernames: usernameSuggestions,
Federation: federationConfigResponse{
Enabled: data.GetFederationEnabled(),
IsPrivate: data.GetFederationIsPrivate(),
Username: data.GetFederationUsername(),
GoLiveMessage: data.GetFederationGoLiveMessage(),
ShowEngagement: data.GetFederationShowEngagement(),
BlockedDomains: data.GetBlockedFederatedDomains(),
},
Notifications: notificationsConfigResponse{
Discord: data.GetDiscordConfig(),
Browser: data.GetBrowserPushConfig(),
},
}
w.Header().Set("Content-Type", "application/json")
middleware.DisableCache(w)
if err := json.NewEncoder(w).Encode(response); err != nil {
log.Errorln(err)
}
}
type serverConfigAdminResponse struct {
InstanceDetails webConfigResponse `json:"instanceDetails"`
Notifications notificationsConfigResponse `json:"notifications"`
YP yp `json:"yp"`
FFmpegPath string `json:"ffmpegPath"`
AdminPassword string `json:"adminPassword"`
SocketHostOverride string `json:"socketHostOverride,omitempty"`
WebServerIP string `json:"webServerIP"`
VideoCodec string `json:"videoCodec"`
VideoServingEndpoint string `json:"videoServingEndpoint"`
S3 models.S3 `json:"s3"`
Federation federationConfigResponse `json:"federation"`
SupportedCodecs []string `json:"supportedCodecs"`
ExternalActions []models.ExternalAction `json:"externalActions"`
ForbiddenUsernames []string `json:"forbiddenUsernames"`
SuggestedUsernames []string `json:"suggestedUsernames"`
StreamKeys []models.StreamKey `json:"streamKeys"`
VideoSettings videoSettings `json:"videoSettings"`
RTMPServerPort int `json:"rtmpServerPort"`
WebServerPort int `json:"webServerPort"`
ChatDisabled bool `json:"chatDisabled"`
ChatJoinMessagesEnabled bool `json:"chatJoinMessagesEnabled"`
ChatEstablishedUserMode bool `json:"chatEstablishedUserMode"`
DisableSearchIndexing bool `json:"disableSearchIndexing"`
StreamKeyOverridden bool `json:"streamKeyOverridden"`
HideViewerCount bool `json:"hideViewerCount"`
}
type videoSettings struct {
VideoQualityVariants []models.StreamOutputVariant `json:"videoQualityVariants"`
LatencyLevel int `json:"latencyLevel"`
}
type webConfigResponse struct {
AppearanceVariables map[string]string `json:"appearanceVariables"`
Version string `json:"version"`
WelcomeMessage string `json:"welcomeMessage"`
OfflineMessage string `json:"offlineMessage"`
Logo string `json:"logo"`
Name string `json:"name"`
ExtraPageContent string `json:"extraPageContent"`
StreamTitle string `json:"streamTitle"` // What's going on with the current stream
CustomStyles string `json:"customStyles"`
CustomJavascript string `json:"customJavascript"`
Summary string `json:"summary"`
Tags []string `json:"tags"`
SocialHandles []models.SocialHandle `json:"socialHandles"`
NSFW bool `json:"nsfw"`
}
type yp struct {
InstanceURL string `json:"instanceUrl"` // The public URL the directory should link to
YPServiceURL string `json:"-"` // The base URL to the YP API to register with (optional)
Enabled bool `json:"enabled"`
}
type federationConfigResponse struct {
Username string `json:"username"`
GoLiveMessage string `json:"goLiveMessage"`
BlockedDomains []string `json:"blockedDomains"`
Enabled bool `json:"enabled"`
IsPrivate bool `json:"isPrivate"`
ShowEngagement bool `json:"showEngagement"`
}
type notificationsConfigResponse struct {
Browser models.BrowserNotificationConfiguration `json:"browser"`
Discord models.DiscordConfiguration `json:"discord"`
}

View File

@@ -1,20 +0,0 @@
package admin
import (
"net/http"
"github.com/owncast/owncast/controllers"
"github.com/owncast/owncast/core/data"
log "github.com/sirupsen/logrus"
)
// ResetYPRegistration will clear the YP protocol registration key.
func ResetYPRegistration(w http.ResponseWriter, r *http.Request) {
log.Traceln("Resetting YP registration key")
if err := data.SetDirectoryRegistrationKey(""); err != nil {
log.Errorln(err)
controllers.WriteSimpleResponse(w, false, err.Error())
return
}
controllers.WriteSimpleResponse(w, true, "reset")
}

View File

@@ -1,99 +0,0 @@
package controllers
import (
"encoding/json"
"net/http"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/chat"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/router/middleware"
"github.com/owncast/owncast/utils"
log "github.com/sirupsen/logrus"
)
// ExternalGetChatMessages gets all of the chat messages.
func ExternalGetChatMessages(integration user.ExternalAPIUser, w http.ResponseWriter, r *http.Request) {
middleware.EnableCors(w)
getChatMessages(w, r)
}
// GetChatMessages gets all of the chat messages.
func GetChatMessages(u user.User, w http.ResponseWriter, r *http.Request) {
middleware.EnableCors(w)
getChatMessages(w, r)
}
func getChatMessages(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
switch r.Method {
case http.MethodGet:
messages := chat.GetChatHistory()
if err := json.NewEncoder(w).Encode(messages); err != nil {
log.Debugln(err)
}
default:
w.WriteHeader(http.StatusNotImplemented)
if err := json.NewEncoder(w).Encode(j{"error": "method not implemented (PRs are accepted)"}); err != nil {
InternalErrorHandler(w, err)
}
}
}
// RegisterAnonymousChatUser will register a new user.
func RegisterAnonymousChatUser(w http.ResponseWriter, r *http.Request) {
middleware.EnableCors(w)
if r.Method == "OPTIONS" {
// All OPTIONS requests should have a wildcard CORS header.
w.Header().Set("Access-Control-Allow-Origin", "*")
w.WriteHeader(http.StatusNoContent)
return
}
if r.Method != http.MethodPost {
// nolint:goconst
WriteSimpleResponse(w, false, r.Method+" not supported")
return
}
type registerAnonymousUserRequest struct {
DisplayName string `json:"displayName"`
}
type registerAnonymousUserResponse struct {
ID string `json:"id"`
AccessToken string `json:"accessToken"`
DisplayName string `json:"displayName"`
}
decoder := json.NewDecoder(r.Body)
var request registerAnonymousUserRequest
if err := decoder.Decode(&request); err != nil { //nolint
// this is fine. register a new user anyway.
}
if request.DisplayName == "" {
request.DisplayName = r.Header.Get("X-Forwarded-User")
}
proposedNewDisplayName := utils.MakeSafeStringOfLength(request.DisplayName, config.MaxChatDisplayNameLength)
newUser, accessToken, err := user.CreateAnonymousUser(proposedNewDisplayName)
if err != nil {
WriteSimpleResponse(w, false, err.Error())
return
}
response := registerAnonymousUserResponse{
ID: newUser.ID,
AccessToken: accessToken,
DisplayName: newUser.DisplayName,
}
w.Header().Set("Content-Type", "application/json")
middleware.DisableCache(w)
WriteResponse(w, response)
}

View File

@@ -1,153 +0,0 @@
package controllers
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
"github.com/owncast/owncast/activitypub"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/router/middleware"
"github.com/owncast/owncast/utils"
log "github.com/sirupsen/logrus"
)
type webConfigResponse struct {
AppearanceVariables map[string]string `json:"appearanceVariables"`
Name string `json:"name"`
CustomStyles string `json:"customStyles"`
StreamTitle string `json:"streamTitle,omitempty"` // What's going on with the current stream
OfflineMessage string `json:"offlineMessage"`
Logo string `json:"logo"`
Version string `json:"version"`
SocketHostOverride string `json:"socketHostOverride,omitempty"`
ExtraPageContent string `json:"extraPageContent"`
Summary string `json:"summary"`
Tags []string `json:"tags"`
SocialHandles []models.SocialHandle `json:"socialHandles"`
ExternalActions []models.ExternalAction `json:"externalActions"`
Notifications notificationsConfigResponse `json:"notifications"`
Federation federationConfigResponse `json:"federation"`
MaxSocketPayloadSize int `json:"maxSocketPayloadSize"`
HideViewerCount bool `json:"hideViewerCount"`
ChatDisabled bool `json:"chatDisabled"`
NSFW bool `json:"nsfw"`
Authentication authenticationConfigResponse `json:"authentication"`
}
type federationConfigResponse struct {
Account string `json:"account,omitempty"`
FollowerCount int `json:"followerCount,omitempty"`
Enabled bool `json:"enabled"`
}
type browserNotificationsConfigResponse struct {
PublicKey string `json:"publicKey,omitempty"`
Enabled bool `json:"enabled"`
}
type notificationsConfigResponse struct {
Browser browserNotificationsConfigResponse `json:"browser"`
}
type authenticationConfigResponse struct {
IndieAuthEnabled bool `json:"indieAuthEnabled"`
}
// GetWebConfig gets the status of the server.
func GetWebConfig(w http.ResponseWriter, r *http.Request) {
middleware.EnableCors(w)
middleware.DisableCache(w)
w.Header().Set("Content-Type", "application/json")
configuration := getConfigResponse()
if err := json.NewEncoder(w).Encode(configuration); err != nil {
BadRequestHandler(w, err)
}
}
func getConfigResponse() webConfigResponse {
pageContent := utils.RenderPageContentMarkdown(data.GetExtraPageBodyContent())
offlineMessage := utils.RenderSimpleMarkdown(data.GetCustomOfflineMessage())
socialHandles := data.GetSocialHandles()
for i, handle := range socialHandles {
platform := models.GetSocialHandle(handle.Platform)
if platform != nil {
handle.Icon = platform.Icon
socialHandles[i] = handle
}
}
serverSummary := data.GetServerSummary()
var federationResponse federationConfigResponse
federationEnabled := data.GetFederationEnabled()
followerCount, _ := activitypub.GetFollowerCount()
if federationEnabled {
serverURLString := data.GetServerURL()
serverURL, _ := url.Parse(serverURLString)
account := fmt.Sprintf("%s@%s", data.GetDefaultFederationUsername(), serverURL.Host)
federationResponse = federationConfigResponse{
Enabled: federationEnabled,
FollowerCount: int(followerCount),
Account: account,
}
}
browserPushEnabled := data.GetBrowserPushConfig().Enabled
browserPushPublicKey, err := data.GetBrowserPushPublicKey()
if err != nil {
log.Errorln("unable to fetch browser push notifications public key", err)
browserPushEnabled = false
}
notificationsResponse := notificationsConfigResponse{
Browser: browserNotificationsConfigResponse{
Enabled: browserPushEnabled,
PublicKey: browserPushPublicKey,
},
}
authenticationResponse := authenticationConfigResponse{
IndieAuthEnabled: data.GetServerURL() != "",
}
return webConfigResponse{
Name: data.GetServerName(),
Summary: serverSummary,
OfflineMessage: offlineMessage,
Logo: "/logo",
Tags: data.GetServerMetadataTags(),
Version: config.GetReleaseString(),
NSFW: data.GetNSFW(),
SocketHostOverride: data.GetWebsocketOverrideHost(),
ExtraPageContent: pageContent,
StreamTitle: data.GetStreamTitle(),
SocialHandles: socialHandles,
ChatDisabled: data.GetChatDisabled(),
ExternalActions: data.GetExternalActions(),
CustomStyles: data.GetCustomStyles(),
MaxSocketPayloadSize: config.MaxSocketPayloadSize,
Federation: federationResponse,
Notifications: notificationsResponse,
Authentication: authenticationResponse,
AppearanceVariables: data.GetCustomColorVariableValues(),
HideViewerCount: data.GetHideViewerCount(),
}
}
// GetAllSocialPlatforms will return a list of all social platform types.
func GetAllSocialPlatforms(w http.ResponseWriter, r *http.Request) {
middleware.EnableCors(w)
w.Header().Set("Content-Type", "application/json")
platforms := models.GetAllSocialHandles()
if err := json.NewEncoder(w).Encode(platforms); err != nil {
InternalErrorHandler(w, err)
}
}

View File

@@ -1,7 +0,0 @@
package controllers
// POST is the HTTP POST method.
const POST = "POST"
// GET is the HTTP GET method.
const GET = "GET"

View File

@@ -1,13 +0,0 @@
package controllers
import (
"net/http"
"github.com/owncast/owncast/core/data"
)
// ServeCustomJavascript will serve optional custom Javascript.
func ServeCustomJavascript(w http.ResponseWriter, r *http.Request) {
js := data.GetCustomJavascript()
_, _ = w.Write([]byte(js))
}

View File

@@ -1,62 +0,0 @@
package controllers
import (
"net/http"
"path/filepath"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/utils"
)
const (
contentTypeJPEG = "image/jpeg"
contentTypeGIF = "image/gif"
)
// GetThumbnail will return the thumbnail image as a response.
func GetThumbnail(w http.ResponseWriter, r *http.Request) {
imageFilename := "thumbnail.jpg"
imagePath := filepath.Join(config.TempDir, imageFilename)
var imageBytes []byte
var err error
if utils.DoesFileExists(imagePath) {
imageBytes, err = getImage(imagePath)
} else {
GetLogo(w, r)
return
}
if err != nil {
GetLogo(w, r)
return
}
cacheTime := utils.GetCacheDurationSecondsForPath(imagePath)
writeBytesAsImage(imageBytes, contentTypeJPEG, w, cacheTime)
}
// GetPreview will return the preview gif as a response.
func GetPreview(w http.ResponseWriter, r *http.Request) {
imageFilename := "preview.gif"
imagePath := filepath.Join(config.TempDir, imageFilename)
var imageBytes []byte
var err error
if utils.DoesFileExists(imagePath) {
imageBytes, err = getImage(imagePath)
} else {
GetLogo(w, r)
return
}
if err != nil {
GetLogo(w, r)
return
}
cacheTime := utils.GetCacheDurationSecondsForPath(imagePath)
writeBytesAsImage(imageBytes, contentTypeGIF, w, cacheTime)
}

View File

@@ -1,52 +0,0 @@
package controllers
import (
"encoding/json"
"net/http"
"github.com/owncast/owncast/metrics"
"github.com/owncast/owncast/utils"
log "github.com/sirupsen/logrus"
)
// ReportPlaybackMetrics will accept playback metrics from a client and save
// them for future video health reporting.
func ReportPlaybackMetrics(w http.ResponseWriter, r *http.Request) {
if r.Method != POST {
WriteSimpleResponse(w, false, r.Method+" not supported")
return
}
type reportPlaybackMetricsRequest struct {
Bandwidth float64 `json:"bandwidth"`
Latency float64 `json:"latency"`
Errors float64 `json:"errors"`
DownloadDuration float64 `json:"downloadDuration"`
QualityVariantChanges float64 `json:"qualityVariantChanges"`
}
decoder := json.NewDecoder(r.Body)
var request reportPlaybackMetricsRequest
if err := decoder.Decode(&request); err != nil {
log.Errorln("error decoding playback metrics payload:", err)
WriteSimpleResponse(w, false, err.Error())
return
}
clientID := utils.GenerateClientIDFromRequest(r)
metrics.RegisterPlaybackErrorCount(clientID, request.Errors)
if request.Bandwidth != 0.0 {
metrics.RegisterPlayerBandwidth(clientID, request.Bandwidth)
}
if request.Latency != 0.0 {
metrics.RegisterPlayerLatency(clientID, request.Latency)
}
if request.DownloadDuration != 0.0 {
metrics.RegisterPlayerSegmentDownloadDuration(clientID, request.DownloadDuration)
}
metrics.RegisterQualityVariantChangesCount(clientID, request.QualityVariantChanges)
}

82
core/cache/cache.go vendored Normal file
View File

@@ -0,0 +1,82 @@
package cache
import (
"time"
"github.com/jellydator/ttlcache/v3"
)
// CacheContainer is a container for all caches.
type CacheContainer struct {
caches map[string]*CacheInstance
}
// CacheInstance is a single cache instance.
type CacheInstance struct {
cache *ttlcache.Cache[string, []byte]
}
// This is the global singleton instance. (To be removed after refactor).
var _instance *CacheContainer
// NewCache creates a new cache instance.
func NewGlobalCache() *CacheContainer {
_instance = &CacheContainer{
caches: make(map[string]*CacheInstance),
}
return _instance
}
// GetCache returns the cache instance.
func GetGlobalCache() *CacheContainer {
if _instance != nil {
return _instance
}
return NewGlobalCache()
}
// GetOrCreateCache returns the cache instance or creates a new one.
func (c *CacheContainer) GetOrCreateCache(name string, expiration time.Duration) *CacheInstance {
if _, ok := c.caches[name]; !ok {
c.CreateCache(name, expiration)
}
return c.caches[name]
}
// CreateCache creates a new cache instance.
func (c *CacheContainer) CreateCache(name string, expiration time.Duration) *CacheInstance {
cache := ttlcache.New[string, []byte](
ttlcache.WithTTL[string, []byte](expiration),
ttlcache.WithDisableTouchOnHit[string, []byte](),
)
ci := &CacheInstance{cache: cache}
c.caches[name] = ci
go cache.Start()
return ci
}
// GetCache returns the cache instance.
func (c *CacheContainer) GetCache(name string) *CacheInstance {
return c.caches[name]
}
// GetValueForKey returns the value for the given key.
func (ci *CacheInstance) GetValueForKey(key string) []byte {
value := ci.cache.Get(key, ttlcache.WithDisableTouchOnHit[string, []byte]())
if value == nil {
return nil
}
if value.IsExpired() {
return nil
}
val := value.Value()
return val
}
// Set sets the value for the given key..
func (ci *CacheInstance) Set(key string, value []byte) {
ci.cache.Set(key, value, 0)
}

72
core/cache/cache_test.go vendored Normal file
View File

@@ -0,0 +1,72 @@
package cache
import (
"strconv"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestCache(t *testing.T) {
expiration := 5 * time.Second
globalCache := GetGlobalCache()
assert.NotNil(t, globalCache, "NewGlobalCache should return a non-nil instance")
assert.Equal(t, globalCache, GetGlobalCache(), "GetGlobalCache should return the created instance")
cacheName := "testCache"
globalCache.CreateCache(cacheName, expiration)
createdCache := globalCache.GetCache(cacheName)
assert.NotNil(t, createdCache, "GetCache should return a non-nil cache")
key := "testKey"
value := []byte("testValue")
createdCache.Set(key, value)
// Wait for cache to expire
time.Sleep(expiration + 1*time.Second)
// Verify that the cache has expired
ci := globalCache.GetCache(cacheName)
cachedValue := ci.GetValueForKey(key)
assert.Nil(t, cachedValue, "Cache should not contain the value after expiration")
}
func TestConcurrentAccess(t *testing.T) {
// Test concurrent access to the cache
globalCache := NewGlobalCache()
cacheName := "concurrentCache"
expiration := 5 * time.Second
globalCache.CreateCache(cacheName, expiration)
// Start multiple goroutines to access the cache concurrently
numGoroutines := 10
keyPrefix := "key"
valuePrefix := "value"
done := make(chan struct{})
for i := 0; i < numGoroutines; i++ {
go func(index int) {
defer func() { done <- struct{}{} }()
cache := globalCache.GetCache(cacheName)
key := keyPrefix + strconv.Itoa(index)
value := valuePrefix + strconv.Itoa(index)
cache.Set(key, []byte(value))
// Simulate some work
time.Sleep(100 * time.Millisecond)
ci := globalCache.GetCache(cacheName)
cachedValue := string(ci.GetValueForKey(key))
assert.Equal(t, value, cachedValue, "Cached value should match the set value")
}(i)
}
// Wait for all goroutines to finish
for i := 0; i < numGoroutines; i++ {
<-done
}
}

View File

@@ -7,8 +7,8 @@ import (
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/chat/events"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
log "github.com/sirupsen/logrus"
@@ -23,6 +23,8 @@ var (
func Start(getStatusFunc func() models.Status) error {
setupPersistence()
configRepository := configrepository.Get()
getStatus = getStatusFunc
_server = NewChat()
@@ -35,7 +37,7 @@ func Start(getStatusFunc func() models.Status) error {
Help: "The number of chat messages incremented over time.",
ConstLabels: map[string]string{
"version": config.VersionNumber,
"host": data.GetServerURL(),
"host": configRepository.GetServerURL(),
},
})

View File

@@ -13,19 +13,21 @@ import (
"github.com/gorilla/websocket"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/chat/events"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/geoip"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/owncast/owncast/services/geoip"
)
// Client represents a single chat client.
type Client struct {
ConnectedAt time.Time `json:"connectedAt"`
timeoutTimer *time.Timer
rateLimiter *rate.Limiter
conn *websocket.Conn
User *user.User `json:"user"`
server *Server
Geo *geoip.GeoDetails `json:"geo"`
ConnectedAt time.Time `json:"connectedAt"`
timeoutTimer *time.Timer
rateLimiter *rate.Limiter
messageFilter *ChatMessageFilter
conn *websocket.Conn
User *models.User `json:"user"`
server *Server
Geo *geoip.GeoDetails `json:"geo"`
// Buffered channel of outbound messages.
send chan []byte
accessToken string
@@ -90,6 +92,7 @@ func (c *Client) readPump() {
// Allow 3 messages every two seconds.
limit := rate.Every(2 * time.Second / 3)
c.rateLimiter = rate.NewLimiter(limit, 1)
c.messageFilter = NewMessageFilter()
defer func() {
c.close()
@@ -129,6 +132,14 @@ func (c *Client) readPump() {
continue
}
// Check if this message passes the optional language filter
configRepository := configrepository.Get()
if configRepository.GetChatSlurFilterEnabled() && !c.messageFilter.Allow(string(message)) {
c.sendAction("Sorry, that message contained language that is not allowed in this chat.")
continue
}
message = bytes.TrimSpace(bytes.ReplaceAll(message, newline, space))
c.handleEvent(message)
}
@@ -200,7 +211,15 @@ func (c *Client) close() {
}
func (c *Client) passesRateLimit() bool {
return c.rateLimiter.Allow() && !c.inTimeout
configRepository := configrepository.Get()
// If spam rate limiting is disabled, or the user is a moderator, always
// allow the message.
if !configRepository.GetChatSpamProtectionEnabled() || c.User.IsModerator() {
return true
}
return (c.rateLimiter.Allow() && !c.inTimeout)
}
func (c *Client) startChatRejectionTimeout() {

View File

@@ -10,14 +10,14 @@ import (
log "github.com/sirupsen/logrus"
)
func setSystemConcurrentConnectionLimit(limit int64) {
func setSystemConcurrentConnectionLimit(limit uint64) {
var rLimit syscall.Rlimit
if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit); err != nil {
log.Fatalln(err)
}
originalLimit := rLimit.Cur
rLimit.Cur = uint64(limit)
rLimit.Cur = limit
if err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit); err != nil {
log.Fatalln(err)
}

View File

@@ -9,7 +9,7 @@ import (
log "github.com/sirupsen/logrus"
)
func setSystemConcurrentConnectionLimit(limit int64) {
func setSystemConcurrentConnectionLimit(limit uint64) {
var rLimit syscall.Rlimit
if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit); err != nil {
log.Fatalln(err)

View File

@@ -3,4 +3,4 @@
package chat
func setSystemConcurrentConnectionLimit(limit int64) {}
func setSystemConcurrentConnectionLimit(limit uint64) {}

View File

@@ -8,9 +8,9 @@ import (
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/chat/events"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/core/webhooks"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/owncast/owncast/persistence/userrepository"
"github.com/owncast/owncast/utils"
log "github.com/sirupsen/logrus"
)
@@ -22,10 +22,12 @@ func (s *Server) userNameChanged(eventData chatClientEvent) {
return
}
configRepository := configrepository.Get()
proposedUsername := receivedEvent.NewName
// Check if name is on the blocklist
blocklist := data.GetForbiddenUsernameList()
blocklist := configRepository.GetForbiddenUsernameList()
// Names have a max length
proposedUsername = utils.MakeSafeStringOfLength(proposedUsername, config.MaxChatDisplayNameLength)
@@ -46,12 +48,14 @@ func (s *Server) userNameChanged(eventData chatClientEvent) {
}
}
userRepository := userrepository.Get()
// Check if the name is not already assigned to a registered user.
if available, err := user.IsDisplayNameAvailable(proposedUsername); err != nil {
if available, err := userRepository.IsDisplayNameAvailable(proposedUsername); err != nil {
log.Errorln("error checking if name is available", err)
return
} else if !available {
message := fmt.Sprintf("The name **%s** has been already registered. If this is your name, please authenticate.", proposedUsername)
message := fmt.Sprintf("The name **%s** has already been registered. If this is your name, please authenticate.", proposedUsername)
s.sendActionToClient(eventData.client, message)
// Resend the client's user so their username is in sync.
@@ -60,7 +64,7 @@ func (s *Server) userNameChanged(eventData chatClientEvent) {
return
}
savedUser := user.GetUserByToken(eventData.client.accessToken)
savedUser := userRepository.GetUserByToken(eventData.client.accessToken)
oldName := savedUser.DisplayName
// Check that the new name is different from old.
@@ -70,7 +74,7 @@ func (s *Server) userNameChanged(eventData chatClientEvent) {
}
// Save the new name
if err := user.ChangeUsername(eventData.client.User.ID, proposedUsername); err != nil {
if err := userRepository.ChangeUsername(eventData.client.User.ID, proposedUsername); err != nil {
log.Errorln("error changing username", err)
}
@@ -103,6 +107,8 @@ func (s *Server) userNameChanged(eventData chatClientEvent) {
}
func (s *Server) userColorChanged(eventData chatClientEvent) {
userRepository := userrepository.Get()
var receivedEvent events.ColorChangeEvent
if err := json.Unmarshal(eventData.data, &receivedEvent); err != nil {
log.Errorln("error unmarshalling to ColorChangeEvent", err)
@@ -116,7 +122,7 @@ func (s *Server) userColorChanged(eventData chatClientEvent) {
}
// Save the new color
if err := user.ChangeUserColor(eventData.client.User.ID, receivedEvent.NewColor); err != nil {
if err := userRepository.ChangeUserColor(eventData.client.User.ID, receivedEvent.NewColor); err != nil {
log.Errorln("error changing user display color", err)
}
@@ -126,6 +132,8 @@ func (s *Server) userColorChanged(eventData chatClientEvent) {
}
func (s *Server) userMessageSent(eventData chatClientEvent) {
userRepository := userrepository.Get()
var event events.UserMessageEvent
if err := json.Unmarshal(eventData.data, &event); err != nil {
log.Errorln("error unmarshalling to UserMessageEvent", err)
@@ -148,7 +156,7 @@ func (s *Server) userMessageSent(eventData chatClientEvent) {
}
}
event.User = user.GetUserByToken(eventData.client.accessToken)
event.User = userRepository.GetUserByToken(eventData.client.accessToken)
// Guard against nil users
if event.User == nil {

View File

@@ -1,9 +1,9 @@
package events
import "github.com/owncast/owncast/core/user"
import "github.com/owncast/owncast/models"
// ConnectedClientInfo represents the information about a connected client.
type ConnectedClientInfo struct {
User *user.User `json:"user"`
User *models.User `json:"user"`
Event
}

View File

@@ -17,10 +17,10 @@ import (
"github.com/yuin/goldmark/extension"
"github.com/yuin/goldmark/renderer/html"
"github.com/yuin/goldmark/util"
"mvdan.cc/xurls"
"mvdan.cc/xurls/v2"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/models"
log "github.com/sirupsen/logrus"
)
@@ -30,21 +30,21 @@ type EventPayload map[string]interface{}
// OutboundEvent represents an event that is sent out to all listeners of the chat server.
type OutboundEvent interface {
GetBroadcastPayload() EventPayload
GetMessageType() EventType
GetMessageType() models.EventType
}
// Event is any kind of event. A type is required to be specified.
type Event struct {
Timestamp time.Time `json:"timestamp"`
Type EventType `json:"type,omitempty"`
ID string `json:"id"`
Timestamp time.Time `json:"timestamp"`
Type models.EventType `json:"type,omitempty"`
ID string `json:"id"`
}
// UserEvent is an event with an associated user.
type UserEvent struct {
User *user.User `json:"user"`
HiddenAt *time.Time `json:"hiddenAt,omitempty"`
ClientID uint `json:"clientId,omitempty"`
User *models.User `json:"user"`
HiddenAt *time.Time `json:"hiddenAt,omitempty"`
ClientID uint `json:"clientId,omitempty"`
}
// MessageEvent is an event that has a message body.
@@ -220,7 +220,7 @@ func RenderMarkdown(raw string) string {
[]byte("https:"),
}),
extension.WithLinkifyURLRegexp(
xurls.Strict,
xurls.Strict(),
),
),
emoji.New(

View File

@@ -1,6 +1,8 @@
package events
import "github.com/owncast/owncast/core/data"
import (
"github.com/owncast/owncast/persistence/configrepository"
)
// FediverseEngagementEvent is a message displayed in chat on representing an action on the Fediverse.
type FediverseEngagementEvent struct {
@@ -13,6 +15,8 @@ type FediverseEngagementEvent struct {
// GetBroadcastPayload will return the object to send to all chat users.
func (e *FediverseEngagementEvent) GetBroadcastPayload() EventPayload {
configRepository := configrepository.Get()
return EventPayload{
"id": e.ID,
"timestamp": e.Timestamp,
@@ -22,7 +26,7 @@ func (e *FediverseEngagementEvent) GetBroadcastPayload() EventPayload {
"title": e.UserAccountName,
"link": e.Link,
"user": EventPayload{
"displayName": data.GetServerName(),
"displayName": configRepository.GetServerName(),
},
}
}

View File

@@ -1,6 +1,8 @@
package events
import "github.com/owncast/owncast/core/data"
import (
"github.com/owncast/owncast/persistence/configrepository"
)
// SystemMessageEvent is a message displayed in chat on behalf of the server.
type SystemMessageEvent struct {
@@ -10,13 +12,15 @@ type SystemMessageEvent struct {
// GetBroadcastPayload will return the object to send to all chat users.
func (e *SystemMessageEvent) GetBroadcastPayload() EventPayload {
configRepository := configrepository.Get()
return EventPayload{
"id": e.ID,
"timestamp": e.Timestamp,
"body": e.Body,
"type": SystemMessageSent,
"user": EventPayload{
"displayName": data.GetServerName(),
"displayName": configRepository.GetServerName(),
},
}
}

View File

@@ -0,0 +1,18 @@
package chat
import (
goaway "github.com/TwiN/go-away"
)
// ChatMessageFilter is a allow/deny chat message filter.
type ChatMessageFilter struct{}
// NewMessageFilter will return an instance of the chat message filter.
func NewMessageFilter() *ChatMessageFilter {
return &ChatMessageFilter{}
}
// Allow will test if this message should be allowed to be sent.
func (*ChatMessageFilter) Allow(message string) bool {
return !goaway.IsProfane(message)
}

View File

@@ -0,0 +1,39 @@
package chat
import (
"testing"
)
func TestFiltering(t *testing.T) {
filter := NewMessageFilter()
filteredTestMessages := []string{
"Hello, fucking world!",
"Suck my dick",
"Eat my ass",
"fuck this shit",
"@$$h073",
"F u C k th1$ $h!t",
"u r fag",
"fucking sucks",
}
unfilteredTestMessages := []string{
"bass fish",
"assumptions",
}
for _, m := range filteredTestMessages {
result := filter.Allow(m)
if result {
t.Errorf("%s should be seen as a filtered profane message", m)
}
}
for _, m := range unfilteredTestMessages {
result := filter.Allow(m)
if !result {
t.Errorf("%s should not be filtered", m)
}
}
}

View File

@@ -8,8 +8,10 @@ import (
"github.com/owncast/owncast/core/chat/events"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/persistence/authrepository"
"github.com/owncast/owncast/persistence/tables"
log "github.com/sirupsen/logrus"
)
@@ -22,8 +24,10 @@ const (
func setupPersistence() {
_datastore = data.GetDatastore()
data.CreateMessagesTable(_datastore.DB)
data.CreateBanIPTable(_datastore.DB)
tables.CreateMessagesTable(_datastore.DB)
authRepository := authrepository.Get()
authRepository.CreateBanIPTable(_datastore.DB)
chatDataPruner := time.NewTicker(5 * time.Minute)
go func() {
@@ -104,7 +108,7 @@ func makeUserMessageEventFromRowData(row rowData) events.UserMessageEvent {
isBot := (row.userType != nil && *row.userType == "API")
scopeSlice := strings.Split(scopes, ",")
u := user.User{
u := models.User{
ID: *row.userID,
DisplayName: displayName,
DisplayColor: displayColor,

View File

@@ -13,10 +13,12 @@ import (
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/chat/events"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/core/webhooks"
"github.com/owncast/owncast/geoip"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/persistence/authrepository"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/owncast/owncast/persistence/userrepository"
"github.com/owncast/owncast/services/geoip"
"github.com/owncast/owncast/utils"
)
@@ -40,7 +42,7 @@ type Server struct {
// a map of user IDs and timers that fire for chat part messages.
userPartedTimers map[string]*time.Ticker
seq uint
maxSocketConnectionLimit int64
maxSocketConnectionLimit uint64
mu sync.RWMutex
}
@@ -82,7 +84,7 @@ func (s *Server) Run() {
}
// Addclient registers new connection as a User.
func (s *Server) Addclient(conn *websocket.Conn, user *user.User, accessToken string, userAgent string, ipAddress string) *Client {
func (s *Server) Addclient(conn *websocket.Conn, user *models.User, accessToken string, userAgent string, ipAddress string) *Client {
client := &Client{
server: s,
conn: conn,
@@ -94,7 +96,16 @@ func (s *Server) Addclient(conn *websocket.Conn, user *user.User, accessToken st
ConnectedAt: time.Now(),
}
shouldSendJoinedMessages := data.GetChatJoinPartMessagesEnabled()
configRepository := configrepository.Get()
shouldSendJoinedMessages := configRepository.GetChatJoinPartMessagesEnabled()
// If there are existing clients connected for this user do not send
// a user joined message. Do not put this under a mutex, as
// GetClientsForUser already has a lock.
if existingConnectedClients, _ := GetClientsForUser(user.ID); len(existingConnectedClients) > 0 {
shouldSendJoinedMessages = false
}
s.mu.Lock()
{
@@ -178,8 +189,10 @@ func (s *Server) sendUserPartedMessage(c *Client) {
userPartEvent.User = c.User
userPartEvent.ClientID = c.Id
configRepository := configrepository.Get()
// If part messages are disabled.
if data.GetChatJoinPartMessagesEnabled() {
if configRepository.GetChatJoinPartMessagesEnabled() {
if err := s.Broadcast(userPartEvent.GetBroadcastPayload()); err != nil {
log.Errorln("error sending chat part message", err)
}
@@ -190,14 +203,17 @@ func (s *Server) sendUserPartedMessage(c *Client) {
// HandleClientConnection is fired when a single client connects to the websocket.
func (s *Server) HandleClientConnection(w http.ResponseWriter, r *http.Request) {
if data.GetChatDisabled() {
configRepository := configrepository.Get()
authRepository := authrepository.Get()
if configRepository.GetChatDisabled() {
_, _ = w.Write([]byte(events.ChatDisabled))
return
}
ipAddress := utils.GetIPAddressFromRequest(r)
// Check if this client's IP address is banned. If so send a rejection.
if blocked, err := data.IsIPAddressBanned(ipAddress); blocked {
if blocked, err := authRepository.IsIPAddressBanned(ipAddress); blocked {
log.Debugln("Client ip address has been blocked. Rejecting.")
w.WriteHeader(http.StatusForbidden)
@@ -207,7 +223,7 @@ func (s *Server) HandleClientConnection(w http.ResponseWriter, r *http.Request)
}
// Limit concurrent chat connections
if int64(len(s.clients)) >= s.maxSocketConnectionLimit {
if uint64(len(s.clients)) >= s.maxSocketConnectionLimit {
log.Warnln("rejecting incoming client connection as it exceeds the max client count of", s.maxSocketConnectionLimit)
_, _ = w.Write([]byte(events.ErrorMaxConnectionsExceeded))
return
@@ -232,8 +248,11 @@ func (s *Server) HandleClientConnection(w http.ResponseWriter, r *http.Request)
return
}
userRepository := userrepository.Get()
// A user is required to use the websocket
user := user.GetUserByToken(accessToken)
user := userRepository.GetUserByToken(accessToken)
if user == nil {
// Send error that registration is required
_ = conn.WriteJSON(events.EventPayload{
@@ -328,8 +347,10 @@ func SendConnectedClientInfoToUser(userID string) error {
return err
}
userRepository := userrepository.Get()
// Get an updated reference to the user.
user := user.GetUserByID(userID)
user := userRepository.GetUserByID(userID)
if user == nil {
return fmt.Errorf("user not found")
}
@@ -364,12 +385,14 @@ func SendActionToUser(userID string, text string) error {
}
func (s *Server) eventReceived(event chatClientEvent) {
configRepository := configrepository.Get()
c := event.client
u := c.User
// If established chat user only mode is enabled and the user is not old
// enough then reject this event and send them an informative message.
if u != nil && data.GetChatEstbalishedUsersOnlyMode() && time.Since(event.client.User.CreatedAt) < config.GetDefaults().ChatEstablishedUserModeTimeDuration && !u.IsModerator() {
if u != nil && configRepository.GetChatEstbalishedUsersOnlyMode() && time.Since(event.client.User.CreatedAt) < config.GetDefaults().ChatEstablishedUserModeTimeDuration && !u.IsModerator() {
s.sendActionToClient(c, "You have not been an established chat participant long enough to take part in chat. Please enjoy the stream and try again later.")
return
}
@@ -396,10 +419,12 @@ func (s *Server) eventReceived(event chatClientEvent) {
}
func (s *Server) sendWelcomeMessageToClient(c *Client) {
configRepository := configrepository.Get()
// Add an artificial delay so people notice this message come in.
time.Sleep(7 * time.Second)
welcomeMessage := utils.RenderSimpleMarkdown(data.GetServerWelcomeMessage())
welcomeMessage := utils.RenderSimpleMarkdown(configRepository.GetServerWelcomeMessage())
if welcomeMessage != "" {
s.sendSystemMessageToClient(c, welcomeMessage)
@@ -407,7 +432,9 @@ func (s *Server) sendWelcomeMessageToClient(c *Client) {
}
func (s *Server) sendAllWelcomeMessage() {
welcomeMessage := utils.RenderSimpleMarkdown(data.GetServerWelcomeMessage())
configRepository := configrepository.Get()
welcomeMessage := utils.RenderSimpleMarkdown(configRepository.GetServerWelcomeMessage())
if welcomeMessage != "" {
clientMessage := events.SystemMessageEvent{

View File

@@ -9,14 +9,14 @@ import (
log "github.com/sirupsen/logrus"
)
func getMaximumConcurrentConnectionLimit() int64 {
func getMaximumConcurrentConnectionLimit() uint64 {
var rLimit syscall.Rlimit
if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit); err != nil {
log.Fatalln(err)
}
// Return the limit to 70% of max so the machine doesn't die even if it's maxed out for some reason.
proposedLimit := int64(float32(rLimit.Max) * 0.7)
proposedLimit := uint64(float32(rLimit.Max) * 0.7)
return proposedLimit
}

View File

@@ -3,7 +3,7 @@
package chat
func getMaximumConcurrentConnectionLimit() int64 {
func getMaximumConcurrentConnectionLimit() uint64 {
// The maximum limit I can find for windows is 16,777,216
// (essentially unlimited, but add the 0.7 multiplier as well to be
// consistent with other systems)

View File

@@ -13,10 +13,11 @@ import (
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/core/rtmp"
"github.com/owncast/owncast/core/transcoder"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/core/webhooks"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/notifications"
"github.com/owncast/owncast/persistence/configrepository"
"github.com/owncast/owncast/persistence/tables"
"github.com/owncast/owncast/utils"
"github.com/owncast/owncast/yp"
)
@@ -34,10 +35,10 @@ var (
// Start starts up the core processing.
func Start() error {
resetDirectories()
configRepository := configrepository.Get()
// configRepository.PopulateDefaults()
data.PopulateDefaults()
if err := data.VerifySettings(); err != nil {
if err := configRepository.VerifySettings(); err != nil {
log.Error(err)
return err
}
@@ -56,7 +57,7 @@ func Start() error {
log.Errorln("storage error", err)
}
user.SetupUsers()
tables.SetupUsers(data.GetDatastore().DB)
auth.Setup(data.GetDatastore())
fileWriter.SetupFileWriterReceiverService(&handler)
@@ -75,7 +76,7 @@ func Start() error {
// start the rtmp server
go rtmp.Start(setStreamAsConnected, setBroadcaster)
rtmpPort := data.GetRTMPPortNumber()
rtmpPort := configRepository.GetRTMPPortNumber()
if rtmpPort != 1935 {
log.Infof("RTMP is accepting inbound streams on port %d.", rtmpPort)
}
@@ -104,7 +105,7 @@ func transitionToOfflineVideoStreamContent() {
_transcoder.SetLatencyLevel(models.GetLatencyLevel(4))
_transcoder.SetIsEvent(true)
offlineFilePath, err := saveOfflineClipToDisk("offline.ts")
offlineFilePath, err := saveOfflineClipToDisk("offline-v2.ts")
if err != nil {
log.Fatalln("unable to save offline clip:", err)
}
@@ -113,7 +114,8 @@ func transitionToOfflineVideoStreamContent() {
go _transcoder.Start(false)
// Copy the logo to be the thumbnail
logo := data.GetLogoPath()
configRepository := configrepository.Get()
logo := configRepository.GetLogoPath()
dst := filepath.Join(config.TempDir, "thumbnail.jpg")
if err = utils.Copy(filepath.Join("data", logo), dst); err != nil {
log.Warnln(err)
@@ -130,7 +132,8 @@ func resetDirectories() {
utils.CleanupDirectory(config.HLSStoragePath)
// Remove the previous thumbnail
logo := data.GetLogoPath()
configRepository := configrepository.Get()
logo := configRepository.GetLogoPath()
if utils.DoesFileExists(logo) {
err := utils.Copy(path.Join("data", logo), filepath.Join(config.DataDirectory, "thumbnail.jpg"))
if err != nil {

View File

@@ -1,13 +0,0 @@
package data
// GetFederatedInboxMap is a mapping between account names and their outbox.
func GetFederatedInboxMap() map[string]string {
return map[string]string{
GetDefaultFederationUsername(): GetDefaultFederationUsername(),
}
}
// GetDefaultFederationUsername will return the username used for sending federation activities.
func GetDefaultFederationUsername() string {
return GetFederationUsername()
}

View File

@@ -1,990 +0,0 @@
package data
import (
"os"
"path/filepath"
"sort"
"strings"
"time"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/models"
"github.com/owncast/owncast/static"
"github.com/owncast/owncast/utils"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
)
const (
extraContentKey = "extra_page_content"
streamTitleKey = "stream_title"
adminPasswordKey = "admin_password_key"
logoPathKey = "logo_path"
logoUniquenessKey = "logo_uniqueness"
serverSummaryKey = "server_summary"
serverWelcomeMessageKey = "server_welcome_message"
serverNameKey = "server_name"
serverURLKey = "server_url"
httpPortNumberKey = "http_port_number"
httpListenAddressKey = "http_listen_address"
websocketHostOverrideKey = "websocket_host_override"
rtmpPortNumberKey = "rtmp_port_number"
serverMetadataTagsKey = "server_metadata_tags"
directoryEnabledKey = "directory_enabled"
directoryRegistrationKeyKey = "directory_registration_key"
socialHandlesKey = "social_handles"
peakViewersSessionKey = "peak_viewers_session"
peakViewersOverallKey = "peak_viewers_overall"
lastDisconnectTimeKey = "last_disconnect_time"
ffmpegPathKey = "ffmpeg_path"
nsfwKey = "nsfw"
s3StorageConfigKey = "s3_storage_config"
videoLatencyLevel = "video_latency_level"
videoStreamOutputVariantsKey = "video_stream_output_variants"
chatDisabledKey = "chat_disabled"
externalActionsKey = "external_actions"
customStylesKey = "custom_styles"
customJavascriptKey = "custom_javascript"
videoCodecKey = "video_codec"
blockedUsernamesKey = "blocked_usernames"
publicKeyKey = "public_key"
privateKeyKey = "private_key"
serverInitDateKey = "server_init_date"
federationEnabledKey = "federation_enabled"
federationUsernameKey = "federation_username"
federationPrivateKey = "federation_private"
federationGoLiveMessageKey = "federation_go_live_message"
federationShowEngagementKey = "federation_show_engagement"
federationBlockedDomainsKey = "federation_blocked_domains"
suggestedUsernamesKey = "suggested_usernames"
chatJoinMessagesEnabledKey = "chat_join_messages_enabled"
chatEstablishedUsersOnlyModeKey = "chat_established_users_only_mode"
notificationsEnabledKey = "notifications_enabled"
discordConfigurationKey = "discord_configuration"
browserPushConfigurationKey = "browser_push_configuration"
browserPushPublicKeyKey = "browser_push_public_key"
// nolint:gosec
browserPushPrivateKeyKey = "browser_push_private_key"
hasConfiguredInitialNotificationsKey = "has_configured_initial_notifications"
hideViewerCountKey = "hide_viewer_count"
customOfflineMessageKey = "custom_offline_message"
customColorVariableValuesKey = "custom_color_variable_values"
streamKeysKey = "stream_keys"
disableSearchIndexingKey = "disable_search_indexing"
videoServingEndpointKey = "video_serving_endpoint"
)
// GetExtraPageBodyContent will return the user-supplied body content.
func GetExtraPageBodyContent() string {
content, err := _datastore.GetString(extraContentKey)
if err != nil {
log.Traceln(extraContentKey, err)
return config.GetDefaults().PageBodyContent
}
return content
}
// SetExtraPageBodyContent will set the user-supplied body content.
func SetExtraPageBodyContent(content string) error {
return _datastore.SetString(extraContentKey, content)
}
// GetStreamTitle will return the name of the current stream.
func GetStreamTitle() string {
title, err := _datastore.GetString(streamTitleKey)
if err != nil {
return ""
}
return title
}
// SetStreamTitle will set the name of the current stream.
func SetStreamTitle(title string) error {
return _datastore.SetString(streamTitleKey, title)
}
// GetAdminPassword will return the admin password.
func GetAdminPassword() string {
key, _ := _datastore.GetString(adminPasswordKey)
return key
}
// SetAdminPassword will set the admin password.
func SetAdminPassword(key string) error {
return _datastore.SetString(adminPasswordKey, key)
}
// GetLogoPath will return the path for the logo, relative to webroot.
func GetLogoPath() string {
logo, err := _datastore.GetString(logoPathKey)
if err != nil {
log.Traceln(logoPathKey, err)
return config.GetDefaults().Logo
}
if logo == "" {
return config.GetDefaults().Logo
}
return logo
}
// SetLogoPath will set the path for the logo, relative to webroot.
func SetLogoPath(logo string) error {
return _datastore.SetString(logoPathKey, logo)
}
// SetLogoUniquenessString will set the logo cache busting string.
func SetLogoUniquenessString(uniqueness string) error {
return _datastore.SetString(logoUniquenessKey, uniqueness)
}
// GetLogoUniquenessString will return the logo cache busting string.
func GetLogoUniquenessString() string {
uniqueness, err := _datastore.GetString(logoUniquenessKey)
if err != nil {
log.Traceln(logoUniquenessKey, err)
return ""
}
return uniqueness
}
// GetServerSummary will return the server summary text.
func GetServerSummary() string {
summary, err := _datastore.GetString(serverSummaryKey)
if err != nil {
log.Traceln(serverSummaryKey, err)
return ""
}
return summary
}
// SetServerSummary will set the server summary text.
func SetServerSummary(summary string) error {
return _datastore.SetString(serverSummaryKey, summary)
}
// GetServerWelcomeMessage will return the server welcome message text.
func GetServerWelcomeMessage() string {
welcomeMessage, err := _datastore.GetString(serverWelcomeMessageKey)
if err != nil {
log.Traceln(serverWelcomeMessageKey, err)
return config.GetDefaults().ServerWelcomeMessage
}
return welcomeMessage
}
// SetServerWelcomeMessage will set the server welcome message text.
func SetServerWelcomeMessage(welcomeMessage string) error {
return _datastore.SetString(serverWelcomeMessageKey, welcomeMessage)
}
// GetServerName will return the server name text.
func GetServerName() string {
name, err := _datastore.GetString(serverNameKey)
if err != nil {
log.Traceln(serverNameKey, err)
return config.GetDefaults().Name
}
return name
}
// SetServerName will set the server name text.
func SetServerName(name string) error {
return _datastore.SetString(serverNameKey, name)
}
// GetServerURL will return the server URL.
func GetServerURL() string {
url, err := _datastore.GetString(serverURLKey)
if err != nil {
return ""
}
return url
}
// SetServerURL will set the server URL.
func SetServerURL(url string) error {
return _datastore.SetString(serverURLKey, url)
}
// GetHTTPPortNumber will return the server HTTP port.
func GetHTTPPortNumber() int {
port, err := _datastore.GetNumber(httpPortNumberKey)
if err != nil {
log.Traceln(httpPortNumberKey, err)
return config.GetDefaults().WebServerPort
}
if port == 0 {
return config.GetDefaults().WebServerPort
}
return int(port)
}
// SetWebsocketOverrideHost will set the host override for websockets.
func SetWebsocketOverrideHost(host string) error {
return _datastore.SetString(websocketHostOverrideKey, host)
}
// GetWebsocketOverrideHost will return the host override for websockets.
func GetWebsocketOverrideHost() string {
host, _ := _datastore.GetString(websocketHostOverrideKey)
return host
}
// SetHTTPPortNumber will set the server HTTP port.
func SetHTTPPortNumber(port float64) error {
return _datastore.SetNumber(httpPortNumberKey, port)
}
// GetHTTPListenAddress will return the HTTP listen address.
func GetHTTPListenAddress() string {
address, err := _datastore.GetString(httpListenAddressKey)
if err != nil {
log.Traceln(httpListenAddressKey, err)
return config.GetDefaults().WebServerIP
}
return address
}
// SetHTTPListenAddress will set the server HTTP listen address.
func SetHTTPListenAddress(address string) error {
return _datastore.SetString(httpListenAddressKey, address)
}
// GetRTMPPortNumber will return the server RTMP port.
func GetRTMPPortNumber() int {
port, err := _datastore.GetNumber(rtmpPortNumberKey)
if err != nil {
log.Traceln(rtmpPortNumberKey, err)
return config.GetDefaults().RTMPServerPort
}
if port == 0 {
return config.GetDefaults().RTMPServerPort
}
return int(port)
}
// SetRTMPPortNumber will set the server RTMP port.
func SetRTMPPortNumber(port float64) error {
return _datastore.SetNumber(rtmpPortNumberKey, port)
}
// GetServerMetadataTags will return the metadata tags.
func GetServerMetadataTags() []string {
tagsString, err := _datastore.GetString(serverMetadataTagsKey)
if tagsString == "" {
return []string{}
}
if err != nil {
log.Traceln(serverMetadataTagsKey, err)
return []string{}
}
return strings.Split(tagsString, ",")
}
// SetServerMetadataTags will return the metadata tags.
func SetServerMetadataTags(tags []string) error {
tagString := strings.Join(tags, ",")
return _datastore.SetString(serverMetadataTagsKey, tagString)
}
// GetDirectoryEnabled will return if this server should register to YP.
func GetDirectoryEnabled() bool {
enabled, err := _datastore.GetBool(directoryEnabledKey)
if err != nil {
return config.GetDefaults().YPEnabled
}
return enabled
}
// SetDirectoryEnabled will set if this server should register to YP.
func SetDirectoryEnabled(enabled bool) error {
return _datastore.SetBool(directoryEnabledKey, enabled)
}
// SetDirectoryRegistrationKey will set the YP protocol registration key.
func SetDirectoryRegistrationKey(key string) error {
return _datastore.SetString(directoryRegistrationKeyKey, key)
}
// GetDirectoryRegistrationKey will return the YP protocol registration key.
func GetDirectoryRegistrationKey() string {
key, _ := _datastore.GetString(directoryRegistrationKeyKey)
return key
}
// GetSocialHandles will return the external social links.
func GetSocialHandles() []models.SocialHandle {
var socialHandles []models.SocialHandle
configEntry, err := _datastore.Get(socialHandlesKey)
if err != nil {
log.Traceln(socialHandlesKey, err)
return socialHandles
}
if err := configEntry.getObject(&socialHandles); err != nil {
log.Traceln(err)
return socialHandles
}
return socialHandles
}
// SetSocialHandles will set the external social links.
func SetSocialHandles(socialHandles []models.SocialHandle) error {
configEntry := ConfigEntry{Key: socialHandlesKey, Value: socialHandles}
return _datastore.Save(configEntry)
}
// GetPeakSessionViewerCount will return the max number of viewers for this stream.
func GetPeakSessionViewerCount() int {
count, err := _datastore.GetNumber(peakViewersSessionKey)
if err != nil {
return 0
}
return int(count)
}
// SetPeakSessionViewerCount will set the max number of viewers for this stream.
func SetPeakSessionViewerCount(count int) error {
return _datastore.SetNumber(peakViewersSessionKey, float64(count))
}
// GetPeakOverallViewerCount will return the overall max number of viewers.
func GetPeakOverallViewerCount() int {
count, err := _datastore.GetNumber(peakViewersOverallKey)
if err != nil {
return 0
}
return int(count)
}
// SetPeakOverallViewerCount will set the overall max number of viewers.
func SetPeakOverallViewerCount(count int) error {
return _datastore.SetNumber(peakViewersOverallKey, float64(count))
}
// GetLastDisconnectTime will return the time the last stream ended.
func GetLastDisconnectTime() (*utils.NullTime, error) {
var disconnectTime utils.NullTime
configEntry, err := _datastore.Get(lastDisconnectTimeKey)
if err != nil {
return nil, err
}
if err := configEntry.getObject(&disconnectTime); err != nil {
return nil, err
}
if !disconnectTime.Valid || disconnectTime.Time.IsZero() {
return nil, err
}
return &disconnectTime, nil
}
// SetLastDisconnectTime will set the time the last stream ended.
func SetLastDisconnectTime(disconnectTime time.Time) error {
savedDisconnectTime := utils.NullTime{Time: disconnectTime, Valid: true}
configEntry := ConfigEntry{Key: lastDisconnectTimeKey, Value: savedDisconnectTime}
return _datastore.Save(configEntry)
}
// SetNSFW will set if this stream has NSFW content.
func SetNSFW(isNSFW bool) error {
return _datastore.SetBool(nsfwKey, isNSFW)
}
// GetNSFW will return if this stream has NSFW content.
func GetNSFW() bool {
nsfw, err := _datastore.GetBool(nsfwKey)
if err != nil {
return false
}
return nsfw
}
// SetFfmpegPath will set the custom ffmpeg path.
func SetFfmpegPath(path string) error {
return _datastore.SetString(ffmpegPathKey, path)
}
// GetFfMpegPath will return the ffmpeg path.
func GetFfMpegPath() string {
path, err := _datastore.GetString(ffmpegPathKey)
if err != nil {
return ""
}
return path
}
// GetS3Config will return the external storage configuration.
func GetS3Config() models.S3 {
configEntry, err := _datastore.Get(s3StorageConfigKey)
if err != nil {
return models.S3{Enabled: false}
}
var s3Config models.S3
if err := configEntry.getObject(&s3Config); err != nil {
return models.S3{Enabled: false}
}
return s3Config
}
// SetS3Config will set the external storage configuration.
func SetS3Config(config models.S3) error {
configEntry := ConfigEntry{Key: s3StorageConfigKey, Value: config}
return _datastore.Save(configEntry)
}
// GetStreamLatencyLevel will return the stream latency level.
func GetStreamLatencyLevel() models.LatencyLevel {
level, err := _datastore.GetNumber(videoLatencyLevel)
if err != nil {
level = 2 // default
} else if level > 4 {
level = 4 // highest
}
return models.GetLatencyLevel(int(level))
}
// SetStreamLatencyLevel will set the stream latency level.
func SetStreamLatencyLevel(level float64) error {
return _datastore.SetNumber(videoLatencyLevel, level)
}
// GetStreamOutputVariants will return all of the stream output variants.
func GetStreamOutputVariants() []models.StreamOutputVariant {
configEntry, err := _datastore.Get(videoStreamOutputVariantsKey)
if err != nil {
return config.GetDefaults().StreamVariants
}
var streamOutputVariants []models.StreamOutputVariant
if err := configEntry.getObject(&streamOutputVariants); err != nil {
return config.GetDefaults().StreamVariants
}
if len(streamOutputVariants) == 0 {
return config.GetDefaults().StreamVariants
}
return streamOutputVariants
}
// SetStreamOutputVariants will set the stream output variants.
func SetStreamOutputVariants(variants []models.StreamOutputVariant) error {
configEntry := ConfigEntry{Key: videoStreamOutputVariantsKey, Value: variants}
return _datastore.Save(configEntry)
}
// SetChatDisabled will disable chat if set to true.
func SetChatDisabled(disabled bool) error {
return _datastore.SetBool(chatDisabledKey, disabled)
}
// GetChatDisabled will return if chat is disabled.
func GetChatDisabled() bool {
disabled, err := _datastore.GetBool(chatDisabledKey)
if err == nil {
return disabled
}
return false
}
// SetChatEstablishedUsersOnlyMode sets the state of established user only mode.
func SetChatEstablishedUsersOnlyMode(enabled bool) error {
return _datastore.SetBool(chatEstablishedUsersOnlyModeKey, enabled)
}
// GetChatEstbalishedUsersOnlyMode returns the state of established user only mode.
func GetChatEstbalishedUsersOnlyMode() bool {
enabled, err := _datastore.GetBool(chatEstablishedUsersOnlyModeKey)
if err == nil {
return enabled
}
return false
}
// GetExternalActions will return the registered external actions.
func GetExternalActions() []models.ExternalAction {
configEntry, err := _datastore.Get(externalActionsKey)
if err != nil {
return []models.ExternalAction{}
}
var externalActions []models.ExternalAction
if err := configEntry.getObject(&externalActions); err != nil {
return []models.ExternalAction{}
}
return externalActions
}
// SetExternalActions will save external actions.
func SetExternalActions(actions []models.ExternalAction) error {
configEntry := ConfigEntry{Key: externalActionsKey, Value: actions}
return _datastore.Save(configEntry)
}
// SetCustomStyles will save a string with CSS to insert into the page.
func SetCustomStyles(styles string) error {
return _datastore.SetString(customStylesKey, styles)
}
// GetCustomStyles will return a string with CSS to insert into the page.
func GetCustomStyles() string {
style, err := _datastore.GetString(customStylesKey)
if err != nil {
return ""
}
return style
}
// SetCustomJavascript will save a string with Javascript to insert into the page.
func SetCustomJavascript(styles string) error {
return _datastore.SetString(customJavascriptKey, styles)
}
// GetCustomJavascript will return a string with Javascript to insert into the page.
func GetCustomJavascript() string {
style, err := _datastore.GetString(customJavascriptKey)
if err != nil {
return ""
}
return style
}
// SetVideoCodec will set the codec used for video encoding.
func SetVideoCodec(codec string) error {
return _datastore.SetString(videoCodecKey, codec)
}
// GetVideoCodec returns the codec to use for transcoding video.
func GetVideoCodec() string {
codec, err := _datastore.GetString(videoCodecKey)
if codec == "" || err != nil {
return "libx264" // Default value
}
return codec
}
// VerifySettings will perform a sanity check for specific settings values.
func VerifySettings() error {
if len(GetStreamKeys()) == 0 && config.TemporaryStreamKey == "" {
log.Errorln("No stream key set. Streaming is disabled. Please set one via the admin or command line arguments")
}
if GetAdminPassword() == "" {
return errors.New("no admin password set. Please set one via the admin or command line arguments")
}
logoPath := GetLogoPath()
if !utils.DoesFileExists(filepath.Join(config.DataDirectory, logoPath)) {
log.Traceln(logoPath, "not found in the data directory. copying a default logo.")
logo := static.GetLogo()
if err := os.WriteFile(filepath.Join(config.DataDirectory, "logo.png"), logo, 0o600); err != nil {
return errors.Wrap(err, "failed to write logo to disk")
}
if err := SetLogoPath("logo.png"); err != nil {
return errors.Wrap(err, "failed to save logo filename")
}
}
return nil
}
// FindHighestVideoQualityIndex will return the highest quality from a slice of variants.
func FindHighestVideoQualityIndex(qualities []models.StreamOutputVariant) int {
type IndexedQuality struct {
quality models.StreamOutputVariant
index int
}
if len(qualities) < 2 {
return 0
}
indexedQualities := make([]IndexedQuality, 0)
for index, quality := range qualities {
indexedQuality := IndexedQuality{quality, index}
indexedQualities = append(indexedQualities, indexedQuality)
}
sort.Slice(indexedQualities, func(a, b int) bool {
if indexedQualities[a].quality.IsVideoPassthrough && !indexedQualities[b].quality.IsVideoPassthrough {
return true
}
if !indexedQualities[a].quality.IsVideoPassthrough && indexedQualities[b].quality.IsVideoPassthrough {
return false
}
return indexedQualities[a].quality.VideoBitrate > indexedQualities[b].quality.VideoBitrate
})
// nolint:gosec
return indexedQualities[0].index
}
// GetForbiddenUsernameList will return the blocked usernames as a comma separated string.
func GetForbiddenUsernameList() []string {
usernames, err := _datastore.GetStringSlice(blockedUsernamesKey)
if err != nil {
return config.DefaultForbiddenUsernames
}
if len(usernames) == 0 {
return config.DefaultForbiddenUsernames
}
return usernames
}
// SetForbiddenUsernameList set the username blocklist as a comma separated string.
func SetForbiddenUsernameList(usernames []string) error {
return _datastore.SetStringSlice(blockedUsernamesKey, usernames)
}
// GetSuggestedUsernamesList will return the suggested usernames.
// If the number of suggested usernames is smaller than 10, the number pool is
// not used (see code in the CreateAnonymousUser function).
func GetSuggestedUsernamesList() []string {
usernames, err := _datastore.GetStringSlice(suggestedUsernamesKey)
if err != nil || len(usernames) == 0 {
return []string{}
}
return usernames
}
// SetSuggestedUsernamesList sets the username suggestion list.
func SetSuggestedUsernamesList(usernames []string) error {
return _datastore.SetStringSlice(suggestedUsernamesKey, usernames)
}
// GetServerInitTime will return when the server was first setup.
func GetServerInitTime() (*utils.NullTime, error) {
var t utils.NullTime
configEntry, err := _datastore.Get(serverInitDateKey)
if err != nil {
return nil, err
}
if err := configEntry.getObject(&t); err != nil {
return nil, err
}
if !t.Valid {
return nil, err
}
return &t, nil
}
// SetServerInitTime will set when the server was first created.
func SetServerInitTime(t time.Time) error {
nt := utils.NullTime{Time: t, Valid: true}
configEntry := ConfigEntry{Key: serverInitDateKey, Value: nt}
return _datastore.Save(configEntry)
}
// SetFederationEnabled will enable federation if set to true.
func SetFederationEnabled(enabled bool) error {
return _datastore.SetBool(federationEnabledKey, enabled)
}
// GetFederationEnabled will return if federation is enabled.
func GetFederationEnabled() bool {
enabled, err := _datastore.GetBool(federationEnabledKey)
if err == nil {
return enabled
}
return false
}
// SetFederationUsername will set the username used in federated activities.
func SetFederationUsername(username string) error {
return _datastore.SetString(federationUsernameKey, username)
}
// GetFederationUsername will return the username used in federated activities.
func GetFederationUsername() string {
username, err := _datastore.GetString(federationUsernameKey)
if username == "" || err != nil {
return config.GetDefaults().FederationUsername
}
return username
}
// SetFederationGoLiveMessage will set the message sent when going live.
func SetFederationGoLiveMessage(message string) error {
return _datastore.SetString(federationGoLiveMessageKey, message)
}
// GetFederationGoLiveMessage will return the message sent when going live.
func GetFederationGoLiveMessage() string {
// Empty message means it's disabled.
message, err := _datastore.GetString(federationGoLiveMessageKey)
if err != nil {
log.Traceln("unable to fetch go live message.", err)
}
return message
}
// SetFederationIsPrivate will set if federation activity is private.
func SetFederationIsPrivate(isPrivate bool) error {
return _datastore.SetBool(federationPrivateKey, isPrivate)
}
// GetFederationIsPrivate will return if federation is private.
func GetFederationIsPrivate() bool {
isPrivate, err := _datastore.GetBool(federationPrivateKey)
if err == nil {
return isPrivate
}
return false
}
// SetFederationShowEngagement will set if fediverse engagement shows in chat.
func SetFederationShowEngagement(showEngagement bool) error {
return _datastore.SetBool(federationShowEngagementKey, showEngagement)
}
// GetFederationShowEngagement will return if fediverse engagement shows in chat.
func GetFederationShowEngagement() bool {
showEngagement, err := _datastore.GetBool(federationShowEngagementKey)
if err == nil {
return showEngagement
}
return true
}
// SetBlockedFederatedDomains will set the blocked federated domains.
func SetBlockedFederatedDomains(domains []string) error {
return _datastore.SetString(federationBlockedDomainsKey, strings.Join(domains, ","))
}
// GetBlockedFederatedDomains will return a list of blocked federated domains.
func GetBlockedFederatedDomains() []string {
domains, err := _datastore.GetString(federationBlockedDomainsKey)
if err != nil {
return []string{}
}
if domains == "" {
return []string{}
}
return strings.Split(domains, ",")
}
// SetChatJoinMessagesEnabled will set if chat join messages are enabled.
func SetChatJoinMessagesEnabled(enabled bool) error {
return _datastore.SetBool(chatJoinMessagesEnabledKey, enabled)
}
// GetChatJoinPartMessagesEnabled will return if chat join messages are enabled.
func GetChatJoinPartMessagesEnabled() bool {
enabled, err := _datastore.GetBool(chatJoinMessagesEnabledKey)
if err != nil {
return true
}
return enabled
}
// SetNotificationsEnabled will save the enabled state of notifications.
func SetNotificationsEnabled(enabled bool) error {
return _datastore.SetBool(notificationsEnabledKey, enabled)
}
// GetNotificationsEnabled will return the enabled state of notifications.
func GetNotificationsEnabled() bool {
enabled, _ := _datastore.GetBool(notificationsEnabledKey)
return enabled
}
// GetDiscordConfig will return the Discord configuration.
func GetDiscordConfig() models.DiscordConfiguration {
configEntry, err := _datastore.Get(discordConfigurationKey)
if err != nil {
return models.DiscordConfiguration{Enabled: false}
}
var config models.DiscordConfiguration
if err := configEntry.getObject(&config); err != nil {
return models.DiscordConfiguration{Enabled: false}
}
return config
}
// SetDiscordConfig will set the Discord configuration.
func SetDiscordConfig(config models.DiscordConfiguration) error {
configEntry := ConfigEntry{Key: discordConfigurationKey, Value: config}
return _datastore.Save(configEntry)
}
// GetBrowserPushConfig will return the browser push configuration.
func GetBrowserPushConfig() models.BrowserNotificationConfiguration {
configEntry, err := _datastore.Get(browserPushConfigurationKey)
if err != nil {
return models.BrowserNotificationConfiguration{Enabled: false}
}
var config models.BrowserNotificationConfiguration
if err := configEntry.getObject(&config); err != nil {
return models.BrowserNotificationConfiguration{Enabled: false}
}
return config
}
// SetBrowserPushConfig will set the browser push configuration.
func SetBrowserPushConfig(config models.BrowserNotificationConfiguration) error {
configEntry := ConfigEntry{Key: browserPushConfigurationKey, Value: config}
return _datastore.Save(configEntry)
}
// SetBrowserPushPublicKey will set the public key for browser pushes.
func SetBrowserPushPublicKey(key string) error {
return _datastore.SetString(browserPushPublicKeyKey, key)
}
// GetBrowserPushPublicKey will return the public key for browser pushes.
func GetBrowserPushPublicKey() (string, error) {
return _datastore.GetString(browserPushPublicKeyKey)
}
// SetBrowserPushPrivateKey will set the private key for browser pushes.
func SetBrowserPushPrivateKey(key string) error {
return _datastore.SetString(browserPushPrivateKeyKey, key)
}
// GetBrowserPushPrivateKey will return the private key for browser pushes.
func GetBrowserPushPrivateKey() (string, error) {
return _datastore.GetString(browserPushPrivateKeyKey)
}
// SetHasPerformedInitialNotificationsConfig sets when performed initial setup.
func SetHasPerformedInitialNotificationsConfig(hasConfigured bool) error {
return _datastore.SetBool(hasConfiguredInitialNotificationsKey, true)
}
// GetHasPerformedInitialNotificationsConfig gets when performed initial setup.
func GetHasPerformedInitialNotificationsConfig() bool {
configured, _ := _datastore.GetBool(hasConfiguredInitialNotificationsKey)
return configured
}
// GetHideViewerCount will return if the viewer count shold be hidden.
func GetHideViewerCount() bool {
hide, _ := _datastore.GetBool(hideViewerCountKey)
return hide
}
// SetHideViewerCount will set if the viewer count should be hidden.
func SetHideViewerCount(hide bool) error {
return _datastore.SetBool(hideViewerCountKey, hide)
}
// GetCustomOfflineMessage will return the custom offline message.
func GetCustomOfflineMessage() string {
message, _ := _datastore.GetString(customOfflineMessageKey)
return message
}
// SetCustomOfflineMessage will set the custom offline message.
func SetCustomOfflineMessage(message string) error {
return _datastore.SetString(customOfflineMessageKey, message)
}
// SetCustomColorVariableValues sets CSS variable names and values.
func SetCustomColorVariableValues(variables map[string]string) error {
return _datastore.SetStringMap(customColorVariableValuesKey, variables)
}
// GetCustomColorVariableValues gets CSS variable names and values.
func GetCustomColorVariableValues() map[string]string {
values, _ := _datastore.GetStringMap(customColorVariableValuesKey)
return values
}
// GetStreamKeys will return valid stream keys.
func GetStreamKeys() []models.StreamKey {
configEntry, err := _datastore.Get(streamKeysKey)
if err != nil {
return []models.StreamKey{}
}
var streamKeys []models.StreamKey
if err := configEntry.getObject(&streamKeys); err != nil {
return []models.StreamKey{}
}
return streamKeys
}
// SetStreamKeys will set valid stream keys.
func SetStreamKeys(actions []models.StreamKey) error {
configEntry := ConfigEntry{Key: streamKeysKey, Value: actions}
return _datastore.Save(configEntry)
}
// SetDisableSearchIndexing will set if the web server should be indexable.
func SetDisableSearchIndexing(disableSearchIndexing bool) error {
return _datastore.SetBool(disableSearchIndexingKey, disableSearchIndexing)
}
// GetDisableSearchIndexing will return if the web server should be indexable.
func GetDisableSearchIndexing() bool {
disableSearchIndexing, err := _datastore.GetBool(disableSearchIndexingKey)
if err != nil {
return false
}
return disableSearchIndexing
}
// GetVideoServingEndpoint returns the custom video endpont.
func GetVideoServingEndpoint() string {
message, _ := _datastore.GetString(videoServingEndpointKey)
return message
}
// SetVideoServingEndpoint sets the custom video endpoint.
func SetVideoServingEndpoint(message string) error {
return _datastore.SetString(videoServingEndpointKey, message)
}

View File

@@ -1,23 +0,0 @@
package data
// GetPublicKey will return the public key.
func GetPublicKey() string {
value, _ := _datastore.GetString(publicKeyKey)
return value
}
// SetPublicKey will save the public key.
func SetPublicKey(key string) error {
return _datastore.SetString(publicKeyKey, key)
}
// GetPrivateKey will return the private key.
func GetPrivateKey() string {
value, _ := _datastore.GetString(privateKeyKey)
return value
}
// SetPrivateKey will save the private key.
func SetPrivateKey(key string) error {
return _datastore.SetString(privateKeyKey, key)
}

View File

@@ -11,6 +11,8 @@ import (
"path/filepath"
"time"
"github.com/owncast/owncast/persistence/tables"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/utils"
log "github.com/sirupsen/logrus"
@@ -73,9 +75,9 @@ func SetupPersistence(file string) error {
_, _ = db.Exec("pragma temp_store = memory")
_, _ = db.Exec("pragma wal_checkpoint(full)")
createWebhooksTable()
createUsersTable(db)
createAccessTokenTable(db)
tables.CreateWebhooksTable(db)
tables.CreateUsersTable(db)
tables.CreateAccessTokenTable(db)
if _, err := db.Exec(`CREATE TABLE IF NOT EXISTS config (
"key" string NOT NULL PRIMARY KEY,
@@ -108,7 +110,7 @@ func SetupPersistence(file string) error {
// is database schema outdated?
if version < schemaVersion {
if err := migrateDatabaseSchema(db, version, schemaVersion); err != nil {
if err := tables.MigrateDatabaseSchema(db, version, schemaVersion); err != nil {
return err
}
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"os"
"testing"
"github.com/owncast/owncast/models"
)
func TestMain(m *testing.M) {
@@ -89,7 +91,7 @@ func TestCustomType(t *testing.T) {
}
// Save config entry to the database
if err := _datastore.Save(ConfigEntry{&testStruct, testKey}); err != nil {
if err := _datastore.Save(models.ConfigEntry{&testStruct, testKey}); err != nil {
t.Error(err)
}
@@ -101,7 +103,7 @@ func TestCustomType(t *testing.T) {
// Get a typed struct out of it
var testResult TestStruct
if err := entryResult.getObject(&testResult); err != nil {
if err := entryResult.GetObject(&testResult); err != nil {
t.Error(err)
}
@@ -121,7 +123,7 @@ func TestStringMap(t *testing.T) {
}
// Save config entry to the database
if err := _datastore.Save(ConfigEntry{&testMap, testKey}); err != nil {
if err := _datastore.Save(models.ConfigEntry{Value: &testMap, Key: testKey}); err != nil {
t.Error(err)
}
@@ -131,7 +133,7 @@ func TestStringMap(t *testing.T) {
t.Error(err)
}
testResult, err := entryResult.getStringMap()
testResult, err := entryResult.GetStringMap()
if err != nil {
t.Error(err)
}

View File

@@ -5,12 +5,11 @@ import (
"database/sql"
"encoding/gob"
"sync"
"time"
// sqlite requires a blank import.
_ "github.com/mattn/go-sqlite3"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/db"
"github.com/owncast/owncast/models"
log "github.com/sirupsen/logrus"
)
@@ -21,7 +20,8 @@ type Datastore struct {
DbLock *sync.Mutex
}
func (ds *Datastore) warmCache() {
// WarmCache pre-caches all configuration values in memory.
func (ds *Datastore) WarmCache() {
log.Traceln("Warming config value cache")
res, err := ds.DB.Query("SELECT key, value FROM datastore")
@@ -46,10 +46,10 @@ func (ds *Datastore) GetQueries() *db.Queries {
}
// Get will query the database for the key and return the entry.
func (ds *Datastore) Get(key string) (ConfigEntry, error) {
func (ds *Datastore) Get(key string) (models.ConfigEntry, error) {
cachedValue, err := ds.GetCachedValue(key)
if err == nil {
return ConfigEntry{
return models.ConfigEntry{
Key: key,
Value: cachedValue,
}, nil
@@ -60,10 +60,10 @@ func (ds *Datastore) Get(key string) (ConfigEntry, error) {
row := ds.DB.QueryRow("SELECT key, value FROM datastore WHERE key = ? LIMIT 1", key)
if err := row.Scan(&resultKey, &resultValue); err != nil {
return ConfigEntry{}, err
return models.ConfigEntry{}, err
}
result := ConfigEntry{
result := models.ConfigEntry{
Key: resultKey,
Value: resultValue,
}
@@ -73,7 +73,7 @@ func (ds *Datastore) Get(key string) (ConfigEntry, error) {
}
// Save will save the ConfigEntry to the database.
func (ds *Datastore) Save(e ConfigEntry) error {
func (ds *Datastore) Save(e models.ConfigEntry) error {
ds.DbLock.Lock()
defer ds.DbLock.Unlock()
@@ -93,7 +93,6 @@ func (ds *Datastore) Save(e ConfigEntry) error {
return err
}
_, err = stmt.Exec(e.Key, dataGob.Bytes())
if err != nil {
return err
}
@@ -121,26 +120,6 @@ func (ds *Datastore) Setup() {
);`
ds.MustExec(createTableSQL)
if !HasPopulatedDefaults() {
PopulateDefaults()
}
if !hasPopulatedFederationDefaults() {
if err := SetFederationGoLiveMessage(config.GetDefaults().FederationGoLiveMessage); err != nil {
log.Errorln(err)
}
if err := _datastore.SetBool("HAS_POPULATED_FEDERATION_DEFAULTS", true); err != nil {
log.Errorln(err)
}
}
// Set the server initialization date if needed.
if hasSetInitDate, _ := GetServerInitTime(); hasSetInitDate == nil || !hasSetInitDate.Valid {
_ = SetServerInitTime(time.Now())
}
migrateDatastoreValues(_datastore)
}
// Reset will delete all config entries in the datastore and start over.
@@ -156,8 +135,6 @@ func (ds *Datastore) Reset() {
if _, err = stmt.Exec(); err != nil {
log.Fatalln(err)
}
PopulateDefaults()
}
// GetDatastore returns the shared instance of the owncast datastore.

View File

@@ -1,54 +0,0 @@
package data
import (
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/models"
)
// HasPopulatedDefaults will determine if the defaults have been inserted into the database.
func HasPopulatedDefaults() bool {
hasPopulated, err := _datastore.GetBool("HAS_POPULATED_DEFAULTS")
if err != nil {
return false
}
return hasPopulated
}
func hasPopulatedFederationDefaults() bool {
hasPopulated, err := _datastore.GetBool("HAS_POPULATED_FEDERATION_DEFAULTS")
if err != nil {
return false
}
return hasPopulated
}
// PopulateDefaults will set default values in the database.
func PopulateDefaults() {
_datastore.warmCache()
defaults := config.GetDefaults()
if HasPopulatedDefaults() {
return
}
_ = SetAdminPassword(defaults.AdminPassword)
_ = SetStreamKeys(defaults.StreamKeys)
_ = SetHTTPPortNumber(float64(defaults.WebServerPort))
_ = SetRTMPPortNumber(float64(defaults.RTMPServerPort))
_ = SetLogoPath(defaults.Logo)
_ = SetServerMetadataTags([]string{"owncast", "streaming"})
_ = SetServerSummary(defaults.Summary)
_ = SetServerWelcomeMessage("")
_ = SetServerName(defaults.Name)
_ = SetExtraPageBodyContent(defaults.PageBodyContent)
_ = SetFederationGoLiveMessage(defaults.FederationGoLiveMessage)
_ = SetSocialHandles([]models.SocialHandle{
{
Platform: "github",
URL: "https://github.com/owncast/owncast",
},
})
_ = _datastore.SetBool("HAS_POPULATED_DEFAULTS", true)
}

View File

@@ -1,40 +1,5 @@
package data
import (
"context"
"database/sql"
"github.com/owncast/owncast/db"
"github.com/owncast/owncast/models"
log "github.com/sirupsen/logrus"
)
// CreateMessagesTable will create the chat messages table if needed.
func CreateMessagesTable(db *sql.DB) {
createTableSQL := `CREATE TABLE IF NOT EXISTS messages (
"id" string NOT NULL,
"user_id" TEXT,
"body" TEXT,
"eventType" TEXT,
"hidden_at" DATETIME,
"timestamp" DATETIME,
"title" TEXT,
"subtitle" TEXT,
"image" TEXT,
"link" TEXT,
PRIMARY KEY (id)
);`
MustExec(createTableSQL, db)
// Create indexes
MustExec(`CREATE INDEX IF NOT EXISTS user_id_hidden_at_timestamp ON messages (id, user_id, hidden_at, timestamp);`, db)
MustExec(`CREATE INDEX IF NOT EXISTS idx_id ON messages (id);`, db)
MustExec(`CREATE INDEX IF NOT EXISTS idx_user_id ON messages (user_id);`, db)
MustExec(`CREATE INDEX IF NOT EXISTS idx_hidden_at ON messages (hidden_at);`, db)
MustExec(`CREATE INDEX IF NOT EXISTS idx_timestamp ON messages (timestamp);`, db)
MustExec(`CREATE INDEX IF NOT EXISTS idx_messages_hidden_at_timestamp on messages(hidden_at, timestamp);`, db)
}
// GetMessagesCount will return the number of messages in the database.
func GetMessagesCount() int64 {
query := `SELECT COUNT(*) FROM messages`
@@ -51,58 +16,3 @@ func GetMessagesCount() int64 {
}
return count
}
// CreateBanIPTable will create the IP ban table if needed.
func CreateBanIPTable(db *sql.DB) {
createTableSQL := ` CREATE TABLE IF NOT EXISTS ip_bans (
"ip_address" TEXT NOT NULL PRIMARY KEY,
"notes" TEXT,
"created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);`
stmt, err := db.Prepare(createTableSQL)
if err != nil {
log.Fatal("error creating ip ban table", err)
}
defer stmt.Close()
if _, err := stmt.Exec(); err != nil {
log.Fatal("error creating ip ban table", err)
}
}
// BanIPAddress will persist a new IP address ban to the datastore.
func BanIPAddress(address, note string) error {
return _datastore.GetQueries().BanIPAddress(context.Background(), db.BanIPAddressParams{
IpAddress: address,
Notes: sql.NullString{String: note, Valid: true},
})
}
// IsIPAddressBanned will return if an IP address has been previously blocked.
func IsIPAddressBanned(address string) (bool, error) {
blocked, error := _datastore.GetQueries().IsIPAddressBlocked(context.Background(), address)
return blocked > 0, error
}
// GetIPAddressBans will return all the banned IP addresses.
func GetIPAddressBans() ([]models.IPAddress, error) {
result, err := _datastore.GetQueries().GetIPAddressBans(context.Background())
if err != nil {
return nil, err
}
response := []models.IPAddress{}
for _, ip := range result {
response = append(response, models.IPAddress{
IPAddress: ip.IpAddress,
Notes: ip.Notes.String,
CreatedAt: ip.CreatedAt.Time,
})
}
return response, err
}
// RemoveIPAddressBan will remove a previously banned IP address.
func RemoveIPAddressBan(address string) error {
return _datastore.GetQueries().RemoveIPAddressBan(context.Background(), address)
}

Some files were not shown because too many files have changed in this diff Show More