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-
d102c9bdba
server/tests: update func.posts tests
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-
03c74cb5a3
server/tests: add func.comments 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-
2429e95102
server/users: fix cascade deletions
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-
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-
3f2717843a
server/middleware: log request method
2016-07-26 23:20:15 +02:00
rr-
603420a31d
server/middleware: remove unused import
2016-07-17 21:14:56 +02:00
rr-
247a1e9bbe
server/tools: migrate files incrementally
2016-07-17 21:14:03 +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
rr-
af36c90618
server/general: improve request logging
2016-07-03 18:30:28 +02:00
rr-
ac23067fdf
server/general: use UTC time stamps
2016-07-03 14:46:28 +02:00
rr-
aa0463dafb
server/tags: improve creation privilege check
2016-06-23 12:51:44 +02:00
rr-
d21b87581d
server/general: add show_sql separate from debug
2016-06-23 12:20:05 +02:00
rr-
7eec347bca
server/tags: add description field
2016-06-23 00:15:25 +02:00
rr-
2651cbb374
server/users: allow empty avatars if they existed
2016-06-19 19:43:53 +02:00
rr-
4ec826d0a5
server/tags: replace ILIKE expressions
...
While it makes sense to use ILIKE in search configs to expose side
effects regarding _ and % for power users to use, it certainly didn't
make sense in places changed by this commit. For example, visiting
/tag/___ led to internal server error.
2016-06-18 11:30:32 +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-
1019062698
server/users: fix fetching columns
2016-06-16 23:42:36 +02:00
rr-
48cf3b47c0
server/users: don't fetch stats eagerly
2016-06-14 07:50:22 +02:00
rr-
d0aaf8fa8f
server/posts: optimize default sort order
2016-06-14 07:50:22 +02:00
rr-
36eddad424
server/posts: optimize 'posts around' query
2016-06-14 07:50:22 +02:00
rr-
6b68c77e17
server/posts: add relation-count token
2016-06-13 20:09:15 +02:00
rr-
7a6d25ac43
server/tags: cache default tag category
2016-06-12 22:30:05 +02:00
rr-
162904bfc3
server/info: add serverTime field
2016-06-12 14:26:52 +02:00
rr-
40565e82ae
server/posts: change comment-time behavior
...
Rather than looking at the edit time, now it looks at the creation time.
2016-06-12 14:24:14 +02:00
rr-
a67db59d99
server/comments: fix serializing cached scores
2016-06-12 14:01:38 +02:00
rr-
e9fb93d5c8
server/general: rename _fields to fields
2016-06-11 22:33:33 +02:00
rr-
8c952c08d0
server/general: report bad field names to user
2016-06-11 17:36:02 +02:00
rr-
b13f9dcb68
server/posts: fix comments order
2016-06-11 17:36:02 +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-
5090e3f6c9
server/comments: fix missing score field
2016-06-11 09:29:23 +02:00
rr-
dfb2e3d027
server/posts: add getting posts around id
...
Leave undocumented since it add almost no value for the client
applications.
2016-06-08 22:38:35 +02:00
rr-
ded89fee5f
server/posts: fix handling bad post ID
2016-06-08 22:38:35 +02:00
rr-
053d1889e0
server/scores: voting for <1 removes favorite
2016-06-08 22:38:35 +02:00
rr-
b28f689077
server/posts: add ownFavorite field to posts
2016-06-08 22:38:35 +02:00
rr-
93a5af2097
server/posts: sort by tag category, then by name
2016-06-06 07:46:19 +02:00
rr-
f3bb6c28a1
server/general: cosmetic fixes
2016-06-05 10:39:56 +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-
805ca845e3
server/users: reduce user fields footprint
2016-06-03 20:14:01 +02:00
rr-
8a5c6f0b31
server/search: fix caching special tokens
...
special:liked was being reused between users. Now the cache internally
caches object similar to liked:USER.
2016-06-03 19:47:09 +02:00
rr-
f0d3589344
server/search: cache by query rather than its text
2016-06-03 19:47:09 +02:00
rr-
59ad5fe402
server/search: refactor, extract parsing
2016-06-03 19:47:09 +02:00
rr-
4428ccfd38
server/images: remove debug blob
2016-06-02 23:42:12 +02:00
rr-
28009bf46d
server/general: fix pylint warnings
2016-06-02 23:39:38 +02:00
rr-
7c7adafd82
server/search: improve error messages
2016-06-02 21:15:29 +02:00
rr-
a72f6aa585
server/search: fix searching for invalid numbers
2016-06-02 20:56:28 +02:00
rr-
1034362b84
server/search: fix searching by partial range
2016-06-02 20:56:28 +02:00
rr-
802c7feca0
server/search: add safety search for posts
2016-06-02 13:58:08 +02:00
rr-
74fba05302
server/tools: add generate-thumb
2016-06-02 13:58:08 +02:00
rr-
accb5a9187
server/images: fix transaprent background for JPEG
2016-06-02 13:58:08 +02:00
rr-
0743721d06
server/images: seek to 30% video before resizing
2016-06-02 13:58:08 +02:00
rr-
01c74526c7
server/images: work around ffmpeg bug 5609
2016-06-02 13:58:08 +02:00
rr-
446f4d6611
server/search: cache results till non-GET request
...
250 ms per page --> 30 ms per page (save for the first render). I'd say
it's pretty good
2016-05-31 14:18:50 +02:00
rr-
349f32ccf2
server/search: defer most posts columns
2016-05-30 23:36:58 +02:00
rr-
78612e1da1
server/posts: add new fields
2016-05-30 23:23:22 +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-
48bcbbff83
server/search: improve performance
2016-05-30 20:51:52 +02:00
rr-
abef6e5c35
server/info: return who featured the post and when
2016-05-29 12:41:22 +02:00
rr-
1549b70ace
server/tools: fix note snapshots importing
2016-05-29 12:40:36 +02:00
rr-
658b95aad7
server/tools: fix note importing
2016-05-29 12:40:36 +02:00
rr-
d7e46e23ab
server/tools: don't copy avatars for --no-data
2016-05-29 12:40:36 +02:00
rr-
4d1f745e38
server/notes: fix note serialization
2016-05-29 12:40:36 +02:00
rr-
731c0442e9
server/search: change named token detection
...
In particular, treat tokens starting with : as anonymous tokens.
2016-05-24 10:29:14 +02:00
rr-
af22ec735d
server/posts: send mime type to client
2016-05-22 22:50:00 +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
rr-
c88dfd228a
server/images: replace pipes with temp files
...
ffmpeg's GIF demuxer needs the input stream to be seekable, which rules
pipes out.
2016-05-20 21:34:02 +02:00
rr-
205f372f76
server/tests: colorize verbose output
2016-05-11 23:47:50 +02:00
rr-
172b956e48
server/search: permit search for tags by alias
2016-05-11 23:47:50 +02:00
rr-
6179f016ae
server/search: make searches case insensitive
2016-05-11 23:47:50 +02:00
rr-
82d32ba1fb
server/tags: fix removing tags related to others
2016-05-11 23:47:50 +02:00
rr-
4cd5b8c1ac
server/tags: fix tag category color validation
...
This was totally stupid...
2016-05-11 22:09:06 +02:00
rr-
a5b2d835d6
server/tags: fix wrong case in merging requests
2016-05-11 18:42:56 +02:00
rr-
59ae0a4c9a
server/db: maintain order of tag aliases
...
First alias has a special meaning in certain contexts, such as post
serialization, where only one alias is chosen to show to the client.
2016-05-11 18:32:53 +02:00
rr-
299055c427
server/tools: fix creating counters
2016-05-11 17:02:41 +02:00
rr-
03498b2d8e
server/tags: add tag category color sanitization
2016-05-10 12:18:06 +02:00
rr-
14a20e55f8
server/tests: fix leftover rank strings
2016-05-10 12:15:33 +02:00
rr-
ba3678dec1
server/posts: implement FLAG_MAP
2016-05-10 12:15:33 +02:00
rr-
4ec842024c
server/users: implement RANK_MAP
2016-05-10 12:15:33 +02:00
rr-
cecf620126
server/config: move config validation to app.py
2016-05-10 12:15:33 +02:00
rr-
cd15cdff7a
server/scores+favorites: merge duplicate code
2016-05-10 12:15:05 +02:00
rr-
f140ae6176
server/tests: change test file name
2016-05-10 12:14:54 +02:00
rr-
174958686c
server/general: disable pylint reports
...
They add no value whatsoever
2016-05-10 12:02:24 +02:00
rr-
3481c1072d
server/general: fix a few pylint warnings
2016-05-10 12:02:24 +02:00
rr-
57297df9e1
server/tools: fix importing tag category with id=0
2016-05-10 10:05:47 +02:00
rr-
b37979546f
server/tools: bump counters after import
2016-05-10 09:54:52 +02:00
rr-
b3f5486761
server/tools: add --no-data option to importer
2016-05-10 09:26:06 +02:00
rr-
ec1fccf17e
server/tools: fix swapping imported tag relations
2016-05-10 09:26:01 +02:00
rr-
a668d3ef34
server/tags: output tag category usages
2016-05-09 22:39:04 +02:00
rr-
fcbfa90879
serevr/tags: fix search by post count and category
2016-05-09 22:36:29 +02:00
rr-
f39e58b1bc
server/db: create indexes
2016-05-09 09:43:00 +02:00
rr-
4558557656
server/tools: add parallelism to content import
2016-05-09 09:42:31 +02:00
rr-
356d5050fd
server/tools: add v1.x migration script
2016-05-08 23:26:46 +02:00
rr-
2330cf017d
server/db: fix mappings
...
Post notes had mixed up column types. I fixed that and at the same time,
I took the opportunity to convert everything into Unicode. Also, I've
changed existing migrations rather than creating new ones - it's not
like we're even close to alpha...
2016-05-08 22:18:13 +02:00
rr-
339c9a3333
server/tags: reduce number of queries
...
On a test page with 50 tags, 158 queries were reduced to 3:
1. Get the authenticated user
2. Get tags for given page
3. Count all tags
Looks just about right.
2016-05-08 20:33:16 +02:00
rr-
d813601d92
server/api: log queries in debug mode
2016-05-08 20:33:16 +02:00
rr-
906eddc61f
server/users: change avatars to PNG
2016-05-08 18:04:06 +02:00
rr-
2bd02f4921
server/users: fix detecting duplicate user names
2016-05-08 18:04:05 +02:00
rr-
0214341473
server/users: prohibit using special ranks
...
Anonymous is self explanatory.
Nobody is used solely to mark certain operation as unavailable even to
administrators (<- nobody is higher than administrator).
2016-05-08 18:04:05 +02:00
rr-
198cb0af3e
server/users: hardcode available ranks
2016-05-08 16:59:25 +02:00
rr-
58964bcdc9
server/posts: add post listing
2016-05-07 21:50:37 +02:00
rr-
9b591c3f1b
server/posts: remember source for URL content
2016-05-05 13:46:57 +02:00
rr-
148858fde9
server/middleware: download files
2016-05-05 13:46:50 +02:00
rr-
ab493a01b4
server/net: add basic downloader
2016-05-05 13:24:50 +02:00
rr-
e632324f72
server/posts: add post updating
2016-05-02 21:58:13 +02:00
rr-
067e438b8c
server/posts: add hasCustomThumbnail to post info
2016-05-02 00:07:33 +02:00
rr-
ce095816d9
server/posts: add post creating
2016-05-02 00:07:33 +02:00
rr-
a567974784
server/general: refactor method names
2016-04-30 23:54:05 +02:00
rr-
f38acf6868
server/func: add content-type related utilities
2016-04-30 17:28:31 +02:00
rr-
4530b6e3b8
server/tests: show SQL queries only with -v
2016-04-30 12:46:52 +02:00