{"id":30143819,"url":"https://github.com/purarue/abook_parser","last_synced_at":"2025-08-11T07:20:56.505Z","repository":{"id":264292775,"uuid":"892956176","full_name":"purarue/abook_parser","owner":"purarue","description":"parser for the abook CLI","archived":false,"fork":false,"pushed_at":"2025-03-08T07:11:09.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-28T21:57:21.815Z","etag":null,"topics":["abook","mutt","neomutt"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/abook-parser/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/purarue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-11-23T06:21:02.000Z","updated_at":"2025-03-08T07:11:13.000Z","dependencies_parsed_at":"2025-03-08T08:19:57.708Z","dependency_job_id":"fb7f31db-8f2e-4c60-ab4b-94f88f799f2c","html_url":"https://github.com/purarue/abook_parser","commit_stats":null,"previous_names":["purarue/abook_parser"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/purarue/abook_parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/purarue%2Fabook_parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/purarue%2Fabook_parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/purarue%2Fabook_parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/purarue%2Fabook_parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/purarue","download_url":"https://codeload.github.com/purarue/abook_parser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/purarue%2Fabook_parser/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269844467,"owners_count":24484194,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["abook","mutt","neomutt"],"created_at":"2025-08-11T07:20:55.578Z","updated_at":"2025-08-11T07:20:56.493Z","avatar_url":"https://github.com/purarue.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# abook_parser\n\nparser for the [abook](https://abook.sourceforge.io/) CLI\n\n## Installation\n\nRequires `python3.12+`\n\nTo install with pip, run:\n\n```\npip install abook_parser\n```\n\n## Usage\n\nThis can read the addressbook, sort it by some key, and print a formatted version (either `JSON` or the `abook` addressbook format).\n\n```\nUsage: abook_parser parse [OPTIONS] FILE\n\n  Parse the addressbook file, and sort it by the name field\n\nOptions:\n  -t, --output-type [abook|json]  output format type\n  -k, --sort-key TEXT             sort addressbook items by key\n  -o, --output PATH               output file path\n  --help                          Show this message and exit.\n```\n\nIt also has commands to `add` or `edit` and item with a [`fzf`](https://github.com/junegunn/fzf)-based interactive mode.\n\n```\nUsage: abook_parser edit [OPTIONS] FILE\n\n  Edit a field in the addressbook file\n\nOptions:\n  --ignore-case / --no-ignore-case\n                                  ignore case in query\n  -q, --query TEXT                query string to search for\n  --help                          Show this message and exit.\n```\n\n## Library Usage\n\nThe `abook_parser.parser.AbookFile` class can be used to interact with your addressbook file in code. Here are some of my scripts:\n\n- [`abz`](https://purarue.xyz/d/abz?redirect) - [`fzf`](https://github.com/junegunn/fzf) based addressbook search script\n- [`abook-populate`](https://github.com/purarue/HPI-personal/blob/master/scripts/abook-populate) - interactively prompts me to add new contacts to my addressbook by parsing my [locally stored Mail](https://github.com/purarue/HPI/blob/master/doc/MAIL_SETUP.md) and [SMS exports](https://github.com/karlicoss/HPI/blob/master/my/smscalls.py)\n- [`birthdays`](https://purarue.xyz/d/birthdays?redirect) - lists upcoming birthdays from my addressbook\n\n### Tests\n\n```bash\ngit clone 'https://github.com/purarue/abook_parser'\ncd ./abook_parser\npip install '.[testing]'\npytest\nflake8 ./abook_parser\nmypy ./abook_parser\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurarue%2Fabook_parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpurarue%2Fabook_parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurarue%2Fabook_parser/lists"}