addurl: Fix encoding of filename queried from youtube-dl when in --fast mode.

And also now in non-fast mode, since it was just changed to query for the
filename separately.

And avoid processTranscript which mixed up stdout and stderr and could have
led to weirdness if there were warnings that didn't get suppressed.
This commit is contained in:
Joey Hess 2017-12-31 15:19:01 -04:00
parent 0b0d8ad54b
commit 2bfdd690e2
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 13 additions and 2 deletions

View file

@ -24,6 +24,7 @@ import Utility.HtmlDetect
import Logs.Transfer
import Network.URI
import Control.Concurrent.Async
-- Runs youtube-dl in a work directory, to download a single media file
-- from the url. Reutrns the path to the media file in the work directory.
@ -168,8 +169,16 @@ youtubeDlFileName' url
, Param "--get-filename"
, Param "--no-warnings"
]
(output, ok) <- liftIO $ processTranscript "youtube-dl"
(toCommand opts) Nothing
(Nothing, Just o, Just e, pid) <- liftIO $ createProcess
(proc "youtube-dl" (toCommand opts))
{ std_out = CreatePipe
, std_err = CreatePipe
}
output <- liftIO $ fmap fst $
hGetContentsStrict o
`concurrently`
hGetContentsStrict e
ok <- liftIO $ checkSuccessProcess pid
return $ case (ok, lines output) of
(True, (f:_)) | not (null f) -> Right f
_ -> nomedia

View file

@ -8,6 +8,8 @@ git-annex (6.20171215) UNRELEASED; urgency=medium
* addurl: When the file youtube-dl will download is already an annexed
file, don't download it again and fail to overwrite it, instead just do
nothing, like it used to when quvi was used.
* addurl: Fix encoding of filename queried from youtube-dl when in
--fast mode.
-- Joey Hess <id@joeyh.name> Wed, 20 Dec 2017 12:11:46 -0400