From 2bfdd690e2808c3ac4fb038ba2f0dbea54cab2b7 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 31 Dec 2017 15:19:01 -0400 Subject: [PATCH] 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. --- Annex/YoutubeDl.hs | 13 +++++++++++-- CHANGELOG | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Annex/YoutubeDl.hs b/Annex/YoutubeDl.hs index 43e63dfd6e..95b6bf7625 100644 --- a/Annex/YoutubeDl.hs +++ b/Annex/YoutubeDl.hs @@ -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 diff --git a/CHANGELOG b/CHANGELOG index 34b91d00f3..97c94d9a3d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -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 Wed, 20 Dec 2017 12:11:46 -0400