Commit graph

1061 commits

Author SHA1 Message Date
Mouse Reeve f9e9dc55d5 Updates tests 2021-12-29 09:58:42 -08:00
Mouse Reeve 21e0f4234e Don't try to create a json view of the all books page
It's a fake view, a liar
2021-12-28 15:04:25 -08:00
Mouse Reeve 14601a0c31 Don't error out on invalid login POST
Thanks, log4j exploit scanners, for catching this one
2021-12-28 14:50:28 -08:00
Mouse Reeve c3ec25dbf8 Simplifies query for earliest year 2021-12-28 13:02:12 -08:00
Joachim 5284e7009d fix pylint remark 2021-12-28 21:51:45 +01:00
Joachim ff3021d1f3 Redirect /@<username> to /user/<username> 2021-12-28 21:40:01 +01:00
Joachim 3a015062ec Reverse sorting order 2021-12-28 10:49:09 +01:00
Mouse Reeve b99ff9ef85 Removes unused import 2021-12-27 14:49:48 -08:00
Mouse Reeve a064333a96 Use readthroughs only to determine books read this year 2021-12-27 14:45:11 -08:00
Mouse Reeve 2345845560
Merge pull request #1692 from joachimesque/summary-review-sharing
Feature: Annual summary sharing
2021-12-27 13:37:59 -08:00
Mouse Reeve a96466bf35 Adds minor changes to null states for annual summary 2021-12-27 13:16:27 -08:00
Joachim 07f2d9a11c Update tests 2021-12-22 18:15:05 +01:00
Joachim b03b6f6d6f Add docstring 2021-12-22 17:14:21 +01:00
Joachim b9265bdd29 Update annual_summary.py 2021-12-22 17:10:47 +01:00
Joachim 04d51cde3f pylint 2021-12-22 17:09:12 +01:00
Joachim 13ee7e7a65 Use readthrough finish date instead of shelving date 2021-12-22 16:53:10 +01:00
Joachim 357eddf16e Limit page availability to earliest completed readthrough / shelving 2021-12-22 16:52:42 +01:00
Joachim 45dd39d370 Add key creation/revocation 2021-12-22 15:12:56 +01:00
Joachim 1022e3e165 Add basic key verification and change voice in template 2021-12-22 15:11:05 +01:00
Joachim 0da0a62660 Don't crash if there's no ratings 2021-12-22 11:18:47 +01:00
Joachim 6308625bab Don't crash if there's no ratings 2021-12-22 11:18:26 +01:00
Joachim c13e7479c3 Add tests 2021-12-21 14:44:21 +01:00
Joachim 545fb9e4be disable no-self-use 2021-12-21 13:17:18 +01:00
Joachim 581e7f3e40 R0914 & R0201 2021-12-21 12:22:40 +01:00
Joachim 7e9c7ce9e3 Improve pylint 2021-12-21 12:12:32 +01:00
Joachim da51711ddf black 2021-12-21 11:58:46 +01:00
Joachim 4d6c4d3ad2 Add rounding for averages 2021-12-21 11:54:20 +01:00
Joachim c2c57db8e6 Fix for empty years 2021-12-21 11:52:33 +01:00
Joachim ce6ca49620 Add link to current summary on home feed 2021-12-21 11:43:39 +01:00
Joachim a8e8785106 Add previous/next year links 2021-12-21 11:43:09 +01:00
Joachim a24afdb6bf Use aggregate queries 2021-12-21 10:21:30 +01:00
Joachim c1459dbcf9 Feature: Create annual summary page 2021-12-20 23:37:45 +01:00
Hugh Rundle 1603df0817
add "Create list" form to group template 2021-12-19 14:19:35 +11:00
Mouse Reeve 86b294afd7 Re-structures link models 2021-12-15 16:23:21 -08:00
Mouse Reeve ed7d8e5501 Removed unused import 2021-12-15 13:39:20 -08:00
Mouse Reeve c8e038cd4e Adds form errors 2021-12-15 13:20:05 -08:00
Mouse Reeve dcf5694b66 Use class view 2021-12-15 13:15:51 -08:00
Mouse Reeve cc3db31db9 Adds noscript fallback for links modal 2021-12-15 13:11:49 -08:00
Mouse Reeve 1d6b200172 Modal to add link 2021-12-15 12:40:25 -08:00
Mouse Reeve 5e932711f9 Merge branch 'main' into list-not-loading 2021-12-15 09:56:33 -08:00
Mouse Reeve 73ea44e532 Add openlibrary selector to list 2021-12-14 12:59:24 -08:00
Mouse Reeve 3d6266cca2 Merge branch 'main' into list-not-loading 2021-12-14 09:17:00 -08:00
Mouse Reeve 08a8f37a0b Simpler error states for when model values aren't found 2021-12-10 12:02:57 -08:00
Mouse Reeve 9f04919bec Remove unrelated tests changes
these will happen elsewhere
2021-12-10 11:44:38 -08:00
Mouse Reeve d546d9dce9 Changes spacing on import method 2021-12-10 11:43:13 -08:00
Mouse Reeve 7a547d9a1a Adds more groups tests 2021-12-10 11:21:11 -08:00
Mouse Reeve acde30887d Importer tests 2021-12-09 20:12:06 -08:00
Mouse Reeve 234d44b5c7 Adds delete test 2021-12-09 19:00:48 -08:00
Mouse Reeve cf275d0c59 Removes unused groups view 2021-12-09 18:38:05 -08:00
Mouse Reeve 074c2cfb95 Gets updates view to 100% test coverage 2021-12-09 18:16:34 -08:00
Mouse Reeve 2d63bfb791 Updates views tests 2021-12-09 18:02:59 -08:00
Mouse Reeve e9c58295f3 Merge branch 'main' into list-not-loading 2021-12-09 11:10:26 -08:00
Joachim 5b8c1bde89 Merge branch 'main' into list-embed 2021-12-08 16:40:15 +01:00
Joachim 793ce4d33b Remove query in view response 2021-12-08 16:39:43 +01:00
Mouse Reeve 142616b996
Merge pull request #1660 from bookwyrm-social/update-from-remote
Button to manually load remote data for editions and authors
2021-12-07 14:11:06 -08:00
Mouse Reeve 857bc6adae
Merge pull request #1635 from hughrun/remote-follow
Remote follow
2021-12-06 14:36:21 -08:00
Hugh Rundle 5847bc1924
handle type errors 2021-12-06 18:18:12 +11:00
Hugh Rundle c3f24316a0
lint 2021-12-06 17:02:47 +11:00
Hugh Rundle 6d894d71ec
stop pylint contradicting itself 2021-12-06 16:59:51 +11:00
Hugh Rundle 4ade580732
pylint called my code useless how rude 2021-12-06 16:47:04 +11:00
Hugh Rundle c817ea0ff9
improve error handling 2021-12-06 16:40:18 +11:00
Hugh Rundle 685e0a172d
make code WET again
moving url discovery borked general webfinger tests for some reason IDK why.
2021-12-06 10:45:39 +11:00
Hugh Rundle 781fe69470
more descriptive remote follow errors
- distinguish between invalid username, user not found, and remote follow not supported
- make helpers DRYer
2021-12-06 09:29:51 +11:00
Mouse Reeve 4085714764 Update openlibrary author with ISNI 2021-12-05 13:26:22 -08:00
Mouse Reeve d7e4e6aa1e Adds openlibrary update for book 2021-12-05 13:02:42 -08:00
Mouse Reeve 113eda33e9 Adds update views 2021-12-05 12:47:43 -08:00
Hugh Rundle c77edab79c
minor functionality fixes 2021-12-05 18:09:51 +11:00
Joachim 8a84bd3490 Apply suggestions from python lint 2021-12-04 17:33:28 +01:00
Joachim 306ea962c4 Add embed URL component to list layout 2021-12-04 16:17:21 +01:00
Joachim 8ee09a2284 Add url to reach the view 2021-12-04 16:07:38 +01:00
Joachim d22167e105 Add EmbedList view with an X-Frame-Options exemption 2021-12-04 16:07:21 +01:00
Mouse Reeve f6dfe3530a Use book preview card for social media on status page 2021-12-03 09:58:14 -08:00
Mouse Reeve 4b55ffe99e
Merge branch 'main' into remote-follow 2021-12-02 12:16:56 -08:00
Mouse Reeve ed28d5f945
Merge branch 'main' into add-feed-filters 2021-12-02 12:14:54 -08:00
Mouse Reeve baca5e50e7
Merge pull request #1608 from hughrun/move-shelves
refactor shelf activity on book page
2021-12-02 12:06:07 -08:00
Chad Nelson 91997b6f4c Linting after merge conflict 2021-11-30 17:42:31 -05:00
Chad Nelson e59a480065
Merge branch 'main' into 1203-better-ui-for-adding-authors 2021-11-30 17:30:00 -05:00
Chad Nelson 66e414be3c Standardize JS, use button, & filter empty authors 2021-11-30 17:22:35 -05:00
Hugh Rundle 1211fda7ff
beautiful code quality, pylint will be pleased 2021-11-29 19:53:13 +11:00
Hugh Rundle 9a3ec4362b
code cleanup 2021-11-29 19:45:52 +11:00
Hugh Rundle 3d73ea92e8
handle user blocks properly 2021-11-29 18:08:25 +11:00
Hugh Rundle 587b0194fc
bugfix remote follows 2021-11-29 15:33:18 +11:00
Hugh Rundle feaf0d5e52
handle username errors in remote follow form 2021-11-29 07:11:57 +11:00
Hugh Rundle e9bb2a04a4
code cleanup 2021-11-28 21:38:28 +11:00
Hugh Rundle f828f36cc5
show popup for remote follow 2021-11-28 21:16:57 +11:00
Hugh Rundle 6e7d23c1ae
add remote follow button 2021-11-28 20:09:29 +11:00
Hugh Rundle e275b98183
ostatus remote follow views 2021-11-28 16:56:21 +11:00
Hugh Rundle 9d52e3cf27
add ostatus subscribe to webfinger links 2021-11-27 18:32:50 +11:00
Hugh Rundle 1a37903583
remove unnecessary function call arg 2021-11-26 17:39:35 +11:00
Hugh Rundle a5efc798f8
clean up old vars 2021-11-26 17:30:27 +11:00
Hugh Rundle 5b67226571
forceReload prevents ajax submission
...instead of weird hacky workarounds forcing refreshes later.
2021-11-25 19:12:03 +11:00
Joachim db5e7a886a Handle count of notifications banner 2021-11-24 19:00:30 +01:00
Joachim 2ad37a22dd Move stream filter to helpers 2021-11-24 13:37:09 +01:00
Joachim 40e4591a24 Apply review suggestions 2021-11-24 11:59:45 +01:00
Joachim 63e284dc41 Forgive me pylint 2021-11-22 18:59:46 +01:00
Joachim 47cfc2f157 Hardcode form 2021-11-22 18:52:57 +01:00
Hugh Rundle d8e83ffe82
moar code linting 2021-11-22 13:01:58 +11:00
Hugh Rundle a9d921cc06
code cleanup 2021-11-22 12:52:59 +11:00
Joachim 0b46db49a3 Fix pylint 2021-11-22 00:46:24 +01:00
Joachim a0093a8a2e Add status type filters 2021-11-22 00:25:47 +01:00
Chad Nelson 6be9ac4f70 Abstract JS for multivalue form fields 2021-11-21 17:32:48 -05:00
Hugh Rundle a218fa21ea Merge branch 'main' into isni-poc 2021-11-22 08:53:58 +11:00
Hugh Rundle fd2ade2313
refactor isni author enrichment
- use activitypub.Author instead of custom dict
- prefer to display "Author of [title]" from ISNI data instead of short description
- merge isni and db authors for edit_book display
- fix edit_book template to use changed data
- rename some functions in utils/isni.py
2021-11-22 08:49:22 +11:00
Hugh Rundle 1e6e4b0f8d
use activitypub dataclass for isni authors
- add timeout to isni API call
- use activitypub.Author dataclass instead of bespoke dict
- display isni authors as "Author of" first title in ISNI record if possible
- sensible fallbacks if title info unavailable in isni record
2021-11-21 19:55:55 +11:00
Hugh Rundle a3270551f9
code cleanup 2021-11-20 19:19:51 +11:00
Hugh Rundle 4b6f5c9f51
remove out of date comment 2021-11-20 19:03:57 +11:00
Hugh Rundle b273123708
code style 2021-11-20 16:06:16 +11:00
Hugh Rundle 12810d8e34
don't try to update non-existent readthroughs 2021-11-20 16:03:46 +11:00
Hugh Rundle af9768a2e3
force page reload when adding status from move button 2021-11-20 14:59:59 +11:00
Hugh Rundle 41862e854c
move from reading to editable shelf with logic that actually works 2021-11-20 13:57:37 +11:00
Hugh Rundle a082121930
fix shelves not being unshelved if any shelf is read-status 2021-11-20 08:55:43 +11:00
Hugh Rundle 9ffe4d340e
trigger reading status modals from move button
- unhide reading status shelves
- trigger modals when moving to a read status shelf
- force page refresh when using move button
2021-11-20 08:06:13 +11:00
Mouse Reeve 3787a31c67 Updates image helpers on site 2021-11-18 14:39:22 -08:00
Mouse Reeve 41dd915d7f Email templates 2021-11-17 20:22:00 -08:00
Mouse Reeve e3fec5885a Fixes logic on nodeinfo page 2021-11-16 16:20:29 -08:00
Mouse Reeve 1d28c7e73d Load lists from redis cache 2021-11-16 09:21:12 -08:00
Mouse Reeve bcfe13bb4e Sort followers/following lists by if you follow the user 2021-11-15 11:28:43 -08:00
Mouse Reeve 83e468a4f8 Fixes "indeterminate" state of progress indicator on screen reader 2021-11-15 09:34:36 -08:00
Mouse Reeve 14e2960d06 Update legacy jobs 2021-11-14 10:58:46 -08:00
Mouse Reeve 8cede05d32 Retry hanging items 2021-11-14 10:20:14 -08:00
Mouse Reeve f92863ad3e Notify when import completes 2021-11-14 09:56:23 -08:00
Mouse Reeve e77eea9c81 Adds tests for import manual review 2021-11-13 10:52:11 -08:00
Mouse Reeve 40fff02eec Approve or delete import guesses 2021-11-12 17:10:47 -08:00
Mouse Reeve 221cde9be4 Adds manual review view 2021-11-12 16:24:45 -08:00
Mouse Reeve 9bff27e61f Separate import classes into files 2021-11-12 15:50:33 -08:00
Mouse Reeve be26e8363a Create import directory 2021-11-12 15:43:15 -08:00
Mouse Reeve 5558ed810e Show manual review flag 2021-11-12 15:40:07 -08:00
Mouse Reeve a65f07e0bf Adds retry page 2021-11-12 14:36:28 -08:00
Mouse Reeve 1e8269b6c9 Refactors import status view 2021-11-12 13:10:52 -08:00
Hugh Rundle c3ba7ba547 pylint Y U like this? 2021-11-01 20:04:25 +11:00
Hugh Rundle 6556090524 Update existing authors when isni data available
When an existing author is selected as a new author when editing a book,
if they have an ISNI ID recorded we check the record and augment the local
database record from the ISNI data.

