Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider adding error handling and caching for favicon URLs
The direct use of bookmark URLs in the favicon API call has several potential issues:
Consider implementing these improvements:
Consider implementing a caching mechanism for favicons to:
Would you like me to provide a caching implementation example?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@z1nc0r3 I think this is worth addressing. Use the existing image as a fallback.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And I also think these calls to grab icons might impact performance, if there are a lot of bookmarks.
@coderabbitai provide a caching implementation example please.
@z1nc0r3 please test performance.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jjw24, certainly! Here's an example of how you can implement caching for the favicons to improve performance:
First, add a dictionary to act as an in-memory cache:
Next, update the
GetFaviconPathmethod to utilize the cache:Then, update the
IcoPathassignment in yourResultobjects to use this method:This implementation:
Please remember to test the performance with your set of bookmarks to ensure the caching mechanism effectively improves load times.
Let me know if you have any questions or need further assistance!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah sure @jjw24. I'll try these changes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jjw24 I think performance wise it's fine. This pr only put the url as the image path, which will be loaded async from flow side. Because of this, caching doesn't really makes sense (it will be cached as the imagecache in flow if we do it correctly before).