honor --file when downloading with youtube-dl
This used to be done with quvi, and got broken in the transition.
This commit is contained in:
parent
22a9389bc7
commit
a7b4358c05
2 changed files with 14 additions and 11 deletions
|
@ -209,7 +209,7 @@ startWeb o urlstring = go $ fromMaybe bad $ parseURI urlstring
|
||||||
performWeb :: AddUrlOptions -> URLString -> FilePath -> Url.UrlInfo -> CommandPerform
|
performWeb :: AddUrlOptions -> URLString -> FilePath -> Url.UrlInfo -> CommandPerform
|
||||||
performWeb o url file urlinfo = ifAnnexed file addurl geturl
|
performWeb o url file urlinfo = ifAnnexed file addurl geturl
|
||||||
where
|
where
|
||||||
geturl = next $ isJust <$> addUrlFile (relaxedOption o) url urlinfo file
|
geturl = next $ isJust <$> addUrlFile (Just o) (relaxedOption o) url urlinfo file
|
||||||
-- TODO youtube-dl
|
-- TODO youtube-dl
|
||||||
addurl = addUrlChecked (relaxedOption o) url webUUID $ \k -> return $
|
addurl = addUrlChecked (relaxedOption o) url webUUID $ \k -> return $
|
||||||
(Url.urlExists urlinfo, Url.urlSize urlinfo == keySize k)
|
(Url.urlExists urlinfo, Url.urlSize urlinfo == keySize k)
|
||||||
|
@ -234,12 +234,13 @@ addUrlChecked relaxed url u checkexistssize key
|
||||||
stop
|
stop
|
||||||
)
|
)
|
||||||
|
|
||||||
{- Adds an url, normally to the specified FilePath. But, if youtube-dl
|
{- Downloads an url and adds it to the repository, normally at the specified
|
||||||
- supports the url, it will be written to a different file, based on the
|
- FilePath. But, if youtube-dl supports the url, it will be written to a
|
||||||
- title of the media.
|
- different file, based on the title of the media. Unless the user
|
||||||
|
- specified fileOption, which then forces using the FilePath.
|
||||||
-}
|
-}
|
||||||
addUrlFile :: Bool -> URLString -> Url.UrlInfo -> FilePath -> Annex (Maybe Key)
|
addUrlFile :: Maybe AddUrlOptions -> Bool -> URLString -> Url.UrlInfo -> FilePath -> Annex (Maybe Key)
|
||||||
addUrlFile relaxed url urlinfo file
|
addUrlFile mo relaxed url urlinfo file
|
||||||
| relaxed = checkCanAdd file $ do
|
| relaxed = checkCanAdd file $ do
|
||||||
liftIO $ createDirectoryIfMissing True (parentDir file)
|
liftIO $ createDirectoryIfMissing True (parentDir file)
|
||||||
nodownload url urlinfo file
|
nodownload url urlinfo file
|
||||||
|
@ -247,11 +248,11 @@ addUrlFile relaxed url urlinfo file
|
||||||
( checkCanAdd file $ do
|
( checkCanAdd file $ do
|
||||||
liftIO $ createDirectoryIfMissing True (parentDir file)
|
liftIO $ createDirectoryIfMissing True (parentDir file)
|
||||||
nodownload url urlinfo file
|
nodownload url urlinfo file
|
||||||
, downloadWeb url urlinfo file
|
, downloadWeb mo url urlinfo file
|
||||||
)
|
)
|
||||||
|
|
||||||
downloadWeb :: URLString -> Url.UrlInfo -> FilePath -> Annex (Maybe Key)
|
downloadWeb :: Maybe AddUrlOptions -> URLString -> Url.UrlInfo -> FilePath -> Annex (Maybe Key)
|
||||||
downloadWeb url urlinfo file =
|
downloadWeb mo url urlinfo file =
|
||||||
go =<< downloadWith' downloader urlkey webUUID url (AssociatedFile (Just file))
|
go =<< downloadWith' downloader urlkey webUUID url (AssociatedFile (Just file))
|
||||||
where
|
where
|
||||||
urlkey = addSizeUrlKey urlinfo $ Backend.URL.fromUrl url Nothing
|
urlkey = addSizeUrlKey urlinfo $ Backend.URL.fromUrl url Nothing
|
||||||
|
@ -279,7 +280,9 @@ downloadWeb url urlinfo file =
|
||||||
case dl of
|
case dl of
|
||||||
Right (Just mediafile) -> do
|
Right (Just mediafile) -> do
|
||||||
pruneTmpWorkDirBefore tmp (liftIO . nukeFile)
|
pruneTmpWorkDirBefore tmp (liftIO . nukeFile)
|
||||||
let dest = takeFileName mediafile
|
let dest = if isJust (fileOption <$> mo)
|
||||||
|
then file
|
||||||
|
else takeFileName mediafile
|
||||||
showDestinationFile dest
|
showDestinationFile dest
|
||||||
addWorkTree webUUID mediaurl dest mediakey (Just mediafile)
|
addWorkTree webUUID mediaurl dest mediakey (Just mediafile)
|
||||||
return $ Right $ Just mediakey
|
return $ Right $ Just mediakey
|
||||||
|
|
|
@ -170,7 +170,7 @@ performDownload opts cache todownload = case location todownload of
|
||||||
urlinfo <- if relaxedOption opts
|
urlinfo <- if relaxedOption opts
|
||||||
then pure Url.assumeUrlExists
|
then pure Url.assumeUrlExists
|
||||||
else Url.withUrlOptions (Url.getUrlInfo url)
|
else Url.withUrlOptions (Url.getUrlInfo url)
|
||||||
maybeToList <$> addUrlFile (relaxedOption opts) url urlinfo f
|
maybeToList <$> addUrlFile Nothing (relaxedOption opts) url urlinfo f
|
||||||
else do
|
else do
|
||||||
res <- tryNonAsync $ maybe
|
res <- tryNonAsync $ maybe
|
||||||
(error $ "unable to checkUrl of " ++ Remote.name r)
|
(error $ "unable to checkUrl of " ++ Remote.name r)
|
||||||
|
|
Loading…
Reference in a new issue