Add the ability to search for specific comments within posts.
Known issues:
- Just like on reddit, this does not work with comment sorting. The
sorting order is ignored during the search and changing the sorting
order after the search does not change anything. I do not think we
can fix this before reddit does, since in my understanding we rely
on them for the sorting. However we could implement a default
sorting method ourselves by taking the vector of comments returned
from the search and sorting it manually.
- The UI could be improved on mobile. On screens with a max width
inferior to 480 pixels, the comment search bar is displayed below
the comment sorting form. It would be great if we could make the
search bar have the same width as the whole comment sorting form
but I do not have the willpower to write any more css.
To know if the gate should be bypassed, we check if the link contains
the pasameter instead of checking if the link ends with it. This is
impostant, for example if we were to implement searching for comments
within a post. If we wanted to search for comments within a post that we
have bypassed the gate to view: the link will look like
https://libreddit-instance/r/somesub/comments/post-id/post-title&bypass_nsfw_landing/?q=some-query&type=comment
`user: nobody`: the least privileged account.
`read_only: true`: this container doesn't write anything to the filesystem, this removes a vector.
`security_opt`: disallows the container to grab more privileges.
`cap_drop`: this container doesn't need any capabilities, drop them.
`networks`: put `libreddit` into its own network so it cannot see other containers by default.
If we can't retrieve subreddit name, just use the user-supplied name.
This fixes banned subreddits being impossible to to unfilter or
unsubscribe from.
A drawback of such approach is that it might be possible to subscribe to
a subreddit twice with different casing, however the chance of this is
extremely low.
* Fix gated communities being unviewable by treating them as quarantined
* Show restriction reason in quarantine template
* Add `gated` checks for other requests
Making a new connection on every request is very slow and wasteful, espectially on slower network.
Fix this by reuse a hyper client which shares a connection pool.
I'm able to lower /r/popular loading time from 5s to 1.5s on my machine.