@@ -52,6 +52,7 @@ public final class BitComet extends AbstractDownloader {
5252 private String deviceToken ;
5353 private Semver serverVersion ;
5454 private final ExecutorService parallelService = Executors .newWorkStealingPool ();
55+ private final List <String > peerGroupsFilter = List .of ("peers_connected" , "ltseeds_connected" );
5556
5657 public BitComet (String id , Config config , AlertManager alertManager , HTTPUtil httpUtil , NatAddressProvider natAddressProvider ) {
5758 super (id , alertManager , natAddressProvider );
@@ -473,8 +474,9 @@ private long readHumanReadableValue(String value) {
473474
474475 @ Override
475476 public @ NotNull List <Peer > getPeers (@ NotNull Torrent torrent ) {
477+
476478 Map <String , Object > requirements = new HashMap <>();
477- requirements .put ("groups" , List . of ( "peers_connected" , "ltseeds_connected" ) );
479+ requirements .put ("groups" , peerGroupsFilter );
478480 requirements .put ("task_id" , torrent .getId ());
479481 requirements .put ("max_count" , String .valueOf (Integer .MAX_VALUE )); // 获取全量列表,因为我们需要检查所有 Peers
480482
@@ -493,8 +495,12 @@ private long readHumanReadableValue(String value) {
493495 if (peers .getPeers () == null ) {
494496 return Collections .emptyList ();
495497 }
496- return peers .getPeers ().stream ().map (peer -> new PeerImpl (
498+ var stream = peers .getPeers ()
499+ .stream ()
500+ .filter (dto -> peerGroupsFilter .contains (dto .getGroup ()));
501+ return stream .map (peer -> new PeerImpl (
497502 natTranslate (parseAddress (peer .getIp (), peer .getRemotePort (), peer .getListenPort ())),
503+
498504 ByteUtil .hexToByteArray (peer .getPeerId ()),
499505 peer .getClientType (),
500506 peer .getDlRate (),
0 commit comments