diff options
author | Joey Hess <joey@kitenet.net> | 2013-07-31 12:19:00 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-07-31 12:19:00 -0400 |
commit | 79e8517738aca8e841e7cc0977d32a64a538bf21 (patch) | |
tree | ee47908be96a887d219aa77c951a0898e21e27de /Command/ImportFeed.hs | |
parent | 95b50b5e919bccccca3ae666f4d5e9d1418ca396 (diff) |
importfeed --force: re-download urls that have been seen before
Diffstat (limited to 'Command/ImportFeed.hs')
-rw-r--r-- | Command/ImportFeed.hs | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/Command/ImportFeed.hs b/Command/ImportFeed.hs index 27ccf07ff..7e59c556d 100644 --- a/Command/ImportFeed.hs +++ b/Command/ImportFeed.hs @@ -15,6 +15,7 @@ import qualified Data.Map as M import Data.Char import Common.Annex +import qualified Annex import Command import qualified Utility.Url as Url import Logs.Web @@ -68,12 +69,15 @@ data Cache = Cache } getCache :: Maybe String -> Annex Cache -getCache opttemplate = do - showSideAction "checking known urls" - us <- S.fromList <$> knownUrls - return $ Cache us tmpl +getCache opttemplate = ifM (Annex.getState Annex.force) + ( ret S.empty + , do + showSideAction "checking known urls" + ret =<< S.fromList <$> knownUrls + ) where tmpl = Utility.Format.gen $ fromMaybe defaultTemplate opttemplate + ret s = return $ Cache s tmpl findEnclosures :: URLString -> Annex (Maybe [ToDownload]) findEnclosures url = go =<< downloadFeed url @@ -96,19 +100,21 @@ downloadFeed url = do ) {- Avoids downloading any urls that are already known to be associated - - with a file in the annex. -} + - with a file in the annex, unless forced. -} downloadEnclosure :: Bool -> Cache -> ToDownload -> Annex () downloadEnclosure relaxed cache enclosure - | S.member url (knownurls cache) = noop - | otherwise = do + | S.member url (knownurls cache) = + whenM (Annex.getState Annex.force) go + | otherwise = go + where + url = location enclosure + go = do dest <- liftIO $ feedFile (template cache) enclosure showStart "addurl" dest ifM (addUrlFile relaxed url dest) ( showEndOk , showEndFail ) - where - url = location enclosure defaultTemplate :: String defaultTemplate = "${feedtitle}/${itemtitle}${extension}" |