5dae9ba178
Use random.choices instead of random.choice in a loop.
2021-08-09 08:46:59 -07:00
53127e59ad
Use stringtools.natural_sorter.
2021-06-07 22:49:26 -07:00
40a3e9d1a0
Update rotate_by_exif call.
2021-06-06 20:33:49 -07:00
5ad4a458de
Only add delete_file action if the file still exists.
...
Files deleted out of etiquette can just be removed from the db.
2021-05-30 19:14:32 -07:00
1ee73feb6c
Rotate thumbnail by exif to ensure correct appearance.
2021-05-30 19:13:46 -07:00
cad360bc3f
Add photo.simple_mimetype to jsonify.
2021-05-24 20:42:44 -07:00
387b7f1096
Rename Photo.bytestring -> bytes_string.
2021-05-24 20:42:29 -07:00
a5913a17f9
Rename photo jsonify bytes_str, duration_str -> _string.
2021-05-24 20:19:58 -07:00
bfea9c097c
Correct docstring that author arg can't be user ids as strings.
2021-05-19 00:04:14 -07:00
2d2e80824f
Migrate scripts from spinal.walk_generator to spinal.walk.
2021-05-17 17:01:11 -07:00
26d5ff5730
Update closest_photodb to take starting path argument.
2021-05-16 21:08:51 -07:00
399d27bb44
Show absolute path instead of pathclass object in NoClosestPhotoDB.
2021-05-16 16:58:53 -07:00
a7b0ae4898
Correct docstring list -> set.
2021-05-15 18:18:37 -07:00
bb782d18b9
Add a little defense against mtime == 0.
2021-05-08 18:25:12 -07:00
3c299422d8
Add display_name to jsonify of album and bookmark.
2021-05-02 18:35:15 -07:00
21f7e7ca22
Don't use fstring in log line.
2021-04-02 18:31:52 -07:00
c73556d1e6
Replace newline with colon in exception str.
2021-03-31 19:35:38 -07:00
ddd35b3789
Remove index to defunct dev_ino.
...
wow!
2021-03-29 22:59:29 -07:00
86199d05ef
Urgent fix for photo.remove_tags didn't check photoid==self.id.
2021-03-03 13:31:58 -08:00
cc79a4945d
Fix add_child prefer specific photo tags.
...
And by fix I mean the old code wasn't even calling the method.
2021-02-28 12:32:40 -08:00
27771f5763
Recalculate mimetype after file rename, relocate.
2021-02-25 18:51:37 -08:00
4bf5b6d824
Replace dev_ino with mtime, sha256.
...
This change was prompted by my discovery that under DrivePool, two
files can have the same dev, ino pair. It's understandable but the fact
of the matter is I don't want to rely on inodes any more.
Hashing has the downside of speed, but considering the time investment
of tagging files in the first place I think it should be worthwhile.
2021-02-03 12:12:47 -08:00
f8efc9d569
Store thumbnail paths as relative to datadir.
...
I went back on this originally, now I'm going... forth on it.
Although the photo files need to be absolute paths, thumbnails should
be relative so you can relocate the photodb and have it still work
properly.
2021-01-29 01:07:58 -08:00
25de9be94a
Let truthystring take a fallback.
2021-01-28 17:21:30 -08:00
3795bde5b1
Load extension from real_path instead of db row.
2021-01-28 17:19:20 -08:00
c40deb3631
Disable remove_control_characters under path_badchars indefinitely.
2021-01-28 17:00:19 -08:00
38e9b796fe
Use spinal.hash_file instead of redefining here.
2021-01-25 14:59:40 -08:00
ce8c367901
When searching for renames, check if the old still exists.
2021-01-25 13:44:36 -08:00
94c512350c
Fix thumbnail_photo not set in new_album.
2021-01-24 21:39:25 -08:00
e77a2209eb
Add Album.set_thumbnail_photo.
2021-01-20 19:07:30 -08:00
95b95bc7be
Add thumbnail_photo to Album.
2021-01-20 18:26:36 -08:00
a6f9d1859e
Move thumbnail work to normalize_thumbnail.
2021-01-19 10:35:09 -08:00
9f9d724a71
Move create table users to alphabetical order.
...
I thought foreign-keyed tables had to be defined first,
but it turns out that's not the case.
2021-01-19 09:42:51 -08:00
4d98176c80
Move __reinit__ to base class.
2021-01-10 15:43:25 -08:00
5b42882f70
Add User.delete.
2021-01-09 15:45:06 -08:00
d4f5a196b9
Add Unauthorized exception.
...
This should start to see more use as I continue to build up the user
profile features.
2021-01-09 15:42:51 -08:00
e5be26f8b0
Add PhotoDB.closest_photodb for frontend instantiation.
2021-01-09 15:42:16 -08:00
fb65138266
get_things_by_sql queries should select *, not just ID.
...
By passing the ids into get_things_by_id which checks the cache first
before querying the rest, any orderby statements in the query would
effectively become useless.
2021-01-09 11:26:19 -08:00
4f1471c41e
Add User.get_albums, bookmarks, photos, tags.
2021-01-09 11:25:30 -08:00
bdfe16f6a3
Add tag._cached_synonyms to speed up future calls.
2021-01-08 12:58:53 -08:00
a4e5933f39
Add tag's parents to the jsonify.
2021-01-07 23:05:54 -08:00
49f3f7a208
Add created column to albums, bookmarks, tags.
2021-01-07 23:05:43 -08:00
500f07283f
Rename album jsonify key sub_albums -> children.
2021-01-07 22:38:09 -08:00
1ee7ada891
Fix trailing comma was creating a one-tuple for tag author jsonify.
2021-01-07 22:33:45 -08:00
4087827e86
Delete some old vars and slightly improve some clarity.
2021-01-07 19:25:47 -08:00
fb126a0540
Log cache misses.
2021-01-07 19:23:34 -08:00
484e3ae1ee
Add Album.sum_children.
2021-01-07 19:23:12 -08:00
75c6c11b0d
Add User.set_password.
2021-01-07 19:21:23 -08:00
d1148d85db
A few linting fixes.
2021-01-05 17:35:10 -08:00
75c8dccf1b
Add warning when tag search has been nullified by has_tags=False.
2021-01-05 15:54:35 -08:00
fec280bf99
Rename easybake status new_synonym -> add_synonym.
2021-01-05 14:01:13 -08:00
0310ab38b7
Return synonym name after deleting it.
...
So that UI can show the normalized name of what was removed.
2021-01-05 14:00:31 -08:00
11b846a3e0
Move random_hex function to voussoirkit/passwordy.
2021-01-05 12:38:04 -08:00
99218fa743
Fix reference to database_upgrader.py.
2021-01-04 02:38:26 -08:00
8944755dc4
Rollback if an on_commit action fails.
2021-01-03 00:19:08 -08:00
b73fb69612
Add comment about foreign keys.
2021-01-01 17:02:03 -08:00
ea5f22bae1
Remove unused unicodedata.
...
Relevant function got moved to stringtools.
2021-01-01 17:02:03 -08:00
d55cc5c58a
Use a dict instead of if/elif.
2021-01-01 17:02:02 -08:00
2c29c196a7
Return friendly and expanded orderby column separately.
...
Previously, the UI had to un-transform the expanded column back
into the friendly name, which was silly and cumbersome.
2021-01-01 17:02:02 -08:00
79327de0f0
Rearrange these continues into relevant condition.
2021-01-01 17:02:02 -08:00
b1000dd0f8
Move orderby direction check above column expansion.
2021-01-01 17:02:01 -08:00
8ecf594945
Move jsonify methods into the objects instead of separate file.
2021-01-01 17:02:01 -08:00
d3f6d6b26a
Add exceptions to warning_bag instead of strings for some.
...
I was adding messages as strings because that's how they get shown on
the web interface. But it's better to return the real exception objects
and have the interface deal with it.
2021-01-01 17:02:01 -08:00
5d11b0cfeb
Update extension column when filepath is updated.
2021-01-01 17:02:00 -08:00
6522bda09c
Add basename in separate column so we can orderby it.
...
For a while I've wanted to be able to sort search results by the file's
basename. This is especially important for the cli. SQLite doesn't have
an easy way to split the filepath column by the slash, so the only
choice is to store basename as a separate column. I put it off for a
while but I think it's the right move. However we must not forget to
update it every time we update filepath, which is a bummer.
2021-01-01 17:02:00 -08:00
6a98631f2d
Add sql_executescript.
2021-01-01 17:01:59 -08:00
8e964e2888
Add get_albums_within_directory.
2021-01-01 17:01:52 -08:00
f9e7049424
Change allowed_orderby_columns from list to set; alphabetize.
2020-12-29 16:06:43 -08:00
01f85d41b6
Use voussoirkit.stringtools for remove_characters.
2020-11-16 00:13:35 -08:00
4988f6dbdd
Fix missing parameters for get_users_by_sql.
2020-11-15 22:20:36 -08:00
6fe3cecead
Remove old import for logging.
2020-11-15 22:20:36 -08:00
469103e0ac
Use voussoirkit.stringtools for comma_space_split.
2020-11-15 22:20:36 -08:00
98b6d93094
Use voussoirkit.stringtools for collapse_whitespace.
2020-11-15 22:20:36 -08:00
9ca40c6ae7
Use voussoirkit.gentools for chunk_generator.
2020-11-15 22:20:36 -08:00
7d454a03ac
Incorporate __name__ into photodb's logger.
2020-11-15 22:20:36 -08:00
9e6f8041fb
Use voussoirkit.stringtools for pascal_to_loudsnakes.
2020-11-15 22:20:36 -08:00
1a6abf00b9
Use voussoirkit hms instead of local function.
2020-11-15 17:44:10 -08:00
9e322c18d4
Fix pascal_to_loudsnakes to handle repeated caps as single term.
2020-11-09 16:20:03 -08:00
8e3bcbc1af
Promote some logs from debug to info, and add punctuation.
2020-11-08 21:29:56 -08:00
d653317907
Let sql_execute log as LOUD.
2020-11-08 20:21:40 -08:00
de2f1caa42
Don't use log_level from config -- pass it in to constructor.
...
The problem with the log_level config was twofold. First, there is some
work to be done before the config is be loaded, and so we must hardcode
the log level for that. I was using debug. Secondly, I have realized
that log levels should be pushed as close to the front of the UI code
as possible, not the backend code.
2020-11-08 20:09:16 -08:00
c9fcb51247
When normalizing tag names, collapse whitespace to 1 space.
2020-10-25 20:21:52 -07:00
40d369e2bb
Fix handling of root drive path as within_directory.
2020-10-25 20:18:56 -07:00
90e7f6b6e1
Rewrite tag_export.easybake as a generator.
2020-10-17 17:56:21 -07:00
c278f3e0af
Let Tag objects be sortable using their name.
2020-10-17 17:55:36 -07:00
6fb6b1eeb0
Add Bookmark.display_name, just like Album.
2020-10-13 10:37:12 -07:00
b2290d030a
Allow orderby bitrate.
2020-10-12 22:28:09 -07:00
735fbf9abd
Let the purge methods yield their deleted items.
2020-09-30 13:41:42 -07:00
3a8aadf6aa
Remove __main__ from photodb.py.
2020-09-28 20:15:28 -07:00
6eb4d887ba
Replace create_or_get_photos with singular.
2020-09-28 20:14:10 -07:00
d531c66bf0
Delete photo's thumbnail when deleting the file.
...
A minor oversight, I think you'll agree.
2020-09-28 14:22:09 -07:00
949e6f68fe
Remove support for two Photos with same path.
...
I have yet to find a practical need for this, and all it does is cause
headaches about the safety of moving / renaming the file.
2020-09-28 14:18:10 -07:00
585882028d
Add get_things_by_sql for quick, bespoke queries.
2020-09-28 14:07:28 -07:00
98f706f486
Let Photo.basename be a @property.
2020-09-28 14:06:32 -07:00
3b72b07262
Replace yield from generator with return generator.
2020-09-28 11:26:16 -07:00
63bc2dfed5
Add yield_photos, count albums in search result limit.
...
This experiment of bringing Photos and Albums closer to parity in
search is going well so far. I have found some situations where it
is nice to only get albums back from search results.
2020-09-27 23:38:49 -07:00
c7eda36133
Add decollide_names, prefer simplified names in album exports.
2020-09-27 23:36:15 -07:00
28aa47d40d
Add __str__ to Album and Photo.
2020-09-27 23:35:12 -07:00
ba1fba0c06
Add full_name to Albums.
2020-09-27 23:35:12 -07:00
8777998829
Add plural method remove_children.
2020-09-27 22:24:33 -07:00