Commit Graph

604 Commits (47c879764a85395b75b7b46f22c9c70380dd180d)

Author SHA1 Message Date
voussoir 21f7e7ca22
Don't use fstring in log line. 2021-04-02 18:31:52 -07:00
voussoir c73556d1e6
Replace newline with colon in exception str. 2021-03-31 19:35:38 -07:00
voussoir ddd35b3789
Remove index to defunct dev_ino.
wow!
2021-03-29 22:59:29 -07:00
voussoir 86199d05ef
Urgent fix for photo.remove_tags didn't check photoid==self.id. 2021-03-03 13:31:58 -08:00
voussoir 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
voussoir 27771f5763
Recalculate mimetype after file rename, relocate. 2021-02-25 18:51:37 -08:00
voussoir 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
voussoir 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
voussoir 25de9be94a
Let truthystring take a fallback. 2021-01-28 17:21:30 -08:00
voussoir 3795bde5b1
Load extension from real_path instead of db row. 2021-01-28 17:19:20 -08:00
voussoir c40deb3631
Disable remove_control_characters under path_badchars indefinitely. 2021-01-28 17:00:19 -08:00
voussoir 38e9b796fe
Use spinal.hash_file instead of redefining here. 2021-01-25 14:59:40 -08:00
voussoir ce8c367901
When searching for renames, check if the old still exists. 2021-01-25 13:44:36 -08:00
voussoir 94c512350c
Fix thumbnail_photo not set in new_album. 2021-01-24 21:39:25 -08:00
voussoir e77a2209eb
Add Album.set_thumbnail_photo. 2021-01-20 19:07:30 -08:00
voussoir 95b95bc7be
Add thumbnail_photo to Album. 2021-01-20 18:26:36 -08:00
voussoir a6f9d1859e
Move thumbnail work to normalize_thumbnail. 2021-01-19 10:35:09 -08:00
voussoir 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
voussoir 4d98176c80 Move __reinit__ to base class. 2021-01-10 15:43:25 -08:00
voussoir 5b42882f70 Add User.delete. 2021-01-09 15:45:06 -08:00
voussoir 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
voussoir e5be26f8b0 Add PhotoDB.closest_photodb for frontend instantiation. 2021-01-09 15:42:16 -08:00
voussoir 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
voussoir 4f1471c41e Add User.get_albums, bookmarks, photos, tags. 2021-01-09 11:25:30 -08:00
voussoir bdfe16f6a3 Add tag._cached_synonyms to speed up future calls. 2021-01-08 12:58:53 -08:00
voussoir a4e5933f39 Add tag's parents to the jsonify. 2021-01-07 23:05:54 -08:00
voussoir 49f3f7a208 Add created column to albums, bookmarks, tags. 2021-01-07 23:05:43 -08:00
voussoir 500f07283f Rename album jsonify key sub_albums -> children. 2021-01-07 22:38:09 -08:00
voussoir 1ee7ada891 Fix trailing comma was creating a one-tuple for tag author jsonify. 2021-01-07 22:33:45 -08:00
voussoir 4087827e86 Delete some old vars and slightly improve some clarity. 2021-01-07 19:25:47 -08:00
voussoir fb126a0540 Log cache misses. 2021-01-07 19:23:34 -08:00
voussoir 484e3ae1ee Add Album.sum_children. 2021-01-07 19:23:12 -08:00
voussoir 75c6c11b0d Add User.set_password. 2021-01-07 19:21:23 -08:00
voussoir d1148d85db A few linting fixes. 2021-01-05 17:35:10 -08:00
voussoir 75c8dccf1b Add warning when tag search has been nullified by has_tags=False. 2021-01-05 15:54:35 -08:00
voussoir fec280bf99 Rename easybake status new_synonym -> add_synonym. 2021-01-05 14:01:13 -08:00
voussoir 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
voussoir 11b846a3e0 Move random_hex function to voussoirkit/passwordy. 2021-01-05 12:38:04 -08:00
voussoir 99218fa743 Fix reference to database_upgrader.py. 2021-01-04 02:38:26 -08:00
voussoir 8944755dc4 Rollback if an on_commit action fails. 2021-01-03 00:19:08 -08:00
voussoir b73fb69612 Add comment about foreign keys. 2021-01-01 17:02:03 -08:00
voussoir ea5f22bae1 Remove unused unicodedata.
Relevant function got moved to stringtools.
2021-01-01 17:02:03 -08:00
voussoir d55cc5c58a Use a dict instead of if/elif. 2021-01-01 17:02:02 -08:00
voussoir 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
voussoir 79327de0f0 Rearrange these continues into relevant condition. 2021-01-01 17:02:02 -08:00
voussoir b1000dd0f8 Move orderby direction check above column expansion. 2021-01-01 17:02:01 -08:00
voussoir 8ecf594945 Move jsonify methods into the objects instead of separate file. 2021-01-01 17:02:01 -08:00
voussoir 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
voussoir 5d11b0cfeb Update extension column when filepath is updated. 2021-01-01 17:02:00 -08:00
voussoir 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
voussoir 6a98631f2d Add sql_executescript. 2021-01-01 17:01:59 -08:00
voussoir 8e964e2888 Add get_albums_within_directory. 2021-01-01 17:01:52 -08:00
voussoir f9e7049424 Change allowed_orderby_columns from list to set; alphabetize. 2020-12-29 16:06:43 -08:00
voussoir 01f85d41b6 Use voussoirkit.stringtools for remove_characters. 2020-11-16 00:13:35 -08:00
voussoir 4988f6dbdd Fix missing parameters for get_users_by_sql. 2020-11-15 22:20:36 -08:00
voussoir 6fe3cecead Remove old import for logging. 2020-11-15 22:20:36 -08:00
voussoir 469103e0ac Use voussoirkit.stringtools for comma_space_split. 2020-11-15 22:20:36 -08:00
voussoir 98b6d93094 Use voussoirkit.stringtools for collapse_whitespace. 2020-11-15 22:20:36 -08:00
voussoir 9ca40c6ae7 Use voussoirkit.gentools for chunk_generator. 2020-11-15 22:20:36 -08:00
voussoir 7d454a03ac Incorporate __name__ into photodb's logger. 2020-11-15 22:20:36 -08:00
voussoir 9e6f8041fb Use voussoirkit.stringtools for pascal_to_loudsnakes. 2020-11-15 22:20:36 -08:00
voussoir 1a6abf00b9 Use voussoirkit hms instead of local function. 2020-11-15 17:44:10 -08:00
voussoir 9e322c18d4 Fix pascal_to_loudsnakes to handle repeated caps as single term. 2020-11-09 16:20:03 -08:00
voussoir 8e3bcbc1af Promote some logs from debug to info, and add punctuation. 2020-11-08 21:29:56 -08:00
voussoir d653317907 Let sql_execute log as LOUD. 2020-11-08 20:21:40 -08:00
voussoir 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
voussoir c9fcb51247 When normalizing tag names, collapse whitespace to 1 space. 2020-10-25 20:21:52 -07:00
voussoir 40d369e2bb Fix handling of root drive path as within_directory. 2020-10-25 20:18:56 -07:00
voussoir 90e7f6b6e1 Rewrite tag_export.easybake as a generator. 2020-10-17 17:56:21 -07:00
voussoir c278f3e0af Let Tag objects be sortable using their name. 2020-10-17 17:55:36 -07:00
voussoir 6fb6b1eeb0 Add Bookmark.display_name, just like Album. 2020-10-13 10:37:12 -07:00
voussoir b2290d030a Allow orderby bitrate. 2020-10-12 22:28:09 -07:00
voussoir 735fbf9abd Let the purge methods yield their deleted items. 2020-09-30 13:41:42 -07:00
voussoir 3a8aadf6aa Remove __main__ from photodb.py. 2020-09-28 20:15:28 -07:00
voussoir 6eb4d887ba Replace create_or_get_photos with singular. 2020-09-28 20:14:10 -07:00
voussoir 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
voussoir 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
voussoir 585882028d Add get_things_by_sql for quick, bespoke queries. 2020-09-28 14:07:28 -07:00
voussoir 98f706f486 Let Photo.basename be a @property. 2020-09-28 14:06:32 -07:00
voussoir 3b72b07262 Replace yield from generator with return generator. 2020-09-28 11:26:16 -07:00
voussoir 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
voussoir c7eda36133 Add decollide_names, prefer simplified names in album exports. 2020-09-27 23:36:15 -07:00
voussoir 28aa47d40d Add __str__ to Album and Photo. 2020-09-27 23:35:12 -07:00
voussoir ba1fba0c06 Add full_name to Albums. 2020-09-27 23:35:12 -07:00
voussoir 8777998829 Add plural method remove_children. 2020-09-27 22:24:33 -07:00
voussoir 0eb8fd3f1b Fix incorrect short-circuit order of add_chidren bail. 2020-09-27 19:49:27 -07:00
voussoir 06340d03da Dedent these loops via comprehensions of questionable clarity. 2020-09-27 13:50:35 -07:00
voussoir fa512eff28 Add argument once_each, set to False if you want every permutation. 2020-09-27 13:28:03 -07:00
voussoir 97cc023866 Add Groupable methods has_ancestor, _descendant, _parent. 2020-09-27 13:01:19 -07:00
voussoir 667c14f072 Add search argument within_directory. 2020-09-27 10:48:01 -07:00
voussoir da67740689 Move these print statements to log.debug. 2020-09-27 10:47:32 -07:00
voussoir 51b2642be9 Let data_directory take an existing pathclass instance. 2020-09-27 10:45:58 -07:00
voussoir a2fc49b6e7 Let config.log_level None -> setLevel(NOTSET). 2020-09-27 10:45:07 -07:00
voussoir 343ce508bf Add search UI for yield_albums. 2020-09-24 14:26:51 -07:00
voussoir 9a85714df7 Use pathclass.Path.makedirs. 2020-09-24 14:18:23 -07:00
voussoir 28181428be Synchronize Etiquette and YCDL. 2020-09-22 02:54:26 -07:00
voussoir 18e1849fcf Fix video_thumbnail not checking if probe failed before using it. 2020-09-20 18:31:55 -07:00
voussoir 2accb5c961 Use pathclass.Path.open. 2020-09-20 18:31:31 -07:00
voussoir 55e66c8656 Fix NameError during set_override_filename. 2020-09-20 13:43:02 -07:00
voussoir f8e03bed21 Replace usage of row[0] with (column,) tuple unpack. 2020-09-20 13:41:22 -07:00