wikipedia4epub 0.0.7 → 0.0.8
raw patch · 4 files changed
+99/−1 lines, 4 filesnew-component:exe:wiki4e-mkepub-cachenew-component:exe:wiki4e-mkepub-firefox
Files
- src/wiki4e-mkepub-cache.hs +46/−0
- src/wiki4e-mkepub-firefox.hs +44/−0
- src/wiki4e-mkepub-subtree.hs +1/−0
- wikipedia4epub.cabal +8/−1
+ src/wiki4e-mkepub-cache.hs view
@@ -0,0 +1,46 @@+import Text.HTML.TagSoup+import System.Environment+import System.Directory+import System.FilePath+import Data.Maybe (catMaybes)+import Control.Monad (liftM)+import System.IO +import Network.URL+import Wiki4e.Commands+import Network.Wikipedia (isArticleURL)++defaultEbookName = "Wikipedia_Articles_From_Cache"++main = do+ name <- getProgName+ args <- getArgs+ case args of + [] -> cache2epub defaultEbookName+ ['-':_] -> usageHelp name+ ['/':_] -> usageHelp name+ [xs] -> cache2epub xs+ _ -> usageHelp name++usageHelp name = putStrLn $ "Usage: " ++ name ++ " [<Title Name of new e-book>]"++cache2epub bookName = do+ hSetBinaryMode stdout True+ config <- wiki4e_initConfig+ arts <- wiki4e_listCacheURLs config+ putStrLn "# STAGE 1/5 - Verify Articles..."+ wiki4e_fetchArticles config arts+ putStrLn "# STAGE 2/5 - Sanitize Articles..."+ wiki4e_sanitizeArticles config arts+ putStrLn "# STAGE 3/5 - Inspect Articles for Images..."+ imgs <- wiki4e_listArticlesImages config arts+ putStrLn "# STAGE 4/5 - Download Images..."+ wiki4e_fetchImages config imgs+ putStrLn "# STAGE 5/5 - Constructing EPUB..."+ wiki4e_createEpub config bookName arts imgs+ putStrLn "Done."++-- | It is expected that all articles are from english wikipedia+wiki4e_listCacheURLs :: Wiki4eConfig -> IO [URL]+wiki4e_listCacheURLs config = do+ files <- liftM (filter (\(c:_) -> c /= '.')) $ getDirectoryContents (w4confDirFetch config)+ return $ catMaybes $ map (importURL) (map (\x -> "http://en.wikipedia.org/wiki/"++x) files)
+ src/wiki4e-mkepub-firefox.hs view
@@ -0,0 +1,44 @@+import Text.HTML.TagSoup+import System.Environment+import System.Directory+import System.FilePath+import Data.List (nub)+import System.IO +import Network.URL+import Wiki4e.Commands+import Network.Wikipedia (isArticleURL)+import Web.Firefox++defaultEbookName = "Wikipedia_Articles_From_Firefox"++main = do+ name <- getProgName+ args <- getArgs+ case args of + [] -> firefox2epub defaultEbookName+ ['-':_] -> usageHelp name+ ['/':_] -> usageHelp name+ [xs] -> firefox2epub xs+ _ -> usageHelp name++usageHelp name = putStrLn $ "Usage: " ++ name ++ " [<Title Name of new e-book>]"++firefox2epub bookName = do+ hSetBinaryMode stdout True+ arts <- wiki4e_listFirefoxURLs+ config <- wiki4e_initConfig+ putStrLn "# STAGE 1/4 - Download Articles..."+ wiki4e_fetchArticles config arts+ putStrLn "# STAGE 2/4 - Sanitize Articles..."+ wiki4e_sanitizeArticles config arts+ putStrLn "# STAGE 3/4 - Download Images..."+ imgs <- wiki4e_listArticlesImages config arts+ wiki4e_fetchImages config imgs+ putStrLn "# STAGE 4/4 - Constructing EPUB..."+ wiki4e_createEpub config bookName arts imgs+ putStrLn "Done."++wiki4e_listFirefoxURLs :: IO [URL]+wiki4e_listFirefoxURLs = do+ xs <- listAllHistoryURLs+ return $ nub $ filter isArticleURL xs
src/wiki4e-mkepub-subtree.hs view
@@ -23,6 +23,7 @@ usageHelp name = putStrLn $ "Usage: " ++ name ++ " <Start URL>" subtree2epub cs l = do+ hSetBinaryMode stdout True let u = fromJust $ importURL cs config <- wiki4e_initConfig putStrLn $ "# INFO - download depth is hardcoded value = " ++ (show defaultDepth)
wikipedia4epub.cabal view
@@ -1,5 +1,5 @@ Name: wikipedia4epub-Version: 0.0.7+Version: 0.0.8 License: BSD3 License-File: LICENSE Homepage: http://rampa.sk/static/wikipedia4epub.html@@ -56,7 +56,14 @@ Network.Wikipedia Web.Firefox +Executable wiki4e-mkepub-firefox+ Hs-Source-Dirs: src+ Main-Is: wiki4e-mkepub-firefox.hs+ Executable wiki4e-mkepub-subtree Hs-Source-Dirs: src Main-Is: wiki4e-mkepub-subtree.hs +Executable wiki4e-mkepub-cache+ Hs-Source-Dirs: src+ Main-Is: wiki4e-mkepub-cache.hs