Shyam Sunder
26127eaaf5
server/config: use safer YAML loader
...
Fixes #254
2019-04-27 18:08:47 -04:00
Shyam Sunder
4117f63375
server/model/posts: Make post flags a hybrid attribute in model
...
This should (hopefully) fix #250 and #252
2019-04-22 20:20:19 -04:00
Hunternif
9e7c77cd73
server/build: require elasticsearch >=5.0.0., <7.0.0.
2019-04-17 23:15:01 +07:00
Shyam Sunder
d69ef710b3
server/search: automatically add wildcards for source URL searching
2019-04-07 19:30:35 +02:00
Shyam Sunder
1d8cfd5a89
server/search: allow searching by source URL content
2019-04-07 19:30:35 +02:00
Shyam Sunder
b18acf3982
server/func/images: attempt to fix #225
2019-02-11 21:28:02 +01:00
Shyam Sunder
065a466af8
server/func/posts: fix #221
2019-02-11 21:28:02 +01:00
rr-
5ed70b2ec4
server/func/images: work around ffmpeg bug 6375
2019-01-09 21:15:58 +01:00
Shyam Sunder
14377933a7
server/func/posts: transfer flags on merge
2018-12-22 12:31:25 +01:00
Shyam Sunder
e80c482891
server/func/images: Fix Unicode Error
2018-12-22 12:31:25 +01:00
rr-
d3cabc4a36
server: handle empty flags in migration
2018-09-24 11:40:11 +02:00
Shyam Sunder
8a10fc8ffd
server/posts: automatically detect sound in video post uploads
2018-09-24 11:36:13 +02:00
Shyam Sunder
3879c2ec20
server/search: allow searching by post flags
2018-09-24 11:36:13 +02:00
Shyam Sunder
2235a72d2f
server+client: added sound flag to video posts
2018-09-24 11:36:13 +02:00
Shyam Sunder
cbf67587e2
client: Some minor fixups to base URL feature
...
* Cleanup cookie storage path
* Cleanup Data URL
2018-08-23 21:04:19 +02:00
rr-
45b6df020a
build: fix paths to config files
2018-08-04 13:19:02 +02:00
rr-
8da22cbd5e
server: fix paths to config
2018-08-03 21:04:23 +02:00
rr-
b1a20a7134
tests: fix failing tests
...
Regression caused by changing the way images are converted to grayscale
in 9730aa5c
2018-07-25 19:53:37 +02:00
Shyam Sunder
6a6c4dc822
build: add Docker functionality and documentation
2018-07-25 13:39:57 +02:00
Shyam Sunder
9730aa5c05
client: clean up required Python packages
...
* Packages that are only used in testing or development
have been moved to `dev-requirements.txt`
* Closes #178
* Minor rewrite to drop the `scikit-image` package, which
saves around 200MB in install size
2018-07-22 14:02:30 +02:00
rr-
1fe22a4d0a
server/tag-categories: disallow uppercase colors
2018-07-08 10:10:06 +02:00
rr-
c9cb9aa539
server/password-reset: try to construct full URL
2018-07-08 10:10:06 +02:00
rr-
d85e746a65
server/tests: fix failing info api tests
2018-07-08 09:42:13 +02:00
rr-
b6a5be74cf
config: fix camelCase
2018-07-08 09:38:41 +02:00
Shyam Sunder
60ab9246c6
client: improved build.js, use relative links
...
* Removed unnecessary require('config.js') calls
* 'markdown.js' now uses rel. links in EntityPermalinkWrapper
* 'password_reset.py' now generates rel. links
* Removed 'Base URL' config parameter
* Removed 'API URL' config parameter
* 'build.js' no longer reads/requires config.yaml
* Updated documentation
* Removed unnecessary node packages used in 'build.js'
abandon api_url parameter
2018-07-06 19:40:20 +02:00
Shyam Sunder
3972b902d8
client: fetch configurations from server at runtime
...
Permissions, regex filters, app title, email info,
and safety now fetched using server's Info API
2018-06-27 21:20:03 +02:00
ReAnzu
2a69f0193f
server/auth: add token authentication
...
* Users are only authenticated against their password on login,
and to retrieve a token
* Passwords are wiped from the GUI frontend and cookies
after login and token retrieval
* Tokens are revoked at the end of the session/logout
* If the user chooses the "remember me" option,
the token is stored in the cookie
* Tokens correctly delete themselves on logout
* Tokens can expire at user-specified date
* Tokens have their last usage time
* Tokens can have user defined descriptions
* Users can manage login tokens in their account settings
2018-03-25 22:23:29 +02:00
ReAnzu
3f52aceca4
server/users: harden password hashes
...
- Changed password setup to use libsodium and argon2id (regular SHA256
hashing for passwords is inadequate as modern GPU's can hash generate
billions of hashes per second).
- Added code to auto migrate old passwords to the new password_hash if
the existing password_hash matches either of the legacy password
generation schemes (SHA1 or SHA256).
- Added migration to support new password_hash format length
- Added column password_revision. This field will default to 0, which
all passwords will have till they're updated. After that each password
hash method has a revision.
2018-03-08 23:40:47 +01:00
ReAnzu
7519e071e7
server/posts: deleting a post purges its artifacts
...
Specifically, its thumbnail and post source.
2018-03-08 23:37:37 +01:00
ReAnzu
12ec43f098
server/posts: auto convert GIFs to WEBMs/MP4s
...
- Default setting is false for both conversions, as this will require
additional resources of the server, but is bandwidth friendly for
viewers
- WEBM conversion is slow, but better quality than MP4 conversion with
a typically smaller file size
- Tags are copied over from the original upload
- Snapshots are generated for the new auto posts
2018-03-08 07:48:45 +01:00
ReAnzu
4ff8be6a2f
server/posts: ignore ffmpeg warnings
...
Poorly formatted MP4 and WEBM sources can cause ffmpeg to throw a lot
of warnings. However when there is byte ouptut, the generated thumbnail
is valid. Add a bypass for the resize_fill function to allow ffmpeg to
error.
2018-03-08 07:48:44 +01:00
ReAnzu
4b3529272e
server/users: let administrators add new users
...
* Added functionality for administrators to directly add users to the
application
* Added permission users:create:any to handle level that users are
allowed to create other users
* Moved old permission users:create to users:create:self
2018-03-07 21:30:24 +01:00
rr-
a1fbeb91a0
server/users: fix checking passwords with colons
2018-02-10 14:04:02 +01:00
rr-
f8c7375b01
server/tags: allow uppercase tag category colors
...
i.e. colors such as "#FF0000"
2017-10-08 21:38:38 +02:00
rr-
1c4c5c5f91
remove tags.json
2017-10-01 21:48:00 +02:00
rr-
674d6c35d7
server/posts: add posts:view:featured privilege
2017-08-24 17:17:09 +02:00
rr-
4afece8d50
server/posts: add non-guessable IDs to post URLs
2017-08-24 17:17:09 +02:00
rr-
3c138685ea
server/images: handle resizing errors
2017-05-03 12:10:04 +02:00
rr-
a1b762c65f
api: fix getting cached disk usage with empty dirs
2017-05-01 20:26:53 +02:00
rr-
4bc58a3c95
server: lint
2017-04-24 23:30:53 +02:00
rr-
467b4a7630
server/tags: fix nondeterministic siblings order
2017-04-24 22:48:11 +02:00
rr-
8e5798ab8c
server/tests: fix content sync tests on postgres
2017-04-24 22:36:41 +02:00
rr-
e4aa38f159
server/search: fix errors on negative page offsets
2017-04-24 22:12:12 +02:00
rr-
ba4df16499
server/search: add search term escaping
2017-04-24 21:59:38 +02:00
rr-
9814b132c3
server/search: fix searching for ---
...
Allow only one negation sign.
Also throw an error if user searches only for "-".
2017-04-24 19:55:02 +02:00
rr-
0014721053
server/tags: fix retrieving many tags
2017-04-19 14:44:54 +02:00
rr-
7044d2aaee
server/posts: ignore old elasticsearch results
2017-03-12 18:30:42 +01:00
rr-
5681fd11ef
server/net: make the user-agent configurable
...
Fixes #127
2017-03-03 17:27:23 +01:00
rr-
fdad08e176
server: use index-based paging ( #123 )
2017-02-09 22:40:00 +01:00
Alice Ryhl
a3b3532ca4
server/api: patch timing attack on password reset form
2017-02-07 20:29:37 +01:00
rr-
7f09306dde
server/api: fix unicode urls ( #121 )
2017-02-07 18:03:35 +01:00
rr-
74c583f11d
server/build: fix alembic environment script
2017-02-05 23:29:21 +01:00
rr-
72056e0cd2
server/requirements: fix skimage package name...
...
Brain fart during previous commit...
2017-02-05 23:27:59 +01:00
rr-
ee6b66329b
server/posts: fix search by aspect ratio
...
It was being rounded to nearest integer because of the width/height
columns' data type.
2017-02-05 23:21:43 +01:00
rr-
49e5975254
server/model: use new sqlalchemy import style
2017-02-05 23:21:43 +01:00
rr-
f40a8875c4
server/files: fix import for Py3.5
...
os.DirEntry is available only from Python3.6+.
2017-02-05 22:38:55 +01:00
rr-
4caa980bf8
server/build: add missing dependency
...
Althought szurubooru is now no longer dependent from image-match, the
pulled code still needs the skimage library.
2017-02-05 22:38:05 +01:00
rr-
00c3a4320b
server/posts: support aspect-ratio search query
2017-02-05 22:09:33 +01:00
rr-
0b21d98c9b
server/posts: support note-text search query
2017-02-05 21:51:53 +01:00
rr-
e725f4f99c
server/api: extra validation of list fields
2017-02-05 16:34:45 +01:00
rr-
705967d0fb
server/scripts: remove lint
...
Any configuration for pycodestyle should go to the new setup.cfg file.
2017-02-05 16:34:45 +01:00
rr-
350e9dd331
server/scripts: replace ./test with setup.cfg
2017-02-05 16:34:45 +01:00
rr-
e490080347
server/scripts: remove migration script
...
It was unmaintained for months (years?) anyway
2017-02-05 16:34:45 +01:00
rr-
ad842ee8a5
server: refactor + add type hinting
...
- Added type hinting (for now, 3.5-compatible)
- Split `db` namespace into `db` module and `model` namespace
- Changed elastic search to be created lazily for each operation
- Changed to class based approach in entity serialization to allow
stronger typing
- Removed `required` argument from `context.get_*` family of functions;
now it's implied if `default` argument is omitted
- Changed `unalias_dict` implementation to use less magic inputs
2017-02-05 16:34:45 +01:00
rr-
abf1fc2b2d
server: make linters happier
2017-02-03 22:42:14 +01:00
rr-
fd30675124
server/image-hash: do not depend on image-match
...
While I hold this library in great esteem for its excellent work on
implementing the original paper, I have several problems with it:
- as of this commit, it (again) has bug fixes unreleased on pip
- its code is badly structured
- forces OOP and then proceeds @staticmethod everything
- bad class design, parameters are repeated in several places
- terrible contract of make_record() and generate_signature()
- ambiguous parameters: path vs. image path vs. image content
- doesn't adhere to PEP-8
- depends on cairo just to render svg images almost no one uses this
library with
2017-02-03 21:20:52 +01:00
rr-
894cd29511
server/tests: test image hash
2017-02-03 19:53:10 +01:00
rr-
b21ffac820
server/scripts: make pytest happier
2017-02-03 19:22:33 +01:00
rr-
f828c375e6
server/posts: fix reverse search late evaluation
...
Uploading webms caused 'Not an image.' error to be shown, cause
generators are evaluated lazily, so the `catch` never worked.
2017-02-02 21:52:52 +01:00
rr-
accdb51c0b
server/migrations: add default tag category
2017-02-02 20:26:22 +01:00
rr-
f2fd769767
server/migrations: fix imports for alembic
...
`alembic revision -m 'blah blah'` rightfully complained about imports
(in case of `upgrade`, that module was being populated by some other
module.)
2017-02-02 20:06:20 +01:00
rr-
e92bd2fd80
server/tags: fix getting default category name
...
No categories? Should have thrown an error rather than returning None.
2017-02-02 20:04:09 +01:00
rr-
cce543e0b6
server/posts: commit reverse search population
2017-02-02 19:46:35 +01:00
rr-
af6c35ed6b
server/rest: rollback session on query exception
...
Kills complaints from sqlalchemy when an error happens during
insertion/update hook.
2017-02-02 19:46:03 +01:00
rr-
07d0b43d4c
server/posts: reduce warnings from sqlalchemy
...
...regarding empty IN() statements
2017-02-02 19:46:03 +01:00
rr-
8be0e731a7
server/facade: run without elasticsearch
...
...but don't let user upload any images until they fix their
configuration
2017-02-02 19:46:03 +01:00
rr-
ec9c70ba68
server/facade: disable elasticsearch logs
...
Errors are covered by new safety mechanisms in image hash.
2017-02-02 19:46:03 +01:00
rr-
aa1faa3ccb
server/image-hash: improve exception handling
2017-02-02 19:46:03 +01:00
rr-
f42fbbdc56
server/images: support webm with multiple streams
2017-01-25 17:13:39 +01:00
rr-
0cfc9bcafd
server/posts: fix handling corrupt files
...
In case of a ProcessingError, the image dimensions are set to None. But
after that, they are compared with 0, which resulted in a TypeError.
2017-01-25 17:11:05 +01:00
rr-
9b27e113b3
server/search: escape backslashes in search
2017-01-21 00:22:53 +01:00
rr-
783171729f
server: remove unneeded waitress wrapper
2017-01-21 00:22:53 +01:00
rr-
e5f250260d
server: make gunicorn friendly
2017-01-21 00:22:53 +01:00
rr-
6b42d787a7
server: fix problems with escaping
2017-01-21 00:22:53 +01:00
rr-
7414d1f7a6
server/posts: fix getting posts around
...
Querying this undocumented API resulted in 500 ISE unless the client
asked only for the "id" field.
2017-01-20 22:17:26 +01:00
rr-
8d8165a0d7
server/tags: fix order of aliases in export
...
fixes #112
2017-01-08 22:29:05 +01:00
rr-
036fa9ee39
server/uploads: add file upload api
2017-01-08 10:25:29 +01:00
rr-
4cb613a5c9
server/posts: change reverse image search API
...
Add exact duplicates search; refactor to use classes over dictionaries
2017-01-07 14:07:31 +01:00
rr-
9edaaffec2
server/posts: fix post relations
...
Trying to relate post to itself resulted in 500 ISE.
2017-01-03 21:37:38 +01:00
rr-
627574a9c2
server: make pylint happier
2017-01-03 21:35:08 +01:00
rr-
902a0d3fe0
server/db: fix closing DB sessions
...
Certain exception scenarios led to small disasters. Moved database
session management directly to router, since it's that sensitive.
2017-01-03 21:29:48 +01:00
rr-
ef079121a9
server/rest: simplify error handling flow
2017-01-03 21:17:41 +01:00
rr-
f301ca9a8a
server/image-hash: fix handling invalid input
2016-12-26 19:03:04 +01:00
rr-
a7a5cc8180
server/posts: expose reverse image search
2016-12-26 15:00:16 +01:00
rr-
1a59a74d63
server/image-hash: add image search engine
2016-12-26 15:00:16 +01:00
rr-
42666706d9
server/util: fix API queries for empty ?options
2016-11-20 16:02:45 +01:00
rr-
c0d484689b
server: postpone circular dependency evaluation
...
Hopefully this improves importing with python 3.4
2016-11-07 19:28:54 +01:00
rr-
141c9fcdc9
server/tags: merge also tag relations
2016-10-22 18:02:50 +02:00
rr-
995cd4610d
server: drop old style class declarations
2016-10-22 14:43:52 +02:00
rr-
e71718c50d
server/posts: add replaceContent to post merging
2016-10-21 22:34:45 +02:00