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
0eb8fd3f1b
Fix incorrect short-circuit order of add_chidren bail.
2020-09-27 19:49:27 -07:00
06340d03da
Dedent these loops via comprehensions of questionable clarity.
2020-09-27 13:50:35 -07:00
fa512eff28
Add argument once_each, set to False if you want every permutation.
2020-09-27 13:28:03 -07:00
97cc023866
Add Groupable methods has_ancestor, _descendant, _parent.
2020-09-27 13:01:19 -07:00
667c14f072
Add search argument within_directory.
2020-09-27 10:48:01 -07:00
da67740689
Move these print statements to log.debug.
2020-09-27 10:47:32 -07:00
51b2642be9
Let data_directory take an existing pathclass instance.
2020-09-27 10:45:58 -07:00
a2fc49b6e7
Let config.log_level None -> setLevel(NOTSET).
2020-09-27 10:45:07 -07:00
343ce508bf
Add search UI for yield_albums.
2020-09-24 14:26:51 -07:00
9a85714df7
Use pathclass.Path.makedirs.
2020-09-24 14:18:23 -07:00
28181428be
Synchronize Etiquette and YCDL.
2020-09-22 02:54:26 -07:00
18e1849fcf
Fix video_thumbnail not checking if probe failed before using it.
2020-09-20 18:31:55 -07:00
2accb5c961
Use pathclass.Path.open.
2020-09-20 18:31:31 -07:00
55e66c8656
Fix NameError during set_override_filename.
2020-09-20 13:43:02 -07:00
f8e03bed21
Replace usage of row[0] with (column,) tuple unpack.
2020-09-20 13:41:22 -07:00
fa57386908
Don't call p.get_tags until needed, and don't sort them.
2020-09-20 13:17:51 -07:00
f56da72881
Return more sets from backend, do sorting on frontend.
...
It's better semantically for these items coming out of the backend
to be sets. Sorted lists are only relevant to human consumption at the
frontend.
2020-09-20 13:16:52 -07:00
317fa3b51d
Call assert_not_deleted before every @transaction.
2020-09-20 12:46:52 -07:00
497abf26cd
Move circular dependency to end of file.
2020-09-20 12:46:38 -07:00
5c4c0a3034
Let jsonify.photo expect that tags are sets, not lists.
2020-09-20 12:06:10 -07:00
a8f5f858b7
Add abstractmethod to Groupable methods that write; dunder methods.
...
The read-only methods like get_* and has_* don't need to be overridden,
but for anything that writes I don't want to forget to override them
with feature decorators etc.
2020-09-20 12:04:49 -07:00
2a89cf33d3
Add has_tags=False suggestion to digest_directory docstring.
2020-09-20 11:43:18 -07:00
512470f73d
Add log statement for PDB.digest_directory.
2020-09-20 11:42:44 -07:00
1acd570467
Simplify log statement for Photo.rename_file.
2020-09-20 11:41:33 -07:00
718da6c5c3
Remove leftover attributes group_sql_index, group_getter.
2020-09-20 11:41:15 -07:00
b66464dc46
Add exceptions.DeletedObject and ObjectBase.assert_not_deleted.
2020-09-20 11:31:51 -07:00
85260144ef
Add attribute deleted to all objects, for held instances.
...
If an instance is being held in two places, and then one of them
calls delete(), the other can check deleted before doing anything with
the object.
2020-09-20 11:16:07 -07:00
7412ef5162
Let parse_unit_string try int before float.
2020-09-19 04:01:49 -07:00
865c3011e5
Some linting.
2020-09-19 03:59:37 -07:00
0df556da3f
Some more stricter type checks and exceptions.
2020-09-19 03:52:42 -07:00
2db1f12bfb
Add constants.USER_ID_CHARACTERS and show that when raising invalid.
2020-09-19 03:51:55 -07:00
b223691107
Add helpers.collapse_whitespace.
2020-09-19 03:50:55 -07:00
1013fb81c1
Call assert_no_such_user before assert_valid_password.
2020-09-19 03:35:26 -07:00
7b7015125e
Add period to all exception messages.
2020-09-19 03:32:16 -07:00
06c811d858
Move all get_user_id_or_none calls to "these might raise" portions.
2020-09-19 03:24:02 -07:00
adb1d0ef39
Replace all double blank lines with single, improve hash headers.
...
There was always some semblance that two blank lines has some kind of
meaning or structure that's different from single blank lines, but
in reality it was mostly arbitrary and I can't stand to look at it
any more.
2020-09-19 03:13:23 -07:00
a7cc6d2383
Rename all caught exception variables to "exc", not "e".
2020-09-19 03:08:45 -07:00
854f210a4f
Alphabetize Photo.set_searchhidden.
2020-09-18 13:11:56 -07:00
4b5a52abb4
Take advantage of the tag_exports cache for get_all_tag_names.
2020-09-17 21:22:54 -07:00
4bcfd9958a
Split get_user into _by_id, _by_username.
2020-09-17 21:11:42 -07:00
22d16693f3
Remove path parameter from get_album, remove get_album_by_id.
...
First of all, I realized the return statement was using the
outdated singular name of the method. But anyway, I don't like the
idea that this method would sometimes return a single album by id
or a list of albums by path. If you want to get by path, use
get_albums_by_path explicitly.
2020-09-17 21:09:10 -07:00
838982b6c3
Let login take username.
...
This cuts back on unnecessary sql selects.
2020-09-17 21:02:55 -07:00
40e458e713
Don't update self.attribute until sql_update goes through.
2020-09-17 20:44:33 -07:00