Releases: mikespub-org/seblucas-cops
3.5.4 Issues, translations, formats & templates
See release 3.1.1 for breaking changes for COPS 3.x
Change log
3.5.4 - 20241223 Update translations, adapt templates for PageId + refactor
- Move base url and slugify from Route to UriGenerator
- Use RequestContext and instance methods in Framework for future adapters
- Add HasRouteTrait to simplify handler route() calls and future migrations
- Split UriGenerator from Route + add HandlerManager for framework adapters
- Update portuguese translation - see PR #127 from @horus68
- Rename group params + support idlist for books and expand GraphQL schema
- Split off GraphQLExecutor class + rename RestApi to RestApiProvider
- Expand Link models for OPDS 2.0 + use closure for links
- BC: Switch PageId values to strings + adapt templates
- Add PageQueryScope enum and PageFilter class (wip)
- Group entries by filter group for twigged template - see 'filters.html'
- Split off ProxyRequest class to handle trusted proxy headers for base url
3.5.1 - 20241211 Fix issues, add formats + replace transliterator
- Use symfony/string package as alternative for normAndUp and slugify with Transliterator
- Get request locale based on Translation and HTTP_ACCEPT_LANGUAGE
- Clean up Route url methods and test generating route urls
- Add Format class, pages and filters to select by book format
- Fix custom column filters and handle csv with several values
- Sort series custom column by extra field - see issue #124 by @Mossop
- Remove deprecated config/default.php settings and clean up Zipper
Full Changelog: 3.4.6...3.5.4
3.4.6 Fix issues + update css link
See release 3.1.1 for breaking changes for COPS 3.x
Change log
3.4.6 - 20241208 Fix issues + update css link
- Changes in config/default.php file:
- new $config['calibre_database_field_image'] for 'image' field from epub-loader
- Fix custom column detail page + not set entry - see issue #121 by @Mossop
- Use minified bootstrap icons css - see PR #120 from @dunxd
- Fix url-encode query for search in feeds - see issue #119 by @cebo29
Full Changelog: 3.4.5...3.4.6
3.4.5 Minor fixes & updates + internal routing
See release 3.1.1 for breaking changes for COPS 3.x
Note: if you use REST API all paths should now include /restapi/ as shown in the Swagger UI
Change log
3.4.5 - 20241105 Use route names to generate links
- Changes in config/default.php file:
- set $config['cops_use_route_urls'] as deprecated (= always enabled)
- set $config['cops_download_series'] as deprecated (use $config['cops_download_page'] instead)
- set $config['cops_download_author'] as deprecated (use $config['cops_download_page'] instead)
- Upgrade swagger-ui-dist package and link to 5.18.0
- Split off Routing namespace with interface to allow switching routers later
- Pin nikic/fast-route version to 2.0.0-beta1 and use recommended settings
- Pass _route param to request in Route::match() and deprecate Route::link()
- Switch to handler::route() in most places for Calibre and Pages classes
- Replace Route::link() with handler::page() and handler::link() and generate() with route()
- Use handler class in params instead of handler name + adapt $handler properties/params
- Generate openapi.json and dump/load cached routes file (info only)
- Clean up fetch-thumb and zipper-page-* routes in handler & renderers
- Change route definitions for handlers + add a few _route params
- Find route for params via handlers with findRoute() method
- Move pages to handlers in REST API + add getLink() and request() methods
- BC: Add
_resource
param to REST API links and move under /restapi prefix - Clean up query string build to align with RFC3986 (%20) instead of RFC1738 (+)
- Provide fallback for urls without intl extension - see issue #118 by @jillmess
- Remove code for generating links without route urls
- Remove tests for links generated without route urls
3.4.0 - 20241028 Update package dependencies + translations
- Upgrade npm-asset/js-cookie 2.2.1 to 3.0.5
- Upgrade datatables 1.13.11 to 2.1.8 (dev only)
- Add path parameter validation in page handler routes
- Add error handler for invalid requests + return not found
- Attach notes database to sqlite connection on demand
- Update integration of epub-loader and php-epub-meta
- Update spanish translation - see PR #117 from @Dunhill69
Full Changelog: 3.3.1...3.4.5
3.3.1 Fix issues, update languages, improvements & licensing
See release 3.1.1 for breaking changes for COPS 3.x
3.3.1 - 20241020 Update translations + remove old endpoints
- Update russian translation - see PR #116 from @Carmina16
- Add TRANSLATIONS.md for Gitlocalize - see PR #115 from @horus68
- Update loader config + add table handler (dev only)
- Fix rewrite rules in web.config (IIS) - in theory at least
- Remove deprecated COPS endpoints - see BC for COPS 3.x
- Fix sortoptions warning for server-side doT templates
3.3.0 - 20241004 Fix issues, update languages, improvements & licensing
- Changes in config/default.php file:
- new $config['calibre_database_field_cover'] for 'cover' field from epub-loader
- Filter out ignored formats in Book::getBookByDataId() - see issue #113 by @tomchiverton
- Fix slugify for titles with slashes etc. in route urls
- Get extra information for publisher, serie or tag + series for author without books
- Clarify license GPL version 2 or later + fix file headers
- Add dummy sqlite functions for table views in REST API
- Update language files via Gitlocalize - see PRs from @horus68 + translators/moderators
- Improve filters for Not Set tags, ratings, series or identifiers
- Show search result text for no result - see issue #107 by @HaoSs07
- Support query list arguments (limit, offset, where, order) in GraphQL (dev only)
- Sort by book count in navigation lists if paginated for twigged and bootstrap2 template
Full Changelog: 3.2.2...3.3.1
3.2.2 Update bootstrap5 template
See release 3.1.1 for breaking changes for COPS 3.x
3.2.2 - 20240914 Update bootstrap5 template + fix integrity
- Fix integrity checks for bootstrap5 template - see PR #106 from @dunxd
- Fix thumbnails and add series list to author page in bootstrap5 template - see PR #106 from @dunxd
3.2.0 - 20240914 Return response from handlers + replace GraphQL Playground (dev only)
- Enble running other handlers in REST API and return response
- Return response from most handlers to allow middleware to work on response
- Add test middleware to check functionality (test only)
- Replace graphql-playground with graphiql for security and future (dev only)
Full Changelog: 3.1.3...3.2.2
3.1.3 Fix mail link + show list of series in author details
See release 3.1.1 for breaking changes for COPS 3.x
3.1.3 - 20240912 Fix mail link + show list of series in author details
- Fix mail link producing an [object Object] message - see issue #105 by @marioscube
- Show list of series in author details for bootstrap2 and twigged templates
- Add extra params in links generated by getFilters() + use canFilter()
- Simplify adding entries in pages + clean up constructors
Full Changelog: 3.1.2...3.1.3
3.1.2 Minor fix for docker release
See release 3.1.1 for breaking changes for COPS 3.x
3.1.2 - 20240909 Minor fix for docker release
- Handle index.php/check to check configuration
- Upgrade twig/twig package to 3.14.0
Full Changelog: 3.1.1...3.1.2
3.1.1 Release candidate for COPS 3.x
Overview
This is a release candidate for the new COPS 3.x code base. There are only minor functional changes (filter links), but the config files have moved, and all links in COPS now use route URLs by default.
Please report any issues or submit pull requests if you notice any bugs - thanks!
Breaking changes for 3.x release (PHP >= 8.2)
For everyone
- move your customized config_local.php file to config/local.php on the web server/container
- replace any feed.php links with index.php/feed for OPDS feeds in your e-reader
Less common
- if you map the lib/ or test/ directory somewhere, like a docker compose file, web server config etc. you'll need to replace that with src/ or tests/ respectively
- if you use other endpoints for links elsewhere, like the REST API for a widget, you'll need to use route URLs and replace restapi.php with index.php/restapi etc.
Change log
3.1.1 - 20240909 Release candidate for 3.x
- Changes in config/default.php file:
- new $config['cops_front_controller'] = '' value
- Set front controller to remove index.php/ from route URLs
3.1.0 - 20240908 Breaking changes for 3.x
- Changes in config/default.php file:
- set $config['cops_use_route_urls'] = '1' as default
- new $config['cops_twig_templates'] = ['twigged'] list
- Split off templates from HtmlRenderer
- BC: Redirect other endpoints + add deprecations
- Split off RouteTest + fix route urls
- Add basic middleware dispatcher
- BC: Enable route urls by default in config/default.php
- BC: Move config_.php files to config/.php to align dir structure
- BC: Rename lib/ to src/ and test/ to tests/ to align dir structure
3.0.0 - 20240905 Update requirements (PHP >= 8.2)
- Update phpunit tests + upgrade code with rector
2.8.2 - 20240905 More clean-up of handlers & renderers
- Expand Data mimetypes to cover common EPUB file components
- Add Response class + move notFound() + add redirect() and sendError()
- Rename FileRenderer to FileResponse and inherit from Response
- Replace header() and echo with Response() in handlers
- Use FileResponse::sendFile() for covers and thumbnails
- Fix monocle epub reader when using route urls
- Move getting zip content from ZipFsHandler to EPubReader
- Add GraphQL query field tests
- Show filters in main page for bootstrap2 and twigged templates
- Show links to PAGE_ALL in filters page to find all authors etc. for a filter
- Pass along Response() from handler to renderer + align constructor args
Full Changelog: 2.8.1...3.1.1
2.8.1 Fix download filenames
2.8.1 - 20240902 Fix download filenames
- Fix FileRenderer to send the right Content-Disposition - see issue #102 by @Chirishman
Full Changelog: 2.8.0...2.8.1
2.8.0 Support 'kepubify' tool for Kobo
Define $config['cops_kepubify_path'] in config_local.php and set $config['cops_provide_kepub'] = '1'
2.8.0 - 20240901 Support 'kepubify' tool for Kobo
- Add FileRenderer class to send files + use sendHeaders
- Fix Zipper to allow unicode chars in file names
- Refactor FetchHandler and getUpdatedEpub to support kepubify
- Use optional kepubify tool to convert EPUB files for Kobo - see #77 by @SenorSmartyPants
Full Changelog: 2.7.5...2.8.0