advplyr
d69f6020c6
Fix podcast episode playback session duration, use podcast episode plaintext description
2022-04-17 17:52:06 -05:00
Selfhost Alt
2fc60e4e9c
Handle an undefined publisher_summary when querying Audible
2022-04-16 14:57:36 -07:00
Selfhost Alt
cdcfd01da2
Only consider an Audible ASIN query successful if the response contains an author
2022-04-16 11:55:58 -07:00
Selfhost Alt
d6c5b6e8c6
Implement a stricter check for possible ASIN values in titles
2022-04-16 10:40:10 -07:00
advplyr
5d305c96ad
Add support for WMA and AIFF audio files #449 , add remove orphan streams, clean up audio mime type logic
2022-04-16 12:37:10 -05:00
advplyr
6d823f4e42
Podcast episode audio file to always use index 1
2022-04-15 20:49:13 -05:00
Rasmus Krämer
cd274e0844
Merge branch 'master' of https://github.com/rasmuslos/audiobookshelf
2022-04-15 12:59:45 +02:00
Rasmus Krämer
e9249430c3
Parse current time as float
2022-04-15 12:59:42 +02:00
Rasmus Krämer
cd5e5099f2
Merge branch 'advplyr:master' into master
2022-04-15 12:22:16 +02:00
Rasmus Krämer
09dd90e3fc
Convert timeListened to int
2022-04-15 12:22:00 +02:00
advplyr
a62f7a4861
Update uploader to support podcast folder structure
2022-04-14 18:24:24 -05:00
advplyr
5a26b01ffb
Add LibrarySettings and update edit library modal to include settings tab
2022-04-14 17:15:52 -05:00
advplyr
8bbeae4873
Fix check podcast episodes cronjob
2022-04-14 10:15:42 -05:00
advplyr
05dff2583a
Backups to store server version in zip details and check and show alert for old backups created before version 2.0.0
2022-04-13 18:51:06 -05:00
advplyr
79a82df914
Remove NFO metadata and save metadata button
2022-04-13 18:23:44 -05:00
advplyr
3f6ed6dbf9
Add Podcast match tab and find covers
2022-04-13 18:13:39 -05:00
advplyr
4edba20e9e
Update podcast search page to support manually entering podcast RSS feed
2022-04-13 16:55:48 -05:00
advplyr
88354de495
Fix abmetadata chapter parser
2022-04-13 07:57:21 -05:00
advplyr
5b02c5185f
Fix fs error library item
2022-04-13 04:55:39 -05:00
advplyr
b0b1d2707d
Add podcast episode date picker for pubDate
2022-04-12 17:32:27 -05:00
advplyr
469278cd1e
Fix:Global search support podcasts
2022-04-12 16:54:52 -05:00
advplyr
10d9e11387
Update abmetadata file for new data model, add chapter and description section parser
2022-04-12 16:05:16 -05:00
advplyr
ac097862fc
Update sorting and filtering for podcasts, add title ignore prefix to podcast metadata, check user permissions for podcast episode row UI
2022-04-11 19:42:09 -05:00
advplyr
23cc6bb210
Add published at to podcast episode row #428 , Fix podcast select episodes, fix save order of podcast episode, fix remove podcast episode
2022-04-10 11:01:50 -05:00
advplyr
c60807f998
Removing remaining legacy objects, remove njodb error for fileExists
2022-04-10 10:05:05 -05:00
advplyr
8df05896b5
Fix remove media progress use libraryItemId
2022-04-09 20:30:18 -05:00
advplyr
174dac8fd4
Add collapse series, add filter by series include sequence and sort, show number of episodes on podcast card
2022-04-09 19:44:46 -05:00
advplyr
2a386ca2a9
Add sync local media progress routes for offline mobile playback session support
2022-04-09 17:56:51 -05:00
Rasmus Krämer
5c91c1e2c7
Added select all option to the episode selector
2022-04-09 10:25:24 +02:00
advplyr
baf738f5ba
Fix updating media progress object id
2022-04-08 19:27:35 -05:00
advplyr
3a7cafbb95
Update media progress object to use unique id for podcast episodes
2022-04-08 19:19:47 -05:00
advplyr
ac3fa31d1e
Update Podcast Episode add libraryItemId, expanded returns audioTrack object
2022-04-05 19:40:40 -05:00
advplyr
6e5e638076
Update Book.js to return array of AudioTrack objects on json expand
2022-04-03 16:01:59 -05:00
advplyr
e4936ed522
Add chapters to playback session
2022-04-02 11:41:17 -05:00
advplyr
c201e2aa98
Add mediaPlayer to playback session
2022-04-02 11:19:57 -05:00
advplyr
3d3f20296c
Add displayTitle and displayAuthor to playback session
2022-04-02 10:26:42 -05:00
advplyr
292840a0e3
Update njodb path and add proper-lockfile package
2022-03-31 16:34:24 -05:00
advplyr
84e6e6fdbe
Include njodb statically & fix write stream issue
2022-03-31 16:32:50 -05:00
advplyr
cfe27dff80
Add:Server setting to set custom sorting prefixes to ignore #358
2022-03-31 15:07:50 -05:00
advplyr
c75895d711
Fix:Podcast scanner get embedded cover art
2022-03-28 20:23:16 -05:00
advplyr
c0ff28ffff
Add recent series and authors bookshelf rows on home
2022-03-27 16:16:08 -05:00
advplyr
58dfa65660
Fix update podcast episode api route;
2022-03-27 15:46:57 -05:00
advplyr
3f8e685d64
Podcasts add get episode feed and download, add edit podcast episode modal
2022-03-27 15:37:04 -05:00
advplyr
08e1782253
Fix use first accessible library depending on display order, default library id checked on server when authenticating
2022-03-27 09:45:28 -05:00
advplyr
0dd219f303
Add podcast episode auto download new episodes cron
2022-03-26 19:58:59 -05:00
advplyr
d5e96a3422
Fix podcast re-scan, fix more menu item
2022-03-26 19:00:55 -05:00
advplyr
12027b9a76
Podcast episode player fixes, episode table ui updates
2022-03-26 18:23:33 -05:00
advplyr
0e665e2091
Add playing podcast episodes, episode progress, podcast page, podcast home page shelves
2022-03-26 17:41:26 -05:00
advplyr
e32d05ea27
Podcast library item card, edit details, batch edit
2022-03-26 15:23:25 -05:00
advplyr
5446aea910
Add Scanner support for podcasts
2022-03-26 14:29:49 -05:00
advplyr
173b72c3b5
Add:Purge cache promp alert
2022-03-26 12:08:05 -05:00
advplyr
3150822117
New data model removing media entity for books
2022-03-26 11:59:34 -05:00
advplyr
920ca683b9
Podcast episode downloader, update podcast data model
2022-03-21 19:24:38 -05:00
advplyr
28d76d21f1
Add expand library item authors to /items/:id route
2022-03-21 05:08:33 -05:00
advplyr
e1e6b46456
Create podcast manager and re-organize managers
2022-03-20 16:41:06 -05:00
advplyr
27f1bd90f9
Add:Restrict user permissions by tag
2022-03-20 06:29:08 -05:00
advplyr
f8d0384155
Migration change metadata folder from /books to /items, podcast data model updates, add podcast routes
2022-03-19 10:13:10 -05:00
advplyr
43bbfbfee3
Fix library check path and set provider, update podcast model and UI
2022-03-19 06:41:54 -05:00
advplyr
deadc63dbb
Add podcast add modal
2022-03-18 19:16:54 -05:00
advplyr
a9b9e23f46
Library update migrate to use book mediaType, disable editing mediaType, set icon instead of media category
2022-03-18 17:09:17 -05:00
advplyr
6a06ba4327
Fix player content url, update user progress object include media entity id, update reset progress route
2022-03-18 15:31:46 -05:00
advplyr
3d2bbc7719
Fix bug with creating new series & authors on scan
2022-03-18 14:08:57 -05:00
advplyr
c9ea5dd2d7
New data model backups and move backups to API endpoints
2022-03-18 13:44:29 -05:00
advplyr
eea3e2583c
New data model fix library stats
2022-03-18 12:37:47 -05:00
advplyr
57399bb79e
Clean up ApiRouter adding MiscController, move upload and scan to api endpoints
2022-03-18 11:51:55 -05:00
advplyr
69fcb103e4
Fix:Updating author name to update author name on each library item
2022-03-18 09:38:36 -05:00
advplyr
f00b120e96
New data model scanner update and change scan chunks to be based on total file size
2022-03-18 09:16:10 -05:00
advplyr
14a8f84446
New data model update bookmarks and bookmark routes to use API
2022-03-17 20:28:04 -05:00
advplyr
099ae7c776
New data model play media entity, PlaybackSessionManager
2022-03-17 19:10:47 -05:00
advplyr
1cf9e85272
New data model update MeController user progress routes
2022-03-17 13:33:22 -05:00
advplyr
c4eeb1cfb7
New data model Book media type contains Audiobooks updates
2022-03-17 12:25:12 -05:00
advplyr
08e648a3bc
Fix db migration
2022-03-17 09:07:02 -05:00
advplyr
755e70b4a9
Fix db migration
2022-03-17 09:04:10 -05:00
Quietus
d561a48229
Allowed the configuration of a "HOST" parameter to enable ipv6 support.
2022-03-17 11:06:52 +00:00
advplyr
4fe60465e5
New data model change of Book media type to include array of Audiobook and Ebook objects
2022-03-16 19:15:25 -05:00
advplyr
0af6ad63c1
New data model start of PlaybackSessionManager to replace StreamManager, remove podcast & ip npm package
2022-03-15 19:28:54 -05:00
advplyr
68b13ae45f
New data model migration for users, bookmarks and playback sessions
2022-03-15 18:57:15 -05:00
advplyr
4c2ad3ede5
Add author edit modal & remove from experimental
2022-03-14 18:53:49 -05:00
advplyr
deea6702f0
Change Library object use mediaCategory, allow adding new manual folder path, validate folder paths, fix Watcher re-init after folder path updates
2022-03-14 09:56:24 -05:00
advplyr
7348432594
New data model update for Match tab
2022-03-14 08:12:28 -05:00
advplyr
7d66f1eec9
New data model edit tracks page, match, quick match, clean out old files
2022-03-13 19:34:31 -05:00
advplyr
be1e1e7ba0
New data model update stats page and routes, update users page
2022-03-13 17:33:50 -05:00
advplyr
4bdef893af
New data model batch routes and batch editor
2022-03-13 17:10:48 -05:00
advplyr
6597fca576
New data model fix scan for creating series/authors and mapping ebooks
2022-03-13 13:47:36 -05:00
advplyr
ea9ec13845
New data model for global search input and search page
2022-03-13 12:39:12 -05:00
advplyr
30f15d3575
Add:Authors page match authors and display author image
2022-03-13 10:35:35 -05:00
advplyr
dad12537b6
New data model authors routes
2022-03-13 06:42:43 -05:00
advplyr
65df377a49
New model update audio player, stream, collections
2022-03-12 19:59:35 -06:00
advplyr
2d19208340
New model updates for series, collections, authors routes
2022-03-12 18:50:31 -06:00
advplyr
73257188f6
New data model save covers, scanner, new api routes
2022-03-12 17:45:32 -06:00
advplyr
5f4e5cd3d8
New model update details, author and series inputs with create new, compare & copy utils
2022-03-11 19:46:32 -06:00
advplyr
f2be3bc95e
Add multi select dropdown with query from server
2022-03-10 19:13:19 -06:00
advplyr
2a30cc428f
New api routes, updating web client pages, audiobooks to libraryItem migration
2022-03-10 18:45:02 -06:00
advplyr
b97ed953f7
Add db migration file to change audiobooks to library items with new data model
2022-03-09 19:23:17 -06:00
advplyr
65793f7109
Start of new data model
2022-03-08 19:31:44 -06:00
advplyr
2b7f53b0a7
Add:Support for book folders with CD# subfolders #393
2022-03-07 16:22:20 -06:00
advplyr
c6eb1096e8
Add:Podcast search page
2022-03-06 19:02:06 -06:00
advplyr
a907c88f66
Add:iTunes search api metadata provider #381
2022-03-06 17:26:35 -06:00
advplyr
43f48b65f8
Add:Podcast iTunes search api and iTunes provider
2022-03-06 16:32:04 -06:00
advplyr
2a4cbd48b8
Remove old API routes
2022-03-06 09:51:56 -06:00
advplyr
b6e4f3a8c5
Add:Podcast RSS feed parser
2022-03-05 18:54:24 -06:00
advplyr
408775a25a
Add:Library media type selection and library icons
2022-03-03 19:03:34 -06:00
advplyr
74a68a4557
Add:Check metadata.abs file modified date to rescan
2022-02-27 18:58:23 -06:00
advplyr
428a515c6a
Add:mtime,ctime,birthtime to audiobook folder and files
2022-02-27 18:07:36 -06:00
advplyr
c81b12f459
Add:Book folder name starting with number and has series folder use as volume number
2022-02-27 16:52:01 -06:00
advplyr
779d22bf55
Add:Parse abmetadata metadata.abs file, save metadata.abs on all audiobook insert/update
2022-02-27 16:14:57 -06:00
advplyr
295c6b0c74
Add:Generate book metadata file when book details are changed,Add:Server setting for storing book metadata in book folder
2022-02-27 14:28:18 -06:00
advplyr
aa50cc2d81
Change:Main dir paths moved to global vars, server settings stored in globals vars
2022-02-27 13:47:52 -06:00
advplyr
eb109c398f
Change:Server setting for coverDestination to storeCoverWithBook boolean, Add:abmetadata generator
2022-02-27 12:47:56 -06:00
advplyr
4e7d2ddc58
Fix:Quick match requiring cover
2022-02-27 11:03:10 -06:00
advplyr
3a34daef7c
Fix:Client emitter users not found no longer is an error
2022-02-26 16:35:40 -06:00
advplyr
d368988899
Add:Disable watcher library specific #378
2022-02-26 16:34:54 -06:00
advplyr
aa675422a9
Add:Support multiple book upload #248
2022-02-26 16:19:22 -06:00
advplyr
907790fe92
Remove unnecessary fields in audiobook json
2022-02-26 09:37:19 -06:00
advplyr
7f1fc1901b
Add:Server setting to disable folder watcher #378
2022-02-23 17:52:21 -06:00
advplyr
89f498f31a
Add:Chromecast support in experimental #367 , Change:Audio player model for direct play
2022-02-22 17:33:55 -06:00
advplyr
f51299c798
Add:Start of chromecast plugin & update cors accept header, move sortable to static
2022-02-17 17:39:38 -06:00
advplyr
11be49a535
Add:Library match all books #359
2022-02-15 18:33:33 -06:00
advplyr
c953c3dee0
Add:Library route quick match all books
2022-02-15 16:36:22 -06:00
advplyr
088969e1fe
Add:Quick match option
2022-02-15 16:15:09 -06:00
advplyr
de32698ea5
Add:Metadata provider option to library
2022-02-15 14:59:46 -06:00
advplyr
3be32a2813
Add:Alternate bookshelf view show sorting/filtering keys and ignore The prefix title #232 #361
2022-02-14 16:01:53 -06:00
advplyr
f15be4c96e
Add:Server setting to ignore "The" infront of titles and series when sorting #361
2022-02-13 15:00:59 -06:00
advplyr
30e0cc4c07
Cleanup & start of abs metadata file
2022-02-10 17:05:15 -06:00
advplyr
6683301106
Fix:FLAC files use mpegts segment type and force AAC transcode
2022-02-06 17:31:04 -06:00
advplyr
c0c4b1fa23
Fix:FFprobe path for node-ffprobe
2022-02-06 17:14:55 -06:00
advplyr
d2c1c7aee0
Fix:Init user audiobook map before mobile app sync #345
2022-02-03 18:12:12 -06:00
advplyr
590dbe3991
Fix:Downloader sets file permission and owner on files #286
2022-02-03 18:08:39 -06:00
advplyr
405d333d60
Change:Download m4b file set proper metadata id3 tags #286
2022-02-03 17:27:22 -06:00
advplyr
663ab2db90
Fix:Save library updating name only #350
2022-02-03 16:39:05 -06:00
advplyr
964cba0491
Fix:Cover aspect ratio init #341
2022-02-01 16:58:11 -06:00
Igor Kaldowski
4212251c78
Added try catch to opf fetchNarrators
2022-02-01 16:50:42 +00:00
Igor Kaldowski
4e329a3f8e
Fetch Narrators from opf custom column
2022-02-01 02:32:03 +00:00
advplyr
c3376ad0ae
Merge pull request #331 from igorkaldowski/master
...
Add continue series category to home
2022-01-27 16:55:02 -06:00
advplyr
676eb13fc6
Remove unnecessary series volume sort
2022-01-27 16:53:18 -06:00
advplyr
454e51bf53
Add:Api route for syncing local downloaded audiobook progress
2022-01-26 18:00:40 -06:00
Igor Kaldowski
503bfbf2ef
Add continue series category
...
Added section to home with next book in series
2022-01-25 11:49:14 +00:00
advplyr
d8cc0b57a5
Add:Experimental collapse series for library option #322
2022-01-24 18:03:54 -06:00
advplyr
5bd6c8f553
Update njodb version
2022-01-24 16:53:35 -06:00
advplyr
336fbedc75
Fix:Library controller middleware for user accessible libraries
2022-01-16 14:10:46 -06:00
advplyr
156a4ed01d
Fix:Get library check user access
2022-01-16 13:37:32 -06:00
advplyr
8442a629fb
Fix:Get libraries endpoint return only libraries accessible to user
2022-01-16 11:17:09 -06:00
advplyr
024627fefc
Fix:Ensure chapter start/end are numbers
2022-01-13 16:43:32 -06:00
advplyr
712aad2f14
Fix:FFprobe requires path update config #302
2022-01-10 17:57:51 -06:00
advplyr
e5f8be5b24
Fix:Scanner smart re-order
2022-01-10 11:12:47 -06:00
advplyr
411183e4b4
Fix:Typo in function for language tags #305
2022-01-09 19:21:13 -06:00
advplyr
b284a9bd57
Add:Language and ASIN id3 tag parse, language filter, asin search, asin audible match, add fields to details #305
2022-01-09 18:37:16 -06:00
advplyr
afd2b8c98f
Add:Smart audio track order based on best match track and disc #155
2022-01-09 17:36:25 -06:00
advplyr
1be0ff7654
Add:Scanner set default cover provider #291
2022-01-08 17:03:33 -06:00
advplyr
2c29a273f3
Change:Make square covers the default
2022-01-08 16:42:30 -06:00
advplyr
ab62ec689d
Fix:Sort series before limiting #295
2022-01-07 17:26:12 -06:00
ISO-B
f2e09e524f
Cleaned unused require from prober
2022-01-07 15:17:35 +02:00
ISO-B
dc05c38430
Fixes reading multiline data from file tags
...
Swiched fluent-ffmpeg to node-ffprobe.
Fluent's ffprobe can't handle multiline tag data due to it's parsing process.
node-ffprobe supports getting probe data using json format which keeps line changes.
2022-01-07 15:15:53 +02:00
advplyr
8ee4751cac
Fix:Sync audiobook progress
2022-01-05 19:07:32 -06:00
advplyr
4778d09501
Fix:Stream container not opening on mount
2022-01-05 18:01:33 -06:00
ISO-B
7607381ea4
Added _isbn to Book so it's always string
2022-01-04 14:46:40 +02:00
ISO-B
01c8013309
Changed replaceAll to replace since node12 doent' have it
2022-01-04 14:41:34 +02:00
ISO-B
2f8a90c21a
Added isbn search
...
Search now also searches books using isbn.
ISBN match has to be exact to prevent isbn matches to flood results.
2022-01-04 12:20:28 +02:00
ISO-B
021d3cfa1a
Added isbn fetching for metadata
...
If file metadata has isbn tag it will be fetched and used for book
2022-01-03 21:40:03 +02:00
mx03
02db145a0c
Fix: escape special characters in provider urls
2021-12-30 10:57:28 +01:00
advplyr
b80d735750
Add:User listening stats page and new library stats
2021-12-29 15:53:19 -06:00
advplyr
e56196a137
Add:Alternative bookshelf view with titles #232
2021-12-28 15:50:17 -06:00
advplyr
3905ef677d
Merge pull request #270 from mx03/patherror
...
Bug: Missing path variable
2021-12-27 11:36:12 -06:00
mx03
ace37cc54f
Missing Path variable
2021-12-27 17:51:19 +01:00
mx03
090a6a3696
Sort filters
2021-12-27 11:43:07 +01:00
advplyr
dd7aed8f90
Fix:Add natural sort to books/all route #261
2021-12-26 16:17:10 -06:00
advplyr
de579347e8
Merge branch 'master' of https://github.com/advplyr/audiobookshelf
2021-12-26 11:28:48 -06:00
advplyr
ef94a6bb29
Change:Series volume numbers to use language sensitive sorting #261
2021-12-26 11:25:07 -06:00
mx03
46e13f8971
fix cover cache not purged after change
2021-12-25 21:56:39 +01:00
advplyr
49fcaefd01
Fix:Open stream update with full audiobook object #255
2021-12-25 07:22:46 -06:00
advplyr
a17348f916
Change:Fallback to audio stream tags if probe format has no tags and remove old scanner #256
2021-12-24 18:06:17 -06:00
advplyr
3f8551f9a1
Change:Bookshelf to return minified audiobook objects and limit 100 #255
2021-12-24 16:37:57 -06:00
mx03
6fb5352ed5
Fix audible match if title or author has special characters
2021-12-21 14:02:27 +01:00
advplyr
1b03af4041
Add:Api route to sync stream data for use in android native
2021-12-19 18:45:56 -06:00
advplyr
1463af28ce
Add:Support AAC audio files #244
2021-12-16 18:44:50 -06:00
advplyr
394789d64e
Fix:metadata covers check file exists on scan #239
2021-12-15 19:39:26 -06:00
advplyr
b18af414b6
Fix:Check failed ffmpeg image command +additional errors logs #239
2021-12-14 15:19:23 -06:00
advplyr
57b464c867
Fix:Set full cover path for extracted covers & use temp fix to update books without a full cover path
2021-12-13 16:53:04 -06:00
Keagan Hilliard
d6ae50f89a
Remove sharp in favor of ffmpeg, fallback to cover
2021-12-13 11:29:31 -08:00
advplyr
ddf0fa72e8
Add:Cover image cache, resize & use webp image #223
2021-12-12 17:15:37 -06:00
Keagan Hilliard
69fa00608f
Added an endpoint to serve different cover sizes
2021-12-12 08:52:27 -08:00
advplyr
3d6bbeb3cd
Fix:Find books api endpoint #225
2021-12-08 14:29:10 -06:00
advplyr
c5465ad8e0
Add:Select cover search provider, Add:Persist selected provider, Change:API routes for searching
2021-12-07 18:42:56 -06:00
advplyr
9548be7075
Merge pull request #226 from keaganhilliard/master
...
Added ASIN support in the title field
2021-12-07 18:11:32 -06:00
advplyr
2b3688b141
Update async function, update debug log
2021-12-07 18:10:56 -06:00
Keagan Hilliard
059d6d96a7
Added ASIN support in the title field
2021-12-07 10:27:30 -08:00
advplyr
fde6700a82
Fix:Multi select dropdown menus overflow and update on scroll,Fix: Batch edit only submit updates that were made #222
2021-12-06 17:55:43 -06:00
advplyr
c17af1fc28
Fix:Sort books for series #220
2021-12-06 16:18:26 -06:00
advplyr
975984e8d1
Add:forceRescan rescans existing audio files,Fix:False positives for if an audio file was updated
2021-12-05 11:29:42 -06:00
advplyr
040548c6db
Fix:Reorder libraries route and draggable table,Fix:Update filter daata
2021-12-05 09:52:23 -06:00
Igor Kaldowski
b68c181631
Add: Force re-scan library
2021-12-04 23:57:47 +00:00
advplyr
f6d43ea60f
Merge version bump 1.6.35
2021-12-04 16:22:40 -06:00
advplyr
0c1a0f5d01
Fix:Bookshelf shadow,Fix:Series volume sort
2021-12-04 16:21:10 -06:00
Igor Kaldowski
4ac0bd6770
Moved getting xml meta entries to opf parser
2021-12-04 22:15:23 +00:00
Igor Kaldowski
60aeb23797
Fix Series Sort
2021-12-04 22:10:26 +00:00
Igor Kaldowski
670a461752
Strip html from opf descriptions
2021-12-04 21:07:43 +00:00
Igor Kaldowski
6e621ecce1
Get series info from opf
2021-12-04 21:07:31 +00:00
advplyr
9423727f89
Fix:Size and duration sort
2021-12-03 18:30:51 -06:00
advplyr
8225d35022
Fix:Cover aspect ratio for search match,Fix:Dynamic route 404s
2021-12-02 19:40:42 -06:00
advplyr
d544540454
Add:Experimental authors page layout #187,Add:Square covers #210
2021-12-02 19:02:38 -06:00