{"id":20123256,"url":"https://github.com/citizen428/unsavory","last_synced_at":"2025-05-06T16:33:52.491Z","repository":{"id":57513675,"uuid":"147987741","full_name":"citizen428/unsavory","owner":"citizen428","description":"Unsavory removes stale Pinboard bookmarks","archived":false,"fork":false,"pushed_at":"2024-06-10T04:22:39.000Z","size":20,"stargazers_count":25,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-02T13:03:14.073Z","etag":null,"topics":["cli","golang","pinboard-api","tools"],"latest_commit_sha":null,"homepage":"","language":"Go","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/citizen428.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":"2018-09-09T02:49:47.000Z","updated_at":"2025-02-01T18:55:50.000Z","dependencies_parsed_at":"2024-06-20T01:36:05.174Z","dependency_job_id":null,"html_url":"https://github.com/citizen428/unsavory","commit_stats":{"total_commits":29,"total_committers":2,"mean_commits":14.5,"dds":0.4137931034482759,"last_synced_commit":"f539c46cfec9508de533bb6d11f4252de8fa7385"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citizen428%2Funsavory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citizen428%2Funsavory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citizen428%2Funsavory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citizen428%2Funsavory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/citizen428","download_url":"https://codeload.github.com/citizen428/unsavory/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252721134,"owners_count":21793761,"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":["cli","golang","pinboard-api","tools"],"created_at":"2024-11-13T19:44:04.180Z","updated_at":"2025-05-06T16:33:52.253Z","avatar_url":"https://github.com/citizen428.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# unsavory: get rid of those stale bookmarks!\n\n`unsavory` checks your [Pinboard](https://pinboard.in) bookmarks for dead links (specifically HTTP status codes [404](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404) and [410](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410)) and removes\nthem. Additionally it will also inform you about links which return a status code other than 200 (OK).\n\nThis is a Go re-implementation of the [original Ruby version](https://github.com/citizen428/unsavory-legacy).\n\nIf you wonder about the name, this program was originally written for [del.icio.us](https://en.wikipedia.org/wiki/Delicious_(website)) and I can't resist a bad pun.\n\n## Installation\n\n### Homebrew\n\n```sh\n$ brew tap citizen428/homebrew-tap\n$ brew install unsavory\n```\n\n### Release\n\nHead over to the [release page](https://github.com/citizen428/unsavory/releases) and download the archive for your operating system/architecture.\n\n### Docker\n\n```sh\n$ docker run --rm citizen428/unsavory -token=user:NNNNNN --dry-run\n```\n\n### Manual\n\n```sh\n$ go install github.com/citizen428/unsavory...\n```\n\n## Options\n\n```\nUsage of unsavory:\n  -dry-run\n    \tEnables dry run mode\n  -proxy-url string\n    \tHTTP proxy URL\n  -token string\n    \tPinboard API token\n```\n\n## Usage\n\nJust start `unsavory` from the command line and provide the Pinboard API token from your [settings page](https://pinboard.in/settings/password).\n\n```sh\n$ unsavory -token=user:NNNNNN\nRetrieving URLs\nRetrieved 783 URLS\n...\n```\n\nIf you don't want to actually delete links, add the `-dry-run` option:\n\n```sh\n$ unsavory -token=user:NNNNNN -dry-run\nYou are using dry run mode. No links will be deleted!\n\nRetrieving URLs\nRetrieved 783 URLS\n...\n```\n\n### Proxy servers\n\nIf a `HTTP_PROXY` environment variable is present, Go's HTTP client will automatically use it.\nAlternatively a proxy server can be specified via the `--proxy-url` option:\n\n```sh\n$ unsavory --token=user:NNNNNN --proxy-url=http://example.com:8080\n```\n\n## Warning\n\nAny link that returns an HTTP status code of 404 or 410 will be deleted without warning. There's no undo, use at your own risk!\n\n## Todo\n\n- [ ] Add tests\n- [ ] Feature parity with [legacy Ruby version](https://github.com/citizen428/unsavory-legacy)\n- [ ] Add option to replace links with Archive.org links (?)\n- [ ] Add option to update redirects (?)\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/citizen428/unsavory.\n\n## License\n\nThe program is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitizen428%2Funsavory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcitizen428%2Funsavory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitizen428%2Funsavory/lists"}