@@ -459,7 +459,6 @@ use torrust_tracker_configuration::{AnnouncePolicy, Core, TORRENT_PEERS_LIMIT};
459
459
use torrust_tracker_primitives:: core:: { AnnounceData , ScrapeData } ;
460
460
use torrust_tracker_primitives:: peer;
461
461
use torrust_tracker_primitives:: swarm_metadata:: SwarmMetadata ;
462
- use torrust_tracker_primitives:: torrent_metrics:: TorrentsMetrics ;
463
462
464
463
/// The domain layer tracker service.
465
464
///
@@ -478,7 +477,7 @@ pub struct Tracker {
478
477
pub whitelist_authorization : Arc < whitelist:: authorization:: Authorization > ,
479
478
480
479
/// The in-memory torrents repository.
481
- in_memory_torrent_repository : Arc < InMemoryTorrentRepository > ,
480
+ pub in_memory_torrent_repository : Arc < InMemoryTorrentRepository > ,
482
481
483
482
/// The persistent torrents repository.
484
483
db_torrent_repository : Arc < DatabasePersistentTorrentRepository > ,
@@ -619,7 +618,9 @@ impl Tracker {
619
618
620
619
let stats = self . upsert_peer_and_get_stats ( info_hash, peer) ;
621
620
622
- let peers = self . get_peers_for ( info_hash, peer, peers_wanted. limit ( ) ) ;
621
+ let peers = self
622
+ . in_memory_torrent_repository
623
+ . get_peers_for ( info_hash, peer, peers_wanted. limit ( ) ) ;
623
624
624
625
AnnounceData {
625
626
peers,
@@ -638,7 +639,7 @@ impl Tracker {
638
639
639
640
for info_hash in info_hashes {
640
641
let swarm_metadata = match self . whitelist_authorization . authorize ( info_hash) . await {
641
- Ok ( ( ) ) => self . get_swarm_metadata ( info_hash) ,
642
+ Ok ( ( ) ) => self . in_memory_torrent_repository . get_swarm_metadata ( info_hash) ,
642
643
Err ( _) => SwarmMetadata :: zeroed ( ) ,
643
644
} ;
644
645
scrape_data. add_file ( info_hash, swarm_metadata) ;
@@ -684,40 +685,6 @@ impl Tracker {
684
685
drop ( self . db_torrent_repository . save ( & info_hash, completed) ) ;
685
686
}
686
687
}
687
-
688
- /// It returns the data for a `scrape` response.
689
- fn get_swarm_metadata ( & self , info_hash : & InfoHash ) -> SwarmMetadata {
690
- self . in_memory_torrent_repository . get_swarm_metadata ( info_hash)
691
- }
692
-
693
- /// # Context: Tracker
694
- ///
695
- /// Get torrent peers for a given torrent and client.
696
- ///
697
- /// It filters out the client making the request.
698
- fn get_peers_for ( & self , info_hash : & InfoHash , peer : & peer:: Peer , limit : usize ) -> Vec < Arc < peer:: Peer > > {
699
- self . in_memory_torrent_repository . get_peers_for ( info_hash, peer, limit)
700
- }
701
-
702
- /// # Context: Tracker
703
- ///
704
- /// Get torrent peers for a given torrent.
705
- #[ must_use]
706
- pub fn get_torrent_peers ( & self , info_hash : & InfoHash ) -> Vec < Arc < peer:: Peer > > {
707
- self . in_memory_torrent_repository . get_torrent_peers ( info_hash)
708
- }
709
-
710
- /// It calculates and returns the general `Tracker`
711
- /// [`TorrentsMetrics`]
712
- ///
713
- /// # Context: Tracker
714
- ///
715
- /// # Panics
716
- /// Panics if unable to get the torrent metrics.
717
- #[ must_use]
718
- pub fn get_torrents_metrics ( & self ) -> TorrentsMetrics {
719
- self . in_memory_torrent_repository . get_torrents_metrics ( )
720
- }
721
688
}
722
689
723
690
#[ must_use]
@@ -742,6 +709,7 @@ mod tests {
742
709
use bittorrent_primitives:: info_hash:: fixture:: gen_seeded_infohash;
743
710
use bittorrent_primitives:: info_hash:: InfoHash ;
744
711
use torrust_tracker_configuration:: TORRENT_PEERS_LIMIT ;
712
+ use torrust_tracker_primitives:: torrent_metrics:: TorrentsMetrics ;
745
713
use torrust_tracker_primitives:: DurationSinceUnixEpoch ;
746
714
use torrust_tracker_test_helpers:: configuration;
747
715
@@ -750,7 +718,7 @@ mod tests {
750
718
use crate :: core:: services:: { initialize_tracker, initialize_whitelist_manager} ;
751
719
use crate :: core:: torrent:: manager:: TorrentsManager ;
752
720
use crate :: core:: whitelist:: manager:: WhiteListManager ;
753
- use crate :: core:: { whitelist, TorrentsMetrics , Tracker } ;
721
+ use crate :: core:: { whitelist, Tracker } ;
754
722
755
723
fn public_tracker ( ) -> Tracker {
756
724
let config = configuration:: ephemeral_public ( ) ;
@@ -910,7 +878,7 @@ mod tests {
910
878
async fn should_collect_torrent_metrics ( ) {
911
879
let tracker = public_tracker ( ) ;
912
880
913
- let torrents_metrics = tracker. get_torrents_metrics ( ) ;
881
+ let torrents_metrics = tracker. in_memory_torrent_repository . get_torrents_metrics ( ) ;
914
882
915
883
assert_eq ! (
916
884
torrents_metrics,
@@ -932,7 +900,7 @@ mod tests {
932
900
933
901
let _ = tracker. upsert_peer_and_get_stats ( & info_hash, & peer) ;
934
902
935
- let peers = tracker. get_torrent_peers ( & info_hash) ;
903
+ let peers = tracker. in_memory_torrent_repository . get_torrent_peers ( & info_hash) ;
936
904
937
905
assert_eq ! ( peers, vec![ Arc :: new( peer) ] ) ;
938
906
}
@@ -975,7 +943,7 @@ mod tests {
975
943
let _ = tracker. upsert_peer_and_get_stats ( & info_hash, & peer) ;
976
944
}
977
945
978
- let peers = tracker. get_torrent_peers ( & info_hash) ;
946
+ let peers = tracker. in_memory_torrent_repository . get_torrent_peers ( & info_hash) ;
979
947
980
948
assert_eq ! ( peers. len( ) , 74 ) ;
981
949
}
@@ -989,7 +957,9 @@ mod tests {
989
957
990
958
let _ = tracker. upsert_peer_and_get_stats ( & info_hash, & peer) ;
991
959
992
- let peers = tracker. get_peers_for ( & info_hash, & peer, TORRENT_PEERS_LIMIT ) ;
960
+ let peers = tracker
961
+ . in_memory_torrent_repository
962
+ . get_peers_for ( & info_hash, & peer, TORRENT_PEERS_LIMIT ) ;
993
963
994
964
assert_eq ! ( peers, vec![ ] ) ;
995
965
}
@@ -1019,7 +989,9 @@ mod tests {
1019
989
let _ = tracker. upsert_peer_and_get_stats ( & info_hash, & peer) ;
1020
990
}
1021
991
1022
- let peers = tracker. get_peers_for ( & info_hash, & excluded_peer, TORRENT_PEERS_LIMIT ) ;
992
+ let peers = tracker
993
+ . in_memory_torrent_repository
994
+ . get_peers_for ( & info_hash, & excluded_peer, TORRENT_PEERS_LIMIT ) ;
1023
995
1024
996
assert_eq ! ( peers. len( ) , 74 ) ;
1025
997
}
@@ -1030,7 +1002,7 @@ mod tests {
1030
1002
1031
1003
let _ = tracker. upsert_peer_and_get_stats ( & sample_info_hash ( ) , & leecher ( ) ) ;
1032
1004
1033
- let torrent_metrics = tracker. get_torrents_metrics ( ) ;
1005
+ let torrent_metrics = tracker. in_memory_torrent_repository . get_torrents_metrics ( ) ;
1034
1006
1035
1007
assert_eq ! (
1036
1008
torrent_metrics,
@@ -1054,7 +1026,7 @@ mod tests {
1054
1026
let result_a = start_time. elapsed ( ) ;
1055
1027
1056
1028
let start_time = std:: time:: Instant :: now ( ) ;
1057
- let torrent_metrics = tracker. get_torrents_metrics ( ) ;
1029
+ let torrent_metrics = tracker. in_memory_torrent_repository . get_torrents_metrics ( ) ;
1058
1030
let result_b = start_time. elapsed ( ) ;
1059
1031
1060
1032
assert_eq ! (
0 commit comments