summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHunternif <hunternif@gmail.com>2022-09-18 02:13:58 +0100
committerHunternif <hunternif@gmail.com>2022-09-18 02:18:42 +0100
commitc913edd67c2c68639f860c3bd6bf52c879f742af (patch)
tree363008f63ebd8b1ce4cfc42bbec025a25f9f4c8a
parenta729abf6d1b491768e0c445804431d7cd39e1065 (diff)
client: use "similar" query to fetch similar posts on post page
-rw-r--r--client/js/controls/post_readonly_sidebar_control.js33
-rw-r--r--server/szurubooru/func/similar.py2
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]: