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