diff options
Diffstat (limited to 'src/Network/BitTorrent')
-rw-r--r-- | src/Network/BitTorrent/Sessions.hs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Network/BitTorrent/Sessions.hs b/src/Network/BitTorrent/Sessions.hs index 5047f06c..4e58be5c 100644 --- a/src/Network/BitTorrent/Sessions.hs +++ b/src/Network/BitTorrent/Sessions.hs | |||
@@ -33,6 +33,7 @@ module Network.BitTorrent.Sessions | |||
33 | , getPeerCount | 33 | , getPeerCount |
34 | , getSwarm | 34 | , getSwarm |
35 | , getStorage | 35 | , getStorage |
36 | , getTorrentInfo | ||
36 | , openSwarmSession | 37 | , openSwarmSession |
37 | 38 | ||
38 | -- * Swarm | 39 | -- * Swarm |
@@ -250,6 +251,14 @@ getSwarm cs @ ClientSession {..} ih = do | |||
250 | getStorage :: ClientSession -> InfoHash -> IO Storage | 251 | getStorage :: ClientSession -> InfoHash -> IO Storage |
251 | getStorage cs ih = storage <$> getSwarm cs ih | 252 | getStorage cs ih = storage <$> getSwarm cs ih |
252 | 253 | ||
254 | getTorrentInfo :: ClientSession -> InfoHash -> IO (Maybe Torrent) | ||
255 | getTorrentInfo cs ih = do | ||
256 | tstatus <- torrentPresence cs ih | ||
257 | case tstatus of | ||
258 | Unknown -> return Nothing | ||
259 | Active (SwarmSession {..}) -> return $ Just torrentMeta | ||
260 | Registered (TorrentLoc {..}) -> Just <$> fromFile metafilePath | ||
261 | |||
253 | -- | Get the number of connected peers in the given swarm. | 262 | -- | Get the number of connected peers in the given swarm. |
254 | getSessionCount :: SwarmSession -> IO SessionCount | 263 | getSessionCount :: SwarmSession -> IO SessionCount |
255 | getSessionCount SwarmSession {..} = do | 264 | getSessionCount SwarmSession {..} = do |