summaryrefslogtreecommitdiff
path: root/Command/AddUrl.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-12-29 15:52:20 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-12-29 15:52:20 -0400
commitcbd86a2f2c9c666f718fbd72901f7216acf6557f (patch)
tree57724f6a985cd4ca9b3aac971ba91b282c2c1fb6 /Command/AddUrl.hs
parentceeff9ec03a1674ac7d5389ecafb3a2a5b3a4993 (diff)
importfeed: Support youtube playlists.
Diffstat (limited to 'Command/AddUrl.hs')
-rw-r--r--Command/AddUrl.hs33
1 files changed, 19 insertions, 14 deletions
diff --git a/Command/AddUrl.hs b/Command/AddUrl.hs
index 27ca72d1a..28f6ff741 100644
--- a/Command/AddUrl.hs
+++ b/Command/AddUrl.hs
@@ -98,20 +98,25 @@ performQuvi relaxed pageurl videourl file = ifAnnexed file addurl geturl
where
quviurl = setDownloader pageurl QuviDownloader
addurl (key, _backend) = next $ cleanup quviurl file key Nothing
- geturl = do
- key <- Backend.URL.fromUrl quviurl Nothing
- ifM (pure relaxed <||> Annex.getState Annex.fast)
- ( next $ cleanup quviurl file key Nothing
- , do
- tmp <- fromRepo $ gitAnnexTmpLocation key
- showOutput
- ok <- Transfer.download webUUID key (Just file) Transfer.forwardRetry $ const $ do
- liftIO $ createDirectoryIfMissing True (parentDir tmp)
- downloadUrl [videourl] tmp
- if ok
- then next $ cleanup quviurl file key (Just tmp)
- else stop
- )
+ geturl = next $ addUrlFileQuvi relaxed quviurl videourl file
+#endif
+
+#ifdef WITH_QUVI
+addUrlFileQuvi :: Bool -> URLString -> URLString -> FilePath -> Annex Bool
+addUrlFileQuvi relaxed quviurl videourl file = do
+ key <- Backend.URL.fromUrl quviurl Nothing
+ ifM (pure relaxed <||> Annex.getState Annex.fast)
+ ( cleanup quviurl file key Nothing
+ , do
+ tmp <- fromRepo $ gitAnnexTmpLocation key
+ showOutput
+ ok <- Transfer.download webUUID key (Just file) Transfer.forwardRetry $ const $ do
+ liftIO $ createDirectoryIfMissing True (parentDir tmp)
+ downloadUrl [videourl] tmp
+ if ok
+ then cleanup quviurl file key (Just tmp)
+ else return False
+ )
#endif
perform :: Bool -> URLString -> FilePath -> CommandPerform