From eec9ac72e7fff54fb31f5a06fc0703211a648439 Mon Sep 17 00:00:00 2001 From: gabek Date: Fri, 18 Nov 2022 05:36:16 +0000 Subject: [PATCH] Bundle embedded web app --- static/web/404.html | 4 ++-- static/web/404/index.html | 4 ++-- .../web/_next/static/chunks/pages/index-15a83a454780b8f5.js | 1 + .../web/_next/static/chunks/pages/index-ab7ac0d7f54b0da0.js | 1 - .../_buildManifest.js | 2 +- .../_ssgManifest.js | 0 static/web/admin/access-tokens/index.html | 2 +- static/web/admin/actions/index.html | 2 +- static/web/admin/chat/messages/index.html | 2 +- static/web/admin/chat/users/index.html | 2 +- static/web/admin/config-chat/index.html | 2 +- static/web/admin/config-federation/index.html | 2 +- static/web/admin/config-notify/index.html | 2 +- static/web/admin/config-public-details/index.html | 2 +- static/web/admin/config-server-details/index.html | 2 +- static/web/admin/config-social-items/index.html | 2 +- static/web/admin/config-storage/index.html | 2 +- static/web/admin/config-video/index.html | 2 +- static/web/admin/config/appearance/index.html | 2 +- static/web/admin/federation/actions/index.html | 2 +- static/web/admin/federation/followers/index.html | 2 +- static/web/admin/hardware-info/index.html | 2 +- static/web/admin/help/index.html | 2 +- static/web/admin/index.html | 2 +- static/web/admin/logs/index.html | 2 +- static/web/admin/stream-health/index.html | 2 +- static/web/admin/upgrade/index.html | 2 +- static/web/admin/viewer-info/index.html | 2 +- static/web/admin/webhooks/index.html | 2 +- static/web/embed/chat/readonly/index.html | 2 +- static/web/embed/chat/readwrite/index.html | 2 +- static/web/embed/video/index.html | 2 +- static/web/index.html | 4 ++-- 33 files changed, 34 insertions(+), 34 deletions(-) create mode 100644 static/web/_next/static/chunks/pages/index-15a83a454780b8f5.js delete mode 100644 static/web/_next/static/chunks/pages/index-ab7ac0d7f54b0da0.js rename static/web/_next/static/{ph4_mrbl0ZrGoQjlOANsh => kM1zyp7dZ5GrtcZElu_e4}/_buildManifest.js (97%) rename static/web/_next/static/{ph4_mrbl0ZrGoQjlOANsh => kM1zyp7dZ5GrtcZElu_e4}/_ssgManifest.js (100%) diff --git a/static/web/404.html b/static/web/404.html index 7ee19c27b..bec4a9e8a 100644 --- a/static/web/404.html +++ b/static/web/404.html @@ -1,4 +1,4 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file + }

404

This page could not be found.

\ No newline at end of file diff --git a/static/web/404/index.html b/static/web/404/index.html index 7ee19c27b..bec4a9e8a 100644 --- a/static/web/404/index.html +++ b/static/web/404/index.html @@ -1,4 +1,4 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file + }

404

This page could not be found.