Also dedupes author aliases for this feature and when adding a completely
new author.
2021-11-01 19:50:49 +11:00
Hugh Rundle c845b7a5d0 code cleanup 2021-11-01 16:00:34 +11:00
Hugh Rundle 775470a852 normalise isnis
Some isnis are imported with spaces and some not.
This normalises them for comparison and creating URLs
2021-11-01 15:48:52 +11:00
Hugh Rundle 55ac80cc16 ugh pylint 2021-11-01 12:01:57 +11:00
Hugh Rundle 1533b55a32 lint code 2021-11-01 11:58:08 +11:00
Hugh Rundle 552980e208 select correct isni record when adding authors
The original implementation of this was so, so broken.
Now it's not.
2021-11-01 11:34:32 +11:00
Hugh Rundle 37148c5127 display isni bio with existing author name
If an existing author has an isni on record and it matches an author from the isni api call,
display the isni short description to aid with identifying the appropriate author.
2021-11-01 10:26:17 +11:00
Hugh Rundle 3cfd31f1fe hide isni authors if isni in local db
Check the authors suggested from the local DB for a matching ISNI when pulling authors from ISNI.
i.e. we do not want to suggest the same author twice when we *know* it is the same author.
2021-10-31 20:48:47 +11:00
Hugh Rundle bce5f3f3b5 populate new authors with isni data
If a user selects an author pulled from the ISNI service when editing a book, use any relevant data from ISNI to populate the new author record.

