Releases: rr-/szurubooru
Releases · rr-/szurubooru
Version 2.5
New features:
- Added pools c5358f7
- Added dark theme (enable it from the settings) #344
- Added functionality to change the order of the tag categories #350
- Added support for BMP/HEIF/HEIC/AVIF images #399 #404
- Added content-aware flow for thumbnails on the post search page (enable it from the settings) #352
- Added support for webhooks (see doc/API.md for details) #341
- Added link to search for a post on Danbooru (using its MD5 hash) 8fa84ab
- Added support for larger files a302b2c
- Developers can nu use
npm run build --watch
to watch for changes and automatically refresh the front-end #402 - Various bug fixes and performance improvements
Last boss
This release signifies last release before the upcoming 2.0.0
branch which shifts technology to Python.
- Improved font scaling on Android
- Fixed negative order in searches
- Increased limit for comment length
- Added space after each tag in tag input to make them copyable
- Added delete key support for auto complete
- Fixed arrows while editing post notes
- Improved post sizing, added option to cicle sizing mode
- Added option to upscale small posts
- Hidden most edit controls by default
- Fixed removing users always logging out
- New search tokens
- Added F hotkey for fullscreen
- Various tweaks and fixes to UI appearance
- Added featured post uploader name to home page
- Reduced memory usage for long post upload sessions
- Removed lightbox from post uploads
- Fixed autocomplete near page bottom
- Added ability to turn keyboard shortcuts off
- Added previous page / next page buttons for pagers
- Added previous post / next post in post upload form
- Added Tab and Shift+Tab support to autocomplete
- Added GIF image detection
- Improved search error messages
- Fixes to post note editing
- Removed hack for GIF preloading that prevented cache from working
- Changed youtube videos to use 16:9
- Added support for HTTP ranges
- Added
[sjis]...[/sjis]
tag - Added arrow keys support to pagers
- Other fixes
Minor UI enhancements
- Added support for
[small]text[/small]
- Added auto completion to tag list presenter
- Added showing tag suggestions on click (until now, it was shown only when typing, while clicking revealed just siblings)
- Added tag suggestions and siblings synchronize to what user types
- Added gray-out for used tags in the autocomplete
- Moved tag suggestions before tag siblings
- Fixed tag editing didn't trigger tag suggestion cache update
- Changed post edit form to be wider
- Fixed autocomplete staying even after hiding the tag input (occurred during presenter change)
- Fixed author showing up in the history for posts uploaded anonymously
Bugfixes and backend maintenance
- Added snapshot compression in database
- Added snapshot merging based on time and author
- Added absolute timestamps hints where necessary
- Simplified routing in backend - changed
Controllers
toRoutes
- Renamed
SearchServices
directory toSearch
- Renamed
Controllers/ViewProxies
toViewProxies
- Improved MySQL integration
- Improved test database upgrade script
- Changed
PUT
requests toPOST
- Changed base64 uploads to FormData JS API
- Removed AJAX external caching, which led to certain anomalies
- Removed download link for YouTube posts
- Fixed backend trying to actually download YouTube URLs - now it redirects to the video instead
- Fixed tests using real DB when they shouldn't
- Fixed bad message when serving non-existing files
- Fixed current search not showing pointer cursor on hover
- Fixed scoremin and scoremax search
- Fixed entity IDs treated as strings, which led to certain anomalies
- Fixed everyone could view every post
- Fixed everyone could feature posts
- Fixed everyone could delete posts
- Fixed link to users and posts disregarding privileges from
config.ini
- Fixed precision loss in post disk space usage
- Fixed putting "null" in post sources
- Fixed post note removal didn't generate snapshot
Ouroboros
This release marks first and hopefully last full rewrite of szurubooru.
New features
- Post notes (little text annotations to posts)
- Tag categories
- Tag banning
- Tag implications
- Manual tag removal
- Manual tag suggestions
- Comment scoring
- New frontend
- Improved keyboard navigation
Permanently removed features
- Permissions with regard to specific post safeties
- Tag auto-removal (tags now hold too much information to remove them automatically)
Regressions
- Removed API documentation
Architectural changes
- Full-blown JS frontend
- Proper dependency injection (no more static classes)
- Removed API layer in favor of controllers. This is probably only temporary.
TherAPI
This release focuses on huge changes behind the scenes, that were needed to add consistent API. It adds, however, some nice features as well.
- [Added] API
- [Added] Automatic generating of API documentation
- [Added] Support for video files (WEBM, MP4, OGV, FLV, 3GP)
- [Added] Unit tests. Lots of them!
- [Added] A few options regarding entity validation to config (tag min/max length, post source max length etc.)
- [Added] Option to disallow anonymous uploads in config
- [Added] Arbitrary-size thumbnails support (they no longer need to be exactly 150x150)
- [Added] Protection against two users having the same e-mail address
- [Added]
sort:
search keyword, which is an alias toorder:
keyword - [Added]
name:
search keyword, for searching posts by their names/hashes - [Added] Imagick support for thumbnail generating
- [Added] Support for custom avatars
- [Fixed] Blurry avatars in post sidebar
- [Fixed] MySQL support
- [Fixed] Backticks in
PostSearchParser
, making every request spam line in error log 😓 - [Fixed] Login errors when authentication cookie is corrupt
- [Fixed] Hardcoded post permalink syntax in post views
- [Fixed] Improved support for no Javascript
- [Fixed] Ancient scripts in
/scripts
folder - [Fixed] Privacy policy text containing outdated information regarding cookie contents
- [Fixed] Double slash in some URLs
- [Changed] The way some forms show errors
- [Changed] Erroneous pages return proper HTTP response codes
- [Changed] Removed requirement to have
gd
installed (thumbnails will be empty, but site will work) - [Changed] Improved web browser caching of JS scripts and CSS stylesheets
- [Changed] Background of inputs set to white (some Windows themes set it to weird colors)
- [Changed] Default access rank set to nobody (instead of admin)
- [Changed] Renamed some access ranks
- [Changed] Routes distinguish between POST and GET
- [Changed] Improved compact layout, ever so little
- [Changed] Footer appearance
- [Changed] Versioning system (no more separate "upgrade to vX.Y.Z" commits)
- [Changed] Changed EBC to CBC in authentication (arguably improving security; changed cookie so that it contains IV)
- [Changed] Logger path names accepts simple templates
- [Changed] Renamed some setup keys
Changes behind the scenes:
- [Refactored] Split long lines in source code
- [Refactored] Grouped views into file hierarchy
- [Refactored] Rendering forms
- [Refactored]
core.php
is now object-oriented - [Refactored]
dispatch.php
is now object-oriented - [Refactored]
dispatch.php
logic moved toDispatcher.php
- [Refactored] Controllers business logic moved to API. They now act just as a proxy between API and views
- [Refactored] Merged mass tag and post search redirection code
- [Refactored]
AuthController
logic moved toAuth.php
- [Refactored]
PrivilegesHelper
renamed toAccess
- [Refactored]
LogHelper
renamed toLogger
- [Refactored] Privilege strings replaced to objects
- [Refactored] Enums
- [Refactored] Simplified authentication
- [Refactored] Simplified AJAX queries (they don't rely on
status
in JSON and don't append?json
anymore) - [Refactored] Common paging code moved to common class
- [Refactored] Models save methods
- [Refactored] Entity fields - all of them are private now, and can be accessed via setters and getters
- [Refactored] Entity field are no longer just strings
- [Refactored] Entities are validated just before saving
- [Refactored] Removed
StatusHelper
in favor of simplerMessenger
- [Refactored] Removed
InputHelper::get('submit')
as well as HTML counterparts in favor of specialized routes - [Refactored] Thumbnail generating
- [Refactored] Methods in controllers renamed to
...View
if they're used for views only, and left as...Action
if they actually do something - [Refactored] Used shorthand PHP echo (
<?=
instead of<?php echo
) - [Refactored] Text case conversion code moved to external gist
- [Refactored] Bunch of other stuff
Small boss
Global:
- [Added] Clicking a tag when tagging shows related tags
- [Added] "upvoted" tab
- [Added] Tweaks to search aliases; added
order:fav_date
andorder:file_size
- [Changed] Hidden posts can be viewed by moderators
Frontend:
- [Changed] Better search syntax help
- [Fixed] User list on Chrome w/ endless pagination
- [Fixed] 404 page appearance
- [Fixed] Registration form appearance
- [Fixed] Keyboard shortcuts in Flash posts (this time looks like it's solved for good)
- [Fixed] Clicking prev/next post on Chrome
Backend:
- [Fixed] Account activation not working
- [Fixed] Password reset not working
- [Fixed] Password changing acting funny with logout/login
- [Fixed] Search - order direction was set to ascending
- [Fixed] Search - exception when parsing certain invalid dates
- [Fixed] Search - exception when searching for
score_min:
andscore_max:
- [Fixed] Automatic post featuring not working
- [Changed] Switched to MarkdownExtra (yay, tables support!)
- [Changed] Refactor to tag autocompletion
- [Changed] Markdown - more readable ATX header handler override
- [Changed] Markdown - better behaviour for spoilers containing links and tag permalinks
Big boss
Frontend:
- [Added] Pagination to tag list
- [Changed] Post sidebar reorganized (especially "details" and "options")
- [Changed] Post edit form is displayed on top of post instead of below
- [Changed] Post upload no longer uses tabs - merged URL and file into one page
- [Changed] Post upload - hovering thumbnails of queued uploads displays proportional bigger preview
- [Changed] Vertical scrollbar is shown everywhere
- [Changed] Dates changed to relative form (except logs)
- [Changed] GUI colors made consistent (every color is now red)
- [Changed] Tab borders are thicker
- [Changed] Footer lines are thicker
- [Changed] User list looks better
- [Changed] Form CSS overhaul
- [Changed] Layout resizing tweaks to keep posts nicely aligned under tabs
- [Changed] Mass tag: changing tag doesn't return to 1st page if filter query hasn't changed
- [Changed] Unit converter produces shorter information (44B, 1.5K, 13.4K, 20K, 40K, 999K, 1.0M, 1.2M, 12.3M, 20M etc.)
- [Changed] Errors regarding post list no longer make post list tabs go away
- [Changed] Query debug appearance improved
- [Fixed] Exit confirmation message on Chrome
- [Fixed] Post upload sidebar top margin
- [Fixed] Ban/unban confirmation messages (no more generic
Are you sure?
) - [Fixed] Problems with event handlers attaching multiple times which resulted in most awkward bugs
- [Fixed] Tag and user list - alphanumeric order is now case insensitive
- [Fixed] Merging/renaming tags shows success message (previously only errors were reported)
- [Fixed] When deleting last picture from post upload, exit confirmation is removed
- [Fixed] HTML validation in some places
- [Removed] 1px borders from sidebar units
- [Removed] Ancient
console.log
calls (:sweat:)
Backend:
- [Added] Self post/others' posts distinction for scoring/featuring/flagging/favoriting post privileges
- [Added] Search query aliases in underscore form (
id_min
,id_max
, etc.;order:comment_count
,order:fav_count
,order:tag_count
). - [Added] Search query aliases:
ids
,special:fav
etc. (favs for current user). - [Changed] Total SQL layer rewrite, which eventually spawned separate project
- [Changed] Parsing search queries moved to separate, much more maintainable abstraction
- [Changed] Getting next and previous post rewritten so that it no longer uses unmaintainable hacks
- [Changed] Simplified tag autocompletion
- [Changed]
LOWER(?)
to? COLLATE NOCASE
- [Changed] More robust entity counting in search services
- [Fixed] Passing useless arguments to search services
- [Fixed] Saving original post file name into DB
- [Fixed] File extension of downloaded files (based on MIME type instead of original extension)
- [Fixed] Comments for hidden posts were casually shown in
/comments
for everyone - [Changed] Faster entity preloading
- [Changed] Faster
special:liked
andspecial:disliked
- [Changed] Faster entity counting
Global:
- [Added] Timing information to query debug
- [Changed] Adding a post to favorites automatically casts an upvote
- [Changed]
/comments
behavior - instead of showing comments chronologically (without looking at post whatsoever), it shows posts ordered by last comment date, and up to 5 comments underneath it. Change is rather subtle and regards mostly how many posts on average are grouped under one post. - [Fixed] Fixed tag list order styles (contained
pending
if registration confirmation was enabled...) - [Fixed] Possible HTML injection in some places
Miscellaneous
Global:
- [Added] comment edit support
- [Added] search for hidden posts for admins
- [Added] date of last login to users
- [Fixed] last comments respect users' safety settings
- [Fixed] undefined method error when returning from invalid search to post view
Frontend:
- [Added] pagination to logs
- [Added] window close confirmation windows
- [Fixed] statistics for each user in user list showed comment count instead of post count
- [Fixed] issues with
[spoiler]
Markdown tag inside lists - [Fixed] every line beginning with
#blah
was rendered as header, not as a link toblah
tag. ATX-style headers are still available using### syntax
(note the space) - [Fixed] post edit appearance during sliding animation
- [Fixed] post edit focus
- [Fixed] tags containing parentheses were left unparsed in logs
Backend:
- [Changed] edit tokens moved from controller layer to model layer
- [Fixed] filtering posts when permitted safety list is empty
- [Fixed] simplified case insensitivity support in post search engine
- [Fixed] CSS and JS inclusion overhaul - they are no longer included from controller layer (instead, they are taken care of by view layer itself, like it should be done from the beginning)
Fast and various
Global:
- [Added] support for brackets in tag names
- [Added] option in user settings for hiding disliked posts
Frontend:
- [Fixed] HTML validation
- [Fixed] better placement of auto-completion boxes
- [Fixed] removed some unused Javascript code
- [Fixed] simplified slow jQuery selectors
- [Fixed] some CSS problems with Chrome and Firefox
- [Fixed] some Markdown problems regarding
<pre>
tags - [Fixed] tags in page title and tooltips are sorted
- [Changed] upgraded jQuery to 2.0.3
- [Changed] moved Javascript include statements from HEAD to footer
- [Changed] better looking SQL queries debug
- [Changed] help tab title from "help" to "general help"
- [Added] stylized Markdown quotes
- [Added] active section (browse, help, ...) indicator
- [Added] jQuery .map file (no more 404 when using developer tools)
Backend:
- [Added] support for MySQL
- [Changed] faster search by tag / comment / submit / favorites (useless nested joins
replaced to entity prefetch). Side effect: searching for nonexistent tags,
users etc yields informative errors instead of "no posts to show") - [Changed] options section from sidebar in various pages rendered from within one file
- [Changed] removed RedBeanPHP dependancy
- [Changed] rewritten whole model layer
- [Changed] most of pages load 1.5 to 2x faster