Commit Graph

490 Commits

Author SHA1 Message Date
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
rr-
da5b32feeb server/users: fix hiding email from admins etc 2016-04-29 13:16:16 +02:00
rr-
c55fb2ef41 server/tags: output tag usage count 2016-04-29 12:58:56 +02:00
rr-
21fd25dd12 server/tags: create tag categories automatically 2016-04-29 12:58:56 +02:00
rr-
f59c1e0346 server/tags: create tag categories automatically 2016-04-29 10:33:46 +02:00
rr-
83cc7a568d server/posts: add post (un)favoriting 2016-04-28 19:04:44 +02:00
rr-
0b20132a2f server/api + docs/api: organize responses 2016-04-28 18:20:50 +02:00
rr-
2b69e9b461 server/posts: add post deleting 2016-04-27 19:24:50 +02:00
rr-
587a8f8276 server/posts: add post retrieving 2016-04-25 10:48:15 +02:00
rr-
52f4018bee server/comments+posts: add rating 2016-04-24 16:37:11 +02:00
rr-
8fb536c8f0 server/general: move not found errors to func 2016-04-24 14:34:01 +02:00
rr-
0b47957bb9 server/comments: add comment search 2016-04-24 11:56:14 +02:00
rr-
b75cfff8f7 server/comments: add comment retrieving 2016-04-24 11:24:36 +02:00
rr-
10f8f443f1 server/comments: add comment deleting 2016-04-24 11:16:24 +02:00
rr-
48cb172cc8 server/comments: add comment updating 2016-04-24 10:31:49 +02:00
rr-
612734e9ff server/comments: add comment creating 2016-04-24 10:31:49 +02:00
rr-
6e6c57d44a server/api: move serializers to func layer 2016-04-24 10:31:49 +02:00
rr-
093863b944 server/comments: add comment tables 2016-04-24 10:31:49 +02:00
rr-
1476c84a9d server/posts: add featured post retrieval 2016-04-23 08:07:21 +02:00
rr-
cf00a3a2de server/posts: add post featuring 2016-04-22 20:58:04 +02:00
rr-
a30886cc70 server/search: rename order: to sort: 2016-04-22 19:37:58 +02:00
rr-
14059de1d7 server/db: add more post tables 2016-04-22 18:36:12 +02:00
rr-
a67a5069b7 server/info: implement simple global info
For now it returns total post count and disk usage. To reduce stress on
the file system, the disk usage is cached for an hour.
2016-04-21 19:48:47 +02:00
rr-
46ee9faf72 server/snapshots: add snapshot lists 2016-04-21 19:27:30 +02:00
rr-
c2a39a0fd5 server/snapshots: change snapshot representation 2016-04-21 19:01:41 +02:00
rr-
97bd935bb6 server/tags: add listing tag siblings 2016-04-20 21:31:46 +02:00
rr-
747c730688 server/tags: add tag merging 2016-04-20 19:02:39 +02:00
rr-
74fb297584 server/db: fix aggregates 2016-04-20 15:17:11 +02:00
rr-
a926838b90 server/general: rename 'misc' to 'util' 2016-04-20 11:59:46 +02:00
rr-
57b18c6461 server/general: rename 'util' to 'func' 2016-04-20 11:58:17 +02:00
rr-
d3f2ef296b server/tests: don't recreate database every test 2016-04-20 11:48:34 +02:00
rr-
661c0248d2 server/api: return snapshots to client 2016-04-20 11:15:46 +02:00
rr-
9a4b5a7dd3 server/tags: record tag category snapshots 2016-04-19 18:11:00 +02:00
rr-
2e57a0746f server/general: consistently use db.session 2016-04-19 18:10:22 +02:00
rr-
fe56e376f6 server/tags: export also tag categories 2016-04-19 15:51:26 +02:00
rr-
884747bbbd server/tags: prohibit deleting last tag category 2016-04-19 13:10:07 +02:00
rr-
58838f8bd9 server/tests: refactor tests 2016-04-19 13:01:50 +02:00
rr-
15f734d21b server/api: output JSON for HTTP 405 2016-04-19 12:40:08 +02:00
rr-
59473799a4 server/db: add missing migrations 2016-04-19 12:08:59 +02:00
rr-
2fba374e65 server/tags: introduce tag category API 2016-04-19 12:05:14 +02:00
rr-
83784c5e76 server/api: improve input sanitization, fix docs 2016-04-19 11:55:31 +02:00
rr-
7263849fac server/tags: make creating tag relations optional 2016-04-19 00:18:52 +02:00
rr-
1597ae7c5c server/db: refactor session usage 2016-04-18 23:06:51 +02:00
rr-
bba327fe8a server/middleware: fix session usage 2016-04-18 22:08:30 +02:00
rr-
e3a4793d54 server/tags: move tag categories to database 2016-04-18 22:08:30 +02:00
rr-
9350c4ff97 server/snapshots: add snapshots to tags 2016-04-18 20:44:39 +02:00
rr-
1c064778c6 server/tests: adapt freezegun
The reason why this is added to the project is because it has turned out
mocking the time is not as trivial as I originally anticipated
(specifically, there are some problems with SQLite).
2016-04-18 19:42:24 +02:00
rr-
e8a9c4ad51 server/db: fix ambiguous names 2016-04-18 19:24:09 +02:00
rr-
e42cede27c server/users: allow rank+avatar when creating user 2016-04-17 19:02:39 +02:00
rr-
08271caf32 server/search: rename search criterion 2016-04-17 18:17:18 +02:00
rr-
c957befbd0 server/search: simplify virtual token mappings 2016-04-17 18:17:18 +02:00
rr-
bc15fb6675 server/posts: add sketch of post table 2016-04-17 16:35:31 +02:00
rr-
9ac70dbed4 server/tags: simplify relations model 2016-04-17 12:54:31 +02:00
rr-
888e8e1aa7 server/tags: prefix post_count column with auto_ 2016-04-17 12:54:30 +02:00
rr-
470ff70f91 server/tests: use common fixtures in pw reset test 2016-04-17 12:54:30 +02:00
rr-
cecab3caf0 server/tests: fix test name 2016-04-17 10:08:11 +02:00
rr-
0bc45e9c45 server/search: support -min and -max suffixes 2016-04-17 08:31:46 +02:00
rr-
9247e11596 server/tags: add JSON export 2016-04-16 23:05:31 +02:00
rr-
61d2fb88ea server/tags: add tag listing 2016-04-16 21:24:09 +02:00
rr-
c71c082000 server/search: fix missing default search order 2016-04-16 18:55:04 +02:00
rr-
fa6b808659 server/tags: add single tag retrieving 2016-04-16 17:26:10 +02:00
rr-
37a86816af server/tags: add tag deleting 2016-04-16 17:03:28 +02:00
rr-
e4239a199c server/api: refactor + remove ID from user JSON 2016-04-16 15:49:21 +02:00
rr-
adecdd4cd9 server/tags: add tag updating 2016-04-16 13:41:19 +02:00
rr-
018dedcffd server/tests: change test runner 2016-04-16 11:03:48 +02:00
rr-
9e873145a4 server/tags: add tag creating 2016-04-16 09:19:55 +02:00
rr-
ec4cba94a9 server/db: introduce tags 2016-04-16 09:19:55 +02:00
rr-
3bf9d6b462 server/tests: add sql logging 2016-04-15 23:26:38 +02:00
rr-
025dff62dd server/misc: add icase_unique 2016-04-15 23:26:38 +02:00
rr-
063b0c4799 server/context: add get_param_as_list 2016-04-15 23:26:38 +02:00
rr-
3d4ceb13b8 server/api: move all io mgmt to context
where input/output includes files, JSON metadata and GET parameters.
Additionally, formalize context with a new class, Context.
2016-04-15 23:26:38 +02:00
rr-
07ea920def server/tests: switch to pytest 2016-04-15 18:00:06 +02:00
rr-
7f8c2cfa00 server/tests: test uploading avatar 2016-04-14 21:50:59 +02:00
rr-
b5e9f37450 server/search: protect against weird page numbers 2016-04-14 21:50:59 +02:00
rr-
35c549493c server/users: support wildcards in user search 2016-04-14 21:50:59 +02:00
rr-
0b5f436f40 server/users: sort by name by default 2016-04-11 21:43:58 +02:00
rr-
d97a332d23 server/api: let users control page size 2016-04-10 22:14:25 +02:00
rr-
fba239855c server/users: change default gravatar to retro 2016-04-10 22:14:25 +02:00
rr-
6bff0a6a26 server/images: fix processing errors 2016-04-10 18:54:19 +02:00
rr-
c788061976 server/users: fix avatarStyle letter case in json 2016-04-10 16:23:35 +02:00
rr-
00da04b4d4 server/api: fix decoding JSON 2016-04-10 16:23:35 +02:00
rr-
4faf42ee19 client+server/general: fix config references
...some references still referred to non-existing config.ini.
2016-04-10 16:23:35 +02:00
rr-
2af8c9c1a4 server/general: cosmetic changes 2016-04-09 22:44:50 +02:00
rr-
e8aeb11081 server/users: add avatar support 2016-04-09 22:38:57 +02:00
rr-
403cfbd679 server/users: fix first user's rank
It was set to the latest (== most capable) rank from the config which
is... "nobody", that is supposed to be unattainable.
2016-04-09 22:23:24 +02:00
rr-
05e4a1b977 server/db: squash db migrations, fix typo 2016-04-09 22:23:24 +02:00
rr-
450a61c1e1 server/users: add user removal 2016-04-09 09:21:56 +02:00
rr-
8023c29c0e server/search: fix case in result JSON 2016-04-09 08:58:24 +02:00
rr-
b6df2ed903 server/search: prefer hyphens to underscores 2016-04-09 08:58:06 +02:00
rr-
3234da76ad server/api: support file uploads 2016-04-08 22:06:15 +02:00
rr-
ee28d95537 server/users: first user becomes an admin 2016-04-08 19:46:59 +02:00
rr-
8be93f6c70 client/users: add user view prototype 2016-04-07 00:08:18 +02:00
rr-
c46dc08c1b server/tests: fix pylint score 2016-04-06 22:48:45 +02:00
rr-
55cc7b59e4 client+server: switch to yaml config 2016-04-06 22:36:04 +02:00
rr-
19a357611b server: rename 'access ranks' to just 'ranks' 2016-04-06 19:16:44 +02:00
rr-
92dd958866 client+server: finish password reminders 2016-04-06 17:56:34 +02:00
rr-
1fb2f53914 server/users: make user names case insensitive 2016-04-06 17:34:01 +02:00
rr-
ad6750a055 server/users: improve api coverage in tests 2016-04-05 15:15:31 +02:00
rr-
219ab7c2c3 server/general: be more pythonic 2016-04-03 23:21:22 +02:00
rr-
2578a297bf server/general: improve pylint score
+ incorporate some in-house rules - no more useless doc strings...
2016-04-03 19:17:54 +02:00
rr-
9ce67b64ed server/api: add password reminders 2016-04-03 18:26:16 +02:00
rr-
1ed17a2046 server/users: add editing users 2016-04-03 18:13:22 +02:00
rr-
8bdcb04665 server/users: fix returning invalid users from api 2016-04-03 16:04:10 +02:00
rr-
a157d2db0e server/users: add searching prototype 2016-04-03 15:28:10 +02:00
rr-
baf9b1d31a server/users: track login time 2016-04-03 15:28:10 +02:00
rr-
d44bcdf3da server/util: add date time parser 2016-04-03 12:12:57 +02:00
rr-
583e73dfc7 server/middleware: pretty-print JSON 2016-04-02 14:45:19 +02:00
rr-
769ef8f141 server/general: move errors to top level NS 2016-04-02 14:19:01 +02:00
rr-
06cf8c79d4 server/api: move validation to service layer 2016-04-02 10:02:20 +02:00
rr-
d3d2540b88 server/api: use facades for falcon's methods 2016-04-02 10:01:55 +02:00
rr-
c26e339af3 server/users: secure email retrieval 2016-04-01 19:03:01 +02:00
rr-
e487adcc97 split files into client/ and server/ 2016-04-01 18:48:16 +02:00