Commit Graph

129 Commits

Author SHA1 Message Date
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- 4bc58a3c95 server: lint 2017-04-24 23:30:53 +02:00
rr- fdad08e176 server: use index-based paging (#123) 2017-02-09 22:40:00 +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- 894cd29511 server/tests: test image hash 2017-02-03 19:53:10 +01:00
rr- 9d6a0e0173 server/posts: add post merging 2016-10-21 21:48:38 +02:00
rr- 8674c8b50e server/posts: report duplicate post ID and URL 2016-09-10 10:16:14 +02:00
rr- c516030c66 server/tests: fix info api tests 2016-09-10 10:12:43 +02:00
rr- ffb87f1650 server/posts: defer flush; save content lazily
Rather than flushing the post right away only to find out that there
were validation errors, try to postpone flushing for as long as
possible.

The previous behavior has led to too eager spending of post IDs - each
flush calls nextval(post_id_seq), and postgres sequences are not
affected by transaction rollbacks, so each erroneous post creation
discarded a post ID, which has led to gaps in post IDs.
2016-08-26 15:09:08 +02:00
rr- bb369efa99 server/general: disable autoflush 2016-08-26 14:41:05 +02:00
rr- b7e9cbd541 server/posts: allow tagless posts 2016-08-21 23:40:01 +02:00
rr- 80af79779d server/snapshots: rewrite 2016-08-16 21:51:25 +02:00
rr- 0320a0b55b server/general: improve versioning effectiveness
...by integrating it with sqlalchemy that adds WHERE conditions for each
UPDATE and DELETE statement.
2016-08-16 17:22:33 +02:00
rr- 9aea55e3d1 server/general: embrace most of PEP8
Ignored only the rules about continuing / hanging indentation.

Also, added __init__.py to tests so that pylint discovers them. (I don't
buy pytest's BS about installing your package.)
2016-08-14 16:44:03 +02:00
rr- af62f8c45a server/general: ditch falcon for in-house WSGI app
For quite some time, I hated Falcon's class maps approach that caused
more chaos than good for Szurubooru. I've taken a look at the other
frameworks (hug, flask, etc) again, but they all looked too
bloated/over-engineered. I decided to just talk to WSGI myself.

Regex-based routing may not be the fastest in the world, but I'm fine
with response time of 10 ms for cached /posts.
2016-08-14 16:43:35 +02:00
rr- c23c401c4d server/tests: add func.tags tests 2016-08-14 16:43:35 +02:00
rr- 3db4f39545 server/tag-categories: correct exception type 2016-08-14 12:31:46 +02:00
rr- 07237bc2bc server/tags: fix changing name case 2016-08-14 11:39:04 +02:00
rr- 2b3d193b7c server/tags: don't auto-create tag categories 2016-08-14 11:38:59 +02:00
rr- 8d04df38fd server/general: add entity versions 2016-08-07 09:55:51 +02:00
rr- 5092c2c587 server/posts: respect tag creating privilege 2016-08-02 12:44:38 +02:00
rr- 5e47c5c0c6 server/users: use HTTPS for Gravatar 2016-07-30 13:43:15 +02:00
rr- 298aedbc75 server/tags: sort relations like post tags 2016-07-30 13:43:15 +02:00
rr- f40e41ae8b server/tags: allow deleting used tags 2016-07-30 13:43:15 +02:00
rr- 8ef0017531 server/tags: improve tag export performance
2000 ms --> 250 ms (including overhead of unknown size).
Not bad if you ask me.
2016-07-26 23:20:15 +02:00
rr- 5800f0ebc7 server/tags: fix merging tags
It violated unique constraint on post_tag when a given post was already
tagged with the target tag.
2016-07-03 18:30:32 +02:00
rr- ac23067fdf server/general: use UTC time stamps 2016-07-03 14:46:28 +02:00
rr- 7eec347bca server/tags: add description field 2016-06-23 00:15:25 +02:00
rr- 3c3d0dbb8d server/info: expose a few config variables 2016-06-18 10:55:44 +02:00
rr- 13ca94d4da server/users: fix avatar issues when renaming user 2016-06-17 21:25:28 +02:00
rr- d0aaf8fa8f server/posts: optimize default sort order 2016-06-14 07:50:22 +02:00
rr- 162904bfc3 server/info: add serverTime field 2016-06-12 14:26:52 +02:00
rr- a67db59d99 server/comments: fix serializing cached scores 2016-06-12 14:01:38 +02:00
rr- 616854fb1b server/users: let authorized users GET themselves 2016-06-11 17:36:02 +02:00
rr- b5aa3e75c4 server/comments: fix privileges 2016-06-11 17:36:02 +02:00
rr- ded89fee5f server/posts: fix handling bad post ID 2016-06-08 22:38:35 +02:00
rr- 508cb6e7ab server/posts: allow anonymous uploads (#90) 2016-06-05 10:30:10 +02:00
rr- caecaee785 server/users: offer more stats in user entity 2016-06-03 21:46:25 +02:00
rr- 037fbc61ec server/api: add ability to select fields 2016-05-30 23:08:22 +02:00
rr- 8d1e23aa63 server/general: flatten responses 2016-05-30 22:54:33 +02:00
rr- d0314813cb server/general: move extra details to resources 2016-05-30 22:54:33 +02:00
rr- abef6e5c35 server/info: return who featured the post and when 2016-05-29 12:41:22 +02:00
rr- 77998f1660 server/tags: let mods set default category 2016-05-22 22:17:11 +02:00
rr- fa14bf714c server/tags: create snapshots for automatic tags 2016-05-22 22:17:11 +02:00
rr- 6a48020426 server/tags: fix sorting tag siblings 2016-05-22 22:17:11 +02:00
rr- cf3b97b8de server/tags: change response key
Since we're using "results" everywhere else, it makes little sense for
tag siblings to use "siblings" node.
2016-05-22 11:05:18 +02:00
rr- 16d4d3ca68 server/favorites: favoriting sets score to 1 2016-05-21 22:35:18 +02:00