AgeCommit message (Collapse)AuthorFilesLines
38 hoursImage::List: Display inline SVG graph rather than raw numbersHEADmasterYorhel2-37/+50
Still messy, but hopefully easier to interpret.
43 hoursSQL:update_images_cache(): Fix handling of images with multiple referencesYorhel1-7/+7
This bug only affected 3 images. The problem was that the LEFT JOIN used for reference check would duplicate rows for UPDATE'ing. The old query before 022e2570ffbe134d161a87d354254127f418108a also kind of had this bug, except that version did (by pure coincidence) correctly ignore screenshots from deleted VN entries. To my surprise, this change doesn't really affect performance. PostgreSQL is bad at optimizing subqueries in the SELECT clause, but I guess that just means the previous query also wasn't optimized well. (It's certainly fast enough, though)
2 daysReleases::Edit: Fixup: Allow empty GTIN fieldYorhel2-2/+2
3 daysDelete old relation graph generating and caching machineryYorhel15-472/+17
3 daysRelease::Edit: Consider GTIN code as a string for validation/editingYorhel4-15/+12
Problem is that the 'uint' validation does not allow leading zeros, which are very valid as part of GTIN codes, thus resulting in an error when validating a normalized GTIN code.
3 daysDB::VN: Fix 500 by randomly generating a "sf0" vndbidYorhel1-1/+1
3 daysDocs::Page: Add noindex tag to revision pagesYorhel1-1/+1
4 daysSQL: Fix update_images_cache() performance regressionYorhel1-30/+14
That somehow got a lot slower with the last update. On the upside, this fixed query is simpler and doesn't need the ugly construct-query-as-a-string hack anymore.
4 daysSQL: Add C-based "vndbid" type and use it for image IDsYorhel25-64/+497
I had already rambled on the current composite type solution in 583ae868dfd3c882a8d2dd40b5d5ed099170c1c2 and I had already explored a few alternatives. This was the one alternative I hadn't yet explored because I wasn't sure the operational complexity was going to be worth it, but after seeing how bad PostgreSQL was at optimizing queries with composite types, I figured I might as well just go with this approach. It improves performance of some queries by a *lot* (especially the image selection query) and it's pretty elegant and convenient to work with. Only downside is the complexity of compiling, installing and maintaining a library for PostgreSQL.
5 daysSQL reorg: Move util/sql/ to sql/ as a top-level dirYorhel17-41/+33
Been wanting to do this for a while... I've kept util/sql as a symlink for compatibility with the devdump, old update scripts and other code I may have forgotten. I'll remove it later.
6 daysimgflag: Avoid resize-after-load by passing window size from JSYorhel3-6/+8
6 daysImages::List: Add (experimental & currently still hidden) image browserYorhel3-1/+171
7 daysIncrease max release title length to 300Yorhel3-3/+5
7 daysimgflag: Hide votes by defaultYorhel2-24/+35
To encourage people to judge the image before voting.
8 daysVN::Graph: Force show-unofficial-relations if there are no official oncesYorhel1-8/+13
8 daysVNWeb::HTML: Fix crash in rdate_()Yorhel1-1/+1
...which I just introduced.
8 daysVN::Graph: Also generate VN graphs on-demandYorhel9-183/+251
Same change as with Producers::Graph before. This also adds an option to show/hide unofficial relations. Restructured the code a bit to allow for sharing code between Producers::Graph and VN::Graph.
9 daysimgflag: Reserve space for the "other users" tableYorhel2-15/+18
To avoid the page height changing for every image, which can be jarring if you've scrolled down to see the users table. Also hide the guideline link when you can't vote anyway.
9 daysProducers::Graph: Add ugly hack to grow the #mainbox for large graphsYorhel1-3/+4
This makes the #mainbox a bit wider even in the normal case where the graph does fit, but that's just a minor glitch.
10 daysProducers::Graph: Reduce number of edge labels + minor tweaksYorhel2-25/+26
Displaying the "reverse" relation as a label adds more noise than information.
10 daysConfig: Remove unused "engines" listYorhel1-22/+0
Not used anymore after the removal of the old release edit form.
10 daysUser list: Right-align numeric columnsYorhel2-1/+9
10 daysProducers::Graph: Experiment with dynamically generating relation graphsYorhel5-24/+170
The producers.rgraph column still exists and the old graphs are still being generated - that will be removed if this new approach works out.
10 daysimgflag: Fix arrow keys changing vote selection in ChromeYorhel1-8/+13
12 daysDiscussions::Thread: Indicate locked status in headerYorhel1-0/+1
13 daysimgflag: More box size adjustmentsYorhel1-1/+1
13 daysimgflag: Automatically adjust box size based on window sizeYorhel2-8/+18
13 daysimgflag: Display image id link instead of using history.replaceState()Yorhel2-17/+5
replaceState() fucks up the back button in this case - it'll load the page with the new URL, but that won't allow regular users to vote on the image they had open.
14 daysimgflag for public: Add link, bias weights to chars, show vote statsYorhel4-7/+23
14 daysimgflag: Document keyboard shortcuts + make them available to users with ↵Yorhel3-10/+26
>=100 votes
14 daysimgflag: Keep track of users.c_imgvotes + limit number of votes + adjust ↵Yorhel5-30/+49
2020-03-25imgflag: Display votes from other usersYorhel4-2/+32
2020-03-24DB::Releases: Also fetch the new links for the old code -.-Yorhel1-2/+2
2020-03-23ExtLinks: Actually display the newly added sitesYorhel1-0/+4
2020-03-23ExtLinks: A few more shop links for releasesYorhel3-6/+36
2020-03-22Delete old release edit formYorhel9-662/+3
So that I can now work on adding a few more fields.
2020-03-22Handler::Producers: Explicitly mention primary language on producer pagesYorhel1-1/+3
To avoid confusion - .. 696.
2020-03-21imgflag: Update UI URL with currently displayed image IDYorhel4-26/+33
This makes it easier to link to this particular image. Downside: Refreshing/reloading the page may open that image, but it wouldn't be in the randomized image flagging mode.
2020-03-21boardmod feature: Full deletion of threads/postsYorhel2-1/+38
Intended to prevent unecessary "deleted" posts, bumping of old threads and stray notifications when a spammer hits the boards. To make that easier, there should also be a "delete all posts by this user" function, but that'll be even trickier.
2020-03-21Improve logging of user IDs when auth module is not initializedYorhel1-1/+2
This affects logs generated before the auth module is initialized or (more commonly) after it has been de-initialized. This happens often for requests exceeding TUWF's `log_slow_pages`. This change does mean that the logged user ID did not necessarily pass authentication, but it's good enough for debugging purposes.
2020-03-20imgflag: Use onKeyDown/Up in tandem to provide feedback over selected optionYorhel1-21/+29
Hopefully less error-prone. Ctrl+L now also doesn't select "brutal" anymore, thanks to the KeyUp requirement. I experimented with moving to the next image with a timer (100-200ms), but any form of delay is pretty annoying. This would be even nicer if there was a way to cancel the KeyUp event if you decide it was the wrong selection.
2020-03-20Minor refactor: Move "samesite" cookie handling to vndb.plYorhel3-14/+12
As its now being used from two distinct places.
2020-03-20imgflag: Add /img/<imgid> URL to open a specific image in the flagging UIYorhel2-16/+35
This allows moderators (dbmods, currently) to vote on a specific image and other users to see details about the image rating (and adjust their vote, if they had already voted on it). These pages aren't linked from anywhere, yet.
2020-03-20imgflag: Support displaying unreferenced imagesYorhel3-14/+20
I conveniently avoided this problem earlier on by not including unreferenced images in the history, but this should still be supported if we're to allow directly linking to the voting UI for a particular image.
2020-03-20imgflag: Disallow regular users to vote on any image of their choosingYorhel2-9/+42
And reduce the number of images given out randomly. That reduction makes it more expensive for an abuser to get tokens for the images they want (they'd hit the req/sec rate limiter much earlier), and also makes sense now that the query has been optimized with the TABLESAMPLE trick (it's faster, and more queries with less rows ought to give a better distribution overall - it reduces the impact of a biased query).
2020-03-19Producers::Elm: Do proper substring search + search through aliasYorhel1-2/+3
2020-03-19dbdump/imgflag: Make sure to include users who voted on imagesYorhel1-1/+2
2020-03-19imgflag: Fix 500 due to enrich_image() with a single image + filter ↵Yorhel1-7/+16
irrelevant images from history
2020-03-18Validation: Remove diagnostic log + make view=0 removing workYorhel1-2/+1
Crawlers unsurprisingly hit that protection a lot. I've not seen any problems so far, the pages loads fine for everyone else.
2020-03-18Validation: Do not allow direct links to pages with ?view=Yorhel1-1/+23
If such a direct link is detected, it will be redirected to the same page without the ?view= parameter. This should make it impossible to link directly to spoilers and sexual content, as enabled by 23fb02e36defa7660ee871dd9e650906b0d2d616. (Though that direct linking is still possible by linking to revision pages and other administrative things, but I'm thinking of applying a similar approach to those)