rtorrent-state-0.1.0.0: Parsing and manipulation of rtorrent state file contents

Safe HaskellNone

Data.Rtorrent.StateFile

Synopsis

Documentation

overFilesIn :: FilePath -> StateMod -> IO [(FilePath, Maybe String)]Source

Takes a directory, StateFile modification function and does an ‘in-place’ modifications to all .rtorrent files it can find and parse in that directory. Returns the list of all file paths and any potential errors that with each.

getRtorrentFiles :: FilePath -> IO [FilePath]Source

Gets a list of all .rtorrent files in the specified directory.

withRtorrentState :: FilePath -> StateMod -> IO (Maybe String)Source

Attempts to read in the file at specified file path, change it with the user-supplied function and saved the file with changes.

In case the parsing fails, the result will be Just errMsg.

keepValid :: Map FilePath (Result StateFile) -> Map FilePath StateFileSource

Only keeps properly parsing results. Useful with parseFiles.

keepInvalid :: Map FilePath (Result StateFile) -> Map FilePath StringSource

Similar to keepValid but instead only keeps results that failed to parse and the reason.

parseFiles :: FilePath -> IO (Map FilePath (Result StateFile))Source

Given a directory path, produces a Map of file paths from individual files to their parsing results.

parseFile :: FilePath -> IO (Result StateFile)Source

Like parseFile' but throws away the FilePath: useful if we only play with single files.

parseFile' :: FilePath -> IO (FilePath, Result StateFile)Source

Parses a file and returns a pair of of its path and the parsing result. The path is useful if we're processing whole directories.

startTorrent :: StateModSource

Sets the torrent to started state.

stopTorrent :: StateModSource

Sets the torrent to stopped stated.

setTiedFile :: FilePath -> StateModSource

Changes the file the torrent is tied to.

getLoadedFile :: StateFile -> FilePathSource

Gets a path of the loaded file.

decodeState :: ByteString -> Result StateFileSource

Wrapper for decode which works for StateFiles.

encodeState :: StateFile -> ByteStringSource

Wrapper for encode which works for StateFiles.

See encodeState' for strict ByteString version.