{"id": 577953727, "node_id": "MDExOlB1bGxSZXF1ZXN0NTc3OTUzNzI3", "number": 5, "state": "open", "locked": 0, "title": "WIP: Add Gmail takeout mbox import", "user": {"value": 306240, "label": "UtahDave"}, "body": "WIP\r\n\r\nThis PR adds the ability to import emails from a Gmail mbox export from Google Takeout.\r\n\r\nThis is my first PR to a datasette/dogsheep repo. I've tested this on my personal Google Takeout mbox with ~520,000 emails going back to 2004. This took around ~20 minutes to process.\r\n\r\nTo provide some feedback on the progress of the import I added the \"rich\" python module. I'm happy to remove that if adding a dependency is discouraged. However, I think it makes a nice addition to give feedback on the progress of a long import.\r\n\r\nDo we want to log emails that have errors when trying to import them?\r\n\r\nDealing with encodings with emails is a bit tricky. I'm very open to feedback on how to deal with those better. As well as any other feedback for improvements.", "created_at": "2021-02-22T21:30:40Z", "updated_at": "2021-07-28T07:18:56Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "65182811d59451299e75f09b4366bb221bc32b20", "assignee": null, "milestone": null, "draft": 0, "head": "a3de045eba0fae4b309da21aa3119102b0efc576", "base": "e54e544427f1cc3ea8189f0e95f54046301a8645", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 206649770, "label": "google-takeout-to-sqlite"}, "url": "https://github.com/dogsheep/google-takeout-to-sqlite/pull/5", "merged_by": null, "auto_merge": null} {"id": 698423667, "node_id": "MDExOlB1bGxSZXF1ZXN0Njk4NDIzNjY3", "number": 8, "state": "open", "locked": 0, "title": "Add Gmail takeout mbox import (v2)", "user": {"value": 28565, "label": "maxhawkins"}, "body": "WIP\r\n\r\nThis PR builds on #5 to continue implementing gmail import support.\r\n\r\nBuilding on @UtahDave's work, these commits add a few performance and bug fixes:\r\n\r\n* Decreased memory overhead for import by manually parsing mbox headers.\r\n* Fixed error where some messages in the mbox would yield a row with NULL in all columns.\r\n\r\nI will send more commits to fix any errors I encounter as I run the importer on my personal takeout data.", "created_at": "2021-07-28T07:05:32Z", "updated_at": "2023-09-08T01:22:49Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "d2809fd3fd835358d01ad10401228a562539b29e", "assignee": null, "milestone": null, "draft": 0, "head": "8e6d487b697ce2e8ad885acf613a157bfba84c59", "base": "e54e544427f1cc3ea8189f0e95f54046301a8645", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 206649770, "label": "google-takeout-to-sqlite"}, "url": "https://github.com/dogsheep/google-takeout-to-sqlite/pull/8", "merged_by": null, "auto_merge": null} {"id": 775078665, "node_id": "PR_kwDODFE5qs4uMsMJ", "number": 9, "state": "open", "locked": 0, "title": "Removed space from filename My Activity.json", "user": {"value": 91880982, "label": "widadmogral"}, "body": "File name from google takeout has no space. The code only runs without error if filename is \"MyActivity.json\" and not \"My Activity.json\". Is it a new change by Google?", "created_at": "2021-11-08T00:04:31Z", "updated_at": "2021-11-08T00:04:31Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "236da5c8302c09a20fcd4164c563cd9fa5c9595c", "assignee": null, "milestone": null, "draft": 0, "head": "6d111f65687e13ffd8b39aa05f1f8f4a351e7788", "base": "e54e544427f1cc3ea8189f0e95f54046301a8645", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 206649770, "label": "google-takeout-to-sqlite"}, "url": "https://github.com/dogsheep/google-takeout-to-sqlite/pull/9", "merged_by": null, "auto_merge": null} {"id": 948892757, "node_id": "PR_kwDODFE5qs44jvRV", "number": 11, "state": "open", "locked": 0, "title": "Update README.md", "user": {"value": 11887, "label": "ashanan"}, "body": "Fix typo", "created_at": "2022-05-27T03:13:59Z", "updated_at": "2022-05-27T03:13:59Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "3d479a1052f2661de61b15c50b7a5b2daa20a33a", "assignee": null, "milestone": null, "draft": 0, "head": "d4af1554a9b5ddedcd0b241450f7b935f38b9bf7", "base": "e54e544427f1cc3ea8189f0e95f54046301a8645", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 206649770, "label": "google-takeout-to-sqlite"}, "url": "https://github.com/dogsheep/google-takeout-to-sqlite/pull/11", "merged_by": null, "auto_merge": null} {"id": 1505067804, "node_id": "PR_kwDODFE5qs5ZtYMc", "number": 13, "state": "open", "locked": 0, "title": "use poetry for packages, asdf for versioning, and gh actions for ci", "user": {"value": 150855, "label": "iloveitaly"}, "body": "- build: use poetry for package management, asdf for python version\n- build: cleanup poetry config, add keywords, ignore dist\n- ci: migrate circleci to gh actions\n- fix: dup method definition\n", "created_at": "2023-09-06T17:59:16Z", "updated_at": "2023-09-06T17:59:16Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "cd4d8c4a7ecd231f6c5a8886245271934177f104", "assignee": null, "milestone": null, "draft": 0, "head": "b5f0ebe91755c46e01dc4aefb808f0292848fbed", "base": "e54e544427f1cc3ea8189f0e95f54046301a8645", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 206649770, "label": "google-takeout-to-sqlite"}, "url": "https://github.com/dogsheep/google-takeout-to-sqlite/pull/13", "merged_by": null, "auto_merge": null}