diff options
author | Sam T <pxqr.sta@gmail.com> | 2013-07-17 03:13:23 +0400 |
---|---|---|
committer | Sam T <pxqr.sta@gmail.com> | 2013-07-17 03:13:23 +0400 |
commit | 36cac7b4646d64c485320f066e6fb6a2a54427d3 (patch) | |
tree | 2c2f825f38ab60770088ff6ee08da40eea41305f /src/Network/BitTorrent | |
parent | b2b6e8e2bef7c87f0c8026766eec92aab0ff1e3e (diff) |
+ Get torrent info with caching.
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 |