@@ -47,6 +47,13 @@ async def _get_items_to_remove(self, items: list) -> list:
4747
4848 return items_to_remove
4949
50+ def _get_limit (self , item : dict , specific_key : str , global_key : str ) -> float :
51+ """Get a limit from item, falling back to a global key."""
52+ limit = item .get (specific_key , - 1 )
53+ if limit <= 0 :
54+ limit = item .get (global_key , - 1 )
55+ return limit
56+
5057 def _is_completed (self , item : dict ) -> bool :
5158 """Check if an item has met its seeding goals."""
5259 state = item .get ("state" , "" )
@@ -55,9 +62,14 @@ def _is_completed(self, item: dict) -> bool:
5562
5663 # Additional sanity checks for ratio and seeding time
5764 ratio = item .get ("ratio" , 0 )
58- ratio_limit = item .get ("ratio_limit" , - 1 )
5965 seeding_time = item .get ("seeding_time" , 0 )
60- seeding_time_limit = item .get ("seeding_time_limit" , - 1 )
66+
67+ ratio_limit = self ._get_limit (item , "ratio_limit" , "max_ratio" )
68+ seeding_time_limit = self ._get_limit (
69+ item ,
70+ "seeding_time_limit" ,
71+ "max_seeding_time" ,
72+ )
6173
6274 ratio_limit_met = ratio >= ratio_limit > 0
6375 seeding_time_limit_met = seeding_time >= seeding_time_limit > 0
0 commit comments