Skip to content

TherAPI

Compare
Choose a tag to compare
@rr- rr- released this 13 Apr 09:15
· 1236 commits to master since this release

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 to order: 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 to Dispatcher.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 to Auth.php
  • [Refactored] PrivilegesHelper renamed to Access
  • [Refactored] LogHelper renamed to Logger
  • [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 simpler Messenger
  • [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