removed --no-mtime and -x switches in settings
Custom templates are powerful: --no-mtime has been set as default behavior (template named default), -x is another template named "audio only"
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import { styled } from '@mui/material';
|
||||
import MuiAppBar, { AppBarProps as MuiAppBarProps } from '@mui/material/AppBar';
|
||||
import { styled } from '@mui/material'
|
||||
import MuiAppBar, { AppBarProps as MuiAppBarProps } from '@mui/material/AppBar'
|
||||
|
||||
interface AppBarProps extends MuiAppBarProps {
|
||||
open?: boolean
|
||||
}
|
||||
|
||||
const drawerWidth = 240;
|
||||
const drawerWidth = 240
|
||||
|
||||
const AppBar = styled(MuiAppBar, {
|
||||
shouldForwardProp: (prop) => prop !== 'open',
|
||||
@@ -23,6 +23,6 @@ const AppBar = styled(MuiAppBar, {
|
||||
duration: theme.transitions.duration.enteringScreen,
|
||||
}),
|
||||
}),
|
||||
}));
|
||||
}))
|
||||
|
||||
export default AppBar
|
||||
@@ -26,19 +26,17 @@ import {
|
||||
Suspense,
|
||||
forwardRef,
|
||||
useEffect,
|
||||
useMemo,
|
||||
useRef,
|
||||
useState,
|
||||
useTransition
|
||||
} from 'react'
|
||||
import { useRecoilState, useRecoilValue } from 'recoil'
|
||||
import { customArgsState, downloadTemplateState, filenameTemplateState, savedTemplatesState } from '../atoms/downloadTemplate'
|
||||
import { latestCliArgumentsState, settingsState } from '../atoms/settings'
|
||||
import { settingsState } from '../atoms/settings'
|
||||
import { availableDownloadPathsState, connectedState } from '../atoms/status'
|
||||
import FormatsGrid from '../components/FormatsGrid'
|
||||
import { useI18n } from '../hooks/useI18n'
|
||||
import { useRPC } from '../hooks/useRPC'
|
||||
import { CliArguments } from '../lib/argsParser'
|
||||
import type { DLMetadata } from '../types'
|
||||
import { toFormatArgs } from '../utils'
|
||||
import ExtraDownloadOptions from './ExtraDownloadOptions'
|
||||
@@ -71,7 +69,6 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
const [pickedBestFormat, setPickedBestFormat] = useState('')
|
||||
|
||||
const [customArgs, setCustomArgs] = useRecoilState(customArgsState)
|
||||
const [, setCliArgs] = useRecoilState(latestCliArgumentsState)
|
||||
|
||||
const [downloadPath, setDownloadPath] = useState('')
|
||||
|
||||
@@ -83,10 +80,6 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
|
||||
const [isPlaylist, setIsPlaylist] = useState(false)
|
||||
|
||||
const argsBuilder = useMemo(() =>
|
||||
new CliArguments().fromString(settings.cliArgs), [settings.cliArgs]
|
||||
)
|
||||
|
||||
const { i18n } = useI18n()
|
||||
const { client } = useRPC()
|
||||
|
||||
@@ -112,7 +105,7 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
await new Promise(r => setTimeout(r, 10))
|
||||
await client.download({
|
||||
url: immediate || line,
|
||||
args: `${argsBuilder.toString()} ${toFormatArgs(codes)} ${downloadTemplate}`,
|
||||
args: `${toFormatArgs(codes)} ${downloadTemplate}`,
|
||||
pathOverride: downloadPath ?? '',
|
||||
renameTo: settings.fileRenaming ? filenameTemplate : '',
|
||||
playlist: isPlaylist,
|
||||
@@ -327,19 +320,6 @@ const DownloadDialog: FC<Props> = ({ open, onClose, onDownloadStart }) => {
|
||||
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
|
||||
|
||||
@@ -15,6 +15,12 @@ const ExtraDownloadOptions: React.FC = () => {
|
||||
disablePortal
|
||||
options={customTemplates.map(({ name, content }) => ({ label: name, content }))}
|
||||
autoHighlight
|
||||
defaultValue={
|
||||
customTemplates
|
||||
.filter(({ id, name }) => id === "0" || name === "default")
|
||||
.map(({ name, content }) => ({ label: name, content }))
|
||||
.at(0)
|
||||
}
|
||||
getOptionLabel={(option) => option.label}
|
||||
onChange={(_, value) => {
|
||||
setCustomArgs(value?.content!)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import AddCircleIcon from '@mui/icons-material/AddCircle'
|
||||
import BuildCircleIcon from '@mui/icons-material/BuildCircle'
|
||||
import DeleteForeverIcon from '@mui/icons-material/DeleteForever'
|
||||
import FolderZipIcon from '@mui/icons-material/FolderZip'
|
||||
import FormatListBulleted from '@mui/icons-material/FormatListBulleted'
|
||||
import ViewAgendaIcon from '@mui/icons-material/ViewAgenda'
|
||||
import FolderZipIcon from '@mui/icons-material/FolderZip'
|
||||
import {
|
||||
SpeedDial,
|
||||
SpeedDialAction,
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
import LogoutIcon from '@mui/icons-material/Logout'
|
||||
import { ListItemButton, ListItemIcon, ListItemText } from '@mui/material'
|
||||
import { useNavigate } from 'react-router-dom'
|
||||
import { useRecoilValue } from 'recoil'
|
||||
import { serverURL } from '../atoms/settings'
|
||||
import { useI18n } from '../hooks/useI18n'
|
||||
|
||||
export default function Logout() {
|
||||
const navigate = useNavigate()
|
||||
const url = useRecoilValue(serverURL)
|
||||
|
||||
const logout = async () => {
|
||||
localStorage.removeItem('token')
|
||||
|
||||
Reference in New Issue
Block a user