This includes
- bio
- aliases
- isni
- wikipedia url
- viaf
2021-10-31 17:58:15 +11:00
Hugh Rundle 87ed6f8380 code formatting 2021-10-29 21:14:32 +11:00
Hugh Rundle f2e4865adf check isni sources when editing book authors 2021-10-29 16:13:05 +11:00
Mouse Reeve 6ba605cbd0
Merge pull request #1577 from hughrun/sort-recent
sort shelves by latest shelved date
2021-10-26 14:31:57 -07:00
Hugh Rundle f4573996e6 black wants double quotes 2021-10-26 21:01:45 +11:00
Hugh Rundle 097da148be sort shelves by latest shelved date
Display the latest 2 books to be shelved in each shelf, when in the homepage feed view.
fixes #1576
2021-10-26 20:17:53 +11:00
Mouse Reeve 24bf3f408c Fixes duplicate books in author page when there are mulitple authors 2021-10-25 11:06:54 -07:00
Hugh Rundle bcbff4f002 Merge branch 'main' into group-privacy 2021-10-22 20:28:31 +11:00
Hugh Rundle 6bc86f189f notify group members of group changes
Send a notification to all group members when group name, description, or privacy are changed.
2021-10-22 20:23:45 +11:00
Mouse Reeve 72dc21e82a Adds tests and fixes unset ordering warnings 2021-10-20 18:27:19 -07:00
Mouse Reeve d706b26ac9 Python formatting 2021-10-20 18:11:31 -07:00
Mouse Reeve 14682ed8c6 Prefect related data in author view 2021-10-20 18:04:29 -07:00
Mouse Reeve de93beca84 Adds shelve buttons to books on author page 2021-10-20 17:51:42 -07:00
Mouse Reeve 89a385da0a Paginate books on author page 2021-10-20 17:40:23 -07:00
Mouse Reeve d86ffc47a7 Fixes incorrect method comment 2021-10-20 13:16:38 -07:00
Mouse Reeve 6a2f962f8d Split shelf view into multiple files 2021-10-20 13:15:43 -07:00
Mouse Reeve baba2e2057 Move shelf views into directory 2021-10-20 13:09:28 -07:00
Mouse Reeve a27a55b40a
Merge pull request #1490 from hughrun/bookwyrm-groups
Bookwyrm groups
2021-10-17 07:54:59 -07:00
Hugh Rundle 6e5c0cc4c3 Merge branch 'main' into bookwyrm-groups
There are database migrations in main ahead of this branch so they need to be merged in to the branch before we can merge back into main.
2021-10-17 06:22:04 +11:00
Mouse Reeve 290039ac66 Moves landing views into directory 2021-10-16 11:45:55 -07:00
Mouse Reeve 86824ff1cb Fixes path to invite page in admin view 2021-10-16 11:32:51 -07:00
Mouse Reeve 8cb91acb93 Move logged out templates into a directory 2021-10-16 10:00:31 -07:00
Hugh Rundle 0cd8ece474 code formatting 2021-10-16 17:45:39 +11:00
Hugh Rundle 2a31bf2f0c delete groups
Whoops, forgot to add this functionality earlier.

