Commit Graph

124 Commits

Author SHA1 Message Date
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
rr- 9d6a0e0173 server/posts: add post merging 2016-10-21 21:48:38 +02:00
rr- b853caf6f5 server/posts: fix relation updating
Fixes #103
2016-10-02 17:21:15 +02:00
rr- 049a0dc351 server/mime: fix GIF animation heuristics
Closes #100
2016-09-29 12:59:40 +02:00
rr- 0c61e85340 server: fix lint 2016-09-26 22:51:00 +02:00
rr- 71a4ce8764 server/func: handle download errors 2016-09-25 14:52:47 +02:00
rr- 16d04adde0 server/errors: add and document error codes 2016-09-10 11:36:01 +02:00
rr- 8674c8b50e server/posts: report duplicate post ID and URL 2016-09-10 10:16:14 +02:00
rr- 243ab15b85 server/tags: add order to tag names
The better implementation of a224297.

Fixes ability to reorder tag aliases, especially - the ability to change
the tag's primary name after it was created. Until now, both of these
scenarios needed sad workarounds on the user part.
2016-08-28 20:00:50 +02:00
rr- ef0f74297f server/tag-categories: fix default categories
- Don't cache default category in its entirety - cache only its name
- Purge cache on category name changes and default category changes
- Lock records for updates where applicable
2016-08-27 12:39:59 +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- 28bcbd33b9 server/posts: use SHA1 checksums
This changes the checksums to ones that are compatible with 1.x, which
relieves the migration script from recalculating the checksums for all
the posts.
2016-08-20 13:06:19 +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- ef4af697c4 server/tags: fix tag sorting
Brainfart from d6942121e5
2016-08-14 17:54:15 +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- 264f9ee70b server/tests: update func.mime tests 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- 53e96ba41f server/tests: add func.tag_categories tests 2016-08-14 16:43:35 +02:00
rr- 81dfbaec98 server/tests: add func.users tests 2016-08-14 16:43:35 +02:00
rr- 65efc309a8 server/comments: catch bad IDs 2016-08-14 16:43:31 +02:00
rr- 56b3eb9674 server/util: fix case conversion 2016-08-14 16:43:04 +02:00
rr- 86452019a3 server/util: improve catching bad field names
KeyError could catch exceptions that happened inside the serializer
routine and mistakenly report them as an error with user input.
2016-08-14 16:43:04 +02:00
rr- f6f07a35df server/general: authenticated_user->auth_user 2016-08-14 16:43:04 +02:00
rr- c2bbf7b62c server/general: add assertions 2016-08-14 16:43:04 +02:00
rr- bb86e9bf56 server/posts: add more safety checks for notes 2016-08-14 16:43:04 +02:00
rr- 7cd4a1a530 server/tags: verify description size 2016-08-14 16:43:01 +02:00
rr- 3db4f39545 server/tag-categories: correct exception type 2016-08-14 12:31:46 +02:00
rr- 92075bb455 server/tags: don't verify tag names while getting 2016-08-14 12:31:46 +02:00
rr- d6942121e5 server/tags: change tags sort order 2016-08-14 12:31:21 +02:00
rr- 07237bc2bc server/tags: fix changing name case 2016-08-14 11:39:04 +02:00
rr- 7e5deee76b server/tags: fix tag merging 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- 9e2dace73f server/posts: improve errors for bad note points 2016-08-05 23:02:34 +02:00
rr- 5092c2c587 server/posts: respect tag creating privilege 2016-08-02 12:44:38 +02:00
rr- a9338f6490 server/general: fix pylint warnings 2016-08-02 12:27:01 +02:00
rr- ff189a3915 server/posts: fix deleting post with comments 2016-08-02 12:27:01 +02:00
rr- 92d290b2a4 server/posts: fix removing custom thumbnails 2016-07-31 23:53:23 +02:00
rr- 5e47c5c0c6 server/users: use HTTPS for Gravatar 2016-07-30 13:43:15 +02:00
rr- ef76cdaf8a server/posts: always use null size for bad images 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- 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- b7f2982c9e server/posts: fix relations bidirectionality 2016-07-17 21:14:03 +02:00
rr- c472229bae server/posts: add relationCount field 2016-07-03 18:30:32 +02:00
rr- c21494be25 server/posts: make relations bidirectional 2016-07-03 18:30:32 +02:00
rr- 48d6fb6b43 server/posts: include thumbnail URLs in relations 2016-07-03 18:30:32 +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