144e97d365
Use self.photodb.sql_ methods instead of running own cursors.
...
All in the name of centralization.
Also improved SQLness of Tag.convert_to_synonym.
2018-03-29 19:24:48 -07:00
2edb9a1d57
Centralize cursors to PDB.sql_execute.
...
This gives me a nice common place to do logging if I want.
2018-03-29 19:24:39 -07:00
cca8837863
Move helpers.select_generator to PDB.sql_select.
2018-03-25 16:32:17 -07:00
cfa5d269d1
Add keybinds CTRL+A and +D to select/deselect all cards.
2018-03-23 11:58:39 -07:00
27885df64e
Fix binding of the fallback handler.
2018-03-23 10:25:03 -07:00
da47b5bb3c
Fix several small, embarassing typos.
2018-03-23 01:18:43 -07:00
abaeb2321f
Oops, should be .remove instead of .pop for the cacheclass.
2018-03-23 00:35:56 -07:00
77dfeb4299
Add more _assert methods to hide clutter.
2018-03-23 00:35:56 -07:00
229530580f
Add Tag.normalize_description.
2018-03-23 00:35:56 -07:00
b4d3de3651
Add Bookmark.normalize_title and _url.
2018-03-23 00:35:56 -07:00
6ee86431e5
Add Album.normalize_title and _description.
2018-03-23 00:35:55 -07:00
dddd8a3aa1
Add ObjectBase.normalize_author_id.
2018-03-23 00:35:47 -07:00
1f7749b80a
PDB.new_album call album.add_photos instead of add_photo.
2018-03-22 23:11:25 -07:00
0e3ae11610
Improve normalizers, use less None; Add author search box.
...
It was getting difficult to remember which of the normalizers
use None and which don't. So let's try to be a little more consistent
and just use empty sets, etc, so the caller can rely on receiving a
set instead of having to check for None.
Also renamed search parameter authors->author to be more in line
with the singular form of extension.
2018-03-22 21:09:21 -07:00
088a79ffff
Add method PDB.get_users.
2018-03-22 21:06:05 -07:00
5c89e13129
Update DatabaseOutOfDate message to use new upgrader path.
2018-03-22 17:34:43 -07:00
5be174d1b3
Completely rewrite search to use more SQL and less application.
...
In order to achieve tag_musts, we break each of the musts down
into separate EXISTS queries for each of the matchable children.
Then we INTERSECT those, and finally do other filtering and
ordering as usual.
2018-03-21 19:20:43 -07:00
db827d17ec
Add to do regarding extension not being updated by override.
2018-03-21 19:20:06 -07:00
1e42f1ea4e
DB V12: Add (photoid, tagid) index to photo_tag_rel.
2018-03-21 19:00:13 -07:00
acc9b67a20
Add parameter minimal to jsonify.tag.
2018-03-21 18:48:38 -07:00
6c77ddd1c3
searchhelpers.normalize_author use un only, not IDs.
...
I don't like the idea of a user setting their username to be
someone else's ID.
2018-03-21 13:21:25 -07:00
afc5f38a8d
Combine normalize_limit, _offset to normalize_positive_integer.
2018-03-21 11:25:21 -07:00
1d76b4511b
Let PDB.get_tag convert normalization errors to NoSuch.
...
Instead of having to account for them on the other end,
since they don't care about that stuff anyway.
2018-03-21 11:03:58 -07:00
7b4ae3045a
Remove some excessive newlines from photo_card output.
2018-03-19 22:52:15 -07:00
efd8e28c01
Remove Album improvements from readme.
...
I forgot to do this during 30d8d08.
2018-03-19 15:17:19 -07:00
b4cd4b6130
Fix body not filling vertical space.
2018-03-19 15:06:07 -07:00
45bd80caa4
Remove height:40px from plain_link. Only nice_link.
2018-03-19 15:03:53 -07:00
b90971813f
Oops, fix broken click-to-join because of the qualname change.
2018-03-19 14:11:25 -07:00
fba75c0325
Add some contact info to contributing.md.
2018-03-19 04:03:45 -07:00
b5274fefb9
Add caching.py to enable browser caching of files.
2018-03-18 21:42:31 -07:00
ea7401b4f2
Fix common.send_file to use pathclass.
2018-03-18 21:40:32 -07:00
0de755f138
Let the SessionManager use a cacheclass instead of plain dict.
2018-03-18 21:23:48 -07:00
b247ba3d63
Bump voussoirkit requirement to 0.0.23 for cacheclass.__contains__.
2018-03-18 21:00:58 -07:00
9a1caee412
Add helper function hash_file.
2018-03-18 20:56:29 -07:00
2d73e59abf
Let helpers.read_filebytes operate on pathclass Paths.
2018-03-18 20:56:08 -07:00
a5aef63c6f
Tags on this page should also display qualnames with maxlen.
2018-03-18 19:47:08 -07:00
a6babe116e
Add some more notes about junctions.
...
Instead of, you know, actually writing the setup.py file.
2018-03-18 17:51:42 -07:00
e186653e36
Use shutil.which to discover ffmpeg.
...
How did I miss such an easy solution for so long??
So glad I did not go the env var route.
2018-03-18 17:03:11 -07:00
84599b44f7
Store author for bookmark creation.
2018-03-18 15:59:58 -07:00
84e0266f30
Add author to object jsonifiers.
2018-03-18 15:59:36 -07:00
60049c777f
Add method get_author to all objects.
2018-03-18 15:58:51 -07:00
dffde094e8
Give Albums and Tags an author_id column.
...
Keeping V11 because I hadn't published previous commits yet.
2018-03-18 15:28:26 -07:00
cc98cf5407
Create subdirs for utilities.
2018-03-18 00:26:57 -07:00
d6d28764c4
Oops, assign self.config before dumping it.
2018-03-18 00:23:05 -07:00
0c7d35435e
Consider env vars for ffmpeg path.
2018-03-18 00:21:33 -07:00
6add02c8a2
Move column extractor to own function.
2018-03-18 00:21:03 -07:00
4a39b527f3
Use dot_extension on the photo cards.
2018-03-18 00:19:30 -07:00
d383000441
Add Foreign Keys, Primary Keys, and NOT NULL constraints.
2018-03-18 00:09:08 -07:00
33d506ddaf
Rearrange tables in preparation for foreign keys.
...
In order to create a foreign key the table has to already exist.
So move the object types to the top, with Users first since other
things have authors.
2018-03-17 17:54:15 -07:00
c4d0de7f97
Move digest_directory and easybake to Util mixin.
2018-03-17 17:19:07 -07:00