{"action":"created","issue":{"url":"https://api.github.com/repos/gingerlime/smugline/issues/23","repository_url":"https://api.github.com/repos/gingerlime/smugline","labels_url":"https://api.github.com/repos/gingerlime/smugline/issues/23/labels{/name}","comments_url":"https://api.github.com/repos/gingerlime/smugline/issues/23/comments","events_url":"https://api.github.com/repos/gingerlime/smugline/issues/23/events","html_url":"https://github.com/gingerlime/smugline/pull/23","id":191066113,"number":23,"title":"Handle API errors with more grace","user":{"login":"koblas","id":219934,"avatar_url":"https://avatars.githubusercontent.com/u/219934?v=3","gravatar_id":"","url":"https://api.github.com/users/koblas","html_url":"https://github.com/koblas","followers_url":"https://api.github.com/users/koblas/followers","following_url":"https://api.github.com/users/koblas/following{/other_user}","gists_url":"https://api.github.com/users/koblas/gists{/gist_id}","starred_url":"https://api.github.com/users/koblas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koblas/subscriptions","organizations_url":"https://api.github.com/users/koblas/orgs","repos_url":"https://api.github.com/users/koblas/repos","events_url":"https://api.github.com/users/koblas/events{/privacy}","received_events_url":"https://api.github.com/users/koblas/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2016-11-22T17:04:00Z","updated_at":"2016-11-22T18:10:29Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/gingerlime/smugline/pulls/23","html_url":"https://github.com/gingerlime/smugline/pull/23","diff_url":"https://github.com/gingerlime/smugline/pull/23.diff","patch_url":"https://github.com/gingerlime/smugline/pull/23.patch"},"body":"The API will occasonally not return an MD5 for an image skip those in\r\nthe list of MD5 we consider. Also add retry logic to the uploader to\r\nhandle transient errors."},"comment":{"url":"https://api.github.com/repos/gingerlime/smugline/issues/comments/262319154","html_url":"https://github.com/gingerlime/smugline/pull/23#issuecomment-262319154","issue_url":"https://api.github.com/repos/gingerlime/smugline/issues/23","id":262319154,"user":{"login":"gingerlime","id":524274,"avatar_url":"https://avatars.githubusercontent.com/u/524274?v=3","gravatar_id":"","url":"https://api.github.com/users/gingerlime","html_url":"https://github.com/gingerlime","followers_url":"https://api.github.com/users/gingerlime/followers","following_url":"https://api.github.com/users/gingerlime/following{/other_user}","gists_url":"https://api.github.com/users/gingerlime/gists{/gist_id}","starred_url":"https://api.github.com/users/gingerlime/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gingerlime/subscriptions","organizations_url":"https://api.github.com/users/gingerlime/orgs","repos_url":"https://api.github.com/users/gingerlime/repos","events_url":"https://api.github.com/users/gingerlime/events{/privacy}","received_events_url":"https://api.github.com/users/gingerlime/received_events","type":"User","site_admin":false},"created_at":"2016-11-22T18:10:29Z","updated_at":"2016-11-22T18:10:29Z","body":"Something like `exifautotran` does this super-quick on thousands of images. And you do it only once. From then on, MD5 signatures work well from my experience.\r\n\r\nThe problem with your approach is that I can upload 1000 images and it will fail somewhere for a different reason (say my router gets disconnected for a while). Without de-duplication in place, I have to pretty much start from scratch anyway, or end up with lots of duplicate images. Even retrying a failed upload can be dangerous if SmugMug reports a failure even though the file was already uploaded (I've seen this happen, not sure if with SmugMug, but definitely elsewhere).\r\n\r\nSo you absolutely need duplicate detection to work in my opinion for any non-trivial number of images. Without it, it's a mess anyway. So I'd rather fail when an MD5 signature is not present, but know that I can fix my images and run it again. The de-duplication should skip all the other images anyway, and continue from the failed one."}}
{"actor":{"display_login":"gingerlime"}}