bookwyrm-social / bookwyrm

Social reading and reviewing, decentralized with ActivityPub
http://joinbookwyrm.com/
Other
2.19k stars 254 forks source link

Let a user search within their books #2079

Open mouse-reeve opened 2 years ago

mouse-reeve commented 2 years ago

It would be cool if you had an option to search within just the books that you have shelved, to make it easier to find something on your shelves. This would be similar to the existing book search in that it would need to search on identifiers and use the title/author fuzzy matching with SearchRank, but would only need to look at editions in the user's shelf set, and would not need to worry about deduplication or producing the "default edition", which is most of what makes that code so complicated.

JoeyBryson commented 2 years ago

I might have a go at this one.

mouse-reeve commented 2 years ago

Please do!

todrobbins commented 1 year ago

@JoeyBryson let me know if I can pair with you! I'm not very proficient with Python, but would love to learn more/help.

david-code commented 1 year ago

Like I said in the Matrix chat, I'd like to take a stab at this one.

@todrobbins if you still want to try pairing, let me know, it might be helpful.

placoderm commented 1 year ago

@todrobbins , @JoeyBryson , @david-code I wish I knew enough coding to help on this. It seems like a really useful feature. Were any of you able to make any progress?

david-code commented 1 year ago

@todrobbins , @JoeyBryson , @david-code I wish I knew enough coding to help on this. It seems like a really useful feature. Were any of you able to make any progress?

Still working on it! I've been a bit busy lately but I've definitely made some progress.

placoderm commented 1 year ago

I've definitely made some progress.

That's awesome! I look forward to seeing this in the future.

david-code commented 1 year ago

@mouse-reeve I have a question about this when you have a minute.

I've made a function that searches the users shelves. Now I'm not sure exactly the best way to integrate it.

I assume I can edit the file search.py to give the frontend the option to pass a parameter to limit the search to user's shelves. However I assume we would also like to give the option the ability to check some sort of box to only search their shelves. Or maybe just adding the backend functionality would be enough for this PR?

Thanks :)

todrobbins commented 1 year ago

@david-code I've been inactive on GitHub recently, but I'm still interested in working with you. You can DM me on Twitter or Mastodon

mouse-reeve commented 1 year ago

@mouse-reeve I have a question about this when you have a minute.

I've made a function that searches the users shelves. Now I'm not sure exactly the best way to integrate it.

I assume I can edit the file search.py to give the frontend the option to pass a parameter to limit the search to user's shelves. However I assume we would also like to give the option the ability to check some sort of box to only search their shelves. Or maybe just adding the backend functionality would be enough for this PR?

Thanks :)

Somehow I totally missed that you tagged me in this, sorry! I'm not sure off the top of my head if editing search.py is a better approach than writing a separate view. But for the UI, it wouldn't need to be a checkbox, but rather a different search box entirely that is placed on the shelf view.

david-code commented 1 year ago

Somehow I totally missed that you tagged me in this, sorry! I'm not sure off the top of my head if editing search.py is a better approach than writing a separate view. But for the UI, it wouldn't need to be a checkbox, but rather a different search box entirely that is placed on the shelf view.

Great, that makes sense. Thanks a lot!

david-code commented 1 year ago

Hey sorry, still working on this! Haven't had any time recently, but I'm hoping to work on this this weekend.

rosschapman commented 8 months ago

👋🏻 I had a conversation about this issue with @mouse-reeve a couple weeks ago, and I've started to sketch up a SoW in a google doc. When I get a little further along I'll post it as a comment here.

rosschapman commented 8 months ago

As aforementioned, here is a draft of a work plan: https://github.com/bookwyrm-social/bookwyrm/pull/3118. I'm putting this in a draft PR so I can continuously commit work transparently. This is my first time coding in Python/Django on something substantial so I'd rather do this in the open with collaborators/maintainers. 😊

Comments/questions welcome either here or on the PR.