{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":724319139,"defaultBranch":"main","name":"emby-dedupe","ownerLogin":"troykelly","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-11-27T20:55:20.000Z","ownerAvatar":"https://github.com/avatars/u/4564803?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1718618783.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"75a28e6582ece7353e5a1f68c238c70d8e4e62f2","ref":"refs/heads/dependabot/github_actions/docker/build-push-action-6","pushedAt":"2024-06-17T10:06:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://github.com/avatars/in/29110?s=80&v=4"},"commit":{"message":"Bump docker/build-push-action from 5 to 6\n\nBumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.\n- [Release notes](https://github.com/docker/build-push-action/releases)\n- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: docker/build-push-action\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump docker/build-push-action from 5 to 6"}},{"before":null,"after":"d1a84d0a035b3e16254b11e2f060e09c190a6585","ref":"refs/heads/dependabot/pip/tqdm-4.66.4","pushedAt":"2024-05-03T09:36:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://github.com/avatars/in/29110?s=80&v=4"},"commit":{"message":"Bump tqdm from 4.66.2 to 4.66.4\n\nBumps [tqdm](https://github.com/tqdm/tqdm) from 4.66.2 to 4.66.4.\n- [Release notes](https://github.com/tqdm/tqdm/releases)\n- [Commits](https://github.com/tqdm/tqdm/compare/v4.66.2...v4.66.4)\n\n---\nupdated-dependencies:\n- dependency-name: tqdm\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump tqdm from 4.66.2 to 4.66.4"}},{"before":"4a655536291be3b9b43c030173722ed5d2583b55","after":null,"ref":"refs/heads/dependabot/pip/tqdm-4.66.2","pushedAt":"2024-05-02T23:26:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://github.com/avatars/in/29110?s=80&v=4"}},{"before":"bc34c934309e51b88321fe6315990842533eb6da","after":"aad378bcbb69b315b978f8ac786dc51061678ed0","ref":"refs/heads/main","pushedAt":"2024-05-02T23:26:46.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #33 from troykelly/dependabot/pip/tqdm-4.66.2\n\nBump tqdm from 4.66.1 to 4.66.2","shortMessageHtmlLink":"Merge pull request #33 from troykelly/dependabot/pip/tqdm-4.66.2"}},{"before":"09b810d599e20f7b4a1de7485857195950c2d313","after":"4a655536291be3b9b43c030173722ed5d2583b55","ref":"refs/heads/dependabot/pip/tqdm-4.66.2","pushedAt":"2024-02-22T22:01:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://github.com/avatars/in/29110?s=80&v=4"},"commit":{"message":"Bump tqdm from 4.66.1 to 4.66.2\n\nBumps [tqdm](https://github.com/tqdm/tqdm) from 4.66.1 to 4.66.2.\n- [Release notes](https://github.com/tqdm/tqdm/releases)\n- [Commits](https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.2)\n\n---\nupdated-dependencies:\n- dependency-name: tqdm\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump tqdm from 4.66.1 to 4.66.2"}},{"before":"839df11c4f17c5ad64740898b4fbeabc0b98b081","after":null,"ref":"refs/heads/dependabot/pip/httpx-0.27.0","pushedAt":"2024-02-22T22:00:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"}},{"before":"03e4afc5b8aa10903e5de9dfd8d63b3806299dde","after":"bc34c934309e51b88321fe6315990842533eb6da","ref":"refs/heads/main","pushedAt":"2024-02-22T22:00:03.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #34 from troykelly/dependabot/pip/httpx-0.27.0\n\nBump httpx from 0.26.0 to 0.27.0","shortMessageHtmlLink":"Merge pull request #34 from troykelly/dependabot/pip/httpx-0.27.0"}},{"before":null,"after":"839df11c4f17c5ad64740898b4fbeabc0b98b081","ref":"refs/heads/dependabot/pip/httpx-0.27.0","pushedAt":"2024-02-22T09:44:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://github.com/avatars/in/29110?s=80&v=4"},"commit":{"message":"Bump httpx from 0.26.0 to 0.27.0\n\nBumps [httpx](https://github.com/encode/httpx) from 0.26.0 to 0.27.0.\n- [Release notes](https://github.com/encode/httpx/releases)\n- [Changelog](https://github.com/encode/httpx/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/encode/httpx/compare/0.26.0...0.27.0)\n\n---\nupdated-dependencies:\n- dependency-name: httpx\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump httpx from 0.26.0 to 0.27.0"}},{"before":null,"after":"09b810d599e20f7b4a1de7485857195950c2d313","ref":"refs/heads/dependabot/pip/tqdm-4.66.2","pushedAt":"2024-02-12T09:44:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://github.com/avatars/in/29110?s=80&v=4"},"commit":{"message":"Bump tqdm from 4.66.1 to 4.66.2\n\nBumps [tqdm](https://github.com/tqdm/tqdm) from 4.66.1 to 4.66.2.\n- [Release notes](https://github.com/tqdm/tqdm/releases)\n- [Commits](https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.2)\n\n---\nupdated-dependencies:\n- dependency-name: tqdm\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump tqdm from 4.66.1 to 4.66.2"}},{"before":"9aa4bf81093e5c9940ed7a68e2cc4fd5870923f8","after":null,"ref":"refs/heads/dependabot/pip/httpx-0.26.0","pushedAt":"2023-12-21T22:33:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"}},{"before":"f513e550cfb083fbec2439eb6b989d6fb6e8766c","after":"03e4afc5b8aa10903e5de9dfd8d63b3806299dde","ref":"refs/heads/main","pushedAt":"2023-12-21T22:33:21.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #32 from troykelly/dependabot/pip/httpx-0.26.0\n\nBump httpx from 0.25.2 to 0.26.0","shortMessageHtmlLink":"Merge pull request #32 from troykelly/dependabot/pip/httpx-0.26.0"}},{"before":null,"after":"9aa4bf81093e5c9940ed7a68e2cc4fd5870923f8","ref":"refs/heads/dependabot/pip/httpx-0.26.0","pushedAt":"2023-12-21T09:31:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://github.com/avatars/in/29110?s=80&v=4"},"commit":{"message":"Bump httpx from 0.25.2 to 0.26.0\n\nBumps [httpx](https://github.com/encode/httpx) from 0.25.2 to 0.26.0.\n- [Release notes](https://github.com/encode/httpx/releases)\n- [Changelog](https://github.com/encode/httpx/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/encode/httpx/compare/0.25.2...0.26.0)\n\n---\nupdated-dependencies:\n- dependency-name: httpx\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump httpx from 0.25.2 to 0.26.0"}},{"before":"f513e550cfb083fbec2439eb6b989d6fb6e8766c","after":"646d89491144f56f9ce990a69323e8a9e665c415","ref":"refs/heads/31-improve-media-selection-logic-for-duplicate-resolution","pushedAt":"2023-12-01T02:12:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Update dedupe.py","shortMessageHtmlLink":"Update dedupe.py"}},{"before":null,"after":"f513e550cfb083fbec2439eb6b989d6fb6e8766c","ref":"refs/heads/31-improve-media-selection-logic-for-duplicate-resolution","pushedAt":"2023-12-01T01:59:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #30 from troykelly/troykelly-patch-1\n\nCreate CODEOWNERS","shortMessageHtmlLink":"Merge pull request #30 from troykelly/troykelly-patch-1"}},{"before":"ebd2e2eb8286aefea82cabfd53975ac805d8ef21","after":"f513e550cfb083fbec2439eb6b989d6fb6e8766c","ref":"refs/heads/main","pushedAt":"2023-12-01T00:39:52.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #30 from troykelly/troykelly-patch-1\n\nCreate CODEOWNERS","shortMessageHtmlLink":"Merge pull request #30 from troykelly/troykelly-patch-1"}},{"before":null,"after":"80e9713100f33158364c4a4653a073bee6dde764","ref":"refs/heads/troykelly-patch-1","pushedAt":"2023-12-01T00:39:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Create CODEOWNERS\n\nSigned-off-by: Troy Kelly ","shortMessageHtmlLink":"Create CODEOWNERS"}},{"before":"7eac6359447a489e6db2e6ef8ea3ac33884cd9f9","after":"ebd2e2eb8286aefea82cabfd53975ac805d8ef21","ref":"refs/heads/main","pushedAt":"2023-12-01T00:36:08.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #29 from troykelly/28-missing-isfolder\n\nAdded missing `IsFolder` to looped query","shortMessageHtmlLink":"Merge pull request #29 from troykelly/28-missing-isfolder"}},{"before":"7eac6359447a489e6db2e6ef8ea3ac33884cd9f9","after":"550cde283652fc455f24d4c5e4f5c3e1afba8561","ref":"refs/heads/28-missing-isfolder","pushedAt":"2023-12-01T00:35:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Update dedupe.py","shortMessageHtmlLink":"Update dedupe.py"}},{"before":null,"after":"7eac6359447a489e6db2e6ef8ea3ac33884cd9f9","ref":"refs/heads/28-missing-isfolder","pushedAt":"2023-12-01T00:34:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #27 from troykelly/26-processing-duplicates-fails-with-an-unexpected-error-occurred-list-index-out-of-range\n\nBetter memory management for large reports","shortMessageHtmlLink":"Merge pull request #27 from troykelly/26-processing-duplicates-fails-…"}},{"before":"046a380b7b7cc343e0290db6c4560f42fda229cc","after":null,"ref":"refs/heads/26-processing-duplicates-fails-with-an-unexpected-error-occurred-list-index-out-of-range","pushedAt":"2023-12-01T00:27:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"}},{"before":"82840117aacf9e395b6382b3109bdae8636d8cce","after":"7eac6359447a489e6db2e6ef8ea3ac33884cd9f9","ref":"refs/heads/main","pushedAt":"2023-12-01T00:27:27.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #27 from troykelly/26-processing-duplicates-fails-with-an-unexpected-error-occurred-list-index-out-of-range\n\nBetter memory management for large reports","shortMessageHtmlLink":"Merge pull request #27 from troykelly/26-processing-duplicates-fails-…"}},{"before":"82840117aacf9e395b6382b3109bdae8636d8cce","after":"046a380b7b7cc343e0290db6c4560f42fda229cc","ref":"refs/heads/26-processing-duplicates-fails-with-an-unexpected-error-occurred-list-index-out-of-range","pushedAt":"2023-12-01T00:27:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Better memory management for large reports\n\n- Improved report generation\n- Removed processing of folders","shortMessageHtmlLink":"Better memory management for large reports"}},{"before":null,"after":"82840117aacf9e395b6382b3109bdae8636d8cce","ref":"refs/heads/26-processing-duplicates-fails-with-an-unexpected-error-occurred-list-index-out-of-range","pushedAt":"2023-11-30T03:33:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #25 from troykelly/24-no-protection-for-missing-keys\n\nImprove Robustness and Error Handling in Media Deduplication Script","shortMessageHtmlLink":"Merge pull request #25 from troykelly/24-no-protection-for-missing-keys"}},{"before":"3e1d6da08ce64d11b6e7e8e9944dd04bcc7bdd6d","after":null,"ref":"refs/heads/24-no-protection-for-missing-keys","pushedAt":"2023-11-29T03:22:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"}},{"before":null,"after":"3e1d6da08ce64d11b6e7e8e9944dd04bcc7bdd6d","ref":"refs/heads/24-no-protection-for-missing-keys","pushedAt":"2023-11-29T03:22:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Enhance error handling in main deduplication script function\n\nThis commit improves the main function of the deduplication script by adding more granular error handling. Specific exceptions are now caught and handled to provide clear, actionable feedback upon script failure. These enhancements ensure that different types of errors are logged appropriately and that the script exits with meaningful error information.\n\nThe changes include the following:\n\n- Catch `json.JSONDecodeError` to handle cases where JSON parsing fails, which could be indicative of bad data being returned from the Emby server.\n- Catch `httpx.TimeoutException` to handle scenarios where HTTP requests to the Emby server time out, possibly due to network issues or server problems.\n- Retain the catch-all `Exception` handling as a safety net for any other unexpected issues, ensuring the script doesn't crash and provides accurate error context for debugging.\n\nThese modifications preserve all existing functionality while significantly improving the script's resilience and maintainability.","shortMessageHtmlLink":"Enhance error handling in main deduplication script function"}},{"before":"3e1d6da08ce64d11b6e7e8e9944dd04bcc7bdd6d","after":null,"ref":"refs/heads/24-no-protection-for-missing-keys","pushedAt":"2023-11-29T03:22:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"}},{"before":"979a33002517e9ed308526f68ccd3694357f911a","after":"82840117aacf9e395b6382b3109bdae8636d8cce","ref":"refs/heads/main","pushedAt":"2023-11-29T03:22:46.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Merge pull request #25 from troykelly/24-no-protection-for-missing-keys\n\nImprove Robustness and Error Handling in Media Deduplication Script","shortMessageHtmlLink":"Merge pull request #25 from troykelly/24-no-protection-for-missing-keys"}},{"before":"df927d4ee2811f30392d58d7cdd35bbf8ed1df7d","after":"3e1d6da08ce64d11b6e7e8e9944dd04bcc7bdd6d","ref":"refs/heads/24-no-protection-for-missing-keys","pushedAt":"2023-11-29T03:17:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Enhance error handling in main deduplication script function\n\nThis commit improves the main function of the deduplication script by adding more granular error handling. Specific exceptions are now caught and handled to provide clear, actionable feedback upon script failure. These enhancements ensure that different types of errors are logged appropriately and that the script exits with meaningful error information.\n\nThe changes include the following:\n\n- Catch `json.JSONDecodeError` to handle cases where JSON parsing fails, which could be indicative of bad data being returned from the Emby server.\n- Catch `httpx.TimeoutException` to handle scenarios where HTTP requests to the Emby server time out, possibly due to network issues or server problems.\n- Retain the catch-all `Exception` handling as a safety net for any other unexpected issues, ensuring the script doesn't crash and provides accurate error context for debugging.\n\nThese modifications preserve all existing functionality while significantly improving the script's resilience and maintainability.","shortMessageHtmlLink":"Enhance error handling in main deduplication script function"}},{"before":"563433993074b357f5a9734f808c1b9d099e00c0","after":"df927d4ee2811f30392d58d7cdd35bbf8ed1df7d","ref":"refs/heads/24-no-protection-for-missing-keys","pushedAt":"2023-11-29T03:12:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Refactor media quality assessment and logout error handling\n\nThis commit refines the error handling in the deduplication script by focusing on two key functions:\n\n1. The `get_quality_description` function has been updated to include checks for the presence of 'MediaStreams' before proceeding with the media item quality assessment. In the absence of critical stream data, the function now logs a warning and provides a default description marked as 'unknown'. This prevents potential KeyErrors and ensures graceful handling of incomplete media item information.\n\n2. The `logout` function has been thoroughly refactored to incorporate more precise error handling. The function now distinguishes between different types of HTTP-related exceptions, such as HTTP status errors, request errors, and timeouts. The broad Exception catch-all has been retained as a fail-safe for any additional, unexpected exceptions. The improved error logging provides clear, actionable feedback that enhances the script's robustness.\n\n- Add checks and fallbacks in media quality assessment\n- Distinguish between specific HTTP exceptions during logout\n- Retain generic exception catch as a fail-safe","shortMessageHtmlLink":"Refactor media quality assessment and logout error handling"}},{"before":"979a33002517e9ed308526f68ccd3694357f911a","after":"563433993074b357f5a9734f808c1b9d099e00c0","ref":"refs/heads/24-no-protection-for-missing-keys","pushedAt":"2023-11-29T03:05:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"troykelly","name":"Troy Kelly","path":"/troykelly","primaryAvatarUrl":"https://github.com/avatars/u/4564803?s=80&v=4"},"commit":{"message":"Handle items without 'MediaStreams' key in deduplication script\n\nThis update modifies the `rate_media_items` function to check for the presence of the 'MediaStreams' key before processing media items. If the key is missing, the item is skipped, and a warning is logged. This change ensures more robust handling of inconsistent data structures and prevents KeyError exceptions from halting the deduplication process.\n\nThe quality description extraction is also now conditional, only attempting to gather details if both video and audio streams are present. This additional check helps avoid errors related to unexpected or incomplete media information.\n\n- Add a check for the 'MediaStreams' key existence before attempting to iterate.\n- Log a warning if 'MediaStreams' is missing and skip the item.\n- Update `get_quality_description` to only proceed if required streams are found.","shortMessageHtmlLink":"Handle items without 'MediaStreams' key in deduplication script"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEZzmqFQA","startCursor":null,"endCursor":null}},"title":"Activity · troykelly/emby-dedupe"}