@@ -314,6 +314,7 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
314
314
}
315
315
return iDate .Before (jDate )
316
316
})
317
+ items = uniqueItems (items )
317
318
m .list .SetItems (items )
318
319
time .Sleep (1 * time .Second )
319
320
return m , nil
@@ -375,8 +376,9 @@ func (m Model) View() string {
375
376
376
377
// exportResults exposer results to user
377
378
func (m Model ) exportResults (stdOut bool ) {
378
- resp := make ([]domains.Response , len (m .list .Items ()))
379
- for k , v := range m .list .Items () {
379
+ items := uniqueItems (m .list .Items ())
380
+ resp := make ([]domains.Response , len (items ))
381
+ for k , v := range items {
380
382
resp [k ] = v .(domains.Response )
381
383
}
382
384
domains .CreateReport (resp , m .cfg .EnvQuery , m .cfg .report , stdOut )
@@ -398,3 +400,24 @@ func (m Model) ListCursorsEnabled(state bool) {
398
400
m .list .KeyMap .ShowFullHelp .SetEnabled (state )
399
401
m .list .SetShowHelp (state )
400
402
}
403
+
404
+ func uniqueItems (s []list.Item ) []list.Item {
405
+ encountered := map [string ]bool {}
406
+ uniqueItems := []list.Item {}
407
+
408
+ for _ , v := range s {
409
+ log .Debug ().Msgf ("Duplicate test: %v" , v )
410
+ if ! encountered [v .(domains.Response ).Domain ] {
411
+ encountered [v .(domains.Response ).Domain ] = true
412
+ }
413
+ }
414
+
415
+ for _ , v := range s {
416
+ if encountered [v .(domains.Response ).Domain ] {
417
+ uniqueItems = append (uniqueItems , v )
418
+ encountered [v .(domains.Response ).Domain ] = false
419
+ }
420
+ }
421
+
422
+ return uniqueItems
423
+ }
0 commit comments