Logging in webUI, Archive view refactor (#127)
* test logging * test impl for logging * implemented "live logging", restyle templates dropdown * moved extract audio to downloadDialog, fixed labels * code refactoring * buffering logs
This commit is contained in:
@@ -32,8 +32,8 @@ import {
|
||||
useTransition
|
||||
} from 'react'
|
||||
import { useRecoilState, useRecoilValue } from 'recoil'
|
||||
import { customArgsState, downloadTemplateState, filenameTemplateState } from '../atoms/downloadTemplate'
|
||||
import { settingsState } from '../atoms/settings'
|
||||
import { customArgsState, downloadTemplateState, filenameTemplateState, savedTemplatesState } from '../atoms/downloadTemplate'
|
||||
import { latestCliArgumentsState, settingsState } from '../atoms/settings'
|
||||
import { availableDownloadPathsState, connectedState } from '../atoms/status'
|
||||
import FormatsGrid from '../components/FormatsGrid'
|
||||
import { useI18n } from '../hooks/useI18n'
|
||||
@@ -63,6 +63,7 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
const isConnected = useRecoilValue(connectedState)
|
||||
const availableDownloadPaths = useRecoilValue(availableDownloadPathsState)
|
||||
const downloadTemplate = useRecoilValue(downloadTemplateState)
|
||||
const savedTemplates = useRecoilValue(savedTemplatesState)
|
||||
|
||||
const [downloadFormats, setDownloadFormats] = useState<DLMetadata>()
|
||||
const [pickedVideoFormat, setPickedVideoFormat] = useState('')
|
||||
@@ -70,6 +71,8 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
const [pickedBestFormat, setPickedBestFormat] = useState('')
|
||||
|
||||
const [customArgs, setCustomArgs] = useRecoilState(customArgsState)
|
||||
const [, setCliArgs] = useRecoilState(latestCliArgumentsState)
|
||||
|
||||
const [downloadPath, setDownloadPath] = useState('')
|
||||
|
||||
const [filenameTemplate, setFilenameTemplate] = useRecoilState(
|
||||
@@ -81,7 +84,7 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
|
||||
const [isPlaylist, setIsPlaylist] = useState(false)
|
||||
|
||||
const cliArgs = useMemo(() =>
|
||||
const argsBuilder = useMemo(() =>
|
||||
new CliArguments().fromString(settings.cliArgs), [settings.cliArgs]
|
||||
)
|
||||
|
||||
@@ -108,7 +111,7 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
|
||||
client.download({
|
||||
url: immediate || url || workingUrl,
|
||||
args: `${cliArgs.toString()} ${toFormatArgs(codes)} ${downloadTemplate}`,
|
||||
args: `${argsBuilder.toString()} ${toFormatArgs(codes)} ${downloadTemplate}`,
|
||||
pathOverride: downloadPath ?? '',
|
||||
renameTo: settings.fileRenaming ? filenameTemplate : '',
|
||||
playlist: isPlaylist,
|
||||
@@ -313,9 +316,31 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
}
|
||||
</Grid>
|
||||
<Suspense>
|
||||
<ExtraDownloadOptions />
|
||||
{savedTemplates.length > 0 && <ExtraDownloadOptions />}
|
||||
</Suspense>
|
||||
<Grid container spacing={1} pt={2} justifyContent="space-between">
|
||||
<Grid item>
|
||||
<Grid item>
|
||||
<FormControlLabel
|
||||
control={<Checkbox onChange={() => setIsPlaylist(state => !state)} />}
|
||||
checked={isPlaylist}
|
||||
label={i18n.t('playlistCheckbox')}
|
||||
/>
|
||||
</Grid>
|
||||
<Grid item>
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Checkbox
|
||||
onChange={() => setCliArgs(argsBuilder.toggleExtractAudio().toString())}
|
||||
/>
|
||||
}
|
||||
checked={argsBuilder.extractAudio}
|
||||
onChange={() => setCliArgs(argsBuilder.toggleExtractAudio().toString())}
|
||||
disabled={settings.formatSelection}
|
||||
label={i18n.t('extractAudioCheckbox')}
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
<Grid item>
|
||||
<Button
|
||||
variant="contained"
|
||||
@@ -332,13 +357,6 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
}
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid item>
|
||||
<FormControlLabel
|
||||
control={<Checkbox onChange={() => setIsPlaylist(state => !state)} />}
|
||||
checked={isPlaylist}
|
||||
label={i18n.t('playlistCheckbox')}
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Paper>
|
||||
</Grid>
|
||||
|
||||
Reference in New Issue
Block a user