packages feed

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 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