Skip to content

Commit

Permalink
ready for v3.2.3
Browse files Browse the repository at this point in the history
  • Loading branch information
marcopiovanello committed Dec 12, 2024
1 parent ac077ea commit d9cb018
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 6 deletions.
8 changes: 6 additions & 2 deletions frontend/src/Layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import ListItemIcon from '@mui/material/ListItemIcon'
import ListItemText from '@mui/material/ListItemText'
import Toolbar from '@mui/material/Toolbar'
import Typography from '@mui/material/Typography'
import { grey } from '@mui/material/colors'
import { grey, red } from '@mui/material/colors'
import { useMemo, useState } from 'react'
import { Link, Outlet } from 'react-router-dom'
import { settingsState } from './atoms/settings'
Expand All @@ -29,6 +29,7 @@ import ThemeToggler from './components/ThemeToggler'
import { useI18n } from './hooks/useI18n'
import Toaster from './providers/ToasterProvider'
import { useAtomValue } from 'jotai'
import { getAccentValue } from './utils'

export default function Layout() {
const [open, setOpen] = useState(false)
Expand All @@ -40,11 +41,14 @@ export default function Layout() {
createTheme({
palette: {
mode: settings.theme,
primary: {
main: getAccentValue(settings.accent)
},
background: {
default: settings.theme === 'light' ? grey[50] : '#121212'
},
},
}), [settings.theme]
}), [settings.theme, settings.accent]
)

const toggleDrawer = () => setOpen(state => !state)
Expand Down
13 changes: 13 additions & 0 deletions frontend/src/assets/i18n.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
german:
urlInput: Video URL
statusTitle: Status
Expand Down Expand Up @@ -126,6 +127,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
french:
urlInput: URL vidéo de YouTube ou d'un autre service pris en charge
statusTitle: Statut
Expand Down Expand Up @@ -189,6 +191,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
italian:
urlInput: URL Video (uno per linea)
statusTitle: Stato
Expand Down Expand Up @@ -249,6 +252,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
chinese:
urlInput: 视频 URL
statusTitle: 状态
Expand Down Expand Up @@ -310,6 +314,7 @@ languages:
如果直播已经开始,那么依然可以下载,但是不会记录下载进度。
直播开始后,将会转移到下载页面
livestreamExperimentalWarning: 实验性功能,可能存在未知Bug,请谨慎使用
accentSelect: 'Accent'
spanish:
urlInput: URL de YouTube u otro servicio compatible
statusTitle: Estado
Expand Down Expand Up @@ -369,6 +374,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
russian:
urlInput: URL-адрес YouTube или любого другого поддерживаемого сервиса
statusTitle: Статус
Expand Down Expand Up @@ -428,6 +434,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
korean:
urlInput: YouTube나 다른 지원되는 사이트의 URL
statusTitle: 상태
Expand Down Expand Up @@ -487,6 +494,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
japanese:
urlInput: YouTubeまたはサポート済み動画のURL
statusTitle: 状態
Expand Down Expand Up @@ -547,6 +555,7 @@ languages:
すでに開始されているライブストリームが提供された場合、ダウンロードは継続されますが進行状況は追跡されません。
ライブストリームが開始されると、ダウンロードページに移動されます。
livestreamExperimentalWarning: この機能は実験的なものです。何かが壊れるかもしれません!
accentSelect: 'Accent'
catalan:
urlInput: URL de YouTube o d'un altre servei compatible
statusTitle: Estat
Expand Down Expand Up @@ -606,6 +615,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
ukrainian:
urlInput: URL-адреса YouTube або будь-якого іншого підтримуваного сервісу
statusTitle: Статус
Expand Down Expand Up @@ -665,6 +675,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
polish:
urlInput: Adres URL YouTube lub innej obsługiwanej usługi
statusTitle: Status
Expand Down Expand Up @@ -724,6 +735,7 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
swedish:
urlInput: Videolänk (en per rad)
statusTitle: Status
Expand Down Expand Up @@ -789,3 +801,4 @@ languages:
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
11 changes: 10 additions & 1 deletion frontend/src/atoms/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,15 @@ export type Language = (typeof languages)[number]
export type Theme = 'light' | 'dark' | 'system'
export type ThemeNarrowed = 'light' | 'dark'

