From ca8cc9feb92c63e6391126760b32638de6c68246 Mon Sep 17 00:00:00 2001 From: cak Date: Thu, 19 Dec 2019 05:18:37 -0500 Subject: [PATCH] Optimize search and load operations --- src/BookmarkOptions.kt | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/BookmarkOptions.kt b/src/BookmarkOptions.kt index 8c0fa18..31fb3b8 100644 --- a/src/BookmarkOptions.kt +++ b/src/BookmarkOptions.kt @@ -39,10 +39,21 @@ class BookmarkOptions( bookmarksPanel.model.refreshBookmarks() SwingUtilities.invokeLater { val bookmarks = bookmarksPanel.bookmarks - val highlightedProxyHistory = callbacks.proxyHistory.filter { it.highlight != null } val bookmarkRequests = bookmarks.map { callbacks.helpers.bytesToString(it.requestResponse.request) } - val bookmarksToAdd = highlightedProxyHistory - .filter { !bookmarkRequests.contains(callbacks.helpers.bytesToString(it.request)) }.toTypedArray() + val bookmarkResponses = + bookmarks.map { callbacks.helpers.bytesToString(it.requestResponse.response ?: ByteArray(0)) } + val proxyHistory = callbacks.proxyHistory.asSequence() + val bookmarksToAdd = proxyHistory + .filter { it.highlight != null } + .filterNot { + bookmarkRequests.contains(callbacks.helpers.bytesToString(it.request)) && + bookmarkResponses.contains( + callbacks.helpers.bytesToString(it.response) + ) + } + .distinct() + .toList() + .toTypedArray() bookmarksPanel.addBookmark(bookmarksToAdd) } } @@ -54,8 +65,13 @@ class BookmarkOptions( if (searchText.isNotEmpty()) { val filteredBookmarks = bookmarks .filter { - callbacks.helpers.bytesToString(it.requestResponse.request).toLowerCase().contains(searchText) && - callbacks.helpers.bytesToString(it.requestResponse.response).toLowerCase().contains( + it.url.toString().toLowerCase().contains(searchText) || + callbacks.helpers.bytesToString(it.requestResponse.request).toLowerCase().contains( + searchText + ) || + callbacks.helpers.bytesToString( + it.requestResponse.response ?: ByteArray(0) + ).toLowerCase().contains( searchText ) }.toMutableList()