\ No newline at end of file diff --git a/static/web/_next/static/chunks/pages/index-15a83a454780b8f5.js b/static/web/_next/static/chunks/pages/index-15a83a454780b8f5.js new file mode 100644 index 000000000..f6bbceca9 --- /dev/null +++ b/static/web/_next/static/chunks/pages/index-15a83a454780b8f5.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5405],{48312:function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return __webpack_require__(6511)}])},37527:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{h:function(){return Header},Z:function(){return Header_Header}});var jsx_runtime=__webpack_require__(85893),layout=__webpack_require__(97183),tooltip=__webpack_require__(94199),tag=__webpack_require__(20550),classnames=__webpack_require__(94184),classnames_default=__webpack_require__.n(classnames),es_menu=__webpack_require__(66516),dropdown=__webpack_require__(38504),es_button=__webpack_require__(71577),space=__webpack_require__(26713),EditOutlined=__webpack_require__(86548),LockOutlined=__webpack_require__(94149),MessageOutlined=__webpack_require__(38545),UserOutlined=__webpack_require__(87547),CaretDownOutlined=__webpack_require__(39398),es=__webpack_require__(4480),react=__webpack_require__(67294),react_hotkeys_hook_esm=__webpack_require__(49218),dynamic=__webpack_require__(5152),dynamic_default=__webpack_require__.n(dynamic),ClientConfigStore=__webpack_require__(77466),UserDropdown_module=__webpack_require__(79252),UserDropdown_module_default=__webpack_require__.n(UserDropdown_module);let Modal=dynamic_default()(()=>__webpack_require__.e(4761).then(__webpack_require__.bind(__webpack_require__,14761)).then(mod=>mod.Modal),{loadableGenerated:{webpack:()=>[14761]}}),NameChangeModal=dynamic_default()(()=>Promise.all([__webpack_require__.e(8939),__webpack_require__.e(9096)]).then(__webpack_require__.bind(__webpack_require__,59096)).then(mod=>mod.NameChangeModal),{loadableGenerated:{webpack:()=>[59096]}}),AuthModal=dynamic_default()(()=>Promise.all([__webpack_require__.e(4381),__webpack_require__.e(5535)]).then(__webpack_require__.bind(__webpack_require__,65535)).then(mod=>mod.AuthModal),{loadableGenerated:{webpack:()=>[65535]}}),UserDropdown=param=>{let{username:defaultUsername}=param,[showNameChangeModal,setShowNameChangeModal]=(0,react.useState)(!1),[showAuthModal,setShowAuthModal]=(0,react.useState)(!1),[chatToggleVisible,setChatToggleVisible]=(0,es.FV)(ClientConfigStore.ZA),appState=(0,es.sJ)(ClientConfigStore.Q),toggleChatVisibility=()=>{setChatToggleVisible(!chatToggleVisible)},handleChangeName=()=>{setShowNameChangeModal(!0)};(0,react_hotkeys_hook_esm.y1)("c",toggleChatVisibility,{enableOnContentEditable:!1},[chatToggleVisible]);let currentUser=(0,es.sJ)(ClientConfigStore.db);if(!currentUser)return null;let{displayName}=currentUser,menu=(0,jsx_runtime.jsxs)(es_menu.Z,{children:[(0,jsx_runtime.jsx)(es_menu.Z.Item,{icon:(0,jsx_runtime.jsx)(EditOutlined.Z,{}),onClick:()=>handleChangeName(),children:"Change name"},"0"),(0,jsx_runtime.jsx)(es_menu.Z.Item,{icon:(0,jsx_runtime.jsx)(LockOutlined.Z,{}),onClick:()=>setShowAuthModal(!0),children:"Authenticate"},"1"),appState.chatAvailable&&(0,jsx_runtime.jsx)(es_menu.Z.Item,{icon:(0,jsx_runtime.jsx)(MessageOutlined.Z,{}),onClick:()=>toggleChatVisibility(),children:"Toggle chat"},"3")]});return(0,jsx_runtime.jsxs)("div",{id:"user-menu",className:"".concat(UserDropdown_module_default().root),children:[(0,jsx_runtime.jsx)(dropdown.Z,{overlay:menu,trigger:["click"],children:(0,jsx_runtime.jsx)(es_button.Z,{type:"primary",icon:(0,jsx_runtime.jsx)(UserOutlined.Z,{style:{marginRight:".5rem"}}),children:(0,jsx_runtime.jsxs)(space.Z,{children:[defaultUsername||displayName,(0,jsx_runtime.jsx)(CaretDownOutlined.Z,{})]})})}),(0,jsx_runtime.jsx)(Modal,{title:"Change Chat Display Name",open:showNameChangeModal,handleCancel:()=>setShowNameChangeModal(!1),children:(0,jsx_runtime.jsx)(NameChangeModal,{})}),(0,jsx_runtime.jsx)(Modal,{title:"Authenticate",open:showAuthModal,handleCancel:()=>setShowAuthModal(!1),children:(0,jsx_runtime.jsx)(AuthModal,{})})]})};var OwncastLogo=__webpack_require__(50738),Header_module=__webpack_require__(31764),Header_module_default=__webpack_require__.n(Header_module);let{Header:AntHeader}=layout.Z,Header=param=>{let{name="Your stream title",chatAvailable,chatDisabled}=param;return(0,jsx_runtime.jsxs)(AntHeader,{className:classnames_default()(["".concat(Header_module_default().header)],"global-header"),children:[(0,jsx_runtime.jsxs)("div",{className:"".concat(Header_module_default().logo),children:[(0,jsx_runtime.jsx)(OwncastLogo.C,{variant:"contrast"}),(0,jsx_runtime.jsx)("span",{className:"global-header-text",children:name})]}),chatAvailable&&!chatDisabled&&(0,jsx_runtime.jsx)(UserDropdown,{}),!chatAvailable&&!chatDisabled&&(0,jsx_runtime.jsx)(tooltip.Z,{title:"Chat is available when the stream is live.",placement:"left",children:(0,jsx_runtime.jsx)(tag.Z,{style:{cursor:"pointer"},children:"Chat offline"})})]})};var Header_Header=Header},14761:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Modal:function(){return Modal}});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85893),antd__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(85402),antd__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(26303),antd__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(11382),react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(67294),_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(77011),_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4__);let Modal=param=>{let{title,url,open,handleOk,handleCancel,afterClose,height,width,children}=param,[loading,setLoading]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!!url),iframe=url&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("iframe",{title:title,src:url,width:"100%",height:"100%",sandbox:"allow-same-origin allow-scripts allow-popups allow-forms",frameBorder:"0",allowFullScreen:!0,onLoad:()=>setLoading(!1)});return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_2__.Z,{title:title,open:open,onOk:handleOk,onCancel:handleCancel,afterClose:afterClose,bodyStyle:{padding:"0px",minHeight:height,height:null!=height?height:"100%"},width:width,zIndex:9999,footer:null,centered:!0,destroyOnClose:!0,children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,{children:[loading&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_3__.Z,{active:loading,style:{padding:"10px"},paragraph:{rows:10}}),iframe&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{style:{display:loading?"none":"inline"},children:iframe}),children&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4___default().content,children:children}),loading&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_5__.Z,{className:_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4___default().spinner,spinning:loading,size:"large"})]})})};__webpack_exports__.default=Modal,Modal.defaultProps={url:void 0,children:void 0,handleOk:void 0,handleCancel:void 0,afterClose:void 0}},51513:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{R:function(){return OfflineBanner}});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85893),antd__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(27049),_ant_design_icons__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(24019),date_fns_formatDistanceToNow__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(45938),_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(88335),_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1__);let OfflineBanner=param=>{let text,{streamName,customText,lastLive,notificationsEnabled,fediverseAccount,onNotifyClick,onFollowClick}=param;return text=customText||(!customText&¬ificationsEnabled&&fediverseAccount?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span",{children:["This stream is offline. You can"," ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{role:"link",tabIndex:0,className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().actionLink,onClick:onNotifyClick,children:"be notified"})," ","the next time ",streamName," goes live or"," ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{role:"link",tabIndex:0,className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().actionLink,onClick:onFollowClick,children:"follow"})," ",fediverseAccount," on the Fediverse."]}):!customText&¬ificationsEnabled?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span",{children:["This stream is offline."," ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{role:"link",tabIndex:0,className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().actionLink,onClick:onNotifyClick,children:"Be notified"})," ","the next time ",streamName," goes live."]}):!customText&&fediverseAccount?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span",{children:["This stream is offline."," ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{role:"link",tabIndex:0,className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().actionLink,onClick:onFollowClick,children:"Follow"})," ",fediverseAccount," on the Fediverse to see the next time ",streamName," goes live."]}):"This stream is offline. Check back soon!"),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().outerContainer,children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().innerContainer,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().header,children:streamName}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_2__.Z,{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().separator}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bodyText,children:text}),lastLive&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().lastLiveDate,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_3__.Z,{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().clockIcon}),"Last live ".concat((0,date_fns_formatDistanceToNow__WEBPACK_IMPORTED_MODULE_4__.Z)(new Date(lastLive))," ago.")]})]})})}},69357:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{X:function(){return Statusbar}});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85893),date_fns_formatDistanceToNow__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(45938),date_fns_intervalToDuration__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(68730),react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(67294),_ant_design_icons__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(31326),_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(37970),_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3__);let Statusbar=param=>{let rightSideMessage,{online,lastConnectTime,lastDisconnectTime,viewerCount}=param,[,setNow]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Date);(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{let interval=setInterval(()=>setNow(new Date),1e3);return()=>{clearInterval(interval)}},[]);let onlineMessage="";if(online&&lastConnectTime){let duration=function(lastConnectTime){let diff=(0,date_fns_intervalToDuration__WEBPACK_IMPORTED_MODULE_2__.Z)({start:lastConnectTime,end:new Date});return diff.days>1?"".concat(diff.days," days ").concat(diff.hours," hours"):diff.hours>=1?"".concat(diff.hours," hours ").concat(diff.minutes," minutes"):"".concat(diff.minutes," minutes ").concat(diff.seconds," seconds")}(new Date(lastConnectTime));onlineMessage=online?"Live for ".concat(duration):"Offline",rightSideMessage=viewerCount>0&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3___default().right,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_4__.Z,{})}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{children:" ".concat(viewerCount)})]})}else!online&&(onlineMessage="Offline",lastDisconnectTime&&(rightSideMessage="Last live ".concat((0,date_fns_formatDistanceToNow__WEBPACK_IMPORTED_MODULE_5__.Z)(new Date(lastDisconnectTime))," ago.")));return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3___default().statusbar,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{children:onlineMessage}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{children:rightSideMessage})]})};Statusbar.defaultProps={lastConnectTime:null,lastDisconnectTime:null}},6511:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:function(){return Home}});var jsx_runtime=__webpack_require__(85893),layout=__webpack_require__(97183),es=__webpack_require__(4480),head=__webpack_require__(9008),head_default=__webpack_require__.n(head),react=__webpack_require__(67294),ClientConfigStore=__webpack_require__(77466),tabs=__webpack_require__(84381),spin=__webpack_require__(11382),classnames=__webpack_require__(94184),classnames_default=__webpack_require__.n(classnames),dynamic=__webpack_require__(5152),dynamic_default=__webpack_require__.n(dynamic),localStorage=__webpack_require__(72581),Footer_module=__webpack_require__(67917),Footer_module_default=__webpack_require__.n(Footer_module);let Footer=param=>{let{version}=param;return(0,jsx_runtime.jsxs)("div",{className:Footer_module_default().footer,children:[(0,jsx_runtime.jsxs)("span",{children:["Powered by ",(0,jsx_runtime.jsx)("a",{href:"https://owncast.online",children:version})]}),(0,jsx_runtime.jsxs)("span",{className:Footer_module_default().links,children:[(0,jsx_runtime.jsx)("a",{href:"https://owncast.online/docs",target:"_blank",rel:"noreferrer",children:"Documentation"}),(0,jsx_runtime.jsx)("a",{href:"https://owncast.online/help",target:"_blank",rel:"noreferrer",children:"Contribute"}),(0,jsx_runtime.jsx)("a",{href:"https://github.com/owncast/owncast",target:"_blank",rel:"noreferrer",children:"Source"})]})]})};var CustomPageContent_module=__webpack_require__(10808),CustomPageContent_module_default=__webpack_require__.n(CustomPageContent_module);let CustomPageContent=param=>{let{content}=param,isMobile=(0,es.sJ)(ClientConfigStore.hz),clientConfig=(0,es.sJ)(ClientConfigStore.g1),{version}=clientConfig;return(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)("div",{className:CustomPageContent_module_default().pageContentContainer,children:(0,jsx_runtime.jsx)("div",{className:CustomPageContent_module_default().customPageContent,dangerouslySetInnerHTML:{__html:content}})}),isMobile&&(0,jsx_runtime.jsx)(Footer,{version:version})]})};var Content_module=__webpack_require__(17725),Content_module_default=__webpack_require__.n(Content_module),Sider=__webpack_require__(87412),Sidebar_module=__webpack_require__(12341),Sidebar_module_default=__webpack_require__.n(Sidebar_module);let ChatContainer=dynamic_default()(()=>Promise.all([__webpack_require__.e(1272),__webpack_require__.e(8700),__webpack_require__.e(2852),__webpack_require__.e(4977),__webpack_require__.e(1496)]).then(__webpack_require__.bind(__webpack_require__,94977)).then(mod=>mod.ChatContainer),{loadableGenerated:{webpack:()=>[94977]}}),Sidebar=()=>{let currentUser=(0,es.sJ)(ClientConfigStore.db),messages=(0,es.sJ)(ClientConfigStore.pH);if(!currentUser)return null;let{id,isModerator,displayName}=currentUser;return(0,jsx_runtime.jsx)(Sider.ZP,{className:Sidebar_module_default().root,collapsedWidth:0,width:320,children:(0,jsx_runtime.jsx)(ChatContainer,{messages:messages,usernameToHighlight:displayName,chatUserId:id,isModerator:isModerator})})};var ActionButtonRow_module=__webpack_require__(12270),ActionButtonRow_module_default=__webpack_require__.n(ActionButtonRow_module);let ActionButtonRow=param=>{let{children}=param;return(0,jsx_runtime.jsx)("div",{className:"".concat(ActionButtonRow_module_default().row),children:children})};var es_button=__webpack_require__(71577),ActionButton_module=__webpack_require__(13959),ActionButton_module_default=__webpack_require__.n(ActionButton_module);let ActionButton=param=>{let{action,primary=!0,externalActionSelected}=param,{title,description,icon,color}=action;return(0,jsx_runtime.jsxs)(es_button.Z,{type:primary?"primary":"default",className:"".concat(ActionButton_module_default().button),onClick:()=>externalActionSelected(action),style:{backgroundColor:color},children:[icon&&(0,jsx_runtime.jsx)("img",{src:icon,className:"".concat(ActionButton_module_default().icon),alt:description}),title]})};var OfflineBanner=__webpack_require__(51513),HeartFilled=__webpack_require__(34447);let FollowButton=param=>{let{onClick,props}=param;return(0,jsx_runtime.jsx)(es_button.Z,{...props,type:"primary",className:ActionButton_module_default().button,icon:(0,jsx_runtime.jsx)(HeartFilled.Z,{}),onClick:onClick,children:"Follow"})};var BellFilled=__webpack_require__(71578);let NotifyButton=param=>{let{onClick,text}=param;return(0,jsx_runtime.jsx)(es_button.Z,{type:"primary",className:"".concat(ActionButton_module_default().button),icon:(0,jsx_runtime.jsx)(BellFilled.Z,{}),onClick:onClick,children:text||"Notify"})};var dist=__webpack_require__(53731),es_image=__webpack_require__(79216),Logo_module=__webpack_require__(74933),Logo_module_default=__webpack_require__.n(Logo_module);let Logo=param=>{let{src}=param;return(0,jsx_runtime.jsx)("div",{className:Logo_module_default().root,children:(0,jsx_runtime.jsx)("div",{className:Logo_module_default().container,children:(0,jsx_runtime.jsx)(es_image.Z,{src:src,alt:"Logo",className:Logo_module_default().image,rootClassName:Logo_module_default().image})})})};var next_image=__webpack_require__(25675),image_default=__webpack_require__.n(next_image),SocialLinks_module=__webpack_require__(573),SocialLinks_module_default=__webpack_require__.n(SocialLinks_module);let SocialLinks=param=>{let{links}=param;return(0,jsx_runtime.jsx)("div",{className:SocialLinks_module_default().links,children:links.map(link=>(0,jsx_runtime.jsx)("a",{href:link.url,className:SocialLinks_module_default().link,target:"_blank",rel:"noreferrer me",children:(0,jsx_runtime.jsx)(image_default(),{src:link.icon||"/img/platformlogos/default.svg",alt:link.platform,title:link.platform,className:SocialLinks_module_default().link,width:"30",height:"30"})},link.platform))})};var ContentHeader_module=__webpack_require__(47900),ContentHeader_module_default=__webpack_require__.n(ContentHeader_module);let ContentHeader=param=>{let{name,title,summary,logo,tags,links}=param;return(0,jsx_runtime.jsx)("div",{className:ContentHeader_module_default().root,children:(0,jsx_runtime.jsxs)("div",{className:ContentHeader_module_default().logoTitleSection,children:[(0,jsx_runtime.jsx)("div",{className:ContentHeader_module_default().logo,children:(0,jsx_runtime.jsx)(Logo,{src:logo})}),(0,jsx_runtime.jsxs)("div",{className:ContentHeader_module_default().titleSection,children:[(0,jsx_runtime.jsx)("div",{className:classnames_default()(ContentHeader_module_default().title,ContentHeader_module_default().row,"header-title"),children:name}),(0,jsx_runtime.jsx)("div",{className:classnames_default()(ContentHeader_module_default().subtitle,ContentHeader_module_default().row,"header-subtitle"),children:(0,jsx_runtime.jsx)(dist.Z,{children:title||summary})}),(0,jsx_runtime.jsx)("div",{className:classnames_default()(ContentHeader_module_default().tagList,ContentHeader_module_default().row),children:tags.length>0&&tags.map(tag=>(0,jsx_runtime.jsxs)("span",{children:["#",tag,"\xa0"]},tag))}),(0,jsx_runtime.jsx)("div",{className:classnames_default()(ContentHeader_module_default().socialLinks,ContentHeader_module_default().row),children:(0,jsx_runtime.jsx)(SocialLinks,{links:links})})]})]})})};var Statusbar=__webpack_require__(69357),skeleton=__webpack_require__(26303),row=__webpack_require__(25968),col=__webpack_require__(6226),pagination=__webpack_require__(3698),avatar=__webpack_require__(24093),SingleFollower_module=__webpack_require__(69833),SingleFollower_module_default=__webpack_require__.n(SingleFollower_module);let SingleFollower=param=>{let{follower}=param;return(0,jsx_runtime.jsx)("div",{className:SingleFollower_module_default().follower,children:(0,jsx_runtime.jsx)("a",{href:follower.link,target:"_blank",rel:"noreferrer",children:(0,jsx_runtime.jsxs)(row.Z,{wrap:!1,children:[(0,jsx_runtime.jsx)(col.Z,{span:6,children:(0,jsx_runtime.jsx)(avatar.C,{src:follower.image,alt:"Avatar",className:SingleFollower_module_default().avatar,children:(0,jsx_runtime.jsx)("img",{src:"/logo",alt:"Logo",className:SingleFollower_module_default().placeholder})})}),(0,jsx_runtime.jsxs)(col.Z,{children:[(0,jsx_runtime.jsx)(row.Z,{children:follower.name}),(0,jsx_runtime.jsx)(row.Z,{className:SingleFollower_module_default().account,children:follower.username})]})]})})})};var FollowerCollection_module=__webpack_require__(21890),FollowerCollection_module_default=__webpack_require__.n(FollowerCollection_module);let FollowerCollection=param=>{let{name,onFollowButtonClick}=param,[followers,setFollowers]=(0,react.useState)([]),[total,setTotal]=(0,react.useState)(0),[page,setPage]=(0,react.useState)(1),[loading,setLoading]=(0,react.useState)(!0),getFollowers=async()=>{try{let response=await fetch("".concat("/api/followers","?page=").concat(page)),data=await response.json(),{results,total:totalResults}=data;setFollowers(results),setTotal(totalResults)}catch(error){console.error(error)}};(0,react.useEffect)(()=>{getFollowers()},[]),(0,react.useEffect)(()=>{getFollowers()},[page]),(0,react.useEffect)(()=>{setLoading(!1)},[followers]);let noFollowers=(0,jsx_runtime.jsxs)("div",{className:FollowerCollection_module_default().noFollowers,children:[(0,jsx_runtime.jsx)("h2",{children:"Be the first follower!"}),(0,jsx_runtime.jsxs)("p",{children:["Owncast"!==name?name:"This server"," is a part of the"," ",(0,jsx_runtime.jsx)("a",{href:"https://owncast.online/join-fediverse",children:"Fediverse"}),", an interconnected network of independent users and servers."]}),(0,jsx_runtime.jsxs)("p",{children:["By following ","Owncast"!==name?name:"this server"," you'll be able to get updates from the stream, share it with others, and and show your appreciation when it goes live, all from your own Fediverse account."]}),(0,jsx_runtime.jsx)(FollowButton,{onClick:onFollowButtonClick})]}),loadingSkeleton=(0,jsx_runtime.jsx)(skeleton.Z,{active:!0,paragraph:{rows:3}});return loading?loadingSkeleton:(null==followers?void 0:followers.length)?(0,jsx_runtime.jsxs)("div",{className:FollowerCollection_module_default().followers,children:[(0,jsx_runtime.jsx)(row.Z,{wrap:!0,gutter:[10,10],children:followers.map(follower=>(0,jsx_runtime.jsx)(col.Z,{children:(0,jsx_runtime.jsx)(SingleFollower,{follower:follower},follower.link)},follower.link))}),(0,jsx_runtime.jsx)(pagination.Z,{current:page,pageSize:24,total:Math.ceil(total/24)||1,onChange(p){setPage(p)},hideOnSinglePage:!0})]}):noFollowers};var Modal=__webpack_require__(14761),es_menu=__webpack_require__(66516),dropdown=__webpack_require__(38504),HeartOutlined=__webpack_require__(49647),BellOutlined=__webpack_require__(60198),EllipsisOutlined=__webpack_require__(89705),ActionButtonMenu_module=__webpack_require__(97038),ActionButtonMenu_module_default=__webpack_require__.n(ActionButtonMenu_module);let NOTIFY_KEY="notify",FOLLOW_KEY="follow",ActionButtonMenu=param=>{let{actions,externalActionSelected,notifyItemSelected,followItemSelected,showFollowItem,showNotifyItem}=param,onMenuClick=a=>{if(a.key===NOTIFY_KEY){notifyItemSelected();return}if(a.key===FOLLOW_KEY){followItemSelected();return}let action=actions.find(x=>x.url===a.key);externalActionSelected(action)},items=actions.map(action=>({key:action.url,label:(0,jsx_runtime.jsxs)("span",{className:ActionButtonMenu_module_default().item,children:[action.icon&&(0,jsx_runtime.jsx)("img",{className:ActionButtonMenu_module_default().icon,src:action.icon,alt:action.title})," ",action.title]})}));showFollowItem&&items.unshift({key:FOLLOW_KEY,label:(0,jsx_runtime.jsxs)("span",{className:ActionButtonMenu_module_default().item,children:[(0,jsx_runtime.jsx)(HeartOutlined.Z,{className:ActionButtonMenu_module_default().icon})," Follow this stream"]})}),showNotifyItem&&items.unshift({key:NOTIFY_KEY,label:(0,jsx_runtime.jsxs)("span",{className:ActionButtonMenu_module_default().item,children:[(0,jsx_runtime.jsx)(BellOutlined.Z,{className:ActionButtonMenu_module_default().icon}),"Notify when live"]})});let menu=(0,jsx_runtime.jsx)(es_menu.Z,{items:items,onClick:onMenuClick});return(0,jsx_runtime.jsx)(dropdown.Z,{overlay:menu,placement:"bottomRight",trigger:["click"],className:ActionButtonMenu_module_default().menu,children:(0,jsx_runtime.jsx)("div",{className:ActionButtonMenu_module_default().buttonWrap,children:(0,jsx_runtime.jsx)(es_button.Z,{type:"default",onClick:e=>e.preventDefault(),size:"large",icon:(0,jsx_runtime.jsx)(EllipsisOutlined.Z,{size:6,style:{rotate:"90deg"}})})})})};var space=__webpack_require__(26713),es_alert=__webpack_require__(14670),input=__webpack_require__(69677),FollowModal_module=__webpack_require__(66009),FollowModal_module_default=__webpack_require__.n(FollowModal_module);let FollowModal=param=>{let{handleClose,account,name}=param,[remoteAccount,setRemoteAccount]=(0,react.useState)(null),[valid,setValid]=(0,react.useState)(!1),[loading,setLoading]=(0,react.useState)(!1),[errorMessage,setErrorMessage]=(0,react.useState)(null),handleAccountChange=a=>{setRemoteAccount(a),function(a){let sanitized=a.replace(/^@+/,"");return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(sanitized).toLowerCase())}(a)?setValid(!0):setValid(!1)},joinButtonPressed=()=>{window.open("https://owncast.online/join-fediverse","_blank")},remoteFollowButtonPressed=async()=>{if(valid){setLoading(!0);try{let sanitizedAccount=remoteAccount.replace(/^@+/,""),rawResponse=await fetch("/api/remotefollow",{method:"POST",body:JSON.stringify({account:sanitizedAccount})}),result=await rawResponse.json();if(result.redirectUrl&&(window.open(result.redirectUrl,"_blank"),handleClose()),!result.success){setErrorMessage(result.message),setLoading(!1);return}if(!result.redirectUrl){setErrorMessage("Unable to follow."),setLoading(!1);return}}catch(e){setErrorMessage(e.message)}setLoading(!1)}};return(0,jsx_runtime.jsxs)(space.Z,{direction:"vertical",children:[(0,jsx_runtime.jsxs)("div",{className:FollowModal_module_default().header,children:["By following this stream you'll get notified on the Fediverse when it goes live. Now is a great time to",(0,jsx_runtime.jsx)("a",{href:"https://owncast.online/join-fediverse",target:"_blank",rel:"noreferrer",children:"learn about the Fediverse"}),"if it's new to you."]}),(0,jsx_runtime.jsxs)(spin.Z,{spinning:loading,children:[errorMessage&&(0,jsx_runtime.jsx)(es_alert.Z,{message:"Follow Error",description:errorMessage,type:"error",showIcon:!0}),(0,jsx_runtime.jsxs)("div",{className:FollowModal_module_default().account,children:[(0,jsx_runtime.jsx)("img",{src:"/logo",alt:"logo",className:FollowModal_module_default().logo}),(0,jsx_runtime.jsxs)("div",{className:FollowModal_module_default().username,children:[(0,jsx_runtime.jsx)("div",{className:FollowModal_module_default().name,children:name}),(0,jsx_runtime.jsx)("div",{children:account})]})]}),(0,jsx_runtime.jsxs)("div",{children:[(0,jsx_runtime.jsx)("div",{className:FollowModal_module_default().instructions,children:"Enter your username @server to follow"}),(0,jsx_runtime.jsx)(input.Z,{value:remoteAccount,size:"large",onChange:e=>handleAccountChange(e.target.value),placeholder:"Your fediverse account @account@server",defaultValue:remoteAccount}),(0,jsx_runtime.jsx)("div",{className:FollowModal_module_default().footer,children:"You'll be redirected to your Fediverse server and asked to confirm the action."})]}),(0,jsx_runtime.jsxs)(space.Z,{className:FollowModal_module_default().buttons,children:[(0,jsx_runtime.jsx)(es_button.Z,{disabled:!valid,type:"primary",onClick:remoteFollowButtonPressed,children:"Follow"}),(0,jsx_runtime.jsx)(es_button.Z,{onClick:joinButtonPressed,type:"primary",children:"Join the Fediverse"})]})]})]})},{Content:AntContent}=layout.Z,BrowserNotifyModal=dynamic_default()(()=>__webpack_require__.e(6160).then(__webpack_require__.bind(__webpack_require__,66160)).then(mod=>mod.BrowserNotifyModal),{loadableGenerated:{webpack:()=>[66160]}}),NotifyReminderPopup=dynamic_default()(()=>__webpack_require__.e(7815).then(__webpack_require__.bind(__webpack_require__,17815)).then(mod=>mod.NotifyReminderPopup),{loadableGenerated:{webpack:()=>[17815]}}),OwncastPlayer=dynamic_default()(()=>Promise.all([__webpack_require__.e(2544),__webpack_require__.e(7902),__webpack_require__.e(2239),__webpack_require__.e(7018)]).then(__webpack_require__.bind(__webpack_require__,8888)).then(mod=>mod.OwncastPlayer),{loadableGenerated:{webpack:()=>[8888]}}),Content_ChatContainer=dynamic_default()(()=>Promise.all([__webpack_require__.e(1272),__webpack_require__.e(8700),__webpack_require__.e(2852),__webpack_require__.e(4977),__webpack_require__.e(1496)]).then(__webpack_require__.bind(__webpack_require__,94977)).then(mod=>mod.ChatContainer),{loadableGenerated:{webpack:()=>[94977]}}),DesktopContent=param=>{let{name,streamTitle,summary,tags,socialHandles,extraPageContent,setShowFollowModal}=param,aboutTabContent=(0,jsx_runtime.jsx)(CustomPageContent,{content:extraPageContent}),followersTabContent=(0,jsx_runtime.jsx)(FollowerCollection,{name:name,onFollowButtonClick:()=>setShowFollowModal(!0)});return(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)("div",{className:Content_module_default().lowerHalf,children:(0,jsx_runtime.jsx)(ContentHeader,{name:name,title:streamTitle,summary:summary,tags:tags,links:socialHandles,logo:"/logo"})}),(0,jsx_runtime.jsx)("div",{className:Content_module_default().lowerSection,children:(0,jsx_runtime.jsx)(tabs.Z,{defaultActiveKey:"0",items:[{label:"About",key:"2",children:aboutTabContent},{label:"Followers",key:"3",children:followersTabContent}]})})]})},MobileContent=param=>{let{name,streamTitle,summary,tags,socialHandles,extraPageContent,messages,currentUser,showChat,actions,setExternalActionToDisplay,setShowNotifyPopup,setShowFollowModal}=param;if(!currentUser)return null;let mobileContentRef=(0,react.useRef)(),{id,displayName}=currentUser,chatContent=showChat&&(0,jsx_runtime.jsx)(Content_ChatContainer,{messages:messages,usernameToHighlight:displayName,chatUserId:id,isModerator:!1}),aboutTabContent=(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)(ContentHeader,{name:name,title:streamTitle,summary:summary,tags:tags,links:socialHandles,logo:"/logo"}),(0,jsx_runtime.jsx)(CustomPageContent,{content:extraPageContent})]}),followersTabContent=(0,jsx_runtime.jsx)(FollowerCollection,{name:name,onFollowButtonClick:()=>setShowFollowModal(!0)}),height="".concat(function(ref){let[contentH,setContentH]=(0,react.useState)(0),handleResize=()=>{if(!ref.current)return;let fromTop=ref.current.getBoundingClientRect().top,{innerHeight}=window;setContentH(innerHeight-fromTop)};return(0,react.useEffect)(()=>(handleResize(),window.addEventListener("resize",handleResize),()=>{window.removeEventListener("resize",handleResize)}),[]),contentH}(mobileContentRef),"px"),replacementTabBar=(props,DefaultTabBar)=>(0,jsx_runtime.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"start"},children:[(0,jsx_runtime.jsx)(DefaultTabBar,{...props,style:{width:"85%"}}),(0,jsx_runtime.jsx)(ActionButtonMenu,{showFollowItem:!0,showNotifyItem:!0,actions:actions,externalActionSelected:setExternalActionToDisplay,notifyItemSelected:()=>setShowNotifyPopup(!0),followItemSelected:()=>setShowFollowModal(!0)})]});return(0,jsx_runtime.jsx)("div",{className:classnames_default()(Content_module_default().lowerSectionMobile),ref:mobileContentRef,style:{height},children:(0,jsx_runtime.jsx)(tabs.Z,{defaultActiveKey:"0",items:[showChat&&{label:"Chat",key:"0",children:chatContent},{label:"About",key:"2",children:aboutTabContent},{label:"Followers",key:"3",children:followersTabContent}],renderTabBar:replacementTabBar})})},ExternalModal=param=>{let{externalActionToDisplay,setExternalActionToDisplay}=param,{title,description,url}=externalActionToDisplay;return(0,jsx_runtime.jsx)(Modal.Modal,{title:description||title,url:url,open:!!externalActionToDisplay,height:"80vh",handleCancel:()=>setExternalActionToDisplay(null)})},Content=()=>{let appState=(0,es.sJ)(ClientConfigStore.Q),clientConfig=(0,es.sJ)(ClientConfigStore.g1),isChatVisible=(0,es.sJ)(ClientConfigStore.pT),isChatAvailable=(0,es.sJ)(ClientConfigStore.di),currentUser=(0,es.sJ)(ClientConfigStore.db),[isMobile,setIsMobile]=(0,es.FV)(ClientConfigStore.hz),messages=(0,es.sJ)(ClientConfigStore.j$),online=(0,es.sJ)(ClientConfigStore.YW),{viewerCount,lastConnectTime,lastDisconnectTime,streamTitle}=(0,es.sJ)(ClientConfigStore.RI),{extraPageContent,version,name,summary,socialHandles,tags,externalActions,offlineMessage,chatDisabled,federation,notifications}=clientConfig,[showNotifyReminder,setShowNotifyReminder]=(0,react.useState)(!1),[showNotifyModal,setShowNotifyModal]=(0,react.useState)(!1),[showFollowModal,setShowFollowModal]=(0,react.useState)(!1),{account:fediverseAccount}=federation,{browser:browserNotifications}=notifications,{enabled:browserNotificationsEnabled}=browserNotifications,[externalActionToDisplay,setExternalActionToDisplay]=(0,react.useState)(null),externalActionSelected=action=>{let{openExternally,url}=action;openExternally?window.open(url,"_blank"):setExternalActionToDisplay(action)},externalActionButtons=externalActions.map(action=>(0,jsx_runtime.jsx)(ActionButton,{action:action,externalActionSelected:externalActionSelected},action.url)),incrementVisitCounter=()=>{let visits=parseInt((0,localStorage.$o)(localStorage.dA.userVisitCount),10);Number.isNaN(visits)&&(visits=0),(0,localStorage.qQ)(localStorage.dA.userVisitCount,visits+1),visits>2&&!(0,localStorage.$o)(localStorage.dA.hasDisplayedNotificationModal)&&setShowNotifyReminder(!0)},disableNotifyReminderPopup=()=>{setShowNotifyModal(!1),setShowNotifyReminder(!1),(0,localStorage.qQ)(localStorage.dA.hasDisplayedNotificationModal,!0)},checkIfMobile=()=>{let w=window.innerWidth;void 0===isMobile&&(w<=768?setIsMobile(!0):setIsMobile(!1)),!isMobile&&w<=768&&setIsMobile(!0),isMobile&&w>768&&setIsMobile(!1)};(0,react.useEffect)(()=>(incrementVisitCounter(),checkIfMobile(),window.addEventListener("resize",checkIfMobile),()=>{window.removeEventListener("resize",checkIfMobile)}),[]);let showChat=!chatDisabled&&isChatAvailable&&isChatVisible;return(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsxs)("div",{className:Content_module_default().main,children:[(0,jsx_runtime.jsx)(spin.Z,{wrapperClassName:Content_module_default().loadingSpinner,size:"large",spinning:appState.appLoading,children:(0,jsx_runtime.jsxs)(AntContent,{className:Content_module_default().root,children:[(0,jsx_runtime.jsxs)("div",{className:Content_module_default().mainSection,children:[(0,jsx_runtime.jsxs)("div",{className:Content_module_default().topSection,children:[online&&(0,jsx_runtime.jsx)(OwncastPlayer,{source:"/hls/stream.m3u8",online:online}),!online&&!appState.appLoading&&(0,jsx_runtime.jsx)(OfflineBanner.R,{streamName:name,customText:offlineMessage,notificationsEnabled:browserNotificationsEnabled,fediverseAccount:fediverseAccount,lastLive:lastDisconnectTime,onNotifyClick:()=>setShowNotifyModal(!0),onFollowClick:()=>setShowFollowModal(!0)}),online&&(0,jsx_runtime.jsx)(Statusbar.X,{online:online,lastConnectTime:lastConnectTime,lastDisconnectTime:lastDisconnectTime,viewerCount:viewerCount})]}),(0,jsx_runtime.jsx)("div",{className:Content_module_default().midSection,children:(0,jsx_runtime.jsxs)("div",{className:Content_module_default().buttonsLogoTitleSection,children:[!isMobile&&(0,jsx_runtime.jsxs)(ActionButtonRow,{children:[externalActionButtons,(0,jsx_runtime.jsx)(FollowButton,{size:"small",onClick:()=>setShowFollowModal(!0)}),(0,jsx_runtime.jsx)(NotifyReminderPopup,{open:showNotifyReminder,notificationClicked:()=>setShowNotifyModal(!0),notificationClosed:()=>disableNotifyReminderPopup(),children:(0,jsx_runtime.jsx)(NotifyButton,{onClick:()=>setShowNotifyModal(!0)})})]}),(0,jsx_runtime.jsx)(Modal.Modal,{title:"Notify",open:showNotifyModal,afterClose:()=>disableNotifyReminderPopup(),handleCancel:()=>disableNotifyReminderPopup(),children:(0,jsx_runtime.jsx)(BrowserNotifyModal,{})})]})}),isMobile?(0,jsx_runtime.jsx)(MobileContent,{name:name,streamTitle:streamTitle,summary:summary,tags:tags,socialHandles:socialHandles,extraPageContent:extraPageContent,messages:messages,currentUser:currentUser,showChat:showChat,actions:externalActions,setExternalActionToDisplay:externalActionSelected,setShowNotifyPopup:setShowNotifyModal,setShowFollowModal:setShowFollowModal}):(0,jsx_runtime.jsx)(DesktopContent,{name:name,streamTitle:streamTitle,summary:summary,tags:tags,socialHandles:socialHandles,extraPageContent:extraPageContent,setShowFollowModal:setShowFollowModal})]}),showChat&&!isMobile&&(0,jsx_runtime.jsx)(Sidebar,{})]})}),!isMobile&&!1]}),externalActionToDisplay&&(0,jsx_runtime.jsx)(ExternalModal,{externalActionToDisplay:externalActionToDisplay,setExternalActionToDisplay:setExternalActionToDisplay}),(0,jsx_runtime.jsx)(Modal.Modal,{title:"Follow ".concat(name),open:showFollowModal,handleCancel:()=>setShowFollowModal(!1),width:"550px",children:(0,jsx_runtime.jsx)(FollowModal,{account:fediverseAccount,name:name,handleClose:()=>setShowFollowModal(!1)})})]})};var Header=__webpack_require__(37527),modal=__webpack_require__(85402);let FatalErrorStateModal=param=>{let{title,message}=param;return(0,jsx_runtime.jsx)(modal.Z,{title:title,visible:!0,footer:null,closable:!1,keyboard:!1,width:900,centered:!0,className:"modal",children:(0,jsx_runtime.jsx)("p",{style:{fontSize:"1.3rem"},children:message})})},TitleNotifier=()=>{let chatMessages=(0,es.sJ)(ClientConfigStore.j$),serverStatus=(0,es.sJ)(ClientConfigStore.RI),backgrounded=!1,defaultTitle="",onBlur=()=>{backgrounded=!0,defaultTitle=window.document.title},onFocus=()=>{backgrounded=!1,window.document.title=defaultTitle},listenForEvents=()=>{window.addEventListener("blur",onBlur),window.addEventListener("focus",onFocus)};return(0,react.useEffect)(()=>(defaultTitle=window.document.title,listenForEvents(),()=>{window.removeEventListener("focus",onFocus),window.removeEventListener("blur",onBlur)}),[]),(0,react.useEffect)(()=>{let{online}=serverStatus;backgrounded&&online&&(window.document.title="\uD83D\uDCAC :: ".concat(defaultTitle))},[chatMessages]),(0,react.useEffect)(()=>{if(!backgrounded)return;let{online}=serverStatus;online?window.document.title=" \uD83D\uDFE2 :: ".concat(defaultTitle):online||(window.document.title=" \uD83D\uDD34 :: ".concat(defaultTitle))},[ClientConfigStore.RI]),null},ServerRenderedHydration=()=>(0,jsx_runtime.jsx)("script",{id:"server-side-hydration",dangerouslySetInnerHTML:{__html:"\n window.configHydration = {{.ServerConfigJSON}};\n window.statusHydration = {{.StatusJSON}};\n "}}),Theme=()=>{let clientConfig=(0,es.sJ)(ClientConfigStore.g1),{appearanceVariables,customStyles}=clientConfig,appearanceVars=Object.keys(appearanceVariables).filter(variable=>!!appearanceVariables[variable]).map(variable=>"--".concat(variable,": ").concat(appearanceVariables[variable]));return(0,jsx_runtime.jsx)("style",{dangerouslySetInnerHTML:{__html:"\n :root {\n ".concat(appearanceVars.join(";\n"),"\n }\n ").concat(customStyles,"\n ")}})},Main=()=>{let[isMobile]=(0,es.FV)(ClientConfigStore.hz),clientConfig=(0,es.sJ)(ClientConfigStore.g1),{name,title,customStyles,version}=clientConfig,isChatAvailable=(0,es.sJ)(ClientConfigStore.di),fatalError=(0,es.sJ)(ClientConfigStore.ap),layoutRef=(0,react.useRef)(null),{chatDisabled}=clientConfig;return(0,react.useEffect)(()=>{!function(observationRoot){let addNoReferrer=node=>{let existingAttributes=node.getAttribute("rel");node.setAttribute("rel","".concat(existingAttributes," noopener noreferrer"))};observationRoot.querySelectorAll("a").forEach(anchor=>addNoReferrer(anchor));let observer=new MutationObserver(function(mutationList){for(let mutation of mutationList)for(let node of mutation.addedNodes)node instanceof HTMLElement&&"a"===node.tagName.toLowerCase()&&addNoReferrer(node)});observer.observe(observationRoot,{attributes:!1,childList:!0,subtree:!0})}(layoutRef.current)},[]),(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsxs)(head_default(),{children:[(0,jsx_runtime.jsx)(ServerRenderedHydration,{}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"57x57",href:"/img/favicon/apple-icon-57x57.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"60x60",href:"/img/favicon/apple-icon-60x60.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"72x72",href:"/img/favicon/apple-icon-72x72.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"76x76",href:"/img/favicon/apple-icon-76x76.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"114x114",href:"/img/favicon/apple-icon-114x114.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"120x120",href:"/img/favicon/apple-icon-120x120.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"144x144",href:"/img/favicon/apple-icon-144x144.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"152x152",href:"/img/favicon/apple-icon-152x152.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/img/favicon/apple-icon-180x180.png"}),(0,jsx_runtime.jsx)("link",{rel:"icon",type:"image/png",sizes:"192x192",href:"/img/favicon/android-icon-192x192.png"}),(0,jsx_runtime.jsx)("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/img/favicon/favicon-32x32.png"}),(0,jsx_runtime.jsx)("link",{rel:"icon",type:"image/png",sizes:"96x96",href:"/img/favicon/favicon-96x96.png"}),(0,jsx_runtime.jsx)("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/img/favicon/favicon-16x16.png"}),(0,jsx_runtime.jsx)("link",{rel:"manifest",href:"/manifest.json"}),(0,jsx_runtime.jsx)("link",{href:"/api/auth/provider/indieauth"}),(0,jsx_runtime.jsx)("meta",{name:"msapplication-TileColor",content:"#ffffff"}),(0,jsx_runtime.jsx)("meta",{name:"msapplication-TileImage",content:"/img/favicon/ms-icon-144x144.png"}),(0,jsx_runtime.jsx)("meta",{name:"theme-color",content:"#ffffff"}),(0,jsx_runtime.jsx)("style",{children:customStyles}),(0,jsx_runtime.jsx)("base",{target:"_blank"})]}),(0,jsx_runtime.jsxs)(head_default(),{children:[name?(0,jsx_runtime.jsx)("title",{children:name}):(0,jsx_runtime.jsx)("title",{children:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{name:"description",content:"{{.Summary}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:title",content:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:site_name",content:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:url",content:"{{.RequestedURL}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:description",content:"{{.Summary}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:type",content:"video.other"}),(0,jsx_runtime.jsx)("meta",{property:"video:tag",content:"{{.TagsString}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:image",content:"{{.Thumbnail}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:image:url",content:"{{.Thumbnail}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:image:alt",content:"{{.Image}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:video",content:"{{.RequestedURL}}/embed/video"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:secure_url",content:"{{.RequestedURL}}/embed/video"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:height",content:"315"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:width",content:"560"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:type",content:"text/html"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:actor",content:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:title",content:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:url",content:"{{.RequestedURL}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:description",content:"{{.Summary}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:image",content:"{{.Image}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:card",content:"player"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:player",content:"{{.RequestedURL}}/embed/video"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:player:width",content:"560"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:player:height",content:"315"})]}),(0,jsx_runtime.jsx)(ClientConfigStore.me,{}),(0,jsx_runtime.jsx)(TitleNotifier,{}),(0,jsx_runtime.jsx)(Theme,{}),(0,jsx_runtime.jsxs)(layout.Z,{ref:layoutRef,style:{minHeight:"100vh"},children:[(0,jsx_runtime.jsx)(Header.h,{name:title||name,chatAvailable:isChatAvailable,chatDisabled:chatDisabled}),(0,jsx_runtime.jsx)(Content,{}),fatalError&&(0,jsx_runtime.jsx)(FatalErrorStateModal,{title:fatalError.title,message:fatalError.message}),!isMobile&&(0,jsx_runtime.jsx)(Footer,{version:version})]})]})};function Home(){return(0,jsx_runtime.jsx)(Main,{})}},13959:function(module){module.exports={button:"ActionButton_button__z5Z2c",icon:"ActionButton_icon__EPp7Q"}},97038:function(module){module.exports={item:"ActionButtonMenu_item__OJQdr",buttonWrap:"ActionButtonMenu_buttonWrap__WQ9kt",icon:"ActionButtonMenu_icon__edY1D",menu:"ActionButtonMenu_menu__GChDk"}},12270:function(module){module.exports={row:"ActionButtonRow_row__SiEGe"}},47900:function(module){module.exports={root:"ContentHeader_root__HaUG0",row:"ContentHeader_row__9Q8gH",logoTitleSection:"ContentHeader_logoTitleSection__Z8pUc",logo:"ContentHeader_logo__wo_HN",titleSection:"ContentHeader_titleSection___6Y15",title:"ContentHeader_title__E_DsI",subtitle:"ContentHeader_subtitle__n1Wew",tagList:"ContentHeader_tagList__rx3jY"}},79252:function(module){module.exports={root:"UserDropdown_root__IdxfQ","ant-space":"UserDropdown_ant-space__XJTZ3","ant-space-item":"UserDropdown_ant-space-item__w4nC2"}},66009:function(module){module.exports={header:"FollowModal_header__la1ji",buttons:"FollowModal_buttons__tt4Mc",instructions:"FollowModal_instructions__HiKFF",footer:"FollowModal_footer__AjucH",account:"FollowModal_account__cmHkm",logo:"FollowModal_logo__Ew8xK",username:"FollowModal_username__A_OTw",name:"FollowModal_name__Sf_TP"}},17725:function(module){module.exports={root:"Content_root__h1mNK",mainSection:"Content_mainSection__Gk78Y",topSection:"Content_topSection__JIZi0",lowerSection:"Content_lowerSection__BZHYI",lowerSectionMobile:"Content_lowerSectionMobile__hRr0_",leftCol:"Content_leftCol__U2TDq",loadingSpinner:"Content_loadingSpinner__mDlYC",main:"Content_main__XVf63"}},10808:function(module){module.exports={pageContentContainer:"CustomPageContent_pageContentContainer__EG4tU",customPageContent:"CustomPageContent_customPageContent__Mr981",summary:"CustomPageContent_summary___Zgps"}},67917:function(module){module.exports={footer:"Footer_footer__mPuvf",links:"Footer_links__7bBxV"}},31764:function(module){module.exports={header:"Header_header__U4Ro1",logo:"Header_logo__HLZ6Z"}},74933:function(module){module.exports={root:"Logo_root__jKiJC",container:"Logo_container__A4UYT",image:"Logo_image__Ahkom"}},77011:function(module){module.exports={spinner:"Modal_spinner__GiSS0",content:"Modal_content__h9my9"}},88335:function(module){module.exports={outerContainer:"OfflineBanner_outerContainer__3AbsB",innerContainer:"OfflineBanner_innerContainer__zTm13",bodyText:"OfflineBanner_bodyText__nNNy0",separator:"OfflineBanner_separator___j_Ss",lastLiveDate:"OfflineBanner_lastLiveDate___UZdO",clockIcon:"OfflineBanner_clockIcon__s0DB_",header:"OfflineBanner_header__Vu20o",footer:"OfflineBanner_footer__o3Zl5",actionLink:"OfflineBanner_actionLink__b4Mwa"}},12341:function(module){module.exports={root:"Sidebar_root__8HE0A"}},573:function(module){module.exports={link:"SocialLinks_link___CcSm",links:"SocialLinks_links__gOAb7"}},37970:function(module){module.exports={statusbar:"Statusbar_statusbar__AtVnB"}},21890:function(module){module.exports={followers:"FollowerCollection_followers__e_EUS",noFollowers:"FollowerCollection_noFollowers__UaCVW"}},69833:function(module){module.exports={follower:"SingleFollower_follower__EyBDI",avatar:"SingleFollower_avatar__V9jHG",account:"SingleFollower_account__Z66vo",placeholder:"SingleFollower_placeholder__CgsfJ"}}},function(__webpack_require__){__webpack_require__.O(0,[8939,3903,4267,4381,5938,6395,1082,5360,8245,8980,7466,9774,2888,179],function(){return __webpack_require__(__webpack_require__.s=48312)}),_N_E=__webpack_require__.O()}]); \ No newline at end of file diff --git a/static/web/_next/static/chunks/pages/index-ab7ac0d7f54b0da0.js b/static/web/_next/static/chunks/pages/index-ab7ac0d7f54b0da0.js deleted file mode 100644 index 74a51d75f..000000000 --- a/static/web/_next/static/chunks/pages/index-ab7ac0d7f54b0da0.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5405],{48312:function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return __webpack_require__(6511)}])},37527:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{h:function(){return Header},Z:function(){return Header_Header}});var jsx_runtime=__webpack_require__(85893),layout=__webpack_require__(97183),tooltip=__webpack_require__(94199),tag=__webpack_require__(20550),classnames=__webpack_require__(94184),classnames_default=__webpack_require__.n(classnames),es_menu=__webpack_require__(66516),dropdown=__webpack_require__(38504),es_button=__webpack_require__(71577),space=__webpack_require__(26713),EditOutlined=__webpack_require__(86548),LockOutlined=__webpack_require__(94149),MessageOutlined=__webpack_require__(38545),UserOutlined=__webpack_require__(87547),CaretDownOutlined=__webpack_require__(39398),es=__webpack_require__(4480),react=__webpack_require__(67294),react_hotkeys_hook_esm=__webpack_require__(49218),dynamic=__webpack_require__(5152),dynamic_default=__webpack_require__.n(dynamic),ClientConfigStore=__webpack_require__(77466),UserDropdown_module=__webpack_require__(79252),UserDropdown_module_default=__webpack_require__.n(UserDropdown_module);let Modal=dynamic_default()(()=>__webpack_require__.e(4761).then(__webpack_require__.bind(__webpack_require__,14761)).then(mod=>mod.Modal),{loadableGenerated:{webpack:()=>[14761]}}),NameChangeModal=dynamic_default()(()=>Promise.all([__webpack_require__.e(8939),__webpack_require__.e(9096)]).then(__webpack_require__.bind(__webpack_require__,59096)).then(mod=>mod.NameChangeModal),{loadableGenerated:{webpack:()=>[59096]}}),AuthModal=dynamic_default()(()=>Promise.all([__webpack_require__.e(4381),__webpack_require__.e(5535)]).then(__webpack_require__.bind(__webpack_require__,65535)).then(mod=>mod.AuthModal),{loadableGenerated:{webpack:()=>[65535]}}),UserDropdown=param=>{let{username:defaultUsername}=param,[showNameChangeModal,setShowNameChangeModal]=(0,react.useState)(!1),[showAuthModal,setShowAuthModal]=(0,react.useState)(!1),[chatToggleVisible,setChatToggleVisible]=(0,es.FV)(ClientConfigStore.ZA),appState=(0,es.sJ)(ClientConfigStore.Q),toggleChatVisibility=()=>{setChatToggleVisible(!chatToggleVisible)},handleChangeName=()=>{setShowNameChangeModal(!0)};(0,react_hotkeys_hook_esm.y1)("c",toggleChatVisibility,{enableOnContentEditable:!1},[chatToggleVisible]);let currentUser=(0,es.sJ)(ClientConfigStore.db);if(!currentUser)return null;let{displayName}=currentUser,menu=(0,jsx_runtime.jsxs)(es_menu.Z,{children:[(0,jsx_runtime.jsx)(es_menu.Z.Item,{icon:(0,jsx_runtime.jsx)(EditOutlined.Z,{}),onClick:()=>handleChangeName(),children:"Change name"},"0"),(0,jsx_runtime.jsx)(es_menu.Z.Item,{icon:(0,jsx_runtime.jsx)(LockOutlined.Z,{}),onClick:()=>setShowAuthModal(!0),children:"Authenticate"},"1"),appState.chatAvailable&&(0,jsx_runtime.jsx)(es_menu.Z.Item,{icon:(0,jsx_runtime.jsx)(MessageOutlined.Z,{}),onClick:()=>toggleChatVisibility(),children:"Toggle chat"},"3")]});return(0,jsx_runtime.jsxs)("div",{id:"user-menu",className:"".concat(UserDropdown_module_default().root),children:[(0,jsx_runtime.jsx)(dropdown.Z,{overlay:menu,trigger:["click"],children:(0,jsx_runtime.jsx)(es_button.Z,{type:"primary",icon:(0,jsx_runtime.jsx)(UserOutlined.Z,{style:{marginRight:".5rem"}}),children:(0,jsx_runtime.jsxs)(space.Z,{children:[defaultUsername||displayName,(0,jsx_runtime.jsx)(CaretDownOutlined.Z,{})]})})}),(0,jsx_runtime.jsx)(Modal,{title:"Change Chat Display Name",open:showNameChangeModal,handleCancel:()=>setShowNameChangeModal(!1),children:(0,jsx_runtime.jsx)(NameChangeModal,{})}),(0,jsx_runtime.jsx)(Modal,{title:"Authenticate",open:showAuthModal,handleCancel:()=>setShowAuthModal(!1),children:(0,jsx_runtime.jsx)(AuthModal,{})})]})};var OwncastLogo=__webpack_require__(50738),Header_module=__webpack_require__(31764),Header_module_default=__webpack_require__.n(Header_module);let{Header:AntHeader}=layout.Z,Header=param=>{let{name="Your stream title",chatAvailable,chatDisabled}=param;return(0,jsx_runtime.jsxs)(AntHeader,{className:classnames_default()(["".concat(Header_module_default().header)],"global-header"),children:[(0,jsx_runtime.jsxs)("div",{className:"".concat(Header_module_default().logo),children:[(0,jsx_runtime.jsx)(OwncastLogo.C,{variant:"contrast"}),(0,jsx_runtime.jsx)("span",{className:"global-header-text",children:name})]}),chatAvailable&&!chatDisabled&&(0,jsx_runtime.jsx)(UserDropdown,{}),!chatAvailable&&!chatDisabled&&(0,jsx_runtime.jsx)(tooltip.Z,{title:"Chat is available when the stream is live.",placement:"left",children:(0,jsx_runtime.jsx)(tag.Z,{style:{cursor:"pointer"},children:"Chat offline"})})]})};var Header_Header=Header},14761:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Modal:function(){return Modal}});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85893),antd__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(85402),antd__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(26303),antd__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(11382),react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(67294),_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(77011),_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4__);let Modal=param=>{let{title,url,open,handleOk,handleCancel,afterClose,height,width,children}=param,[loading,setLoading]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!!url),iframe=url&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("iframe",{title:title,src:url,width:"100%",height:"100%",sandbox:"allow-same-origin allow-scripts allow-popups allow-forms",frameBorder:"0",allowFullScreen:!0,onLoad:()=>setLoading(!1)});return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_2__.Z,{title:title,open:open,onOk:handleOk,onCancel:handleCancel,afterClose:afterClose,bodyStyle:{padding:"0px",minHeight:height,height:null!=height?height:"100%"},width:width,zIndex:9999,footer:null,centered:!0,destroyOnClose:!0,children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,{children:[loading&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_3__.Z,{active:loading,style:{padding:"10px"},paragraph:{rows:10}}),iframe&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{style:{display:loading?"none":"inline"},children:iframe}),children&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4___default().content,children:children}),loading&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_5__.Z,{className:_Modal_module_scss__WEBPACK_IMPORTED_MODULE_4___default().spinner,spinning:loading,size:"large"})]})})};__webpack_exports__.default=Modal,Modal.defaultProps={url:void 0,children:void 0,handleOk:void 0,handleCancel:void 0,afterClose:void 0}},51513:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{R:function(){return OfflineBanner}});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85893),antd__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(27049),_ant_design_icons__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(24019),date_fns_formatDistanceToNow__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(45938),_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(88335),_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1__);let OfflineBanner=param=>{let text,{streamName,customText,lastLive,notificationsEnabled,fediverseAccount,onNotifyClick,onFollowClick}=param;return text=customText||(!customText&¬ificationsEnabled&&fediverseAccount?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span",{children:["This stream is offline. You can"," ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{role:"link",tabIndex:0,className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().actionLink,onClick:onNotifyClick,children:"be notified"})," ","the next time ",streamName," goes live or"," ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{role:"link",tabIndex:0,className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().actionLink,onClick:onFollowClick,children:"follow"})," ",fediverseAccount," on the Fediverse."]}):!customText&¬ificationsEnabled?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span",{children:["This stream is offline."," ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{role:"link",tabIndex:0,className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().actionLink,onClick:onNotifyClick,children:"Be notified"})," ","the next time ",streamName," goes live."]}):!customText&&fediverseAccount?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span",{children:["This stream is offline."," ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{role:"link",tabIndex:0,className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().actionLink,onClick:onFollowClick,children:"Follow"})," ",fediverseAccount," on the Fediverse to see the next time ",streamName," goes live."]}):"This stream is offline. Check back soon!"),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().outerContainer,children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().innerContainer,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().header,children:streamName}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_2__.Z,{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().separator}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().bodyText,children:text}),lastLive&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().lastLiveDate,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_3__.Z,{className:_OfflineBanner_module_scss__WEBPACK_IMPORTED_MODULE_1___default().clockIcon}),"Last live ".concat((0,date_fns_formatDistanceToNow__WEBPACK_IMPORTED_MODULE_4__.Z)(new Date(lastLive))," ago.")]})]})})}},69357:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{X:function(){return Statusbar}});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85893),date_fns_formatDistanceToNow__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(45938),date_fns_intervalToDuration__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(68730),react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(67294),_ant_design_icons__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(31326),_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(37970),_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3__);let Statusbar=param=>{let rightSideMessage,{online,lastConnectTime,lastDisconnectTime,viewerCount}=param,[,setNow]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Date);(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{let interval=setInterval(()=>setNow(new Date),1e3);return()=>{clearInterval(interval)}},[]);let onlineMessage="";if(online&&lastConnectTime){let duration=function(lastConnectTime){let diff=(0,date_fns_intervalToDuration__WEBPACK_IMPORTED_MODULE_2__.Z)({start:lastConnectTime,end:new Date});return diff.days>1?"".concat(diff.days," days ").concat(diff.hours," hours"):diff.hours>=1?"".concat(diff.hours," hours ").concat(diff.minutes," minutes"):"".concat(diff.minutes," minutes ").concat(diff.seconds," seconds")}(new Date(lastConnectTime));onlineMessage=online?"Live for ".concat(duration):"Offline",rightSideMessage=viewerCount>0&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3___default().right,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_4__.Z,{})}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{children:" ".concat(viewerCount)})]})}else!online&&(onlineMessage="Offline",lastDisconnectTime&&(rightSideMessage="Last live ".concat((0,date_fns_formatDistanceToNow__WEBPACK_IMPORTED_MODULE_5__.Z)(new Date(lastDisconnectTime))," ago.")));return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:_Statusbar_module_scss__WEBPACK_IMPORTED_MODULE_3___default().statusbar,children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{children:onlineMessage}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{children:rightSideMessage})]})};Statusbar.defaultProps={lastConnectTime:null,lastDisconnectTime:null}},6511:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:function(){return Home}});var jsx_runtime=__webpack_require__(85893),layout=__webpack_require__(97183),es=__webpack_require__(4480),head=__webpack_require__(9008),head_default=__webpack_require__.n(head),react=__webpack_require__(67294),ClientConfigStore=__webpack_require__(77466),tabs=__webpack_require__(84381),spin=__webpack_require__(11382),classnames=__webpack_require__(94184),classnames_default=__webpack_require__.n(classnames),dynamic=__webpack_require__(5152),dynamic_default=__webpack_require__.n(dynamic),localStorage=__webpack_require__(72581),Footer_module=__webpack_require__(67917),Footer_module_default=__webpack_require__.n(Footer_module);let Footer=param=>{let{version}=param;return(0,jsx_runtime.jsxs)("div",{className:Footer_module_default().footer,children:[(0,jsx_runtime.jsxs)("span",{children:["Powered by ",(0,jsx_runtime.jsx)("a",{href:"https://owncast.online",children:version})]}),(0,jsx_runtime.jsxs)("span",{className:Footer_module_default().links,children:[(0,jsx_runtime.jsx)("a",{href:"https://owncast.online/docs",target:"_blank",rel:"noreferrer",children:"Documentation"}),(0,jsx_runtime.jsx)("a",{href:"https://owncast.online/help",target:"_blank",rel:"noreferrer",children:"Contribute"}),(0,jsx_runtime.jsx)("a",{href:"https://github.com/owncast/owncast",target:"_blank",rel:"noreferrer",children:"Source"})]})]})};var CustomPageContent_module=__webpack_require__(10808),CustomPageContent_module_default=__webpack_require__.n(CustomPageContent_module);let CustomPageContent=param=>{let{content}=param,isMobile=(0,es.sJ)(ClientConfigStore.hz),clientConfig=(0,es.sJ)(ClientConfigStore.g1),{version}=clientConfig;return(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)("div",{className:CustomPageContent_module_default().pageContentContainer,children:(0,jsx_runtime.jsx)("div",{className:CustomPageContent_module_default().customPageContent,dangerouslySetInnerHTML:{__html:content}})}),isMobile&&(0,jsx_runtime.jsx)(Footer,{version:version})]})};var Content_module=__webpack_require__(17725),Content_module_default=__webpack_require__.n(Content_module),Sider=__webpack_require__(87412),Sidebar_module=__webpack_require__(12341),Sidebar_module_default=__webpack_require__.n(Sidebar_module);let ChatContainer=dynamic_default()(()=>Promise.all([__webpack_require__.e(1272),__webpack_require__.e(8700),__webpack_require__.e(2852),__webpack_require__.e(4977),__webpack_require__.e(1496)]).then(__webpack_require__.bind(__webpack_require__,94977)).then(mod=>mod.ChatContainer),{loadableGenerated:{webpack:()=>[94977]}}),Sidebar=()=>{let currentUser=(0,es.sJ)(ClientConfigStore.db),messages=(0,es.sJ)(ClientConfigStore.pH);if(!currentUser)return null;let{id,isModerator,displayName}=currentUser;return(0,jsx_runtime.jsx)(Sider.ZP,{className:Sidebar_module_default().root,collapsedWidth:0,width:320,children:(0,jsx_runtime.jsx)(ChatContainer,{messages:messages,usernameToHighlight:displayName,chatUserId:id,isModerator:isModerator})})};var ActionButtonRow_module=__webpack_require__(12270),ActionButtonRow_module_default=__webpack_require__.n(ActionButtonRow_module);let ActionButtonRow=param=>{let{children}=param;return(0,jsx_runtime.jsx)("div",{className:"".concat(ActionButtonRow_module_default().row),children:children})};var es_button=__webpack_require__(71577),ActionButton_module=__webpack_require__(13959),ActionButton_module_default=__webpack_require__.n(ActionButton_module);let ActionButton=param=>{let{action,primary=!0,externalActionSelected}=param,{title,description,icon,color}=action;return(0,jsx_runtime.jsxs)(es_button.Z,{type:primary?"primary":"default",className:"".concat(ActionButton_module_default().button),onClick:()=>externalActionSelected(action),style:{backgroundColor:color},children:[icon&&(0,jsx_runtime.jsx)("img",{src:icon,className:"".concat(ActionButton_module_default().icon),alt:description}),title]})};var OfflineBanner=__webpack_require__(51513),HeartFilled=__webpack_require__(34447);let FollowButton=param=>{let{onClick,props}=param;return(0,jsx_runtime.jsx)(es_button.Z,{...props,type:"primary",className:ActionButton_module_default().button,icon:(0,jsx_runtime.jsx)(HeartFilled.Z,{}),onClick:onClick,children:"Follow"})};var BellFilled=__webpack_require__(71578);let NotifyButton=param=>{let{onClick,text}=param;return(0,jsx_runtime.jsx)(es_button.Z,{type:"primary",className:"".concat(ActionButton_module_default().button),icon:(0,jsx_runtime.jsx)(BellFilled.Z,{}),onClick:onClick,children:text||"Notify"})};var dist=__webpack_require__(53731),es_image=__webpack_require__(79216),Logo_module=__webpack_require__(74933),Logo_module_default=__webpack_require__.n(Logo_module);let Logo=param=>{let{src}=param;return(0,jsx_runtime.jsx)("div",{className:Logo_module_default().root,children:(0,jsx_runtime.jsx)("div",{className:Logo_module_default().container,children:(0,jsx_runtime.jsx)(es_image.Z,{src:src,alt:"Logo",className:Logo_module_default().image,rootClassName:Logo_module_default().image})})})};var next_image=__webpack_require__(25675),image_default=__webpack_require__.n(next_image),SocialLinks_module=__webpack_require__(573),SocialLinks_module_default=__webpack_require__.n(SocialLinks_module);let SocialLinks=param=>{let{links}=param;return(0,jsx_runtime.jsx)("div",{className:SocialLinks_module_default().links,children:links.map(link=>(0,jsx_runtime.jsx)("a",{href:link.url,className:SocialLinks_module_default().link,target:"_blank",rel:"noreferrer me",children:(0,jsx_runtime.jsx)(image_default(),{src:link.icon||"/img/platformlogos/default.svg",alt:link.platform,title:link.platform,className:SocialLinks_module_default().link,width:"30",height:"30"})},link.platform))})};var ContentHeader_module=__webpack_require__(47900),ContentHeader_module_default=__webpack_require__.n(ContentHeader_module);let ContentHeader=param=>{let{name,title,summary,logo,tags,links}=param;return(0,jsx_runtime.jsx)("div",{className:ContentHeader_module_default().root,children:(0,jsx_runtime.jsxs)("div",{className:ContentHeader_module_default().logoTitleSection,children:[(0,jsx_runtime.jsx)("div",{className:ContentHeader_module_default().logo,children:(0,jsx_runtime.jsx)(Logo,{src:logo})}),(0,jsx_runtime.jsxs)("div",{className:ContentHeader_module_default().titleSection,children:[(0,jsx_runtime.jsx)("div",{className:classnames_default()(ContentHeader_module_default().title,ContentHeader_module_default().row,"header-title"),children:name}),(0,jsx_runtime.jsx)("div",{className:classnames_default()(ContentHeader_module_default().subtitle,ContentHeader_module_default().row,"header-subtitle"),children:(0,jsx_runtime.jsx)(dist.Z,{children:title||summary})}),(0,jsx_runtime.jsx)("div",{className:classnames_default()(ContentHeader_module_default().tagList,ContentHeader_module_default().row),children:tags.length>0&&tags.map(tag=>(0,jsx_runtime.jsxs)("span",{children:["#",tag,"\xa0"]},tag))}),(0,jsx_runtime.jsx)("div",{className:classnames_default()(ContentHeader_module_default().socialLinks,ContentHeader_module_default().row),children:(0,jsx_runtime.jsx)(SocialLinks,{links:links})})]})]})})};var Statusbar=__webpack_require__(69357),skeleton=__webpack_require__(26303),row=__webpack_require__(25968),col=__webpack_require__(6226),pagination=__webpack_require__(3698),avatar=__webpack_require__(24093),SingleFollower_module=__webpack_require__(69833),SingleFollower_module_default=__webpack_require__.n(SingleFollower_module);let SingleFollower=param=>{let{follower}=param;return(0,jsx_runtime.jsx)("div",{className:SingleFollower_module_default().follower,children:(0,jsx_runtime.jsx)("a",{href:follower.link,target:"_blank",rel:"noreferrer",children:(0,jsx_runtime.jsxs)(row.Z,{wrap:!1,children:[(0,jsx_runtime.jsx)(col.Z,{span:6,children:(0,jsx_runtime.jsx)(avatar.C,{src:follower.image,alt:"Avatar",className:SingleFollower_module_default().avatar,children:(0,jsx_runtime.jsx)("img",{src:"/logo",alt:"Logo",className:SingleFollower_module_default().placeholder})})}),(0,jsx_runtime.jsxs)(col.Z,{children:[(0,jsx_runtime.jsx)(row.Z,{children:follower.name}),(0,jsx_runtime.jsx)(row.Z,{className:SingleFollower_module_default().account,children:follower.username})]})]})})})};var FollowerCollection_module=__webpack_require__(21890),FollowerCollection_module_default=__webpack_require__.n(FollowerCollection_module);let FollowerCollection=param=>{let{name}=param,[followers,setFollowers]=(0,react.useState)([]),[total,setTotal]=(0,react.useState)(0),[page,setPage]=(0,react.useState)(1),[loading,setLoading]=(0,react.useState)(!0),getFollowers=async()=>{try{let response=await fetch("".concat("/api/followers","?page=").concat(page)),data=await response.json(),{results,total:totalResults}=data;setFollowers(results),setTotal(totalResults)}catch(error){console.error(error)}};(0,react.useEffect)(()=>{getFollowers()},[]),(0,react.useEffect)(()=>{getFollowers()},[page]),(0,react.useEffect)(()=>{setLoading(!1)},[followers]);let noFollowers=(0,jsx_runtime.jsxs)("div",{className:FollowerCollection_module_default().noFollowers,children:[(0,jsx_runtime.jsx)("h2",{children:"Be the first follower!"}),(0,jsx_runtime.jsxs)("p",{children:["Owncast"!==name?name:"This server"," is a part of the"," ",(0,jsx_runtime.jsx)("a",{href:"https://owncast.online/join-fediverse",children:"Fediverse"}),", an interconnected network of independent users and servers."]}),(0,jsx_runtime.jsxs)("p",{children:["By following ","Owncast"!==name?name:"this server"," you'll be able to get updates from the stream, share it with others, and and show your appreciation when it goes live, all from your own Fediverse account."]}),(0,jsx_runtime.jsx)(FollowButton,{})]}),loadingSkeleton=(0,jsx_runtime.jsx)(skeleton.Z,{active:!0,paragraph:{rows:3}});return loading?loadingSkeleton:(null==followers?void 0:followers.length)?(0,jsx_runtime.jsxs)("div",{className:FollowerCollection_module_default().followers,children:[(0,jsx_runtime.jsx)(row.Z,{wrap:!0,gutter:[10,10],children:followers.map(follower=>(0,jsx_runtime.jsx)(col.Z,{children:(0,jsx_runtime.jsx)(SingleFollower,{follower:follower},follower.link)},follower.link))}),(0,jsx_runtime.jsx)(pagination.Z,{current:page,pageSize:24,total:Math.ceil(total/24)||1,onChange(p){setPage(p)},hideOnSinglePage:!0})]}):noFollowers};var Modal=__webpack_require__(14761),es_menu=__webpack_require__(66516),dropdown=__webpack_require__(38504),HeartOutlined=__webpack_require__(49647),BellOutlined=__webpack_require__(60198),EllipsisOutlined=__webpack_require__(89705),ActionButtonMenu_module=__webpack_require__(97038),ActionButtonMenu_module_default=__webpack_require__.n(ActionButtonMenu_module);let NOTIFY_KEY="notify",FOLLOW_KEY="follow",ActionButtonMenu=param=>{let{actions,externalActionSelected,notifyItemSelected,followItemSelected,showFollowItem,showNotifyItem}=param,onMenuClick=a=>{if(a.key===NOTIFY_KEY){notifyItemSelected();return}if(a.key===FOLLOW_KEY){followItemSelected();return}let action=actions.find(x=>x.url===a.key);externalActionSelected(action)},items=actions.map(action=>({key:action.url,label:(0,jsx_runtime.jsxs)("span",{className:ActionButtonMenu_module_default().item,children:[action.icon&&(0,jsx_runtime.jsx)("img",{className:ActionButtonMenu_module_default().icon,src:action.icon,alt:action.title})," ",action.title]})}));showFollowItem&&items.unshift({key:FOLLOW_KEY,label:(0,jsx_runtime.jsxs)("span",{className:ActionButtonMenu_module_default().item,children:[(0,jsx_runtime.jsx)(HeartOutlined.Z,{className:ActionButtonMenu_module_default().icon})," Follow this stream"]})}),showNotifyItem&&items.unshift({key:NOTIFY_KEY,label:(0,jsx_runtime.jsxs)("span",{className:ActionButtonMenu_module_default().item,children:[(0,jsx_runtime.jsx)(BellOutlined.Z,{className:ActionButtonMenu_module_default().icon}),"Notify when live"]})});let menu=(0,jsx_runtime.jsx)(es_menu.Z,{items:items,onClick:onMenuClick});return(0,jsx_runtime.jsx)(dropdown.Z,{overlay:menu,placement:"bottomRight",trigger:["click"],className:ActionButtonMenu_module_default().menu,children:(0,jsx_runtime.jsx)("div",{className:ActionButtonMenu_module_default().buttonWrap,children:(0,jsx_runtime.jsx)(es_button.Z,{type:"default",onClick:e=>e.preventDefault(),size:"large",icon:(0,jsx_runtime.jsx)(EllipsisOutlined.Z,{size:6,style:{rotate:"90deg"}})})})})};var space=__webpack_require__(26713),es_alert=__webpack_require__(14670),input=__webpack_require__(69677),FollowModal_module=__webpack_require__(66009),FollowModal_module_default=__webpack_require__.n(FollowModal_module);let FollowModal=param=>{let{handleClose,account,name}=param,[remoteAccount,setRemoteAccount]=(0,react.useState)(null),[valid,setValid]=(0,react.useState)(!1),[loading,setLoading]=(0,react.useState)(!1),[errorMessage,setErrorMessage]=(0,react.useState)(null),handleAccountChange=a=>{setRemoteAccount(a),function(a){let sanitized=a.replace(/^@+/,"");return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(sanitized).toLowerCase())}(a)?setValid(!0):setValid(!1)},joinButtonPressed=()=>{window.open("https://owncast.online/join-fediverse","_blank")},remoteFollowButtonPressed=async()=>{if(valid){setLoading(!0);try{let sanitizedAccount=remoteAccount.replace(/^@+/,""),rawResponse=await fetch("/api/remotefollow",{method:"POST",body:JSON.stringify({account:sanitizedAccount})}),result=await rawResponse.json();if(result.redirectUrl&&(window.open(result.redirectUrl,"_blank"),handleClose()),!result.success){setErrorMessage(result.message),setLoading(!1);return}if(!result.redirectUrl){setErrorMessage("Unable to follow."),setLoading(!1);return}}catch(e){setErrorMessage(e.message)}setLoading(!1)}};return(0,jsx_runtime.jsxs)(space.Z,{direction:"vertical",children:[(0,jsx_runtime.jsxs)("div",{className:FollowModal_module_default().header,children:["By following this stream you'll get notified on the Fediverse when it goes live. Now is a great time to",(0,jsx_runtime.jsx)("a",{href:"https://owncast.online/join-fediverse",target:"_blank",rel:"noreferrer",children:"learn about the Fediverse"}),"if it's new to you."]}),(0,jsx_runtime.jsxs)(spin.Z,{spinning:loading,children:[errorMessage&&(0,jsx_runtime.jsx)(es_alert.Z,{message:"Follow Error",description:errorMessage,type:"error",showIcon:!0}),(0,jsx_runtime.jsxs)("div",{className:FollowModal_module_default().account,children:[(0,jsx_runtime.jsx)("img",{src:"/logo",alt:"logo",className:FollowModal_module_default().logo}),(0,jsx_runtime.jsxs)("div",{className:FollowModal_module_default().username,children:[(0,jsx_runtime.jsx)("div",{className:FollowModal_module_default().name,children:name}),(0,jsx_runtime.jsx)("div",{children:account})]})]}),(0,jsx_runtime.jsxs)("div",{children:[(0,jsx_runtime.jsx)("div",{className:FollowModal_module_default().instructions,children:"Enter your username @server to follow"}),(0,jsx_runtime.jsx)(input.Z,{value:remoteAccount,size:"large",onChange:e=>handleAccountChange(e.target.value),placeholder:"Your fediverse account @account@server",defaultValue:remoteAccount}),(0,jsx_runtime.jsx)("div",{className:FollowModal_module_default().footer,children:"You'll be redirected to your Fediverse server and asked to confirm the action."})]}),(0,jsx_runtime.jsxs)(space.Z,{className:FollowModal_module_default().buttons,children:[(0,jsx_runtime.jsx)(es_button.Z,{disabled:!valid,type:"primary",onClick:remoteFollowButtonPressed,children:"Follow"}),(0,jsx_runtime.jsx)(es_button.Z,{onClick:joinButtonPressed,type:"primary",children:"Join the Fediverse"})]})]})]})},{Content:AntContent}=layout.Z,BrowserNotifyModal=dynamic_default()(()=>__webpack_require__.e(6160).then(__webpack_require__.bind(__webpack_require__,66160)).then(mod=>mod.BrowserNotifyModal),{loadableGenerated:{webpack:()=>[66160]}}),NotifyReminderPopup=dynamic_default()(()=>__webpack_require__.e(7815).then(__webpack_require__.bind(__webpack_require__,17815)).then(mod=>mod.NotifyReminderPopup),{loadableGenerated:{webpack:()=>[17815]}}),OwncastPlayer=dynamic_default()(()=>Promise.all([__webpack_require__.e(2544),__webpack_require__.e(7902),__webpack_require__.e(2239),__webpack_require__.e(7018)]).then(__webpack_require__.bind(__webpack_require__,8888)).then(mod=>mod.OwncastPlayer),{loadableGenerated:{webpack:()=>[8888]}}),Content_ChatContainer=dynamic_default()(()=>Promise.all([__webpack_require__.e(1272),__webpack_require__.e(8700),__webpack_require__.e(2852),__webpack_require__.e(4977),__webpack_require__.e(1496)]).then(__webpack_require__.bind(__webpack_require__,94977)).then(mod=>mod.ChatContainer),{loadableGenerated:{webpack:()=>[94977]}}),DesktopContent=param=>{let{name,streamTitle,summary,tags,socialHandles,extraPageContent}=param,aboutTabContent=(0,jsx_runtime.jsx)(CustomPageContent,{content:extraPageContent}),followersTabContent=(0,jsx_runtime.jsx)(FollowerCollection,{name:name});return(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)("div",{className:Content_module_default().lowerHalf,children:(0,jsx_runtime.jsx)(ContentHeader,{name:name,title:streamTitle,summary:summary,tags:tags,links:socialHandles,logo:"/logo"})}),(0,jsx_runtime.jsx)("div",{className:Content_module_default().lowerSection,children:(0,jsx_runtime.jsx)(tabs.Z,{defaultActiveKey:"0",items:[{label:"About",key:"2",children:aboutTabContent},{label:"Followers",key:"3",children:followersTabContent}]})})]})},MobileContent=param=>{let{name,streamTitle,summary,tags,socialHandles,extraPageContent,messages,currentUser,showChat,actions,setExternalActionToDisplay,setShowNotifyPopup,setShowFollowModal}=param;if(!currentUser)return null;let mobileContentRef=(0,react.useRef)(),{id,displayName}=currentUser,chatContent=showChat&&(0,jsx_runtime.jsx)(Content_ChatContainer,{messages:messages,usernameToHighlight:displayName,chatUserId:id,isModerator:!1}),aboutTabContent=(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)(ContentHeader,{name:name,title:streamTitle,summary:summary,tags:tags,links:socialHandles,logo:"/logo"}),(0,jsx_runtime.jsx)(CustomPageContent,{content:extraPageContent})]}),followersTabContent=(0,jsx_runtime.jsx)(FollowerCollection,{name:name}),height="".concat(function(ref){let[contentH,setContentH]=(0,react.useState)(0),handleResize=()=>{if(!ref.current)return;let fromTop=ref.current.getBoundingClientRect().top,{innerHeight}=window;setContentH(innerHeight-fromTop)};return(0,react.useEffect)(()=>(handleResize(),window.addEventListener("resize",handleResize),()=>{window.removeEventListener("resize",handleResize)}),[]),contentH}(mobileContentRef),"px"),replacementTabBar=(props,DefaultTabBar)=>(0,jsx_runtime.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"start"},children:[(0,jsx_runtime.jsx)(DefaultTabBar,{...props,style:{width:"85%"}}),(0,jsx_runtime.jsx)(ActionButtonMenu,{showFollowItem:!0,showNotifyItem:!0,actions:actions,externalActionSelected:setExternalActionToDisplay,notifyItemSelected:()=>setShowNotifyPopup(!0),followItemSelected:()=>setShowFollowModal(!0)})]});return(0,jsx_runtime.jsx)("div",{className:classnames_default()(Content_module_default().lowerSectionMobile),ref:mobileContentRef,style:{height},children:(0,jsx_runtime.jsx)(tabs.Z,{defaultActiveKey:"0",items:[showChat&&{label:"Chat",key:"0",children:chatContent},{label:"About",key:"2",children:aboutTabContent},{label:"Followers",key:"3",children:followersTabContent}],renderTabBar:replacementTabBar})})},ExternalModal=param=>{let{externalActionToDisplay,setExternalActionToDisplay}=param,{title,description,url}=externalActionToDisplay;return(0,jsx_runtime.jsx)(Modal.Modal,{title:description||title,url:url,open:!!externalActionToDisplay,height:"80vh",handleCancel:()=>setExternalActionToDisplay(null)})},Content=()=>{let appState=(0,es.sJ)(ClientConfigStore.Q),clientConfig=(0,es.sJ)(ClientConfigStore.g1),isChatVisible=(0,es.sJ)(ClientConfigStore.pT),isChatAvailable=(0,es.sJ)(ClientConfigStore.di),currentUser=(0,es.sJ)(ClientConfigStore.db),[isMobile,setIsMobile]=(0,es.FV)(ClientConfigStore.hz),messages=(0,es.sJ)(ClientConfigStore.j$),online=(0,es.sJ)(ClientConfigStore.YW),{viewerCount,lastConnectTime,lastDisconnectTime,streamTitle}=(0,es.sJ)(ClientConfigStore.RI),{extraPageContent,version,name,summary,socialHandles,tags,externalActions,offlineMessage,chatDisabled,federation,notifications}=clientConfig,[showNotifyReminder,setShowNotifyReminder]=(0,react.useState)(!1),[showNotifyModal,setShowNotifyModal]=(0,react.useState)(!1),[showFollowModal,setShowFollowModal]=(0,react.useState)(!1),{account:fediverseAccount}=federation,{browser:browserNotifications}=notifications,{enabled:browserNotificationsEnabled}=browserNotifications,[externalActionToDisplay,setExternalActionToDisplay]=(0,react.useState)(null),externalActionSelected=action=>{let{openExternally,url}=action;openExternally?window.open(url,"_blank"):setExternalActionToDisplay(action)},externalActionButtons=externalActions.map(action=>(0,jsx_runtime.jsx)(ActionButton,{action:action,externalActionSelected:externalActionSelected},action.url)),incrementVisitCounter=()=>{let visits=parseInt((0,localStorage.$o)(localStorage.dA.userVisitCount),10);Number.isNaN(visits)&&(visits=0),(0,localStorage.qQ)(localStorage.dA.userVisitCount,visits+1),visits>2&&!(0,localStorage.$o)(localStorage.dA.hasDisplayedNotificationModal)&&setShowNotifyReminder(!0)},disableNotifyReminderPopup=()=>{setShowNotifyModal(!1),setShowNotifyReminder(!1),(0,localStorage.qQ)(localStorage.dA.hasDisplayedNotificationModal,!0)},checkIfMobile=()=>{let w=window.innerWidth;void 0===isMobile&&(w<=768?setIsMobile(!0):setIsMobile(!1)),!isMobile&&w<=768&&setIsMobile(!0),isMobile&&w>768&&setIsMobile(!1)};(0,react.useEffect)(()=>(incrementVisitCounter(),checkIfMobile(),window.addEventListener("resize",checkIfMobile),()=>{window.removeEventListener("resize",checkIfMobile)}),[]);let showChat=!chatDisabled&&isChatAvailable&&isChatVisible;return(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsxs)("div",{className:Content_module_default().main,children:[(0,jsx_runtime.jsx)(spin.Z,{wrapperClassName:Content_module_default().loadingSpinner,size:"large",spinning:appState.appLoading,children:(0,jsx_runtime.jsxs)(AntContent,{className:Content_module_default().root,children:[(0,jsx_runtime.jsxs)("div",{className:Content_module_default().mainSection,children:[(0,jsx_runtime.jsxs)("div",{className:Content_module_default().topSection,children:[online&&(0,jsx_runtime.jsx)(OwncastPlayer,{source:"/hls/stream.m3u8",online:online}),!online&&!appState.appLoading&&(0,jsx_runtime.jsx)(OfflineBanner.R,{streamName:name,customText:offlineMessage,notificationsEnabled:browserNotificationsEnabled,fediverseAccount:fediverseAccount,lastLive:lastDisconnectTime,onNotifyClick:()=>setShowNotifyModal(!0),onFollowClick:()=>setShowFollowModal(!0)}),online&&(0,jsx_runtime.jsx)(Statusbar.X,{online:online,lastConnectTime:lastConnectTime,lastDisconnectTime:lastDisconnectTime,viewerCount:viewerCount})]}),(0,jsx_runtime.jsx)("div",{className:Content_module_default().midSection,children:(0,jsx_runtime.jsxs)("div",{className:Content_module_default().buttonsLogoTitleSection,children:[!isMobile&&(0,jsx_runtime.jsxs)(ActionButtonRow,{children:[externalActionButtons,(0,jsx_runtime.jsx)(FollowButton,{size:"small",onClick:()=>setShowFollowModal(!0)}),(0,jsx_runtime.jsx)(NotifyReminderPopup,{open:showNotifyReminder,notificationClicked:()=>setShowNotifyModal(!0),notificationClosed:()=>disableNotifyReminderPopup(),children:(0,jsx_runtime.jsx)(NotifyButton,{onClick:()=>setShowNotifyModal(!0)})})]}),(0,jsx_runtime.jsx)(Modal.Modal,{title:"Notify",open:showNotifyModal,afterClose:()=>disableNotifyReminderPopup(),handleCancel:()=>disableNotifyReminderPopup(),children:(0,jsx_runtime.jsx)(BrowserNotifyModal,{})})]})}),isMobile?(0,jsx_runtime.jsx)(MobileContent,{name:name,streamTitle:streamTitle,summary:summary,tags:tags,socialHandles:socialHandles,extraPageContent:extraPageContent,messages:messages,currentUser:currentUser,showChat:showChat,actions:externalActions,setExternalActionToDisplay:externalActionSelected,setShowNotifyPopup:setShowNotifyModal,setShowFollowModal:setShowFollowModal}):(0,jsx_runtime.jsx)(DesktopContent,{name:name,streamTitle:streamTitle,summary:summary,tags:tags,socialHandles:socialHandles,extraPageContent:extraPageContent})]}),showChat&&!isMobile&&(0,jsx_runtime.jsx)(Sidebar,{})]})}),!isMobile&&!1]}),externalActionToDisplay&&(0,jsx_runtime.jsx)(ExternalModal,{externalActionToDisplay:externalActionToDisplay,setExternalActionToDisplay:setExternalActionToDisplay}),(0,jsx_runtime.jsx)(Modal.Modal,{title:"Follow ".concat(name),open:showFollowModal,handleCancel:()=>setShowFollowModal(!1),width:"550px",children:(0,jsx_runtime.jsx)(FollowModal,{account:fediverseAccount,name:name,handleClose:()=>setShowFollowModal(!1)})})]})};var Header=__webpack_require__(37527),modal=__webpack_require__(85402);let FatalErrorStateModal=param=>{let{title,message}=param;return(0,jsx_runtime.jsx)(modal.Z,{title:title,visible:!0,footer:null,closable:!1,keyboard:!1,width:900,centered:!0,className:"modal",children:(0,jsx_runtime.jsx)("p",{style:{fontSize:"1.3rem"},children:message})})},TitleNotifier=()=>{let chatMessages=(0,es.sJ)(ClientConfigStore.j$),serverStatus=(0,es.sJ)(ClientConfigStore.RI),backgrounded=!1,defaultTitle="",onBlur=()=>{backgrounded=!0,defaultTitle=window.document.title},onFocus=()=>{backgrounded=!1,window.document.title=defaultTitle},listenForEvents=()=>{window.addEventListener("blur",onBlur),window.addEventListener("focus",onFocus)};return(0,react.useEffect)(()=>(defaultTitle=window.document.title,listenForEvents(),()=>{window.removeEventListener("focus",onFocus),window.removeEventListener("blur",onBlur)}),[]),(0,react.useEffect)(()=>{let{online}=serverStatus;backgrounded&&online&&(window.document.title="\uD83D\uDCAC :: ".concat(defaultTitle))},[chatMessages]),(0,react.useEffect)(()=>{if(!backgrounded)return;let{online}=serverStatus;online?window.document.title=" \uD83D\uDFE2 :: ".concat(defaultTitle):online||(window.document.title=" \uD83D\uDD34 :: ".concat(defaultTitle))},[ClientConfigStore.RI]),null},ServerRenderedHydration=()=>(0,jsx_runtime.jsx)("script",{id:"server-side-hydration",dangerouslySetInnerHTML:{__html:"\n window.configHydration = {{.ServerConfigJSON}};\n window.statusHydration = {{.StatusJSON}};\n "}}),Theme=()=>{let clientConfig=(0,es.sJ)(ClientConfigStore.g1),{appearanceVariables,customStyles}=clientConfig,appearanceVars=Object.keys(appearanceVariables).filter(variable=>!!appearanceVariables[variable]).map(variable=>"--".concat(variable,": ").concat(appearanceVariables[variable]));return(0,jsx_runtime.jsx)("style",{dangerouslySetInnerHTML:{__html:"\n :root {\n ".concat(appearanceVars.join(";\n"),"\n }\n ").concat(customStyles,"\n ")}})},Main=()=>{let[isMobile]=(0,es.FV)(ClientConfigStore.hz),clientConfig=(0,es.sJ)(ClientConfigStore.g1),{name,title,customStyles,version}=clientConfig,isChatAvailable=(0,es.sJ)(ClientConfigStore.di),fatalError=(0,es.sJ)(ClientConfigStore.ap),layoutRef=(0,react.useRef)(null),{chatDisabled}=clientConfig;return(0,react.useEffect)(()=>{!function(observationRoot){let addNoReferrer=node=>{let existingAttributes=node.getAttribute("rel");node.setAttribute("rel","".concat(existingAttributes," noopener noreferrer"))};observationRoot.querySelectorAll("a").forEach(anchor=>addNoReferrer(anchor));let observer=new MutationObserver(function(mutationList){for(let mutation of mutationList)for(let node of mutation.addedNodes)node instanceof HTMLElement&&"a"===node.tagName.toLowerCase()&&addNoReferrer(node)});observer.observe(observationRoot,{attributes:!1,childList:!0,subtree:!0})}(layoutRef.current)},[]),(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsxs)(head_default(),{children:[(0,jsx_runtime.jsx)(ServerRenderedHydration,{}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"57x57",href:"/img/favicon/apple-icon-57x57.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"60x60",href:"/img/favicon/apple-icon-60x60.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"72x72",href:"/img/favicon/apple-icon-72x72.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"76x76",href:"/img/favicon/apple-icon-76x76.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"114x114",href:"/img/favicon/apple-icon-114x114.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"120x120",href:"/img/favicon/apple-icon-120x120.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"144x144",href:"/img/favicon/apple-icon-144x144.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"152x152",href:"/img/favicon/apple-icon-152x152.png"}),(0,jsx_runtime.jsx)("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/img/favicon/apple-icon-180x180.png"}),(0,jsx_runtime.jsx)("link",{rel:"icon",type:"image/png",sizes:"192x192",href:"/img/favicon/android-icon-192x192.png"}),(0,jsx_runtime.jsx)("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/img/favicon/favicon-32x32.png"}),(0,jsx_runtime.jsx)("link",{rel:"icon",type:"image/png",sizes:"96x96",href:"/img/favicon/favicon-96x96.png"}),(0,jsx_runtime.jsx)("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/img/favicon/favicon-16x16.png"}),(0,jsx_runtime.jsx)("link",{rel:"manifest",href:"/manifest.json"}),(0,jsx_runtime.jsx)("link",{href:"/api/auth/provider/indieauth"}),(0,jsx_runtime.jsx)("meta",{name:"msapplication-TileColor",content:"#ffffff"}),(0,jsx_runtime.jsx)("meta",{name:"msapplication-TileImage",content:"/img/favicon/ms-icon-144x144.png"}),(0,jsx_runtime.jsx)("meta",{name:"theme-color",content:"#ffffff"}),(0,jsx_runtime.jsx)("style",{children:customStyles}),(0,jsx_runtime.jsx)("base",{target:"_blank"})]}),(0,jsx_runtime.jsxs)(head_default(),{children:[name?(0,jsx_runtime.jsx)("title",{children:name}):(0,jsx_runtime.jsx)("title",{children:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{name:"description",content:"{{.Summary}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:title",content:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:site_name",content:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:url",content:"{{.RequestedURL}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:description",content:"{{.Summary}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:type",content:"video.other"}),(0,jsx_runtime.jsx)("meta",{property:"video:tag",content:"{{.TagsString}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:image",content:"{{.Thumbnail}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:image:url",content:"{{.Thumbnail}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:image:alt",content:"{{.Image}}"}),(0,jsx_runtime.jsx)("meta",{property:"og:video",content:"{{.RequestedURL}}/embed/video"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:secure_url",content:"{{.RequestedURL}}/embed/video"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:height",content:"315"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:width",content:"560"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:type",content:"text/html"}),(0,jsx_runtime.jsx)("meta",{property:"og:video:actor",content:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:title",content:"{{.Name}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:url",content:"{{.RequestedURL}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:description",content:"{{.Summary}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:image",content:"{{.Image}}"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:card",content:"player"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:player",content:"{{.RequestedURL}}/embed/video"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:player:width",content:"560"}),(0,jsx_runtime.jsx)("meta",{property:"twitter:player:height",content:"315"})]}),(0,jsx_runtime.jsx)(ClientConfigStore.me,{}),(0,jsx_runtime.jsx)(TitleNotifier,{}),(0,jsx_runtime.jsx)(Theme,{}),(0,jsx_runtime.jsxs)(layout.Z,{ref:layoutRef,style:{minHeight:"100vh"},children:[(0,jsx_runtime.jsx)(Header.h,{name:title||name,chatAvailable:isChatAvailable,chatDisabled:chatDisabled}),(0,jsx_runtime.jsx)(Content,{}),fatalError&&(0,jsx_runtime.jsx)(FatalErrorStateModal,{title:fatalError.title,message:fatalError.message}),!isMobile&&(0,jsx_runtime.jsx)(Footer,{version:version})]})]})};function Home(){return(0,jsx_runtime.jsx)(Main,{})}},13959:function(module){module.exports={button:"ActionButton_button__z5Z2c",icon:"ActionButton_icon__EPp7Q"}},97038:function(module){module.exports={item:"ActionButtonMenu_item__OJQdr",buttonWrap:"ActionButtonMenu_buttonWrap__WQ9kt",icon:"ActionButtonMenu_icon__edY1D",menu:"ActionButtonMenu_menu__GChDk"}},12270:function(module){module.exports={row:"ActionButtonRow_row__SiEGe"}},47900:function(module){module.exports={root:"ContentHeader_root__HaUG0",row:"ContentHeader_row__9Q8gH",logoTitleSection:"ContentHeader_logoTitleSection__Z8pUc",logo:"ContentHeader_logo__wo_HN",titleSection:"ContentHeader_titleSection___6Y15",title:"ContentHeader_title__E_DsI",subtitle:"ContentHeader_subtitle__n1Wew",tagList:"ContentHeader_tagList__rx3jY"}},79252:function(module){module.exports={root:"UserDropdown_root__IdxfQ","ant-space":"UserDropdown_ant-space__XJTZ3","ant-space-item":"UserDropdown_ant-space-item__w4nC2"}},66009:function(module){module.exports={header:"FollowModal_header__la1ji",buttons:"FollowModal_buttons__tt4Mc",instructions:"FollowModal_instructions__HiKFF",footer:"FollowModal_footer__AjucH",account:"FollowModal_account__cmHkm",logo:"FollowModal_logo__Ew8xK",username:"FollowModal_username__A_OTw",name:"FollowModal_name__Sf_TP"}},17725:function(module){module.exports={root:"Content_root__h1mNK",mainSection:"Content_mainSection__Gk78Y",topSection:"Content_topSection__JIZi0",lowerSection:"Content_lowerSection__BZHYI",lowerSectionMobile:"Content_lowerSectionMobile__hRr0_",leftCol:"Content_leftCol__U2TDq",loadingSpinner:"Content_loadingSpinner__mDlYC",main:"Content_main__XVf63"}},10808:function(module){module.exports={pageContentContainer:"CustomPageContent_pageContentContainer__EG4tU",customPageContent:"CustomPageContent_customPageContent__Mr981",summary:"CustomPageContent_summary___Zgps"}},67917:function(module){module.exports={footer:"Footer_footer__mPuvf",links:"Footer_links__7bBxV"}},31764:function(module){module.exports={header:"Header_header__U4Ro1",logo:"Header_logo__HLZ6Z"}},74933:function(module){module.exports={root:"Logo_root__jKiJC",container:"Logo_container__A4UYT",image:"Logo_image__Ahkom"}},77011:function(module){module.exports={spinner:"Modal_spinner__GiSS0",content:"Modal_content__h9my9"}},88335:function(module){module.exports={outerContainer:"OfflineBanner_outerContainer__3AbsB",innerContainer:"OfflineBanner_innerContainer__zTm13",bodyText:"OfflineBanner_bodyText__nNNy0",separator:"OfflineBanner_separator___j_Ss",lastLiveDate:"OfflineBanner_lastLiveDate___UZdO",clockIcon:"OfflineBanner_clockIcon__s0DB_",header:"OfflineBanner_header__Vu20o",footer:"OfflineBanner_footer__o3Zl5",actionLink:"OfflineBanner_actionLink__b4Mwa"}},12341:function(module){module.exports={root:"Sidebar_root__8HE0A"}},573:function(module){module.exports={link:"SocialLinks_link___CcSm",links:"SocialLinks_links__gOAb7"}},37970:function(module){module.exports={statusbar:"Statusbar_statusbar__AtVnB"}},21890:function(module){module.exports={followers:"FollowerCollection_followers__e_EUS",noFollowers:"FollowerCollection_noFollowers__UaCVW"}},69833:function(module){module.exports={follower:"SingleFollower_follower__EyBDI",avatar:"SingleFollower_avatar__V9jHG",account:"SingleFollower_account__Z66vo",placeholder:"SingleFollower_placeholder__CgsfJ"}}},function(__webpack_require__){__webpack_require__.O(0,[8939,3903,4267,4381,5938,6395,1082,5360,8245,8980,7466,9774,2888,179],function(){return __webpack_require__(__webpack_require__.s=48312)}),_N_E=__webpack_require__.O()}]); \ No newline at end of file diff --git a/static/web/_next/static/ph4_mrbl0ZrGoQjlOANsh/_buildManifest.js b/static/web/_next/static/kM1zyp7dZ5GrtcZElu_e4/_buildManifest.js similarity index 97% rename from static/web/_next/static/ph4_mrbl0ZrGoQjlOANsh/_buildManifest.js rename to static/web/_next/static/kM1zyp7dZ5GrtcZElu_e4/_buildManifest.js index 4c9c2dbea..b819eb8e2 100644 --- a/static/web/_next/static/ph4_mrbl0ZrGoQjlOANsh/_buildManifest.js +++ b/static/web/_next/static/kM1zyp7dZ5GrtcZElu_e4/_buildManifest.js @@ -1 +1 @@ -self.__BUILD_MANIFEST=function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){return{__rewrites:{beforeFiles:[],afterFiles:[{source:"/api/:path*"},{source:"/hls/:path*"},{source:"/img/:path*"},{source:"/logo"},{source:"/thumbnail.jpg"}],fallback:[]},"/":[b,a,c,f,g,i,l,m,q,"static/chunks/8980-3cb1279c083255bd.js",j,"static/css/4480c029d7516206.css","static/chunks/pages/index-ab7ac0d7f54b0da0.js"],"/_error":["static/chunks/pages/_error-f6dc51ff67bd7b60.js"],"/admin":[b,a,c,d,e,f,g,h,k,m,"static/chunks/8676-6e97d05fc151015d.js","static/chunks/pages/admin-0e657e7285c5f441.js"],"/admin/access-tokens":[b,a,c,d,e,"static/chunks/pages/admin/access-tokens-507268c8ce62ae11.js"],"/admin/actions":[b,a,c,d,"static/chunks/pages/admin/actions-f912a5e804dcde21.js"],"/admin/chat/messages":[r,b,a,c,d,e,g,s,"static/chunks/pages/admin/chat/messages-ac3b7b15477e65db.js"],"/admin/chat/users":[r,b,a,c,d,e,f,g,s,"static/chunks/pages/admin/chat/users-6dff4c5321058acc.js"],"/admin/config/appearance":[t,l,u,v,"static/css/6c8941159bdd16f6.css","static/chunks/pages/admin/config/appearance-e49f99ca8f536bbe.js"],"/admin/config-chat":["static/chunks/pages/admin/config-chat-755983d5b6e842f9.js"],"/admin/config-federation":["static/chunks/1829-ddb59c4a9d67f307.js","static/chunks/pages/admin/config-federation-70a6bc13fd03c13e.js"],"/admin/config-notify":["static/chunks/pages/admin/config-notify-e496e6445a73328f.js"],"/admin/config-public-details":[t,b,a,c,d,n,u,"static/chunks/1043-2e3b169ca17bc890.js","static/chunks/pages/admin/config-public-details-3d048cfc5bd2f76b.js"],"/admin/config-server-details":[w,"static/chunks/pages/admin/config-server-details-b209f204bd328ef7.js"],"/admin/config-social-items":[b,a,c,d,"static/chunks/pages/admin/config-social-items-6566ff1a9aaf4d45.js"],"/admin/config-storage":["static/chunks/pages/admin/config-storage-e78014d383041e93.js"],"/admin/config-video":[b,a,c,d,w,"static/chunks/7326-bdb5d5b1c1484746.js","static/chunks/pages/admin/config-video-286e9d2ece0b1cf1.js"],"/admin/federation/actions":[b,a,c,d,e,"static/chunks/pages/admin/federation/actions-cce7d362d2550235.js"],"/admin/federation/followers":[b,a,c,d,e,f,"static/chunks/pages/admin/federation/followers-d61d54dd1a4e7023.js"],"/admin/hardware-info":[o,e,f,h,k,p,n,"static/chunks/pages/admin/hardware-info-f221d210add098b4.js"],"/admin/help":[f,h,l,v,"static/chunks/7830-5a4c4a2766994b42.js","static/chunks/pages/admin/help-318c1648a82cee56.js"],"/admin/logs":[b,a,c,d,e,m,"static/chunks/pages/admin/logs-87d3e7fc978ada41.js"],"/admin/stream-health":[o,e,f,h,k,p,"static/chunks/2934-54a8abe3c589160f.js","static/chunks/pages/admin/stream-health-8ea39b3957d73136.js"],"/admin/upgrade":[b,a,c,d,"static/chunks/2069-4f96bdee483a378d.js","static/chunks/pages/admin/upgrade-c564e66ef9223b4f.js"],"/admin/viewer-info":[o,b,a,c,d,e,f,g,h,k,p,n,"static/chunks/pages/admin/viewer-info-c5a635507f1aa36e.js"],"/admin/webhooks":[b,a,c,d,"static/chunks/pages/admin/webhooks-975306690b3e568d.js"],"/embed/chat/readonly":[x,y,i,z,j,A,"static/css/a97531dfaf987e89.css","static/chunks/pages/embed/chat/readonly-e3485375e5479319.js"],"/embed/chat/readwrite":[x,y,a,i,z,"static/chunks/911-20c1d126c3ba8e12.js",j,A,"static/css/840d7a2c1c6fcb28.css","static/chunks/pages/embed/chat/readwrite-6f2fd82fd3af6034.js"],"/embed/video":["static/chunks/d6e1aeb5-9870ba7ecb54dc88.js",g,i,"static/css/7c735c05af084bb2.css","static/chunks/7902-885cf6f6566ca765.js",q,j,"static/chunks/2239-e43a7d36407cd91e.js","static/css/761481e63e7ebbee.css","static/chunks/pages/embed/video-1767323102bd7b5f.js"],sortedPages:["/","/_app","/_error","/admin","/admin/access-tokens","/admin/actions","/admin/chat/messages","/admin/chat/users","/admin/config/appearance","/admin/config-chat","/admin/config-federation","/admin/config-notify","/admin/config-public-details","/admin/config-server-details","/admin/config-social-items","/admin/config-storage","/admin/config-video","/admin/federation/actions","/admin/federation/followers","/admin/hardware-info","/admin/help","/admin/logs","/admin/stream-health","/admin/upgrade","/admin/viewer-info","/admin/webhooks","/embed/chat/readonly","/embed/chat/readwrite","/embed/video"]}}("static/chunks/3903-be84b196fbdd6896.js","static/chunks/8939-68ed8ad3bbaba860.js","static/chunks/4267-404767a937f3e527.js","static/chunks/3626-8b91f2ed93b2ec33.js","static/chunks/8091-13fa4874392fed60.js","static/chunks/4381-fda77cdbb4b7ef10.js","static/chunks/5938-72730bf9ebd63037.js","static/chunks/5315-a5668b2a312053b4.js","static/chunks/6395-c18ad4da3614148b.js","static/chunks/7466-56469cd134b9115e.js","static/chunks/4763-743d368ad9f9d445.js","static/chunks/1082-4166ccf641f72cd5.js","static/chunks/5360-9e7e6ab758d7eca6.js","static/chunks/7910-3f3c276ecf3d2fc6.js","static/chunks/3fff1979-279aba4885312db0.js","static/chunks/2139-cc4ba29e66f06c65.js","static/chunks/8245-7c4b7b17be73fb0b.js","static/chunks/29107295-8f8e17c44e039888.js","static/chunks/7635-616b226a662fd792.js","static/chunks/4ad82c5e-b84346470a5540c8.js","static/chunks/1943-f514190c21a17631.js","static/chunks/1938-3500bd8fa6a1c1fe.js","static/chunks/3286-1b6dc4028a8f3981.js","static/chunks/d3048c20-8dfd4907951480a1.js","static/chunks/d2094a0f-7b53e1b2758c381a.js","static/chunks/2852-e752a94f50869728.js","static/chunks/4977-451de52d7a14e4ee.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file +self.__BUILD_MANIFEST=function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){return{__rewrites:{beforeFiles:[],afterFiles:[{source:"/api/:path*"},{source:"/hls/:path*"},{source:"/img/:path*"},{source:"/logo"},{source:"/thumbnail.jpg"}],fallback:[]},"/":[b,a,c,f,g,i,l,m,q,"static/chunks/8980-3cb1279c083255bd.js",j,"static/css/4480c029d7516206.css","static/chunks/pages/index-15a83a454780b8f5.js"],"/_error":["static/chunks/pages/_error-f6dc51ff67bd7b60.js"],"/admin":[b,a,c,d,e,f,g,h,k,m,"static/chunks/8676-6e97d05fc151015d.js","static/chunks/pages/admin-0e657e7285c5f441.js"],"/admin/access-tokens":[b,a,c,d,e,"static/chunks/pages/admin/access-tokens-507268c8ce62ae11.js"],"/admin/actions":[b,a,c,d,"static/chunks/pages/admin/actions-f912a5e804dcde21.js"],"/admin/chat/messages":[r,b,a,c,d,e,g,s,"static/chunks/pages/admin/chat/messages-ac3b7b15477e65db.js"],"/admin/chat/users":[r,b,a,c,d,e,f,g,s,"static/chunks/pages/admin/chat/users-6dff4c5321058acc.js"],"/admin/config/appearance":[t,l,u,v,"static/css/6c8941159bdd16f6.css","static/chunks/pages/admin/config/appearance-e49f99ca8f536bbe.js"],"/admin/config-chat":["static/chunks/pages/admin/config-chat-755983d5b6e842f9.js"],"/admin/config-federation":["static/chunks/1829-ddb59c4a9d67f307.js","static/chunks/pages/admin/config-federation-70a6bc13fd03c13e.js"],"/admin/config-notify":["static/chunks/pages/admin/config-notify-e496e6445a73328f.js"],"/admin/config-public-details":[t,b,a,c,d,n,u,"static/chunks/1043-2e3b169ca17bc890.js","static/chunks/pages/admin/config-public-details-3d048cfc5bd2f76b.js"],"/admin/config-server-details":[w,"static/chunks/pages/admin/config-server-details-b209f204bd328ef7.js"],"/admin/config-social-items":[b,a,c,d,"static/chunks/pages/admin/config-social-items-6566ff1a9aaf4d45.js"],"/admin/config-storage":["static/chunks/pages/admin/config-storage-e78014d383041e93.js"],"/admin/config-video":[b,a,c,d,w,"static/chunks/7326-bdb5d5b1c1484746.js","static/chunks/pages/admin/config-video-286e9d2ece0b1cf1.js"],"/admin/federation/actions":[b,a,c,d,e,"static/chunks/pages/admin/federation/actions-cce7d362d2550235.js"],"/admin/federation/followers":[b,a,c,d,e,f,"static/chunks/pages/admin/federation/followers-d61d54dd1a4e7023.js"],"/admin/hardware-info":[o,e,f,h,k,p,n,"static/chunks/pages/admin/hardware-info-f221d210add098b4.js"],"/admin/help":[f,h,l,v,"static/chunks/7830-5a4c4a2766994b42.js","static/chunks/pages/admin/help-318c1648a82cee56.js"],"/admin/logs":[b,a,c,d,e,m,"static/chunks/pages/admin/logs-87d3e7fc978ada41.js"],"/admin/stream-health":[o,e,f,h,k,p,"static/chunks/2934-54a8abe3c589160f.js","static/chunks/pages/admin/stream-health-8ea39b3957d73136.js"],"/admin/upgrade":[b,a,c,d,"static/chunks/2069-4f96bdee483a378d.js","static/chunks/pages/admin/upgrade-c564e66ef9223b4f.js"],"/admin/viewer-info":[o,b,a,c,d,e,f,g,h,k,p,n,"static/chunks/pages/admin/viewer-info-c5a635507f1aa36e.js"],"/admin/webhooks":[b,a,c,d,"static/chunks/pages/admin/webhooks-975306690b3e568d.js"],"/embed/chat/readonly":[x,y,i,z,j,A,"static/css/a97531dfaf987e89.css","static/chunks/pages/embed/chat/readonly-e3485375e5479319.js"],"/embed/chat/readwrite":[x,y,a,i,z,"static/chunks/911-20c1d126c3ba8e12.js",j,A,"static/css/840d7a2c1c6fcb28.css","static/chunks/pages/embed/chat/readwrite-6f2fd82fd3af6034.js"],"/embed/video":["static/chunks/d6e1aeb5-9870ba7ecb54dc88.js",g,i,"static/css/7c735c05af084bb2.css","static/chunks/7902-885cf6f6566ca765.js",q,j,"static/chunks/2239-e43a7d36407cd91e.js","static/css/761481e63e7ebbee.css","static/chunks/pages/embed/video-1767323102bd7b5f.js"],sortedPages:["/","/_app","/_error","/admin","/admin/access-tokens","/admin/actions","/admin/chat/messages","/admin/chat/users","/admin/config/appearance","/admin/config-chat","/admin/config-federation","/admin/config-notify","/admin/config-public-details","/admin/config-server-details","/admin/config-social-items","/admin/config-storage","/admin/config-video","/admin/federation/actions","/admin/federation/followers","/admin/hardware-info","/admin/help","/admin/logs","/admin/stream-health","/admin/upgrade","/admin/viewer-info","/admin/webhooks","/embed/chat/readonly","/embed/chat/readwrite","/embed/video"]}}("static/chunks/3903-be84b196fbdd6896.js","static/chunks/8939-68ed8ad3bbaba860.js","static/chunks/4267-404767a937f3e527.js","static/chunks/3626-8b91f2ed93b2ec33.js","static/chunks/8091-13fa4874392fed60.js","static/chunks/4381-fda77cdbb4b7ef10.js","static/chunks/5938-72730bf9ebd63037.js","static/chunks/5315-a5668b2a312053b4.js","static/chunks/6395-c18ad4da3614148b.js","static/chunks/7466-56469cd134b9115e.js","static/chunks/4763-743d368ad9f9d445.js","static/chunks/1082-4166ccf641f72cd5.js","static/chunks/5360-9e7e6ab758d7eca6.js","static/chunks/7910-3f3c276ecf3d2fc6.js","static/chunks/3fff1979-279aba4885312db0.js","static/chunks/2139-cc4ba29e66f06c65.js","static/chunks/8245-7c4b7b17be73fb0b.js","static/chunks/29107295-8f8e17c44e039888.js","static/chunks/7635-616b226a662fd792.js","static/chunks/4ad82c5e-b84346470a5540c8.js","static/chunks/1943-f514190c21a17631.js","static/chunks/1938-3500bd8fa6a1c1fe.js","static/chunks/3286-1b6dc4028a8f3981.js","static/chunks/d3048c20-8dfd4907951480a1.js","static/chunks/d2094a0f-7b53e1b2758c381a.js","static/chunks/2852-e752a94f50869728.js","static/chunks/4977-451de52d7a14e4ee.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/static/web/_next/static/ph4_mrbl0ZrGoQjlOANsh/_ssgManifest.js b/static/web/_next/static/kM1zyp7dZ5GrtcZElu_e4/_ssgManifest.js similarity index 100% rename from static/web/_next/static/ph4_mrbl0ZrGoQjlOANsh/_ssgManifest.js rename to static/web/_next/static/kM1zyp7dZ5GrtcZElu_e4/_ssgManifest.js diff --git a/static/web/admin/access-tokens/index.html b/static/web/admin/access-tokens/index.html index 735789496..77fc23cc1 100644 --- a/static/web/admin/access-tokens/index.html +++ b/static/web/admin/access-tokens/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Access Tokens

Access tokens are used to allow external, 3rd party tools to perform specific actions on your Owncast server. They should be kept secure and never included in client code, instead they should be kept on a server that you control.
Read more about how to use these tokens, with examples, at our documentation.
NameTokenScopesLast Used
No data

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Access Tokens

Access tokens are used to allow external, 3rd party tools to perform specific actions on your Owncast server. They should be kept secure and never included in client code, instead they should be kept on a server that you control.
Read more about how to use these tokens, with examples, at our documentation.
NameTokenScopesLast Used
No data

\ No newline at end of file diff --git a/static/web/admin/actions/index.html b/static/web/admin/actions/index.html index 27444f999..d78ce8ed1 100644 --- a/static/web/admin/actions/index.html +++ b/static/web/admin/actions/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

External Actions

External action URLs are 3rd party UI you can display, embedded, into your Owncast page when a user clicks on a button to launch your action.
Read more about how to use actions, with examples, at our documentation.
NameDescriptionURLIconColorOpens
No data

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

External Actions

External action URLs are 3rd party UI you can display, embedded, into your Owncast page when a user clicks on a button to launch your action.
Read more about how to use actions, with examples, at our documentation.
NameDescriptionURLIconColorOpens
No data

\ No newline at end of file diff --git a/static/web/admin/chat/messages/index.html b/static/web/admin/chat/messages/index.html index 06f29c065..3d1e33520 100644 --- a/static/web/admin/chat/messages/index.html +++ b/static/web/admin/chat/messages/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Chat Messages

Manage the messages from viewers that show up on your stream.

Check multiple messages to change their visibility to:
Time
User
Message
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Chat Messages

Manage the messages from viewers that show up on your stream.

Check multiple messages to change their visibility to:
Time
User
Message
No data
\ No newline at end of file diff --git a/static/web/admin/chat/users/index.html b/static/web/admin/chat/users/index.html index 45b0c3aee..f417720ef 100644 --- a/static/web/admin/chat/users/index.html +++ b/static/web/admin/chat/users/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

When a stream is active and chat is enabled, connected chat clients will be displayed here.

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

When a stream is active and chat is enabled, connected chat clients will be displayed here.

\ No newline at end of file diff --git a/static/web/admin/config-chat/index.html b/static/web/admin/config-chat/index.html index e6111eb14..be8fe7231 100644 --- a/static/web/admin/config-chat/index.html +++ b/static/web/admin/config-chat/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file diff --git a/static/web/admin/config-federation/index.html b/static/web/admin/config-federation/index.html index 59e1196d2..6dc1b3173 100644 --- a/static/web/admin/config-federation/index.html +++ b/static/web/admin/config-federation/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file diff --git a/static/web/admin/config-notify/index.html b/static/web/admin/config-notify/index.html index 3d007f8a9..5dc437fed 100644 --- a/static/web/admin/config-notify/index.html +++ b/static/web/admin/config-notify/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Notifications

Let your viewers know when you go live by supporting any of the below notification channels. Learn more about live notifications.


The full url to your Owncast server is required to enable social features. Must use SSL (https). Once people start following your instance you should not change this.

The full url to your Owncast server is required to enable social features. Must use SSL (https). Once people start following your instance you should not change this.

Browser Alerts

Viewers can opt into being notified when you go live with their browser.

Not all browsers support this.

Enable browser notifications

The text to send when you go live.

Twitter

Let your Twitter followers know each time you go live.

Enable Twitter

The text to send when you go live.

Discord

Let your Discord channel know each time you go live.

Create a webhook under Edit Channel / Integrations on your Discord channel and provide it below.

Enable Discord

The webhook assigned to your channel.

The text to send when you go live.

Fediverse Social

Enabling the Fediverse social features will not just alert people to when you go live, but also enable other functionality.

Fediverse social features: Disabled

Custom

Build your own notifications by using custom webhooks.

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Notifications

Let your viewers know when you go live by supporting any of the below notification channels. Learn more about live notifications.


The full url to your Owncast server is required to enable social features. Must use SSL (https). Once people start following your instance you should not change this.

The full url to your Owncast server is required to enable social features. Must use SSL (https). Once people start following your instance you should not change this.

Browser Alerts

Viewers can opt into being notified when you go live with their browser.

Not all browsers support this.

Enable browser notifications

The text to send when you go live.

Twitter

Let your Twitter followers know each time you go live.

Enable Twitter

The text to send when you go live.

Discord

Let your Discord channel know each time you go live.

Create a webhook under Edit Channel / Integrations on your Discord channel and provide it below.

Enable Discord

The webhook assigned to your channel.

The text to send when you go live.

Fediverse Social

Enabling the Fediverse social features will not just alert people to when you go live, but also enable other functionality.

Fediverse social features: Disabled

Custom

Build your own notifications by using custom webhooks.

\ No newline at end of file diff --git a/static/web/admin/config-public-details/index.html b/static/web/admin/config-public-details/index.html index 3fc0b690d..1f3e75f37 100644 --- a/static/web/admin/config-public-details/index.html +++ b/static/web/admin/config-public-details/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

General Settings

The following are displayed on your site to describe your stream and its content. Learn more.

Custom Page Content

Edit the content of your page by using simple Markdown syntax.


\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

General Settings

The following are displayed on your site to describe your stream and its content. Learn more.

Custom Page Content

Edit the content of your page by using simple Markdown syntax.


\ No newline at end of file diff --git a/static/web/admin/config-server-details/index.html b/static/web/admin/config-server-details/index.html index 596341e11..395bbeb37 100644 --- a/static/web/admin/config-server-details/index.html +++ b/static/web/admin/config-server-details/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Server Settings

You should change your stream key from the default and keep it safe. For most people it's likely the other settings will not need to be changed.

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Server Settings

You should change your stream key from the default and keep it safe. For most people it's likely the other settings will not need to be changed.

\ No newline at end of file diff --git a/static/web/admin/config-social-items/index.html b/static/web/admin/config-social-items/index.html index e9642a412..cbdc6fa75 100644 --- a/static/web/admin/config-social-items/index.html +++ b/static/web/admin/config-social-items/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Social Items

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Social Items

\ No newline at end of file diff --git a/static/web/admin/config-storage/index.html b/static/web/admin/config-storage/index.html index dd14ed1ce..94d489740 100644 --- a/static/web/admin/config-storage/index.html +++ b/static/web/admin/config-storage/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Storage

Owncast supports optionally using external storage providers to stream your video. Learn more about this by visiting our Storage Documentation.

Configuring this incorrectly will likely cause your video to be unplayable. Double check the documentation for your storage provider on how to configure the bucket you created for Owncast.

Keep in mind this is for live streaming, not for archival, recording or VOD purposes.

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Storage

Owncast supports optionally using external storage providers to stream your video. Learn more about this by visiting our Storage Documentation.

Configuring this incorrectly will likely cause your video to be unplayable. Double check the documentation for your storage provider on how to configure the bucket you created for Owncast.

Keep in mind this is for live streaming, not for archival, recording or VOD purposes.

\ No newline at end of file diff --git a/static/web/admin/config-video/index.html b/static/web/admin/config-video/index.html index 87ccb4893..adac0c746 100644 --- a/static/web/admin/config-video/index.html +++ b/static/web/admin/config-video/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Video configuration

Before changing your video configuration visit the video documentation to learn how it impacts your stream performance. The general rule is to start conservatively by having one middle quality stream output variant and experiment with adding more of varied qualities.

Stream output

NameVideo bitrateCPU Usage
No name800 kbpsMedium

Latency Buffer

While it's natural to want to keep your latency as low as possible, you may experience reduced error tolerance and stability the lower you go. The lowest setting is not recommended.

For interactive live streams you may want to experiment with a lower latency, for non-interactive broadcasts you may want to increase it. Read to learn more.

LowestHighest

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Video configuration

Before changing your video configuration visit the video documentation to learn how it impacts your stream performance. The general rule is to start conservatively by having one middle quality stream output variant and experiment with adding more of varied qualities.

Stream output

NameVideo bitrateCPU Usage
No name800 kbpsMedium

Latency Buffer

While it's natural to want to keep your latency as low as possible, you may experience reduced error tolerance and stability the lower you go. The lowest setting is not recommended.

For interactive live streams you may want to experiment with a lower latency, for non-interactive broadcasts you may want to increase it. Read to learn more.

LowestHighest

\ No newline at end of file diff --git a/static/web/admin/config/appearance/index.html b/static/web/admin/config/appearance/index.html index f4a57eb38..aed7b3d81 100644 --- a/static/web/admin/config/appearance/index.html +++ b/static/web/admin/config/appearance/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
Loading...
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
Loading...
\ No newline at end of file diff --git a/static/web/admin/federation/actions/index.html b/static/web/admin/federation/actions/index.html index 7a1c0084f..876bffbad 100644 --- a/static/web/admin/federation/actions/index.html +++ b/static/web/admin/federation/actions/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Fediverse Actions

Below is a list of actions that were taken by others in response to your posts as well as people who requested to follow you.
ActionFromWhen
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Fediverse Actions

Below is a list of actions that were taken by others in response to your posts as well as people who requested to follow you.
ActionFromWhen
No data
\ No newline at end of file diff --git a/static/web/admin/federation/followers/index.html b/static/web/admin/federation/followers/index.html index 0a6e26263..897e3fdca 100644 --- a/static/web/admin/federation/followers/index.html +++ b/static/web/admin/federation/followers/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

The following accounts get notified when you go live or send a post.

NameURL
Added
Remove
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

The following accounts get notified when you go live or send a post.

NameURL
Added
Remove
No data
\ No newline at end of file diff --git a/static/web/admin/hardware-info/index.html b/static/web/admin/hardware-info/index.html index 25a6545ae..39c7681d5 100644 --- a/static/web/admin/hardware-info/index.html +++ b/static/web/admin/hardware-info/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Hardware Info


CPU
0%
Memory
0%
Disk
0%
Loading...
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Hardware Info


CPU
0%
Memory
0%
Disk
0%
Loading...
\ No newline at end of file diff --git a/static/web/admin/help/index.html b/static/web/admin/help/index.html index 5198ce784..df011d8a2 100644 --- a/static/web/admin/help/index.html +++ b/static/web/admin/help/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

How can we help you?

Troubleshooting

Fix your problems

Documentation

Read the Docs

Common tasks

I want to configure my owncast instance
Help configuring my broadcasting software
I want to embed my stream into another site
I want to customize my website
I want to tweak my video output
I want to use an external storage provider

Other

I found a bug
If you found a bug, then please let us know
I have a general question
Most general questions are answered in our FAQ or exist in our discussions
I want to build add-ons for Owncast
You can build your own bots, overlays, tools and add-ons with our developer APIs. 
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

How can we help you?

Troubleshooting

Fix your problems

Documentation

Read the Docs

Common tasks

I want to configure my owncast instance
Help configuring my broadcasting software
I want to embed my stream into another site
I want to customize my website
I want to tweak my video output
I want to use an external storage provider

Other

I found a bug
If you found a bug, then please let us know
I have a general question
Most general questions are answered in our FAQ or exist in our discussions
I want to build add-ons for Owncast
You can build your own bots, overlays, tools and add-ons with our developer APIs. 
\ No newline at end of file diff --git a/static/web/admin/index.html b/static/web/admin/index.html index c39936676..1e41b14fc 100644 --- a/static/web/admin/index.html +++ b/static/web/admin/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

No stream is active

You should start one.

Use your broadcasting software
Chat is disabled
Chat will continue to be disabled until you begin a live stream.
Find an audience on the Owncast Directory
List yourself in the Owncast Directory and show off your stream. Enable it in settings.
fediverse
Add your Owncast instance to the Fediverse
Enable Owncast social features to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.

News & Updates from Owncast

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

No stream is active

You should start one.

Use your broadcasting software
Chat is disabled
Chat will continue to be disabled until you begin a live stream.
Find an audience on the Owncast Directory
List yourself in the Owncast Directory and show off your stream. Enable it in settings.
fediverse
Add your Owncast instance to the Fediverse
Enable Owncast social features to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.

News & Updates from Owncast

\ No newline at end of file diff --git a/static/web/admin/logs/index.html b/static/web/admin/logs/index.html index 9331b8b5d..14f0389d5 100644 --- a/static/web/admin/logs/index.html +++ b/static/web/admin/logs/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file diff --git a/static/web/admin/stream-health/index.html b/static/web/admin/stream-health/index.html index e7b76687e..cd4717fbf 100644 --- a/static/web/admin/stream-health/index.html +++ b/static/web/admin/stream-health/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Stream Performance

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Stream Performance

\ No newline at end of file diff --git a/static/web/admin/upgrade/index.html b/static/web/admin/upgrade/index.html index 8c760af63..45bf6c3b3 100644 --- a/static/web/admin/upgrade/index.html +++ b/static/web/admin/upgrade/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Thu Jan 01 1970

Downloads

NameSize
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Thu Jan 01 1970

Downloads

NameSize
No data
\ No newline at end of file diff --git a/static/web/admin/viewer-info/index.html b/static/web/admin/viewer-info/index.html index af0af5445..9d38e608d 100644 --- a/static/web/admin/viewer-info/index.html +++ b/static/web/admin/viewer-info/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Viewer Info


Max viewers last stream
0
All-time max viewers
0
User AgentLocation
Watch Time
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Viewer Info


Max viewers last stream
0
All-time max viewers
0
User AgentLocation
Watch Time
No data
\ No newline at end of file diff --git a/static/web/admin/webhooks/index.html b/static/web/admin/webhooks/index.html index 90aef0191..e114d78cc 100644 --- a/static/web/admin/webhooks/index.html +++ b/static/web/admin/webhooks/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Webhooks

A webhook is a callback made to an external API in response to an event that takes place within Owncast. This can be used to build chat bots or sending automatic notifications that you've started streaming.
Read more about how to use webhooks, with examples, at our documentation.
URLEvents
No data

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Webhooks

A webhook is a callback made to an external API in response to an event that takes place within Owncast. This can be used to build chat bots or sending automatic notifications that you've started streaming.
Read more about how to use webhooks, with examples, at our documentation.
URLEvents
No data

\ No newline at end of file diff --git a/static/web/embed/chat/readonly/index.html b/static/web/embed/chat/readonly/index.html index a9e11c2ed..fa66e4a7b 100644 --- a/static/web/embed/chat/readonly/index.html +++ b/static/web/embed/chat/readonly/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/static/web/embed/chat/readwrite/index.html b/static/web/embed/chat/readwrite/index.html index 2a8293fc5..9b73fb465 100644 --- a/static/web/embed/chat/readwrite/index.html +++ b/static/web/embed/chat/readwrite/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/static/web/embed/video/index.html b/static/web/embed/video/index.html index e34a82ae7..41ef80752 100644 --- a/static/web/embed/video/index.html +++ b/static/web/embed/video/index.html @@ -1 +1 @@ -
This stream is offline. Check back soon!
\ No newline at end of file +
This stream is offline. Check back soon!
\ No newline at end of file diff --git a/static/web/index.html b/static/web/index.html index b1ead17f5..9e8dba34d 100644 --- a/static/web/index.html +++ b/static/web/index.html @@ -1,9 +1,9 @@ {{.Name}}
{{.Name}}
Logo
Preview
\ No newline at end of file +
Logo
Preview
\ No newline at end of file