mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-15 13:51:35 +00:00
add cypress tests
This commit is contained in:
parent
0cbcfbd273
commit
e8432d9a0d
34 changed files with 13497 additions and 56 deletions
410
cypress/fixtures/bookMetadata/book1.json
Normal file
410
cypress/fixtures/bookMetadata/book1.json
Normal file
|
|
@ -0,0 +1,410 @@
|
|||
{
|
||||
"path": "/audiobooks/Caitlin Starling/Last to Leave the Room",
|
||||
"relPath": "Caitlin Starling/Last to Leave the Room",
|
||||
"isFile": false,
|
||||
"isMissing": false,
|
||||
"isInvalid": false,
|
||||
"mediaType": "book",
|
||||
"media": {
|
||||
"metadata": {
|
||||
"title": "Last to Leave the Room",
|
||||
"subtitle": "A Novel",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Caitlin Starling"
|
||||
}
|
||||
],
|
||||
"narrators": [
|
||||
"Xe Sands"
|
||||
],
|
||||
"series": [],
|
||||
"genres": [
|
||||
"Literature & Fiction",
|
||||
"Mystery, Thriller & Suspense"
|
||||
],
|
||||
"publishedYear": "2023",
|
||||
"publishedDate": null,
|
||||
"publisher": "Macmillan Audio",
|
||||
"description": "Last to Leave the Room is a new novel of genre-busting speculative horror from Caitlin Starling, the acclaimed author of The Death of Jane Lawrence. The city of San Siroco is sinking. The basement of Dr. Tamsin Rivers, the arrogant, selfish head of the research team assigned to find the source of the subsidence, is sinking faster. As Tamsin grows obsessed with the distorting dimensions of the room at the bottom of the stairs, she finds a door that didn’t exist before—and one night, it opens to reveal an exact physical copy of her. This doppelgänger is sweet and biddable where Tamsin is calculating and cruel. It appears fully, terribly human, passing every test Tamsin can devise. But the longer the double exists, the more Tamsin begins to forget pieces of her life, to lose track of time, to grow terrified of the outside world. As her employer grows increasingly suspicious, Tamsin must try to hold herself together long enough to figure out what her double wants from her, and just where the mysterious door leads… A Macmillan Audio production from St. Martin’s Press.",
|
||||
"isbn": null,
|
||||
"asin": "B0BVKY5K9B",
|
||||
"language": "English",
|
||||
"explicit": false,
|
||||
"abridged": false
|
||||
},
|
||||
"tags": [
|
||||
"Horror",
|
||||
"Thriller & Suspense",
|
||||
"Supernatural"
|
||||
],
|
||||
"audioFiles": [
|
||||
{
|
||||
"index": 1,
|
||||
"metadata": {
|
||||
"filename": "Caitlin Starling - Last to Leave the Room.mp3",
|
||||
"ext": ".mp3",
|
||||
"path": "/audiobooks/Caitlin Starling/Last to Leave the Room/Caitlin Starling - Last to Leave the Room.mp3",
|
||||
"relPath": "Caitlin Starling - Last to Leave the Room.mp3"
|
||||
},
|
||||
"trackNumFromMeta": null,
|
||||
"discNumFromMeta": null,
|
||||
"trackNumFromFilename": null,
|
||||
"discNumFromFilename": null,
|
||||
"manuallyVerified": false,
|
||||
"invalid": false,
|
||||
"exclude": false,
|
||||
"error": null,
|
||||
"format": "MP2/3 (MPEG audio layer 2/3)",
|
||||
"duration": 42690.862756,
|
||||
"bitRate": 64000,
|
||||
"language": null,
|
||||
"codec": "mp3",
|
||||
"timeBase": "1/14112000",
|
||||
"channels": 2,
|
||||
"channelLayout": "stereo",
|
||||
"chapters": [],
|
||||
"embeddedCoverArt": "mjpeg",
|
||||
"metaTags": {
|
||||
"tagAlbum": "Last to Leave the Room - A Novel",
|
||||
"tagArtist": "Caitlin Starling",
|
||||
"tagGenre": "Thriller",
|
||||
"tagTitle": "Last to Leave the Room",
|
||||
"tagSubtitle": "A Novel",
|
||||
"tagDate": "2023",
|
||||
"tagPublisher": "Macmillan Audio",
|
||||
"tagComment": "<p><b><i>Last to Leave the Room</i> is a new novel of genre-busting speculative horror from Caitlin Starling, the acclaimed author of <i>The Death of Jane Lawrence</i>.</b><br>The city of San Siroco is sinking. The basement of Dr. Tamsin Rivers, the arrogant, selfish head of the research team assigned to find the source of the subsidence, is sinking faster. <br>As Tamsin grows obsessed with the distorting dimensions of the room at the bottom of the stairs, she finds a door that didn't exist before - and one night, it opens to reveal an exact physical copy of her. This doppelgänger is sweet and biddable where Tamsin is calculating and cruel. It appears fully, terribly human, passing every test Tamsin can devise. But the longer the double exists, the more Tamsin begins to forget pieces of her life, to lose track of time, to grow terrified of the outside world. <br>As her employer grows increasingly suspicious, Tamsin must try to hold herself together long enough to figure out what...",
|
||||
"tagEncodedBy": "OverDrive, Inc.",
|
||||
"tagLanguage": "English",
|
||||
"tagOverdriveMediaMarker": "<Markers><Marker><Name>Last to Leave the Room</Name><Time>0:00.000</Time></Marker><Marker><Name>Chapter 1</Name><Time>0:33.000</Time></Marker><Marker><Name>Chapter 2</Name><Time>17:29.000</Time></Marker><Marker><Name>Chapter 3</Name><Time>34:04.000</Time></Marker><Marker><Name>Chapter 4</Name><Time>42:18.000</Time></Marker></Markers>"
|
||||
},
|
||||
"mimeType": "audio/mpeg"
|
||||
}
|
||||
],
|
||||
"chapters": [
|
||||
{
|
||||
"id": 0,
|
||||
"start": 0,
|
||||
"end": 32.035,
|
||||
"title": "Opening Credits"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"start": 32.035,
|
||||
"end": 36.035,
|
||||
"title": "Dedication"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"start": 36.035,
|
||||
"end": 73.035,
|
||||
"title": "Epigraph"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"start": 73.035,
|
||||
"end": 76.035,
|
||||
"title": "The City"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"start": 76.035,
|
||||
"end": 1048.906,
|
||||
"title": "Chapter One"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"start": 1048.906,
|
||||
"end": 2044.856,
|
||||
"title": "Chapter Two"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"start": 2044.856,
|
||||
"end": 2539.533,
|
||||
"title": "Chapter Three"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"start": 2539.533,
|
||||
"end": 3684.416,
|
||||
"title": "Chapter Four"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"start": 3684.416,
|
||||
"end": 3687.416,
|
||||
"title": "The Door"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"start": 3687.416,
|
||||
"end": 4409.435,
|
||||
"title": "Chapter Five"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"start": 4409.435,
|
||||
"end": 5535.37,
|
||||
"title": "Chapter Six"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"start": 5535.37,
|
||||
"end": 6413.223,
|
||||
"title": "Chapter Seven"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"start": 6413.223,
|
||||
"end": 7447.37,
|
||||
"title": "Chapter Eight"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"start": 7447.37,
|
||||
"end": 8443.691,
|
||||
"title": "Chapter Nine"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"start": 8443.691,
|
||||
"end": 9129.26,
|
||||
"title": "Chapter Ten"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"start": 9129.26,
|
||||
"end": 9132.26,
|
||||
"title": "The Double"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"start": 9132.26,
|
||||
"end": 10044.567,
|
||||
"title": "Chapter Eleven"
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"start": 10044.567,
|
||||
"end": 11180.998,
|
||||
"title": "Chapter Twelve"
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"start": 11180.998,
|
||||
"end": 12357.994,
|
||||
"title": "Chapter Thirteen"
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"start": 12357.994,
|
||||
"end": 12989.623,
|
||||
"title": "Chapter Fourteen"
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"start": 12989.623,
|
||||
"end": 13872.91,
|
||||
"title": "Chapter Fifteen"
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"start": 13872.91,
|
||||
"end": 15221.942,
|
||||
"title": "Chapter Sixteen"
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"start": 15221.942,
|
||||
"end": 16358.233,
|
||||
"title": "Chapter Seventeen"
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"start": 16358.233,
|
||||
"end": 17354.299,
|
||||
"title": "Chapter Eighteen"
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"start": 17354.299,
|
||||
"end": 18522.634,
|
||||
"title": "Chapter Nineteen"
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"start": 18522.634,
|
||||
"end": 19931.899,
|
||||
"title": "Chapter Twenty"
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"start": 19931.899,
|
||||
"end": 21005.938,
|
||||
"title": "Chapter Twenty-One"
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"start": 21005.938,
|
||||
"end": 21764.023,
|
||||
"title": "Chapter Twenty-Two"
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"start": 21764.023,
|
||||
"end": 22707.449,
|
||||
"title": "Chapter Twenty-Three"
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"start": 22707.449,
|
||||
"end": 23436.718,
|
||||
"title": "Chapter Twenty-Four"
|
||||
},
|
||||
{
|
||||
"id": 30,
|
||||
"start": 23436.718,
|
||||
"end": 24513.102,
|
||||
"title": "Chapter Twenty-Five"
|
||||
},
|
||||
{
|
||||
"id": 31,
|
||||
"start": 24513.102,
|
||||
"end": 25569.261,
|
||||
"title": "Chapter Twenty-Six"
|
||||
},
|
||||
{
|
||||
"id": 32,
|
||||
"start": 25569.261,
|
||||
"end": 26397.516,
|
||||
"title": "Chapter Twenty-Seven"
|
||||
},
|
||||
{
|
||||
"id": 33,
|
||||
"start": 26397.516,
|
||||
"end": 27311.43,
|
||||
"title": "Chapter Twenty-Eight"
|
||||
},
|
||||
{
|
||||
"id": 34,
|
||||
"start": 27311.43,
|
||||
"end": 27866.503,
|
||||
"title": "Chapter Twenty-Nine"
|
||||
},
|
||||
{
|
||||
"id": 35,
|
||||
"start": 27866.503,
|
||||
"end": 27870.503,
|
||||
"title": "Tamsin0"
|
||||
},
|
||||
{
|
||||
"id": 36,
|
||||
"start": 27870.503,
|
||||
"end": 29225.775,
|
||||
"title": "Chapter Thirty"
|
||||
},
|
||||
{
|
||||
"id": 37,
|
||||
"start": 29225.775,
|
||||
"end": 30688.678,
|
||||
"title": "Chapter Thirty-One"
|
||||
},
|
||||
{
|
||||
"id": 38,
|
||||
"start": 30688.678,
|
||||
"end": 31611.856,
|
||||
"title": "Chapter Thirty-Two"
|
||||
},
|
||||
{
|
||||
"id": 39,
|
||||
"start": 31611.856,
|
||||
"end": 32799.881,
|
||||
"title": "Chapter Thirty-Three"
|
||||
},
|
||||
{
|
||||
"id": 40,
|
||||
"start": 32799.881,
|
||||
"end": 33790.839,
|
||||
"title": "Chapter Thirty-Four"
|
||||
},
|
||||
{
|
||||
"id": 41,
|
||||
"start": 33790.839,
|
||||
"end": 34674.172,
|
||||
"title": "Chapter Thirty-Five"
|
||||
},
|
||||
{
|
||||
"id": 42,
|
||||
"start": 34674.172,
|
||||
"end": 36041.989,
|
||||
"title": "Chapter Thirty-Six"
|
||||
},
|
||||
{
|
||||
"id": 43,
|
||||
"start": 36041.989,
|
||||
"end": 37203.451,
|
||||
"title": "Chapter Thirty-Seven"
|
||||
},
|
||||
{
|
||||
"id": 44,
|
||||
"start": 37203.451,
|
||||
"end": 38207.388,
|
||||
"title": "Chapter Thirty-Eight"
|
||||
},
|
||||
{
|
||||
"id": 45,
|
||||
"start": 38207.388,
|
||||
"end": 39359.051,
|
||||
"title": "Chapter Thirty-Nine"
|
||||
},
|
||||
{
|
||||
"id": 46,
|
||||
"start": 39359.051,
|
||||
"end": 40372.323,
|
||||
"title": "Chapter Forty"
|
||||
},
|
||||
{
|
||||
"id": 47,
|
||||
"start": 40372.323,
|
||||
"end": 41780.102,
|
||||
"title": "Chapter Forty-One"
|
||||
},
|
||||
{
|
||||
"id": 48,
|
||||
"start": 41780.102,
|
||||
"end": 42619.387,
|
||||
"title": "Chapter Forty-Two"
|
||||
},
|
||||
{
|
||||
"id": 49,
|
||||
"start": 42619.387,
|
||||
"end": 42690.863,
|
||||
"title": "End Credits"
|
||||
}
|
||||
],
|
||||
"missingParts": [],
|
||||
"ebookFile": null
|
||||
},
|
||||
"libraryFiles": [
|
||||
{
|
||||
"metadata": {
|
||||
"filename": "Caitlin Starling - Last to Leave the Room.jpg",
|
||||
"ext": ".jpg",
|
||||
"path": "/audiobooks/Caitlin Starling/Last to Leave the Room/Caitlin Starling - Last to Leave the Room.jpg",
|
||||
"relPath": "Caitlin Starling - Last to Leave the Room.jpg"
|
||||
},
|
||||
"isSupplementary": null,
|
||||
"fileType": "image"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"filename": "Caitlin Starling - Last to Leave the Room.mp3",
|
||||
"ext": ".mp3",
|
||||
"path": "/audiobooks/Caitlin Starling/Last to Leave the Room/Caitlin Starling - Last to Leave the Room.mp3",
|
||||
"relPath": "Caitlin Starling - Last to Leave the Room.mp3"
|
||||
},
|
||||
"isSupplementary": null,
|
||||
"fileType": "audio"
|
||||
}
|
||||
]
|
||||
}
|
||||
433
cypress/fixtures/bookMetadata/book2.json
Normal file
433
cypress/fixtures/bookMetadata/book2.json
Normal file
|
|
@ -0,0 +1,433 @@
|
|||
{
|
||||
"path": "/audiobooks/Amal El-Mohtar/This Is How You Lose the Time War",
|
||||
"relPath": "Amal El-Mohtar/This Is How You Lose the Time War",
|
||||
"isFile": false,
|
||||
"isMissing": false,
|
||||
"isInvalid": false,
|
||||
"mediaType": "book",
|
||||
"media": {
|
||||
"metadata": {
|
||||
"title": "This Is How You Lose the Time War",
|
||||
"subtitle": null,
|
||||
"authors": [
|
||||
{
|
||||
"name": "Amal El-Mohtar"
|
||||
},
|
||||
{
|
||||
"name": "Max Gladstone"
|
||||
}
|
||||
],
|
||||
"narrators": [
|
||||
"Cynthia Farrell",
|
||||
"Emily Woo Zeller"
|
||||
],
|
||||
"series": [],
|
||||
"genres": [
|
||||
"Romance",
|
||||
"Science Fiction & Fantasy"
|
||||
],
|
||||
"publishedYear": "2019",
|
||||
"publishedDate": null,
|
||||
"publisher": "Simon & Schuster Audio",
|
||||
"description": "HUGO AWARD WINNER: BEST NOVELLA WINNER OF THE NEBULA AND LOCUS AWARDS: BEST NOVELLA “[An] exquisitely crafted tale...Part epistolary romance, part mind-blowing science fiction adventure, this dazzling story unfolds bit by bit, revealing layers of meaning as it plays with cause and effect, wildly imaginative technologies, and increasingly intricate wordplay...This short novel warrants multiple readings to fully unlock its complexities.” (Publishers Weekly, starred review). From award-winning authors Amal El-Mohtar and Max Gladstone comes an enthralling, romantic novel spanning time and space about two time-traveling rivals who fall in love and must change the past to ensure their future. Among the ashes of a dying world, an agent of the Commandment finds a letter. It reads: Burn before reading. Thus begins an unlikely correspondence between two rival agents hellbent on securing the best possible future for their warring factions. Now, what began as a taunt, a battlefield boast, becomes something more. Something epic. Something romantic. Something that could change the past and the future. Except the discovery of their bond would mean the death of each of them. There’s still a war going on, after all. And someone has to win. That’s how war works, right? Cowritten by two beloved and award-winning sci-fi writers, This Is How You Lose the Time War is an epic love story spanning time and space.",
|
||||
"isbn": "9781534430990",
|
||||
"asin": "1508287058",
|
||||
"language": "English",
|
||||
"explicit": false,
|
||||
"abridged": false
|
||||
},
|
||||
"tags": [
|
||||
"Science Fiction",
|
||||
"Time Travel"
|
||||
],
|
||||
"audioFiles": [
|
||||
{
|
||||
"index": 1,
|
||||
"metadata": {
|
||||
"filename": "Amal El-Mohtar - This Is How You Lose the Time War.m4b",
|
||||
"ext": ".m4b",
|
||||
"path": "/audiobooks/Amal El-Mohtar/This Is How You Lose the Time War/Amal El-Mohtar - This Is How You Lose the Time War.m4b",
|
||||
"relPath": "Amal El-Mohtar - This Is How You Lose the Time War.m4b"
|
||||
},
|
||||
"trackNumFromMeta": null,
|
||||
"discNumFromMeta": null,
|
||||
"trackNumFromFilename": null,
|
||||
"discNumFromFilename": null,
|
||||
"manuallyVerified": false,
|
||||
"invalid": false,
|
||||
"exclude": false,
|
||||
"error": null,
|
||||
"format": "QuickTime / MOV",
|
||||
"duration": 15367.268,
|
||||
"bitRate": 125588,
|
||||
"language": "und",
|
||||
"codec": "aac",
|
||||
"timeBase": "1/44100",
|
||||
"channels": 2,
|
||||
"channelLayout": "stereo",
|
||||
"chapters": [
|
||||
{
|
||||
"id": 0,
|
||||
"start": 0,
|
||||
"end": 45.65,
|
||||
"title": "001"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"start": 45.65,
|
||||
"end": 735.84,
|
||||
"title": "002"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"start": 735.84,
|
||||
"end": 1112.514,
|
||||
"title": "003"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"start": 1112.514,
|
||||
"end": 1717.928,
|
||||
"title": "004"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"start": 1717.928,
|
||||
"end": 2238.38,
|
||||
"title": "005"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"start": 2238.38,
|
||||
"end": 2801.557,
|
||||
"title": "006"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"start": 2801.557,
|
||||
"end": 3471.383,
|
||||
"title": "007"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"start": 3471.383,
|
||||
"end": 4094.258,
|
||||
"title": "008"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"start": 4094.258,
|
||||
"end": 4957.715,
|
||||
"title": "009"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"start": 4957.715,
|
||||
"end": 5608.71,
|
||||
"title": "010"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"start": 5608.71,
|
||||
"end": 6413.165,
|
||||
"title": "011"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"start": 6413.165,
|
||||
"end": 7038.316,
|
||||
"title": "012"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"start": 7038.316,
|
||||
"end": 7444.967,
|
||||
"title": "013"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"start": 7444.967,
|
||||
"end": 8200.196,
|
||||
"title": "014"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"start": 8200.196,
|
||||
"end": 8573.155,
|
||||
"title": "015"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"start": 8573.155,
|
||||
"end": 9578.138,
|
||||
"title": "016"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"start": 9578.138,
|
||||
"end": 9968.535,
|
||||
"title": "017"
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"start": 9968.535,
|
||||
"end": 10889.972,
|
||||
"title": "018"
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"start": 10889.972,
|
||||
"end": 11612.438,
|
||||
"title": "019"
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"start": 11612.438,
|
||||
"end": 11978.361,
|
||||
"title": "020"
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"start": 11978.361,
|
||||
"end": 12672.754,
|
||||
"title": "021"
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"start": 12672.754,
|
||||
"end": 13294.933,
|
||||
"title": "022"
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"start": 13294.933,
|
||||
"end": 13857.134,
|
||||
"title": "023"
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"start": 13857.134,
|
||||
"end": 14249.296,
|
||||
"title": "024"
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"start": 14249.296,
|
||||
"end": 14799.702,
|
||||
"title": "025"
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"start": 14799.702,
|
||||
"end": 15367.268,
|
||||
"title": "026"
|
||||
}
|
||||
],
|
||||
"embeddedCoverArt": "mjpeg",
|
||||
"metaTags": {
|
||||
"tagAlbum": "This Is How You Lose the Time War",
|
||||
"tagArtist": "Amal El-Mohtar, Max Gladstone",
|
||||
"tagGenre": "Audiobook",
|
||||
"tagTitle": "This Is How You Lose the Time War",
|
||||
"tagDate": "2019",
|
||||
"tagComposer": "Emily Woo Zeller, Cynthia Farrell",
|
||||
"tagComment": "Among the ashes of a dying world, an agent of the Commandant finds a letter. It reads: Burn before reading. Thus begins an unlikely correspondence between two rival agents hellbent on securing the best possible future for their warring factions. Now, wha",
|
||||
"tagDescription": "Among the ashes of a dying world, an agent of the Commandant finds a letter. It reads: Burn before reading. Thus begins an unlikely correspondence between two rival agents hellbent on securing the best possible future for their warring factions. Now, what began as a taunt, a battlefield boast, grows into something more. Something epic. Something romantic. Something that could change the past and the future. Except the discovery of their bond would mean death for each of them. There's still a war going on, after all. And someone has to win that war. That's how war works. Right?"
|
||||
},
|
||||
"mimeType": "audio/mp4"
|
||||
}
|
||||
],
|
||||
"chapters": [
|
||||
{
|
||||
"id": 0,
|
||||
"start": 0,
|
||||
"end": 45.65,
|
||||
"title": "001"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"start": 45.65,
|
||||
"end": 735.84,
|
||||
"title": "002"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"start": 735.84,
|
||||
"end": 1112.514,
|
||||
"title": "003"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"start": 1112.514,
|
||||
"end": 1717.928,
|
||||
"title": "004"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"start": 1717.928,
|
||||
"end": 2238.38,
|
||||
"title": "005"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"start": 2238.38,
|
||||
"end": 2801.557,
|
||||
"title": "006"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"start": 2801.557,
|
||||
"end": 3471.383,
|
||||
"title": "007"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"start": 3471.383,
|
||||
"end": 4094.258,
|
||||
"title": "008"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"start": 4094.258,
|
||||
"end": 4957.715,
|
||||
"title": "009"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"start": 4957.715,
|
||||
"end": 5608.71,
|
||||
"title": "010"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"start": 5608.71,
|
||||
"end": 6413.165,
|
||||
"title": "011"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"start": 6413.165,
|
||||
"end": 7038.316,
|
||||
"title": "012"
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"start": 7038.316,
|
||||
"end": 7444.967,
|
||||
"title": "013"
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"start": 7444.967,
|
||||
"end": 8200.196,
|
||||
"title": "014"
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"start": 8200.196,
|
||||
"end": 8573.155,
|
||||
"title": "015"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"start": 8573.155,
|
||||
"end": 9578.138,
|
||||
"title": "016"
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"start": 9578.138,
|
||||
"end": 9968.535,
|
||||
"title": "017"
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"start": 9968.535,
|
||||
"end": 10889.972,
|
||||
"title": "018"
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"start": 10889.972,
|
||||
"end": 11612.438,
|
||||
"title": "019"
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"start": 11612.438,
|
||||
"end": 11978.361,
|
||||
"title": "020"
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"start": 11978.361,
|
||||
"end": 12672.754,
|
||||
"title": "021"
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"start": 12672.754,
|
||||
"end": 13294.933,
|
||||
"title": "022"
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"start": 13294.933,
|
||||
"end": 13857.134,
|
||||
"title": "023"
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"start": 13857.134,
|
||||
"end": 14249.296,
|
||||
"title": "024"
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"start": 14249.296,
|
||||
"end": 14799.702,
|
||||
"title": "025"
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"start": 14799.702,
|
||||
"end": 14799.702,
|
||||
"title": "026"
|
||||
}
|
||||
],
|
||||
"missingParts": [],
|
||||
"ebookFile": null
|
||||
},
|
||||
"libraryFiles": [
|
||||
{
|
||||
"metadata": {
|
||||
"filename": "Amal El-Mohtar - This Is How You Lose the Time War.jpg",
|
||||
"ext": ".jpg",
|
||||
"path": "/audiobooks/Amal El-Mohtar/This Is How You Lose the Time War/Amal El-Mohtar - This Is How You Lose the Time War.jpg",
|
||||
"relPath": "Amal El-Mohtar - This Is How You Lose the Time War.jpg"
|
||||
},
|
||||
"isSupplementary": null,
|
||||
"fileType": "image"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"filename": "Amal El-Mohtar - This Is How You Lose the Time War (02).jpg",
|
||||
"ext": ".jpg",
|
||||
"path": "/audiobooks/Amal El-Mohtar/This Is How You Lose the Time War/Amal El-Mohtar - This Is How You Lose the Time War (02).jpg",
|
||||
"relPath": "Amal El-Mohtar - This Is How You Lose the Time War (02).jpg"
|
||||
},
|
||||
"isSupplementary": null,
|
||||
"fileType": "image"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"filename": "Amal El-Mohtar - This Is How You Lose the Time War.m4b",
|
||||
"ext": ".m4b",
|
||||
"path": "/audiobooks/Amal El-Mohtar/This Is How You Lose the Time War/Amal El-Mohtar - This Is How You Lose the Time War.m4b",
|
||||
"relPath": "Amal El-Mohtar - This Is How You Lose the Time War.m4b"
|
||||
},
|
||||
"isSupplementary": null,
|
||||
"fileType": "audio"
|
||||
}
|
||||
]
|
||||
}
|
||||
246
cypress/fixtures/bookMetadata/book3.json
Normal file
246
cypress/fixtures/bookMetadata/book3.json
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
{
|
||||
"path": "/audiobooks/Becky Chambers/A Psalm for the Wild-Built",
|
||||
"relPath": "Becky Chambers/A Psalm for the Wild-Built",
|
||||
"isFile": false,
|
||||
"isMissing": false,
|
||||
"isInvalid": false,
|
||||
"mediaType": "book",
|
||||
"media": {
|
||||
"metadata": {
|
||||
"title": "A Psalm for the Wild-Built",
|
||||
"subtitle": "Monk & Robot, Book 1",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Becky Chambers"
|
||||
}
|
||||
],
|
||||
"narrators": [
|
||||
"Em Grosland"
|
||||
],
|
||||
"series": [
|
||||
{
|
||||
"name": "Monk & Robot",
|
||||
"sequence": "1"
|
||||
}
|
||||
],
|
||||
"genres": [
|
||||
"Science Fiction & Fantasy"
|
||||
],
|
||||
"publishedYear": "2021",
|
||||
"publishedDate": null,
|
||||
"publisher": "Tordotcom",
|
||||
"description": "\"Narrator Emmett Grosland conjures the essence of a troubled soul in search of peace in this gentle audio.\"—AudioFile Magazine In A Psalm for the Wild-Built, Hugo Award-winner Becky Chambers's delightful new Monk and Robot series gives us hope for the future. It's been centuries since the robots of Panga gained self-awareness and laid down their tools; centuries since they wandered, en masse, into the wilderness, never to be seen again; centuries since they faded into myth and urban legend. One day, the life of a tea monk is upended by the arrival of a robot, there to honor the old promise of checking in. The robot cannot go back until the question of \"what do people need?\" is answered. But the answer to that question depends on who you ask, and how. They're going to need to ask it a lot. Becky Chambers's new series asks: in a world where people have what they want, does having more matter? A Macmillan Audio production from Tordotcom",
|
||||
"isbn": null,
|
||||
"asin": "1250807743",
|
||||
"language": "English",
|
||||
"explicit": false,
|
||||
"abridged": false
|
||||
},
|
||||
"tags": [
|
||||
"Science Fiction",
|
||||
"Adventure",
|
||||
"Post-Apocalyptic"
|
||||
],
|
||||
"audioFiles": [
|
||||
{
|
||||
"index": 1,
|
||||
"metadata": {
|
||||
"filename": "Becky Chambers - A Psalm for the Wild-Built.m4b",
|
||||
"ext": ".m4b",
|
||||
"path": "/audiobooks/Becky Chambers/A Psalm for the Wild-Built/Becky Chambers - A Psalm for the Wild-Built.m4b",
|
||||
"relPath": "Becky Chambers - A Psalm for the Wild-Built.m4b"
|
||||
},
|
||||
"trackNumFromMeta": 1,
|
||||
"discNumFromMeta": null,
|
||||
"trackNumFromFilename": null,
|
||||
"discNumFromFilename": null,
|
||||
"manuallyVerified": false,
|
||||
"invalid": false,
|
||||
"exclude": false,
|
||||
"error": null,
|
||||
"format": "QuickTime / MOV",
|
||||
"duration": 14909.975,
|
||||
"bitRate": 125588,
|
||||
"language": "und",
|
||||
"codec": "aac",
|
||||
"timeBase": "1/44100",
|
||||
"channels": 2,
|
||||
"channelLayout": "stereo",
|
||||
"chapters": [
|
||||
{
|
||||
"id": 0,
|
||||
"start": 0,
|
||||
"end": 21.942,
|
||||
"title": "001"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"start": 21.942,
|
||||
"end": 321.108,
|
||||
"title": "002"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"start": 321.108,
|
||||
"end": 2331.84,
|
||||
"title": "003"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"start": 2331.84,
|
||||
"end": 5155.967,
|
||||
"title": "004"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"start": 5155.967,
|
||||
"end": 6866.535,
|
||||
"title": "005"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"start": 6866.535,
|
||||
"end": 7853.476,
|
||||
"title": "006"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"start": 7853.476,
|
||||
"end": 9850.253,
|
||||
"title": "007"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"start": 9850.253,
|
||||
"end": 10816.714,
|
||||
"title": "008"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"start": 10816.714,
|
||||
"end": 12285.445,
|
||||
"title": "009"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"start": 12285.445,
|
||||
"end": 14872.961,
|
||||
"title": "010"
|
||||
}
|
||||
],
|
||||
"embeddedCoverArt": "mjpeg",
|
||||
"metaTags": {
|
||||
"tagAlbum": "A Psalm for the Wild-Built",
|
||||
"tagArtist": "Becky Chambers",
|
||||
"tagTitle": "A Psalm for the Wild-Built",
|
||||
"tagTrack": "1",
|
||||
"tagAlbumArtist": "Becky Chambers",
|
||||
"tagDate": "2021-07-13",
|
||||
"tagComposer": "Emmett Grosland",
|
||||
"tagPublisher": "Tordotcom",
|
||||
"tagComment": "It's been centuries since the robots of Panga gained self-awareness and laid down their tools",
|
||||
"tagDescription": "It's been centuries since the robots of Panga gained self-awareness and laid down their tools"
|
||||
},
|
||||
"mimeType": "audio/mp4"
|
||||
}
|
||||
],
|
||||
"chapters": [
|
||||
{
|
||||
"id": 0,
|
||||
"start": 0,
|
||||
"end": 20.108,
|
||||
"title": "Opening Credits"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"start": 20.108,
|
||||
"end": 25.108,
|
||||
"title": "Dedication"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"start": 25.108,
|
||||
"end": 319.181,
|
||||
"title": "Epigraph"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"start": 319.181,
|
||||
"end": 2329.982,
|
||||
"title": "1. A Change in Vocation"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"start": 2329.982,
|
||||
"end": 5154.178,
|
||||
"title": "2. The Best Tea Monk in Panga"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"start": 5154.178,
|
||||
"end": 6864.792,
|
||||
"title": "3. Splendid Speckled Mosscap"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"start": 6864.792,
|
||||
"end": 7851.779,
|
||||
"title": "4. An Object, and an Animal"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"start": 7851.779,
|
||||
"end": 9848.602,
|
||||
"title": "5. Remnants"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"start": 9848.602,
|
||||
"end": 10815.109,
|
||||
"title": "6. Grass Hen with Wilted Greens and Caramelized Onion"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"start": 10815.109,
|
||||
"end": 12283.91,
|
||||
"title": "7. The Wild"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"start": 12283.91,
|
||||
"end": 14871.495,
|
||||
"title": "8. The Summer Bear"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"start": 14871.495,
|
||||
"end": 14871.495,
|
||||
"title": "End Credits"
|
||||
}
|
||||
],
|
||||
"missingParts": [],
|
||||
"ebookFile": null
|
||||
},
|
||||
"libraryFiles": [
|
||||
{
|
||||
"metadata": {
|
||||
"filename": "Becky Chambers - A Psalm for the Wild-Built.m4b",
|
||||
"ext": ".m4b",
|
||||
"path": "/audiobooks/Becky Chambers/A Psalm for the Wild-Built/Becky Chambers - A Psalm for the Wild-Built.m4b",
|
||||
"relPath": "Becky Chambers - A Psalm for the Wild-Built.m4b"
|
||||
},
|
||||
"isSupplementary": null,
|
||||
"fileType": "audio"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"filename": "Becky Chambers - A Psalm for the Wild-Built.jpg",
|
||||
"ext": ".jpg",
|
||||
"path": "/audiobooks/Becky Chambers/A Psalm for the Wild-Built/Becky Chambers - A Psalm for the Wild-Built.jpg",
|
||||
"relPath": "Becky Chambers - A Psalm for the Wild-Built.jpg"
|
||||
},
|
||||
"isSupplementary": null,
|
||||
"fileType": "image"
|
||||
}
|
||||
]
|
||||
}
|
||||
5
cypress/fixtures/bookMetadata/index.js
Normal file
5
cypress/fixtures/bookMetadata/index.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
const book1 = require("./book1.json")
|
||||
const book2 = require("./book2.json")
|
||||
const book3 = require("./book3.json")
|
||||
|
||||
module.exports = [book1, book2, book3]
|
||||
Loading…
Add table
Add a link
Reference in a new issue