export const accents = ['default', 'red'] as const
export type Accent = (typeof accents)[number]

export interface SettingsState {
serverAddr: string
serverPort: number
language: Language
theme: ThemeNarrowed
accent: Accent
cliArgs: string
formatSelection: boolean
fileRenaming: boolean
Expand Down Expand Up @@ -146,14 +150,19 @@ const themeSelector = atom<ThemeNarrowed>((get) => {
return 'dark'
}
return 'light'
}
})

export const accentState = atomWithStorage<Accent>(
'accent-color',
localStorage.getItem('accent-color') as Accent ?? 'default',
)

export const settingsState = atom<SettingsState>((get) => ({
serverAddr: get(serverAddressState),
serverPort: get(serverPortState),
language: get(languageState),
theme: get(themeSelector),
accent: get(accentState),
cliArgs: get(latestCliArgumentsState),
formatSelection: get(formatSelectionState),
fileRenaming: get(fileRenamingState),
Expand Down
15 changes: 14 additions & 1 deletion frontend/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { blue, red } from '@mui/material/colors'
import { pipe } from 'fp-ts/lib/function'
import { Accent } from './atoms/settings'
import type { RPCResponse } from "./types"
import { ProcessStatus } from './types'

Expand Down Expand Up @@ -79,4 +81,15 @@ export const base64URLEncode = (s: string) => pipe(
s => String.fromCodePoint(...new TextEncoder().encode(s)),
btoa,
encodeURIComponent
)
)

export const getAccentValue = (accent: Accent) => {
switch (accent) {
case 'default':
return blue[700]
case 'red':
return red[600]
default:
return blue[700]
}
}
22 changes: 21 additions & 1 deletion frontend/src/views/Settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,11 @@ import {
} from 'rxjs'
import { rpcPollingTimeState } from '../atoms/rpc'
import {
Accent,
Language,
Theme,
accentState,
accents,
appTitleState,
enableCustomArgsState,
fileRenamingState,
Expand Down Expand Up @@ -65,6 +68,7 @@ export default function Settings() {
const [pollingTime, setPollingTime] = useAtom(rpcPollingTimeState)
const [language, setLanguage] = useAtom(languageState)
const [appTitle, setApptitle] = useAtom(appTitleState)
const [accent, setAccent] = useAtom(accentState)

const [theme, setTheme] = useAtom(themeState)

Expand Down Expand Up @@ -248,7 +252,7 @@ export default function Settings() {
Appearance
</Typography>
<Grid container spacing={2}>
<Grid item xs={12} md={6}>
<Grid item xs={12}>
<FormControl fullWidth>
<InputLabel>{i18n.t('languageSelect')}</InputLabel>
<Select
Expand Down Expand Up @@ -278,6 +282,22 @@ export default function Settings() {
</Select>
</FormControl>
</Grid>
<Grid item xs={12} md={6}>
<FormControl fullWidth>
<InputLabel>{i18n.t('accentSelect')}</InputLabel>
<Select
defaultValue={accent}
label={i18n.t('accentSelect')}
onChange={(e) => setAccent(e.target.value as Accent)}
>
{accents.map((accent) => (
<MenuItem key={accent} value={accent}>
{capitalize(accent)}
</MenuItem>
))}
</Select>
</FormControl>
</Grid>
</Grid>
<Typography variant="h6" color="primary" sx={{ mt: 2, mb: 0.5 }}>
General download settings
Expand Down
2 changes: 1 addition & 1 deletion server/rest/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ func (s *Service) DeleteTemplate(ctx context.Context, id string) error {

func (s *Service) GetVersion(ctx context.Context) (string, string, error) {
//TODO: load from realease properties file, or anything else outside code
const CURRENT_RPC_VERSION = "3.2.2"
const CURRENT_RPC_VERSION = "3.2.3"

result := make(chan string, 1)

Expand Down

0 comments on commit d9cb018

Please sign in to comment.