bisc 0.2.0.0 → 0.2.1.0
raw patch · 2 files changed
+19/−16 lines, 2 filesdep −xdg-basedir
Dependencies removed: xdg-basedir
Files
- Main.hs +14/−11
- bisc.cabal +5/−5
Main.hs view
@@ -9,15 +9,14 @@ import Control.Monad (mapM_, filterM) import Control.Monad.Reader (ReaderT, runReaderT, asks) import System.FilePath (joinPath, takeBaseName, (</>))-import System.Directory (removeFile, getDirectoryContents, doesFileExist) import System.IO (readFile)+import System.Directory import Database.Selda import Database.Selda.SQLite -import qualified Data.Text as T-import qualified Data.Text.IO as T-import qualified System.Environment.XDG.BaseDir as X+import qualified Data.Text as T+import qualified Data.Text.IO as T data Settings = Settings@@ -38,7 +37,7 @@ main :: IO () main = do- config <- X.getUserConfigFile "bisc" "bisc.conf"+ config <- getXdgDirectory XdgConfig ("bisc" </> "bisc.conf") settings <- loadSettings config runReaderT clean settings @@ -83,16 +82,20 @@ deleteData :: [Text] -> Action (Int, [Text]) deleteData whitelist = do webengine <- asks webenginePath- appCache <- liftIO $ getDirectoryFiles (webengine </> "Application Cache")- indexedDB <- liftIO $ getDirectoryFiles (webengine </> "IndexedDB")- localStorage <- liftIO $ getDirectoryFiles (webengine </> "Local Storage")+ appCache <- liftIO $ listDirectoryAbs (webengine </> "Application Cache")+ indexedDB <- liftIO $ listDirectoryAbs (webengine </> "IndexedDB")+ localStorage <- liftIO $ listDirectoryAbs (webengine </> "Local Storage") let entries = appCache ++ indexedDB ++ localStorage badFiles = filterMaybe (fmap unlisted . domain) entries badDomains = mapMaybe domain badFiles- liftIO $ mapM_ removeFile badFiles+ liftIO $ print indexedDB+ liftIO $ mapM_ removePathForcibly badFiles return (length badFiles, nub badDomains) where+ listDirectoryAbs :: FilePath -> IO [FilePath]+ listDirectoryAbs dir = map (dir </>) <$> listDirectory dir+ maybeToBool :: Maybe Bool -> Bool maybeToBool Nothing = False maybeToBool (Just x) = x@@ -112,8 +115,8 @@ loadSettings :: FilePath -> IO Settings loadSettings path = do- configdir <- X.getUserConfigDir "qutebrowser"- datadir <- X.getUserDataDir "qutebrowser"+ configdir <- getXdgDirectory XdgConfig "qutebrowser"+ datadir <- getXdgDirectory XdgData "qutebrowser" let defaultWhitelist = joinPath [configdir, "whitelists", "cookies"] defaultWebengine = joinPath [datadir, "webengine"]
bisc.cabal view
@@ -1,8 +1,8 @@ name: bisc-version: 0.2.0.0+version: 0.2.1.0 synopsis: A small tool that clears qutebrowser cookies. description: - + Bisc clears qutebrowser cookies and javascript local storage by domains, stored in a whitelist. @@ -11,7 +11,7 @@ license-file: LICENSE author: Michele Guerini Rocco maintainer: rnhmjoj@inventati.org-copyright: Copyright (C) 2018 Michele Guerini Rocco+copyright: Copyright (C) 2019 Michele Guerini Rocco category: Utility build-type: Simple extra-source-files: README.md@@ -25,8 +25,8 @@ main-is: Main.hs build-depends: base ==4.* , selda ==0.3.*, selda-sqlite ==0.1.*,- xdg-basedir, filepath, directory,- text, mtl, configurator+ filepath, directory, text,+ mtl, configurator default-language: Haskell2010 default-extensions: DeriveGeneric, OverloadedStrings OverloadedLabels, FlexibleContexts