Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sort by popularity #298

Open
vanillajonathan opened this issue Nov 15, 2023 · 8 comments
Open

Sort by popularity #298

vanillajonathan opened this issue Nov 15, 2023 · 8 comments

Comments

@vanillajonathan
Copy link

I think it would be a nice to be able to sort books by popularity.

Maybe even have "Top this week", "Top this month", "Top this year".

@colagrosso
Copy link
Collaborator

This came up on the mailing list in Aug 2023: https://groups.google.com/g/standardebooks/c/aXTXFahZeyM/m/rlVWM9zjBAAJ

It's a good idea, but still a long way away.

@sweetgiorni
Copy link
Contributor

Is a real database essential for this? I don't know PHP, but could APCu's apcu_inc be used to count downloads with some periodic synchronization that pushes to a Git repo? It doesn't need to be super accurate or up-to-date; even just committing the download stats once per day would work for the purposes of this issue.

@acabal
Copy link
Member

acabal commented Jan 2, 2024

I suppose a real database isn't strictly required, but we should aim to move ebooks into a database in the long run anyway. Keeping things cached in APCu made sense when the corpus was small, but we're approaching 1k works and rebuilding the cache is becoming prohibitively time consuming.

So, if we do something like popularity, we should build it on top of a correct foundation, instead of building popularity first and then having to change it once we migrate to a DB.

Also, keeping popularity in APCu begs the question of what happens when the cache is restarted, for example in a crash, server reboot, or plain old FPM reload. We'd lose all the history immediately!

@frankstrater
Copy link

There's a couple of reasons why I think standardebooks.org should not implement this. Let's first understand what the request is.

Project Gutenberg has its books sorted according to the number of downloads, and there is an alphabetical option too. Can we also introduce the popularity option on Standard Books?? Bc I often find myself lost on what to read next among a selection of mostly unknown books, such as the ones in the fantasy section

I think it would be a nice to be able to sort books by popularity.

As I see it people would like to see what popular ebooks are, where 'popular' means what other people are reading. The problem with free/libre downloadable digital media like ebooks (epub) and podcasts (mp3) for instance, is that the number of downloads doesn't really equals popularity like with streaming media where a "download" is an actual view.

Also I think having 'popularity sorting' in whatever form (weekly, monthly, yearly, all time) tends to degrade the 'discovery/serendipity' of a catalog, although I understand that might be a very personal opinion.

I would recommend to look into another solution to adress this user need. Although maybe not maintained by Standard Ebooks there's a list with a proper popularity social layer at:

https://www.goodreads.com/list/show/140305.Standard_Ebooks

If there's any issue with linking (or API use of this list) to an Amazon-owned property, there might be an alternative I might not be aware of.

@acabal
Copy link
Member

acabal commented Jan 5, 2024

Goodreads doesn't have an API, so all of those entries were added by hand by a volunteer.I think they also may have even recently prohibited more editions of public domain books being added. The 128 books listed there is a small fraction of our almost 1k catalog.

@frankstrater
Copy link

Ah right, hadn't used it for a while (since 2018) and I see the notice just now:

As of December 8th 2020, Goodreads no longer issues new developer keys for our public developer API and plans to retire the current version of these tools.

https://www.goodreads.com/api/documentation

@RayBB
Copy link

RayBB commented May 31, 2024

You can use the openlibrary.org API to get the popularity (want to reads, rating counts, reviews) to get you started.

@acabal
Copy link
Member

acabal commented May 31, 2024

One of our volunteers is working on converting the website to use a database right now, so once that's done we can start better tracking popularity and offering a sort for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants