Feature suggestions and discussion [READ THE FIRST POST]

🐴
Magnificent Metadata Maniac - #1 Assistant
Solar Guardian - Refused to surrender in the face of the Lunar rebellion and showed utmost loyalty to the Solar Empire (April Fools 2023).
Non-Fungible Trixie -
Magical Inkwell - Wrote MLP fanfiction consisting of at least around 1.5k words, and has a verified link to the platform of their choice

IRL 🎠 stallion
@JustMarvin123NL
I agree. For context, Fimfiction has a setting to release a Rainbow Dash on your screen.
Now I hope Fimfiction ups their game by populating your screen with ponies chosen from the story’s tags with RD as a default for when no tags match.
Posted Report
RaindropsSys
Lunar Supporter - Helped forge New Lunar Republic's freedom in the face of the Solar Empire's oppressive tyrannical regime (April Fools 2023).

Sunny Starscout forever
As someone who loves statistics, I’d really appreciate the possibility to export my user data (at least my upvotes/downvotes) to a file I can download. Using the API to get all my upvotes and downvotes is slow, annoying and puts load on the server, which could be avoided by having the option to simply download my upvotes/downvotes.
.
Amethyst Star - For supporting the site
Happy Derpy! - For site supporters
Silver Supporter - Silver Supporter
Pixel Perfection - I still call her Lightning Bolt
Not a Llama - Happy April Fools Day!
The End wasn't The End - Found a new home after the great exodus of 2012

There’s already “A implies B” for tags. But how about “C implies not D” so you e.g. can’t tag a safe image “solo female”? Might avoid mistakes.
Suggesting for a friend.
Background Pony #2A5F
@.
So basically a tag linter? It’s a very good idea. We could have both hard errors (so user can’t save tags if both “safe” and “grimdark” are tagged) and warnings (when there’s a combination that technically could be valid, but usually is a mistake).
JP
Pixel Perfection - I still call her Lightning Bolt
Silly Pony - Celebrated the 13th anniversary of MLP:FIM, and 40 years of MLP!
Shimmering Smile - Celebrated the 10th anniversary of Equestria Girls!
Solar Guardian - Refused to surrender in the face of the Lunar rebellion and showed utmost loyalty to the Solar Empire (April Fools 2023).
Roseluck - Had their OC in the 2023 Derpibooru Collab.
King Sombra - Celebrated the 10th anniversary of The Crystal Empire!
A Lovely Nightmare Night - Celebrated the 12th anniversary of MLP:FIM!
Princess of Love - Extra special version for those who participated in the Canterlot Wedding 10th anniversary event by contributing art.
Elements of Harmony - Had an OC in the 2022 Community Collab
Non-Fungible Trixie -

I miss the show so much
@.
@Background Pony #2A5F
This “negative implications” system has been proposed in various forms many times over the years. Unfortunately, it has not been deemed important enough to be implemented.
It would be useful, though.
(Speaking of “tag linting”, I have a long list of things that could be done to clean up some common and uncommon mistakes.)
Background Pony #2A5F
@JP
Maybe it would be easier to create an external tool that periodically checks tags using the API?
LemonDrop
Duckinator - Same nonsensical quacks in every pond
Pixel Perfection - I still call her Lightning Bolt
Lunar Guardian - Earned a place among the ranks of the most loyal New Lunar Republic soldiers (April Fools 2023).
Crystal Roseluck - Had their OC in the 2023 Derpibooru Collab.
Elements of Harmony - Had an OC in the 2022 Community Collab
Non-Fungible Trixie -
Twinkling Balloon - Took part in the 2021 community collab.
Ten years of changes - Celebrated the 10th anniversary of MLP:FiM!
My Little Pony - 1992 Edition
Friendship, Art, and Magic (2020) - Took part in the 2020 Community Collab