- allow owner to delete a group
- change all group lists to closed curation with group=False when group deleted
2021-10-16 17:35:36 +11:00
Hugh Rundle 91534aff82 group view fixes
- fix form details not appearing in group member search view
- fix query term appearing in main search box when searching for new members
- direct request user back to the group rather than the user when adding a user to a group
2021-10-16 16:39:50 +11:00
Hugh Rundle afd00cc67a improve group removal flow
Use .save() twice, but with broadcast=False on the second update. This is more efficient than doing a query and update() and avoids the duplicate AP broadcast.
2021-10-16 16:38:02 +11:00
Mouse Reeve 032dedabb4 Goodreads capitalization standardization 2021-10-15 13:50:05 -07:00
Hugh Rundle 2f38af4faa Revert "clean up List db queries"
This reverts commit 41f27a4a66.

I forgot that update() can only be done on a query result, not on an object, so we will need to go back to querying in order to update rather than saving.
2021-10-16 06:59:07 +11:00
Mouse Reeve 117e6a08b2 Merge branch 'main' into markdown 2021-10-15 10:06:34 -07:00
Mouse Reeve 1b1e557800 Updates app to use date instead of boolean 2021-10-15 09:08:10 -07:00
Mouse Reeve 4002df04fc Send update activity on edit 2021-10-15 08:15:48 -07:00
Hugh Rundle 41f27a4a66 clean up List db queries
- don't unnecessarily query DB in List views
- use more efficient query in remove_from_group List class method
2021-10-15 17:56:23 +11:00
Mouse Reeve 0dba071126 Fixes editing replies 2021-10-14 19:14:47 -07:00
Mouse Reeve af567ba05e Edit posts in original markdown syntax 2021-10-14 18:34:26 -07:00
Mouse Reeve 01911d3b23 Update and indicate edit status 2021-10-14 17:33:45 -07:00
Mouse Reeve 2d1052766d Fixes undefined variable error 2021-10-14 17:32:38 -07:00
Mouse Reeve f5e52d6a11 Save updated statuses 2021-10-14 17:23:54 -07:00
Mouse Reeve 066f14ca84 Save edited statuses 2021-10-14 17:13:54 -07:00
Mouse Reeve 92535a5481 Python formatting 2021-10-14 16:57:58 -07:00
Mouse Reeve e149a14e73 Use href instead of POST form to edit status 2021-10-14 16:53:42 -07:00
Mouse Reeve 7488f8da96 Creates edit status endpoint 2021-10-14 16:30:27 -07:00
Mouse Reeve d5b247b905 Merge branch 'main' into edit-posts 2021-10-14 15:49:08 -07:00
Faiazov Dmitrii 1abbc67483 Make requested changes.
Signed-off-by: Faiazov Dmitrii <jjsolutions0110@gmail.com>
2021-10-14 13:39:15 +03:00
Mouse Reeve 803ad3c911 Removes delete and redraft view 2021-10-13 13:12:56 -07:00
Faiazov Dmitrii ce16f36fe8 Add sorting to shelf. Use table-sort-header
existing template.

