{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":10240326,"defaultBranch":"master","name":"music","ownerLogin":"owncloud","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-05-23T09:25:47.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1645051?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1713723426.0","currentOid":""},"activityList":{"items":[{"before":"a44d9804a9ac9f704df677e0e47c657a88585454","after":"9ea9f7d3262e3206379e665198cad8dabd9da95d","ref":"refs/heads/master","pushedAt":"2024-05-13T20:00:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix tracklist details button broken by a44d9804","shortMessageHtmlLink":"Fix tracklist details button broken by a44d980"}},{"before":"99b5ade2097a3e87337f4d61bff8345aa6338cb0","after":"a44d9804a9ac9f704df677e0e47c657a88585454","ref":"refs/heads/master","pushedAt":"2024-05-09T20:47:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Use same kind of padding for the Details icon in all list views\n\nThe vertical padding of the Details (and Remove) button of the playlist\nview was increased in the commit 0225f76da to make the button easier to\nclick. Now the same style is applied also to all the other list views\nusing the \"cover art and two lines\" layout.","shortMessageHtmlLink":"Use same kind of padding for the Details icon in all list views"}},{"before":"52442258bd69ecaad858700a117e728bd1d91fe7","after":"99b5ade2097a3e87337f4d61bff8345aa6338cb0","ref":"refs/heads/master","pushedAt":"2024-05-09T17:07:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix two small issues reported by Scrutinizer\n\n- There was an obsolete `use` statement in PlaylistApiController\n\n- In CoverHelper, Scrutinizer didn't understand that $size is\n guaranteed to be non-null if it's greater than 0","shortMessageHtmlLink":"Fix two small issues reported by Scrutinizer"}},{"before":"951bd157252511e32e15ad125ed5c9a7de35bf61","after":"52442258bd69ecaad858700a117e728bd1d91fe7","ref":"refs/heads/master","pushedAt":"2024-05-09T16:39:09.000Z","pushType":"push","commitsCount":21,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Merge branch 'feature/list_layout_redesign'","shortMessageHtmlLink":"Merge branch 'feature/list_layout_redesign'"}},{"before":"cf037c99314cc4ea46c8170a38efdaf8742d8771","after":"951bd157252511e32e15ad125ed5c9a7de35bf61","ref":"refs/heads/master","pushedAt":"2024-05-01T20:15:11.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix playlist sorting when the list contains some broken track references\n\nThe sorting function could handle \"null\" properly but not \"undefined\".","shortMessageHtmlLink":"Fix playlist sorting when the list contains some broken track references"}},{"before":"0b12f801425a5ed9c3dc81ea76e7d1cfdd9849b3","after":"cf037c99314cc4ea46c8170a38efdaf8742d8771","ref":"refs/heads/master","pushedAt":"2024-04-28T18:06:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Ampache: No record play with `download`; `url` property refers to `stream`\n\nAlign the implicit play recording to that of genuine Ampache server:\n- The action `download` does not record the track as played\n- The action `stream` records the track as played\n- The URL given in the `url` property records the track as played\n\nWe still don't have the concept of \"skip song\" as the genuine Ampache:\nThere, the recorded play is subsequently removed if streaming of\nanother track starts within 20 seconds (or another calibrated time) of\nthe recorded track.","shortMessageHtmlLink":"Ampache: No record play with download; url property refers to `st…"}},{"before":"318c56043d32c3de0dce825533c58f3bf091b4e3","after":"0b12f801425a5ed9c3dc81ea76e7d1cfdd9849b3","ref":"refs/heads/master","pushedAt":"2024-04-21T18:16:28.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Release v1.11.0","shortMessageHtmlLink":"Release v1.11.0"}},{"before":"536b5b742c8b8b2c4a4e16c8a2188b9482d7107b","after":"318c56043d32c3de0dce825533c58f3bf091b4e3","ref":"refs/heads/master","pushedAt":"2024-04-21T15:51:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Subsonic: Support method `getOpenSubsonicExtensions`\n\nThis simple OpenSubsonic extension lists the other extensions supported. For\nnow, the only named extension we support is `formPost` i.e. calling the\nSubsonic methods via HTTP POST and passing the arguments as POST data.","shortMessageHtmlLink":"Subsonic: Support method getOpenSubsonicExtensions"}},{"before":"fc89b7971a9117ebc72d0eb0a728087d77bfd258","after":"536b5b742c8b8b2c4a4e16c8a2188b9482d7107b","ref":"refs/heads/master","pushedAt":"2024-04-21T14:12:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Ampache: Implicitly record the downloaded tracks as played\n\nThis is a bit controversial since downloading doesn't necessarily mean that\nthe tracks has been actually played. However, this seems to be how the\ngenuine Ampache server behaves and what the clients assume.","shortMessageHtmlLink":"Ampache: Implicitly record the downloaded tracks as played"}},{"before":"91b14a8ff058446f2c6de465091d6ff20bd7ad38","after":"fc89b7971a9117ebc72d0eb0a728087d77bfd258","ref":"refs/heads/master","pushedAt":"2024-04-21T13:47:13.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Ampache: Support for the action `scrobble`","shortMessageHtmlLink":"Ampache: Support for the action scrobble"}},{"before":"39b546de1d570511e601208a00b970ae58e45c0d","after":"91b14a8ff058446f2c6de465091d6ff20bd7ad38","ref":"refs/heads/master","pushedAt":"2024-04-20T17:34:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Ampache: Add support for the action `playlist_add`","shortMessageHtmlLink":"Ampache: Add support for the action playlist_add"}},{"before":"98f404b441e52c72a5bc2b9983bb948baadb5e5c","after":"39b546de1d570511e601208a00b970ae58e45c0d","ref":"refs/heads/master","pushedAt":"2024-04-20T14:36:58.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Ampache: Support for the action `user`\n\nThis is used by Ample 3 and Power Ampache 2.","shortMessageHtmlLink":"Ampache: Support for the action user"}},{"before":"415a26d6703558ef8698db69d84db2b25fcddee6","after":"98f404b441e52c72a5bc2b9983bb948baadb5e5c","ref":"refs/heads/master","pushedAt":"2024-04-19T21:37:39.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Ampache: Provide mocks for actions `system_preference[s]`\n\nThese return the exact same preferences as the mocked `user_preference`\nand `user_preferences`.","shortMessageHtmlLink":"Ampache: Provide mocks for actions system_preference[s]"}},{"before":"1c839a72a8e39aa716cbc4e44eba75a2391b8a82","after":"415a26d6703558ef8698db69d84db2b25fcddee6","ref":"refs/heads/master","pushedAt":"2024-04-18T19:58:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix Music app page loading occasionally failing on Chrome\n\nIt happens sometimes (but quite rarely at least on my tests) that all\nthe needed parts of the Nextcloud server core are not yet loaded at the\ntime when our controllers are being initialized. Previously such cases\ncaused the page loading to fail but now we are prepared: If the needed\nparts of the core are not available immediately, then we postpone the\nrelated initialization steps and retry after 500 ms. Attempts are\ncontinued until when they succeed.\n\nIn the GitHub issue, the problem was reported to happen with the\nreference OC.MimeType, but fixing this case reveled that there was a\nsimilar case related to the HTML element #app-navigation-toggle.\n\nrefs https://github.com/owncloud/music/issues/1137","shortMessageHtmlLink":"Fix Music app page loading occasionally failing on Chrome"}},{"before":"faeb407de51d39f4d12cca21ec44a913546ab6fd","after":"1c839a72a8e39aa716cbc4e44eba75a2391b8a82","ref":"refs/heads/master","pushedAt":"2024-04-17T20:45:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":" Fix error shown on console when loading the embedded player on NC28+\n\nIn NC28+, there's no longer the API OCA.Search available and attempting\nto register a renderer to it caused an error to be printed to the\nbrowser console. Note that the global search integration of Music\nhasn't been supported on Nextcloud for many years, because of\narchitectural changes.","shortMessageHtmlLink":" Fix error shown on console when loading the embedded player on NC28+"}},{"before":"887befbd94c4ec4c4f21171f9d9f16b562bd9ea3","after":"faeb407de51d39f4d12cca21ec44a913546ab6fd","ref":"refs/heads/master","pushedAt":"2024-04-17T20:03:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix a glitch when opening audio file from Dashboard on NC28+\n\nThere was such a problem that audio file opened from the NC28+\nDashboard app opened using the built-in viewer instead of the embedded\nplayer of the Music app. This happened because the embedded player was\nregistered a tad too late for this case.\n\nWhat made this a bit tricky to fix was that, on ownCloud and older\nNextcloud versions, the file actions cannot be registered before the\npage has finished loading. And we don't even know if we need to do the\nold-style registration before the page has completely loaded. And\nthat's too late for NC28+. Hence, we need to attempt the NC28-style\nregistration as soon as possible and then also try the OC-style\nregistration later.\n\nThe described problem was seen on Chrome but not on Firefox.\n\nrefs https://github.com/owncloud/music/issues/1126","shortMessageHtmlLink":"Fix a glitch when opening audio file from Dashboard on NC28+"}},{"before":"1f20182e8b943952755b8d44a428e629179c7293","after":"887befbd94c4ec4c4f21171f9d9f16b562bd9ea3","ref":"refs/heads/master","pushedAt":"2024-04-14T20:52:19.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Merge branch 'feature/embedded-player-refactoring'","shortMessageHtmlLink":"Merge branch 'feature/embedded-player-refactoring'"}},{"before":"81d05153a8e23fee836c9d27cb912bd4661bbc2a","after":"1f20182e8b943952755b8d44a428e629179c7293","ref":"refs/heads/master","pushedAt":"2024-04-08T20:50:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix every Subsonic XML API call logging an error on NC28+\n\nEvery call to the Subsonic XML API caused and error 'Undefined array\nkey \"\" at /var/www/html/lib/private/AppFramework/Http.php#128' to be\nlogged to the nextcloud.log.\n\nThis happened because the XmlResponse object had no response status\nset. Setting this used to happen automatically, but after the Nextcloud\nPR https://github.com/nextcloud/server/pull/38802, the automatic setting\nhas not happened without a call to the parent class constructor from\nthe derived class. However, we can't call the parent constructor because\nit doesn't exist on ownCloud. To overcome the problem, we now set the\nstatus code explicitly in the constructor of XmlResponse.\n\nrefs https://github.com/owncloud/music/issues/1142","shortMessageHtmlLink":"Fix every Subsonic XML API call logging an error on NC28+"}},{"before":"597e170b8675beba563605b3f9eb675a25cdde77","after":"81d05153a8e23fee836c9d27cb912bd4661bbc2a","ref":"refs/heads/master","pushedAt":"2024-04-08T19:44:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix Ampache API not working on ownCloud 10.14.0\n\nThe ownCloud version 10.14.0 has changed the Entity base class and any\nclasses (indirectly) inheriting it are no longer allowed to have a\nconstructor taking arguments. Hence, we need to construct our \"All\nTracks adapter\" playlist in the Ampache API a bit differently.\n\nrefs https://github.com/owncloud/music/issues/1138","shortMessageHtmlLink":"Fix Ampache API not working on ownCloud 10.14.0"}},{"before":"80206d429394c1f33d4408db30cd977b31ea7ee7","after":"597e170b8675beba563605b3f9eb675a25cdde77","ref":"refs/heads/master","pushedAt":"2024-04-07T20:11:01.000Z","pushType":"pr_merge","commitsCount":43,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Merge pull request #1141 from paulijar/feature/advanced-search\n\nAdvanced search view","shortMessageHtmlLink":"Merge pull request #1141 from paulijar/feature/advanced-search"}},{"before":"35559fac4008a3928d51f66ab21448f58cf43fd4","after":"80206d429394c1f33d4408db30cd977b31ea7ee7","ref":"refs/heads/master","pushedAt":"2024-04-07T15:32:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix a bug on track click with colliding ID with podcast/radio\n\nThe logic of handling the track click in most views didn't work\ncorrectly in case there was currently a podcast episode or radio station\nplaying and the said episode/station happened to have the same ID\nnumber as the clicked track. In that case, the current playback got\npaused instead of jumping to the clicked track.\n\nThe other way around, similar situation was already handled properly in\nthe Podcasts and Internet radio views.","shortMessageHtmlLink":"Fix a bug on track click with colliding ID with podcast/radio"}},{"before":"23be47a5a8b31aba63c87769678b6921e77998a3","after":"35559fac4008a3928d51f66ab21448f58cf43fd4","ref":"refs/heads/master","pushedAt":"2024-03-29T11:53:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Make the ampache session timeout configurable for the cloud admins\n\nThe timeout can now be set with the `config.php` key\n`music.ampache_session_expiry_time`. The default is 6000 seconds and\nmaximum is 31536000 seconds, equaling one year. The maximum has been\nlimited to prevent overflow especially with PostgreSQL where the expiry\ntimestamp (as Unix epoch time) cannot exceed 2^31-1 (which equals a\ndate in the year 2038).\n\nrefs https://github.com/owncloud/music/issues/1134","shortMessageHtmlLink":"Make the ampache session timeout configurable for the cloud admins"}},{"before":"697990b11d40eecd6b4b1ef677de5ea4ae3cea23","after":"23be47a5a8b31aba63c87769678b6921e77998a3","ref":"refs/heads/master","pushedAt":"2024-03-28T21:18:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix the background jobs not working on NC29+\n\nThe base class OC\\BackgroundJob\\TimedJob has been removed in NC29 in\nfavor of OCP\\BackgorundJob\\TimedJob. However, the new alternative is\nnot available on ownCloud and we now need to dynamically select among\nthese two the one which can be found.\n\nAlso, marked the app now as compatible with NC29 as it seemed to work\nfine on NC29-RC1. Except for the Nextcloud files dialog issue\nhttps://github.com/nextcloud/server/issues/42291 which has made a\ncome-back, after being already fixed in NC28.0.2. [sigh]\n\nrefs https://github.com/owncloud/music/issues/1132","shortMessageHtmlLink":"Fix the background jobs not working on NC29+"}},{"before":"22c20a53d4e89555dc29e6c93d2e45ad49d3b28b","after":"697990b11d40eecd6b4b1ef677de5ea4ae3cea23","ref":"refs/heads/master","pushedAt":"2024-03-16T20:04:11.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix error being logged on each played song with PHP 8.3\n\nDon't try to set the response status again in case the file streaming has\nalready successfully started. This has probably never made sense but prior to\nPHP 8.3 this was just silently ignored.\n\nrefs https://github.com/owncloud/music/issues/1133","shortMessageHtmlLink":"Fix error being logged on each played song with PHP 8.3"}},{"before":"8e8f02530db3b956ce667d8b55df0b218362e0cd","after":"22c20a53d4e89555dc29e6c93d2e45ad49d3b28b","ref":"refs/heads/master","pushedAt":"2024-02-05T21:52:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix playlist file not playing in Files in case the first file is unsupported\n\nWhen opening a playlist file within Files, having the first contained\ntrack in format unsupported on the cloud prevented the entire opening\nof the file, even if the rest of the files on the list were in\nsupported formats.","shortMessageHtmlLink":"Fix playlist file not playing in Files in case the first file is unsu…"}},{"before":"d2d48418c8b8eb476095a4e55b2ece5319a854b5","after":"8e8f02530db3b956ce667d8b55df0b218362e0cd","ref":"refs/heads/master","pushedAt":"2024-02-01T21:06:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Align the styling of the \"chosen\" drop-downs with that of NC popup menus","shortMessageHtmlLink":"Align the styling of the \"chosen\" drop-downs with that of NC popup menus"}},{"before":"e9e02e9200d227c3ee76c48e901b98adc3ac8d49","after":"d2d48418c8b8eb476095a4e55b2ece5319a854b5","ref":"refs/heads/master","pushedAt":"2024-02-01T20:11:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Update changelog for the previously merged PR","shortMessageHtmlLink":"Update changelog for the previously merged PR"}},{"before":"38d43d32dffe2e06f44e2c2cdd884c8a3e74e650","after":"e9e02e9200d227c3ee76c48e901b98adc3ac8d49","ref":"refs/heads/master","pushedAt":"2024-02-01T14:17:42.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Merge pull request #1125 from perillamint/fix/subsonic-albuminfo2\n\nSubsonic: return `albumInfo` instead of `albumInfo2`","shortMessageHtmlLink":"Merge pull request #1125 from perillamint/fix/subsonic-albuminfo2"}},{"before":"c964f8c8fe302a8996d81c9ed76dabea4850cccb","after":"38d43d32dffe2e06f44e2c2cdd884c8a3e74e650","ref":"refs/heads/master","pushedAt":"2024-01-27T18:29:12.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Release v1.10.0","shortMessageHtmlLink":"Release v1.10.0"}},{"before":"668243d887b44050e7bd099dbc03a48e115fe340","after":"c964f8c8fe302a8996d81c9ed76dabea4850cccb","ref":"refs/heads/master","pushedAt":"2024-01-24T21:21:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"paulijar","name":"Pauli Järvinen","path":"/paulijar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8565946?s=80&v=4"},"commit":{"message":"Fix playlist details showing length as \"NaN:Nan\" with invalid track refs\n\nIn case the playlist contains any invalid track references, the playlist\ndetails pane used to show the playlist length as \"NaN:NaN\". The\nprevious logic to treat the invalid tracks here as 0-length didn't work\ncorrectly because those items (at least in some cases) had the\n`item.track` reference defined but `item.track.length` was undefined.","shortMessageHtmlLink":"Fix playlist details showing length as \"NaN:Nan\" with invalid track refs"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAESMf_7AA","startCursor":null,"endCursor":null}},"title":"Activity · owncloud/music"}