C++ Crazed
Had this come up in the comments of some image, I think there should be a field to add next to a source that allows you to enter the “originally posted date”, or perhaps having this field global to the image and just having one chose the earliest date it was seen, rather than needing it per-source. This data could probably be auto-fetched too when using the image fetch from some source URL feature.
With this people would be able to sort images by “original upload date” rather than when they were uploaded to Derpi or search on such a range, which could help organize things chronologically better (for those who want to search the site like that). It’d also be useful just to see what timeperiod a piece of art was made in if in the future the original source is dead and the source page wasn’t archived anywhere.
I’d imagine the sorting/searching would use the originally posted date if available otherwise just fall back to the upload date, or something like that (since obviously most stuff is not going to have this metadata until people start adding it to existing uploads).
🐴
Magnificent Metadata Maniac - #1 Assistant
Solar Guardian - Refused to surrender in the face of the Lunar rebellion and showed utmost loyalty to the Solar Empire (April Fools 2023).
Non-Fungible Trixie -
Magical Inkwell - Wrote MLP fanfiction consisting of at least around 1.5k words, and has a verified link to the platform of their choice

IRL 🎠 stallion
@LemonDrop
Might it be further possible, for when people post Twitter/FA/DA/etc… links to the upload box to extract the original post date with the scraper? We could even backfill data for images with the source field filled in this way.
LemonDrop
Duckinator - Same nonsensical quacks in every pond
Pixel Perfection - I still call her Lightning Bolt
Lunar Guardian - Earned a place among the ranks of the most loyal New Lunar Republic soldiers (April Fools 2023).
Crystal Roseluck - Had their OC in the 2023 Derpibooru Collab.
Elements of Harmony - Had an OC in the 2022 Community Collab
Non-Fungible Trixie -
Twinkling Balloon - Took part in the 2021 community collab.
Ten years of changes - Celebrated the 10th anniversary of MLP:FiM!
My Little Pony - 1992 Edition
Friendship, Art, and Magic (2020) - Took part in the 2020 Community Collab

C++ Crazed
@🐴
Probably, I mean Twitter is kinda lame these days so I am not sure how easy it is to get that data (maybe scraping it’s not so bad, but the API is kill). But yes it should be able to be automated to a degree to fill in the old info if that’s desired.
.
Amethyst Star - For supporting the site
Happy Derpy! - For site supporters
Silver Supporter - Silver Supporter
Pixel Perfection - I still call her Lightning Bolt
Not a Llama - Happy April Fools Day!
The End wasn't The End - Found a new home after the great exodus of 2012

Ever thought “Oh dear, I’ve totally misunderstood how to use the xyz tag, and now there are 200 pages of tag changes on my account to look through to fix this mess?”
I’ve made a small change to add a search box to the tag change page of the profile to help with that.
Code available here: https://git.lacunae.de/philomena.git, branch tag-change-search (don’t try this link in a browser, you can only add it as a git remote.)
🐴
Magnificent Metadata Maniac - #1 Assistant
Solar Guardian - Refused to surrender in the face of the Lunar rebellion and showed utmost loyalty to the Solar Empire (April Fools 2023).
Non-Fungible Trixie -
Magical Inkwell - Wrote MLP fanfiction consisting of at least around 1.5k words, and has a verified link to the platform of their choice

IRL 🎠 stallion
Has anyone looked at the potential for CSS grid masonry for an alternate frontend CSS in a few years?
If you have Safari’s developer build or Firefox with the flag I linked above enabled, go check out this photo gallery demo. Especially check out the “wide images are wider” option.
Perhaps it could display the meta info (vote buttons & comment count) on mouseover on desktops but include it as part of the image’s box for touch-only environments.
.
Amethyst Star - For supporting the site
Happy Derpy! - For site supporters
Silver Supporter - Silver Supporter
Pixel Perfection - I still call her Lightning Bolt
Not a Llama - Happy April Fools Day!
The End wasn't The End - Found a new home after the great exodus of 2012

@byte[]
Your fixup commit made the code a bit nicer, but it now also leaves an empty “only_tag=” parameter that keeps getting generated in links on the page when it’s not needed because a search has been performed with an empty input box. Also the filter when constructing the pagination_params could be a bit simpler I believe. You’re always constructing a kw list with all the possible params which will either have a proper value or nil, then filter out the ones that didn’t have a key in the original map. So Keyword.filter(fn {_k, v} -> v end) should do the same here, right? Then add a && v != "" to it and we get rid of the useless “only_tag=”.
Interested in advertising on Derpibooru? Click here for information!
Pony Arts & Prints!

Help fund the $15 daily operational cost of Derpibooru - support us financially!

Syntax quick reference: **bold** *italic* ||hide text|| `code` __underline__ ~~strike~~ ^sup^ %sub%

Detailed syntax guide