* add endpoint to serve readable content
* add id and modified time in response
* revert id and modified time
* remove public check status
* chnage 401 to 403
* add basic unittest for readable content
* check response in unittest
* update strcut name and move that above handler
* migrate bookmark content route to new http server
* new archive page
* remove unused go generate comment
* database mock
* utils cleanup
* unused var
* domains refactor and tests
* fixed secret key type
* redirect to login on ui errors
* fixed archive folder with storage domain
* webroot documentation
* some bookmark route tests
* fixed error in bookmark domain for non existant bookmarks
* centralice errors
* add coverage data to unittests
* added tests, refactor storage to use afero
* removed mock to avoid increasing complexity
* using deps to copy files around
* remove config usage (to deps)
* remove handler-ui file
* Adding docs on how to install with Kubernetes manifests.
* docs: community section
---------
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
Co-authored-by: Felipe M <me@fmartingr.com>
* Install `prettier`
Ignore everything in the first step as I want to see the size of changes
that are going to happen first
* Configure prettier
- use tabs as the whole project prefers tabs
- ignore a bunch of files that shouldn't be formatted
* Check & format with prettier when compiling less
* Update docs to use bun
Since bun handles the dependencies used for the CSS compilation this
should be the preferred method from now on.
* Check actual result of prettier
* Use LF line endings
All files where formatted in LF and since it's most common in git repos
we should probably keep it this way
* Limit prettier to `internal/view/`
See pull request review
https://github.com/go-shiori/shiori/pull/764#pullrequestreview-1702935417
* Format code with prettier
* add new api
* UI use new API
* remove legacy route
* fix request to new api destination and read that response
* feat: allow authentication using cookies
* fix: return proper error on validatesession
* typo: secret key envionment variable in makefile
* serve ebook file with new api
* cache update use new api path
* add skipexist and batch download use same route as cache
* fix bug - update hasebook status
* remove unneeded part of code
* add swagger documentation
* fix swagger documentation
* fix swagger response
* better statuscode
* fix swagger documentation
* covert to snake_case
* recover coverage.txt that remove
---------
Co-authored-by: Felipe M <me@fmartingr.com>
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* add shiori save to android device share menu
* better section for community contributions
* add new line
* fix typo
* fix typo
* fix typo
---------
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* create needed field in sqlite database
* update account model
* update Account struct for save Account options
* update sqlite database return account settings
* save configure in sqlite as text and return that
* read configure from user account and defualt configure for shiori
* add api/ui for update settings in database user can save settings in database (in sqlite database)
* check configures be in json format before save in database
* support MariaDB
* fix wrong comment
* support PostgreSQL
* revert unneeded change in new logic
* change configures to config
* change SaveAccount to SaveAccountSettings
* add migrate database scripts
* change default in migration scrtipts
* update model
* read config field as json from database
* fix parse value config value & update config update
* update default value for new user
* update settings variable name to reflect database value in UI
* fix typo
* not panic if user not exist and update worng comment
* visitor user can update there settings now
* remove unneeded loading dialog
* fix typo
* update function for pg and mysql
* remove IsJson
* move scan method to model
* simplify jsonify
* simplify assignees value to account.Config
* missing part of function
* fix some typo and unneeded field in struct
* add down migrate script for all database
* change createEbook to CreateEbook
* use json instead of text in mysql and postgres
* implement
* remove unneeded part
* remove unneeded jsonify in code
* return SelectContext and GetContext
* remove defualt config in reques for new user it will be set in backend
* New API
* remove legacy API
* remove validateSessionWithoutOwnerStatus
* remove Jsonify function don't need that anymore
* add unit test for database
* update migrate script name
* change put to patch
* return PUT
* fix Patch problem and now use PATCH instead of PUT
* remove unneeded retuen
* more cleaner code for request new settings
* fix bug to handle string in Scan method thanks to fmartingr
* fix Authorization & use GetAccount & remove username from request
* shiori-settings remove and it read from shiori-account
* add swagger documentation
* API unit test
* fix typo
* remove unneeded coment
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* better Documentation
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* shiori-toke remove on logout
* fix typo
* add unit test check update config in database
* update swag documentation
* fix swag formaing error
---------
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* go 1.21
* update dependencies
* Updated direct dependencies
* -count=1 to test flags
* group dependabot updates into one PR
* get swag version from go.mod
* show changes in swagger check
* go mod tidy
* updated swag generated files
* use go version from go.mod
* remove stray \
* proper grep
* refactor: swagger docs into a folder
* added scripts for the swaggger tasks
* check version and fmt
* CI
* formatted swag comments
* using custom delims
* revert custom delims
* swag 1.16.1
* update swagger docs
* avoid make swagger output
* swagger check
* test
* swag-fmt
* swagger run
* gofmt
* avoid swag-fmt check for now due to inconsistencies with gofmt
* re-enabled by using go fmt afterwards
* use newer swag in CI
* add gopath to path
* using go binary instead of unset env
* alternative
* correct swag version
* formatted
* formatted
* correct go fmt command
* make swagger
* swagger-check -> swag-check
* run swag-check on lint
* config: backwards comptabile dir
* remove duplicated frontend
* frontend: move assets to assets folder
* legacy routes handler in gin
* templates and asset in different embed
* new routes
* frontend routes serve old views
* added DTO for account object
* api auth calls legacy handler
* frontend: handle new error messages
* frontend: update urls
* frontend: login using new api
* updated frontend tests
* chore: remove debug route
* create shiori/gopher user if no owner is present
* server as default command
* serve -> server
* refactored database logic, allow database url
* removed unused configuration
* storage docs
* refactor cli to use cfg and deps
* check errors only in server
* log fatal instead of os exit
* dont default data directory to current dir
* fixed sqlite path
* trigger build on prs
* avoid releasing if lint/test fails
* pull request condition
* event -> event_name
* Get correct pull request number
* added workflow to delete dangling tags
* fix: nil error checking
* set gin mode first
* set gin mode before initialization
* fix logger
* allow version bump from custom ref
* Updated matrix link to workspace
* feat: add SHIORI_PG_SSLMODE
Some managed hosting providers don't support sslmode=disabled.
* handle empty value
---------
Co-authored-by: Felipe M <me@fmartingr.com>
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
The import script was pointing to a faulty gist with an error, I've forked and fixed the error as @questor pointed out in the comments and #426.
Fixes#426