diff options
| author | Hunternif <hunternif@gmail.com> | 2022-09-18 02:13:58 +0100 |
|---|---|---|
| committer | Hunternif <hunternif@gmail.com> | 2022-09-18 02:18:42 +0100 |
| commit | c913edd67c2c68639f860c3bd6bf52c879f742af (patch) | |
| tree | 363008f63ebd8b1ce4cfc42bbec025a25f9f4c8a | |
| parent | a729abf6d1b491768e0c445804431d7cd39e1065 (diff) | |
client: use "similar" query to fetch similar posts on post page
| -rw-r--r-- | client/js/controls/post_readonly_sidebar_control.js | 33 | ||||
| -rw-r--r-- | server/szurubooru/func/similar.py | 2 |
2 files changed, 18 insertions, 17 deletions
diff --git a/client/js/controls/post_readonly_sidebar_control.js b/client/js/controls/post_readonly_sidebar_control.js index d8b7388..e7cff10 100644 --- a/client/js/controls/post_readonly_sidebar_control.js +++ b/client/js/controls/post_readonly_sidebar_control.js @@ -240,23 +240,22 @@ class PostReadonlySidebarControl extends events.EventTarget { } _loadSimilarPosts() { - return api - .get( - uri.formatApiLink("post", this._post.id, "similar", { - query: PostList.decorateSearchQuery(""), - limit: parseInt(settings.get().similarPosts), - }) - ) - .then((response) => { - const listNode = this._similarListNode; - for (let post of response.results) { - let poseNode = similarItemTemplate({ - id: post.id, - thumbnailUrl: post.thumbnailUrl, - }); - listNode.appendChild(poseNode); - } - }); + return PostList.search( + "similar:" + this._post.id, + 0, + parseInt(settings.get().similarPosts), + ["id", "thumbnailUrl"], + ) + .then((response) => { + const listNode = this._similarListNode; + for (let post of response.results) { + let poseNode = similarItemTemplate({ + id: post.id, + thumbnailUrl: post.thumbnailUrl, + }); + listNode.appendChild(poseNode); + } + }); } } diff --git a/server/szurubooru/func/similar.py b/server/szurubooru/func/similar.py index 1a84e79..a19b7d1 100644 --- a/server/szurubooru/func/similar.py +++ b/server/szurubooru/func/similar.py @@ -8,6 +8,8 @@ _search_executor_config = search.configs.PostSearchConfig() _search_executor = search.Executor(_search_executor_config) +# TODO(hunternif): this ignores the query, e.g. rating. +# (But we're actually using a "similar" search query on the client anyway.) def find_similar_posts( source_post: model.Post, limit: int, query_text: str = '' ) -> List[model.Post]: |