diff --git a/backend/src/model/config/app.rs b/backend/src/model/config/app.rs index 0eed7e63a..3164b2c7f 100644 --- a/backend/src/model/config/app.rs +++ b/backend/src/model/config/app.rs @@ -290,6 +290,8 @@ impl AppConfig { self.access_token_secret = generate_secret(); self.encrypt_secret = <&[u8] as TryInto<[u8; 16]>>::try_into(&generate_secret()[0..16]).map_err(|err| TuliproxError::new(TuliproxErrorKind::Info, err.to_string()))?; self.prepare_paths(); + } else { + self.prepare_mapping_path(); } self.prepare_sources()?; @@ -315,11 +317,13 @@ impl AppConfig { } } + fn prepare_mapping_path(&self) { + let config = > as Access>::load(&self.config); + self.set_mapping_path(config.mapping_path.as_deref()); + } + fn prepare_paths(&self) { - { - let config = > as Access>::load(&self.config); - self.set_mapping_path(config.mapping_path.as_deref()); - } + self.prepare_mapping_path(); self.prepare_custom_stream_response(); } diff --git a/backend/src/processing/parser/hls.rs b/backend/src/processing/parser/hls.rs index fc33a4ae3..c0fc5680b 100644 --- a/backend/src/processing/parser/hls.rs +++ b/backend/src/processing/parser/hls.rs @@ -69,6 +69,11 @@ pub fn rewrite_hls(user: &ProxyUserCredentials, props: &RewriteHlsProps) -> Stri let password = &user.password; let mut result = Vec::new(); for line in props.content.lines() { + + if line.trim().is_empty() { + continue; + } + // skip comments if line.starts_with('#') { let rewritten = rewrite_uri_attrib(line, props); diff --git a/frontend/scss/_theme.scss b/frontend/scss/_theme.scss index d5eb4b8e5..423cc3571 100644 --- a/frontend/scss/_theme.scss +++ b/frontend/scss/_theme.scss @@ -115,7 +115,7 @@ --table-header-background-color: rgba(40, 50, 80, 0.55); --table-card-background-color: rgba(35, 35, 45, 0.55); - --table-alternate-background-color: rgba(25, 25, 30, 0.55); + --table-alternate-background-color: rgba(30, 30, 60, 0.55); --discord-color: #5865f2; --documentation-color: #2bbf5a; diff --git a/frontend/scss/app/components/_custom_dialog.scss b/frontend/scss/app/components/_custom_dialog.scss index dae4ab094..d64a3e13a 100644 --- a/frontend/scss/app/components/_custom_dialog.scss +++ b/frontend/scss/app/components/_custom_dialog.scss @@ -26,7 +26,7 @@ background-color: var(--card-background-color); filter: drop-shadow(6px 6px 6px var(--popup-shadow-color)); backdrop-filter: blur(6px); - --webkit-backdrop-filter: blur(6px); + -webkit-backdrop-filter: blur(6px); border: 1px solid var(--border-color); border-radius: var(--border-radius); diff --git a/frontend/scss/app/components/_login.scss b/frontend/scss/app/components/_login.scss index 929ff3b35..c22239502 100644 --- a/frontend/scss/app/components/_login.scss +++ b/frontend/scss/app/components/_login.scss @@ -1,4 +1,5 @@ @use "../../size"; + .tp__login-view { display: flex; flex-flow: column; @@ -11,11 +12,46 @@ border: 1px solid var(--border-color); border-radius: var(--border-radius); background-color: var(--card-background-color); + width: 400px; @media(max-width: size.$mobile-breakpoint) { width: 280px; } + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); + box-shadow: 0 8px 4px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -1px 0 rgba(255, 255, 255, 0.1), inset 0 0 10px 2px rgba(255, 255, 255, 0.1); + + &::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 1px; + background: linear-gradient( + 90deg, + transparent, + rgba(255, 255, 255, 0.4), + transparent + ); + } + + &::after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 1px; + height: 100%; + background: linear-gradient( + 180deg, + rgba(255, 255, 255, 0.4), + transparent, + rgba(255, 255, 255, 0.3) + ); + } + &__header { display: flex; flex-flow: column; @@ -68,4 +104,25 @@ height: 3.2rem; } } -} \ No newline at end of file +} + +$gradient-color: rgb(19, 29, 30); +$gradient-color77: rgb(12 24 25 / 77%); +.tp__background { + width: 100vw; + height: 100vh; + position: absolute; + overflow: hidden; + + background-color: var(--background-color); + background-image: + linear-gradient(30deg, $gradient-color 12%, transparent 12.5%, transparent 87%, $gradient-color 87.5%, $gradient-color), + linear-gradient(150deg, $gradient-color 12%, transparent 12.5%, transparent 87%, $gradient-color 87.5%, $gradient-color), + linear-gradient(30deg, $gradient-color 12%, transparent 12.5%, transparent 87%, $gradient-color 87.5%, $gradient-color), + linear-gradient(150deg, $gradient-color 12%, transparent 12.5%, transparent 87%, $gradient-color 87.5%, $gradient-color), + linear-gradient(60deg, $gradient-color77 25%, transparent 25.5%, transparent 75%, $gradient-color77 75%, $gradient-color77), + linear-gradient(60deg, $gradient-color77 25%, transparent 25.5%, transparent 75%, $gradient-color77 75%, $gradient-color77); + background-size: 64px 112px; + background-position: 0 0, 0 0, 32px 56px, 32px 56px, 0 0, 32px 56px; + +} diff --git a/frontend/src/app/components/login.rs b/frontend/src/app/components/login.rs index 4b80eaf81..cddce4600 100644 --- a/frontend/src/app/components/login.rs +++ b/frontend/src/app/components/login.rs @@ -78,6 +78,8 @@ pub fn Login() -> Html { } html! { + <> +
+ } }