Signed-off-by: Faiazov Dmitrii <jjsolutions0110@gmail.com>
2021-10-13 21:25:40 +03:00
Hugh Rundle 18735bdd42 use update() to remove orphaned groups on list edit
Using add() broadcasts the database change, which is unnecessary potentially broadcast AP messages twice.
2021-10-10 12:04:03 +11:00
Hugh Rundle 252ff0d689 emblacken files
Wouldn't it be great if I just remembered to run Black before every commit?
2021-10-09 22:15:24 +11:00
Hugh Rundle b3cc9e5b75 remove user and their lists from group when group.user blocks them
Lists are changed to closed curation with no group.
2021-10-09 22:13:12 +11:00
Hugh Rundle 9940abfd81 refactor removing user from group
This is in preparation for removing a user and their lists when the group owner blocks them.
Remove the user via models.group
Remove the lists via models.list
2021-10-09 22:11:46 +11:00
Hugh Rundle 1bf5758e01 overide filters for groups and group lists
- use more sensible query for displaying groups on user page
- privacy_filter now allows group members to see followers_only and private lists and groups they would otherwise not see
2021-10-09 16:11:11 +11:00
Mouse Reeve 4ba3234f6c
Merge branch 'main' into bookwyrm-groups 2021-10-07 17:27:11 -07:00
Mouse Reeve 982cd49c51 Fixes english grammar weirdness 2021-10-06 16:33:07 -07:00
Mouse Reeve 26de524247 Update language on login and edit preference 2021-10-06 13:01:29 -07:00
Mouse Reeve 73a8f89bee
Merge branch 'main' into bookwyrm-groups 2021-10-06 11:37:38 -07:00
Mouse Reeve 97cc129478 Updates calls to privacy_filter 2021-10-06 10:37:09 -07:00
Mouse Reeve b2671e78ef Moves privacy filter to model class 2021-10-06 09:48:11 -07:00
Mouse Reeve 4c539bc7eb Fixes image paths in endpoints 2021-10-06 08:49:07 -07:00
Hugh Rundle f8e0de1ea9 run black for clean code
Godammit Hugh remember to do this before pushing new code.
2021-10-05 21:32:48 +11:00
Hugh Rundle 6fde19e9b1 lint fixes 2021-10-05 21:29:33 +11:00
Hugh Rundle b1bb43d143 lint Group views file 2021-10-05 18:04:47 +11:00
Hugh Rundle 484e9ed959 fix user Groups view pagination function 2021-10-05 08:14:52 +11:00
Mouse Reeve 2335945a50 Python formatting 2021-10-04 11:16:02 -07:00