stashapp / stash-box

Stash App's own OpenSource video indexing and Perceptual Hashing MetaData API
MIT License
216 stars 61 forks source link

[Feature] Default Ordering of Links #664

Open AdultSun opened 1 year ago

AdultSun commented 1 year ago

Is your feature request related to a problem? Please describe. This is something that's annoyed me for a while now but rarely felt important enough to bring up. I'm mentioning it now because WithoutPants is currently working on expanding support in Stash for multiple URLs, so we could be getting a lot more link submissions to StashDB in the near future as a result.

Currently, there is no obvious sort order for links in Stash-Box. At first I thought they were sorted into the order in which they were added, but that's only true in the edit summaries. I looked a bit closer while writing this and discovered that links are sorted everywhere else alphabetically by URL. Since this is not a predictable, logical, or consistent sort order, it often makes it difficult to identify at a glance what links are available and to quickly find the one you're looking for.

This is primarily a concern for links attached to performers. Many performers have a long list of links attached to their profiles. I've also been working through our backlog of sites for StashDB recently so the list of possible links is growing. Social media links, various databases, and amateur content platforms are all mixed up with seemingly no rhyme or reason to any of it. If a performer has multiple links from the same website, often they're not even grouped together if, for example, one doesn't include www. or uses http instead of https.

Scenes aren't as much of a concern, and it's even less important for studios. Scenes rarely have more than 3 or 4 links and most only have the one studio link, but it's still mildly annoying. Since the studio link's positioning depends on the website's domain, the constant shuffling can still slow you down.

Studios are even less of a concern for me. The homepage is always moved right to the top of the page, just under the studio's name, and any extra links are hidden underneath the "Links" tab. I imagine these studio pages get a lot less usage than the scene pages, and most users will also be looking for that homepage instead of the other links.

Describe the solution you'd like I mentioned at the top that the current sort order is not predictable, logical, or consistent, and those are the three characteristics I'm looking for here. A simple alphabetical sorting by site name (not by URL) would at least be predictable and consistent, and honestly that would be good enough for me and should be the simplest to implement. However, I feel like some kind of priority grouping could make it more logical as well.

We could accomplish this by adding a "priority tier" field to sites. For StashDB, it could look like this: The most prominent links for each object (typically the "manual entry" links) would be given a priority of 1, grouping them together at the top of the list. Next would be amateur content platforms at 2, putting links to ManyVids/Clips4Sale/OnlyFans/etc. immediately after studio links for scenes and official websites for performers. Then I'd put the external databases at 3 and social media links at 4. Everything within each tier would be sorted alphabetically by site name. The result could look something like this:

Performers

Scenes:

Studios

With the groupings above, I would still need to find somewhere to put studio profiles and link containers (AllMyLinks/Linktree) for performers.

Describe alternatives you've considered The priority tier system I laid out is just a suggestion, simply ordering alphabetically by site instead of URL would go a long way. Other than that, I'm not sure what other options there are. Manually reordering everything would be too much work and not feasible for a shared community database. There really aren't any other fields to use for sorting in Stash-Box either, maybe "date added" but that would make even less sense than the current situation.

echo6ix commented 1 year ago

Since you want to introduce grouping by category I think the spreadsheet here https://docs.google.com/spreadsheets/d/1xELptjVmapvUX4g0CervfKLMXSYihxkWPkjlM-QqZEg/edit?pli=1#gid=0 should also be updated with a Category column of fixed values.

Category

Official Modeling Network profile Info[^info] Platforms[^am] Social media Cam Misc[^misc]

[^info]:You used the term Databases here. I copied Indexxx's term -- Info -- because I think it's more all encompassing (Wikipedia, Wikidata, review site, directories, etc) [^am]:You used the term Amateur Content here. While a lot of it can be, it's not all amateur content. The thing all those sites have in common as they're adult platform video sites, so I guess Platforms is succinct. [^misc]:Catch-all category for any URLs that don't fit