module Wiki4e.Commands.EPUB (wiki4e_createEpub) where
import Network.URL
import Data.List (foldl')
import Codec.EBook
import qualified Data.ByteString.Lazy as STRL
import Wiki4e.Commands.Common
import Wiki4e.Commands.Images
import Wiki4e.Commands.Articles
wiki4e_createEpub :: Wiki4eConfig -> String -> [URL] -> [URL] -> IO ()
wiki4e_createEpub config bookName artURLs imgURLs = do
let book = emptyBook {
bookID = "http://localhost/"++bookName,
bookAuthor = "wiki4e-firefox-epub",
bookTitle = bookName
}
let xs = wiki4e_getArticleSanFiles config artURLs
let ys = wiki4e_getImgFiles config imgURLs
itemsA <- mapM (\(i,x) -> loadArticleFile i "wiki" x) $ zip [1..] xs
itemsI <- mapM (\(i,x) -> loadImgFile i "wiki/img" x) $ zip [(length xs + 1)..] ys
let bookFull = foldl' addItem2Book book (itemsA ++ itemsI)
let epubFName = bookName++".epub"
outdata <- book2Bin' bookFull
STRL.writeFile epubFName outdata
putStrLn $ epubFName ++ " constructed."