{"id":23347034,"url":"https://github.com/robintw/julian_timehop","last_synced_at":"2025-06-12T11:38:25.789Z","repository":{"id":137660389,"uuid":"139727792","full_name":"robintw/julian_timehop","owner":"robintw","description":"Sends a daily 'Julian Timehop' email reminding me of things Julian did on this day in previous years","archived":false,"fork":false,"pushed_at":"2019-12-02T21:13:15.000Z","size":1,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-11T05:07:03.684Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robintw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-04T13:44:42.000Z","updated_at":"2019-12-11T07:56:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"9134c874-f632-4a7f-80ac-3ef30558cb83","html_url":"https://github.com/robintw/julian_timehop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/robintw/julian_timehop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robintw%2Fjulian_timehop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robintw%2Fjulian_timehop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robintw%2Fjulian_timehop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robintw%2Fjulian_timehop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robintw","download_url":"https://codeload.github.com/robintw/julian_timehop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robintw%2Fjulian_timehop/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259456512,"owners_count":22860567,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-21T07:17:29.021Z","updated_at":"2025-06-12T11:38:25.722Z","avatar_url":"https://github.com/robintw.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Julian Timehop\nThis is a simple Python script that produces an email from a list of diary entries about my son's activities/achievements. It downloads a Word document from Dropbox, parses a table in the document, and sends an appropriate email. It is run every day on my Linux server (using cron).\n\nSee [this blog post](http://blog.rtwilson.com/creating-an-email-service-for-my-sons-childhood-memories-with-python) for more details.\n\n## Requirements:\n - python-docx\n - pandas\n - emails\n - [dropbox](https://pypi.org/project/dropbox/)\n\nYou will also need to set the following environment variables:\n\n - `SMTP_PASSWORD`\n - `DROPBOX_KEY`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobintw%2Fjulian_timehop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobintw%2Fjulian_timehop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobintw%2Fjulian_timehop/lists"}