|
- module IrcBot.RandomFileFinder where
-
- import System.Directory
- import System.Random
- import Data.List
- import Control.Monad.IO.Class
-
- getRandomFile :: String -> IO String
-
-
- getRandomFile directoryName =
- do
- let fullDirectoryName = "./.warehouse/" ++ directoryName
- acceptedDirectoryNames <- (listDirectory "./.warehouse") >>= \x -> return x
- print acceptedDirectoryNames
- let directoryExist = elem directoryName acceptedDirectoryNames
-
- if directoryExist then do
- directoryItems <- getDirectoryContents fullDirectoryName
- let directoryItemCount = (length directoryItems)
- print "directory item count is: "
- if directoryItemCount > 2 then do -- . and .. basically makes 2
- result <- randomRIO(2,(directoryItemCount-1)) :: IO Int -- 2 represents an index which is exludes 0,1 elements from file list (. and ..)
- let fileName = directoryItems !! result
- return $ ".warehouse/" ++ directoryName ++ "/" ++ fileName
- else return $ ""
- else return $ ""
|