397ec95d9b
fix: remove special character requirement from stream keys ( #4754 )
...
Some broadcasting software (e.g., Prism Live Studio) strips special
characters from stream keys, making Owncast-generated keys incompatible.
Changes:
- Create separate STREAM_KEY_COMPLEXITY_RULES without special char requirement
- Update generateRndKey() to only use alphanumeric characters
- Keep PASSWORD_COMPLEXITY_RULES unchanged for admin password security
- Update tooltip text to reflect new requirements
- Add comprehensive tests for stream key generation
Fixes #4690
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-28 11:51:57 -08:00
1cf923a5af
Update localization files + references ( #4556 )
...
* Initial plan
* Add localization support to NameChangeModal component
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Add NameChangeModal translations to English language file
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* fix(i18n): fix localization keys
* chore(test): add i18n test
* chore(i18n): update translation script
* chore(i18n): reorgnize translation keys and update components
* chore: fix linting warnings
* chore(i18n): update all the language files
* feat(i18n): add last live ago i18n key
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
2025-09-15 19:27:56 -07:00
8eb8bdc18b
Stop using empty/whitespace as chat display names ( #4553 )
...
* fix(chat): fixes #4522 to stop people from setting invalid display names
* fix(chat): also guard against non-ascii whitespace like non breaking space
* Update web/utils/displayNameValidation.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix: handle additional whitespace
* Update web/utils/displayNameValidation.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Javascript formatting autofixes
* fix: deduplicate running of validation
* fix: fix error with useMemo
* Update web/utils/displayNameValidation.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update web/utils/displayNameValidation.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Javascript formatting autofixes
* fix: fix component rendering issue
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Owncast <owncast@owncast.online >
2025-09-15 13:37:39 -07:00
Owncast
f73792d2d5
Javascript formatting autofixes
2025-07-14 02:02:06 +00:00
Gabe Kangas
828bddb4f4
fix(tests): fix i18n tests
2025-07-13 18:58:55 -07:00
59b905649e
Add pluralization support to Translation component ( #4441 )
...
* Initial plan
* Add pluralization support to Translation component with comprehensive tests
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Javascript formatting autofixes
* Update web/tests/translation.test.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update web/components/ui/Translation/Translation.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix: linter warning
* Simplify pluralization logic: use original key for plural, only _one for singular
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* feat(i18n): fix support for nested namespace string and key extraction
* chore: update extracted translations
* fix(i18n): fix linter warnings in extraction script
* Update web/scripts/i18n-extract.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* feat(i18n): sort translation keys
* fix(i18n): fix linter warnings
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Owncast <owncast@owncast.online >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-13 17:34:06 -07:00
29b5100114
Create custom Translation component for better i18n handling ( #4431 )
...
* Initial plan
* Implement Translation component with Storybook stories
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Add Jest test for Translation component and demonstrate ?lang=de functionality
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Javascript formatting autofixes
* Create centralized type-safe localization system
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Add @testing-library/react to Translation component tests
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Fix code formatting errors with prettier and eslint
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Revert "Fix code formatting errors with prettier and eslint"
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* fix(js): eslinter errors
* fix(js): unused code warnings
* fix(js): fix additional warnings
* Update Emoji admin page to use new Translation component
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Organize localization keys by logical sections (Frontend, Admin, Common, Testing)
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Organize localization keys by TypeScript namespaces
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Javascript formatting autofixes
* feat(js): add support for default translated text
* chore: add default lang translations on commit
* fix(js): unused code warnings
* Update OfflineBanner component to use new Translation component
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* fix(js): fix localization extraction job
* chore(js): remove ts-node cli
* fix(css): fix css warning
* feat(js): add some additional translation strings via component
* chore: update extracted translations
* test: add tests for Translation component defaultText and fallback behavior
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* chore: update extracted translations
* Javascript formatting autofixes
* chore: call out new Translation component
* fix: linter warning
* chore: updated instructions
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Owncast <owncast@owncast.online >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
2025-07-13 02:21:46 -07:00
Gabe Kangas
2b57741397
fix: treat matrix links as regular web urls. Closes #3329
2024-01-21 20:25:05 -08:00
Gabe Kangas and GitHub
e50b23d081
Cleanup unused Javascript ( #3027 )
...
* chore(js): be stricter about dead code warnings
* chore(js): remove dead code and unused exports
* rebase
* chore: remove unused files
* chore(deps): remove unused prop-types dep
* chore(js): remove unused function
* chore(deps): remove + check unused deps
* chore(js): remove unused exports. Closes #3036
2023-05-20 21:15:25 -07:00
gabek and GitHub Action
69225bc91b
Prettified Code!
2023-04-17 22:34:29 +00:00
Dev Gupta and GitHub
1a63880d01
adding tests for generateRndKey ( #2932 )
...
changing jest.config.js
transform option from -
transform: { '^.+\\.ts?$': 'ts-jest' },
to
transform: { '^.+\\.(js|jsx|ts|tsx)$': ['babel-jest', { presets: ['next/babel'] }], },
2023-04-17 15:33:30 -07:00
Gabe Kangas
5f2252f2a4
chore(tests): add js validation tests
...
These are the first javascript unit tests. Added them to the CI worflow.
Closes #2930
2023-04-16 14:36:23 -07:00