@@ -476,7 +476,6 @@ def __init__(
476
476
limit = None ,
477
477
before = None ,
478
478
after = None ,
479
- oldest_first = None ,
480
479
user_id = None ,
481
480
action_type = None ,
482
481
):
@@ -485,7 +484,6 @@ def __init__(
485
484
if isinstance (after , datetime .datetime ):
486
485
after = Object (id = time_snowflake (after , high = True ))
487
486
488
- self .reverse = after is not None if oldest_first is None else oldest_first
489
487
self .guild = guild
490
488
self .loop = guild ._state .loop
491
489
self .request = guild ._state .http .get_audit_logs
@@ -496,51 +494,28 @@ def __init__(
496
494
self .after = after or OLDEST_OBJECT
497
495
self ._users = {}
498
496
self ._state = guild ._state
499
-
500
- self ._filter = None # entry dict -> bool
501
-
502
497
self .entries = asyncio .Queue ()
503
498
504
- if self .reverse :
505
- self ._strategy = self ._after_strategy
506
- if self .before :
507
- self ._filter = lambda m : int (m ["id" ]) < self .before .id
508
- else :
509
- self ._strategy = self ._before_strategy
510
- if self .after and self .after != OLDEST_OBJECT :
511
- self ._filter = lambda m : int (m ["id" ]) > self .after .id
512
-
513
- async def _before_strategy (self , retrieve ):
499
+ async def _retrieve_entries (self , retrieve ):
514
500
before = self .before .id if self .before else None
515
- data : AuditLogPayload = await self .request (
516
- self .guild .id ,
517
- limit = retrieve ,
518
- user_id = self .user_id ,
519
- action_type = self .action_type ,
520
- before = before ,
521
- )
522
-
523
- entries = data .get ("audit_log_entries" , [])
524
- if len (data ) and entries :
525
- if self .limit is not None :
526
- self .limit -= retrieve
527
- self .before = Object (id = int (entries [- 1 ]["id" ]))
528
- return data .get ("users" , []), entries
529
-
530
- async def _after_strategy (self , retrieve ):
531
501
after = self .after .id if self .after else None
532
502
data : AuditLogPayload = await self .request (
533
503
self .guild .id ,
534
504
limit = retrieve ,
535
505
user_id = self .user_id ,
536
506
action_type = self .action_type ,
507
+ before = before ,
537
508
after = after ,
538
509
)
510
+
539
511
entries = data .get ("audit_log_entries" , [])
540
512
if len (data ) and entries :
541
513
if self .limit is not None :
542
514
self .limit -= retrieve
543
- self .after = Object (id = int (entries [0 ]["id" ]))
515
+ if self .before or not self .after :
516
+ self .before = Object (id = int (entries [- 1 ]["id" ]))
517
+ if self .after or not self .before :
518
+ self .after = Object (id = int (entries [0 ]["id" ]))
544
519
return data .get ("users" , []), entries
545
520
546
521
async def next (self ) -> AuditLogEntry :
@@ -553,36 +528,23 @@ async def next(self) -> AuditLogEntry:
553
528
raise NoMoreItems ()
554
529
555
530
def _get_retrieve (self ):
556
- l = self .limit
557
- if l is None or l > 100 :
558
- r = 100
559
- else :
560
- r = l
561
- self .retrieve = r
562
- return r > 0
531
+ limit = self .limit or 100
532
+ self .retrieve = min (limit , 100 )
533
+ return self .retrieve > 0
563
534
564
535
async def _fill (self ):
565
536
from .user import User
566
537
567
538
if self ._get_retrieve ():
568
- users , data = await self ._strategy (self .retrieve )
539
+ users , data = await self ._retrieve_entries (self .retrieve )
569
540
if len (data ) < 100 :
570
541
self .limit = 0 # terminate the infinite loop
571
542
572
- if self .reverse :
573
- data = reversed (data )
574
- if self ._filter :
575
- data = filter (self ._filter , data )
576
-
577
543
for user in users :
578
544
u = User (data = user , state = self ._state )
579
545
self ._users [u .id ] = u
580
546
581
547
for element in data :
582
- # TODO: remove this if statement later
583
- if element ["action_type" ] is None :
584
- continue
585
-
586
548
await self .entries .put (
587
549
AuditLogEntry (data = element , users = self ._users , guild = self .guild )
588
550
)
0 commit comments