{"id":28316970,"url":"https://github.com/dotwee/node-red-raindrop","last_synced_at":"2026-05-09T00:14:33.279Z","repository":{"id":295321345,"uuid":"989804575","full_name":"dotWee/node-red-raindrop","owner":"dotWee","description":"Node-RED contribution package for interacting with the Raindrop.io API. Nodes for managing bookmarks, collections, tags, and user information.","archived":false,"fork":false,"pushed_at":"2026-05-05T08:34:45.000Z","size":960,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-05T10:25:20.999Z","etag":null,"topics":["node-red","node-red-architecture","node-red-contrib","node-red-flow","nodejs","npm","npm-module","npm-package"],"latest_commit_sha":null,"homepage":"https://flows.nodered.org/node/@dotwee/node-red-raindrop","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotWee.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-24T21:28:42.000Z","updated_at":"2026-05-05T08:34:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"acd320a6-e382-4e19-9418-b747d78ec14f","html_url":"https://github.com/dotWee/node-red-raindrop","commit_stats":null,"previous_names":["dotwee/node-red-raindrop"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/dotWee/node-red-raindrop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2Fnode-red-raindrop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2Fnode-red-raindrop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2Fnode-red-raindrop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2Fnode-red-raindrop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotWee","download_url":"https://codeload.github.com/dotWee/node-red-raindrop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotWee%2Fnode-red-raindrop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32802650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["node-red","node-red-architecture","node-red-contrib","node-red-flow","nodejs","npm","npm-module","npm-package"],"created_at":"2025-05-25T03:08:41.987Z","updated_at":"2026-05-09T00:14:33.273Z","avatar_url":"https://github.com/dotWee.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node-RED Raindrop Client\n\n[![GitHub License](https://img.shields.io/github/license/dotWee/node-red-raindrop)](https://github.com/dotWee/node-red-raindrop)\n[![GitHub Issues or Pull Requests](https://img.shields.io/github/issues/dotwee/node-red-raindrop)](https://github.com/dotWee/node-red-raindrop)\n[![NPM Version](https://img.shields.io/npm/v/%40dotwee%2Fnode-red-raindrop)](https://www.npmjs.com/package/@dotwee/node-red-raindrop)\n[![NPM Downloads](https://img.shields.io/npm/dm/%40dotwee%2Fnode-red-raindrop)](https://www.npmjs.com/package/@dotwee/node-red-raindrop)\n[![CI Status](https://github.com/dotWee/node-red-raindrop/actions/workflows/ci.yml/badge.svg)](https://github.com/dotWee/node-red-raindrop/actions/workflows/ci.yml)\n\nA comprehensive [Node-RED](https://nodered.org) contribution package for interacting with the [Raindrop.io](https://raindrop.io) API. This package provides a complete set of nodes for managing bookmarks, collections, tags, and user information in Raindrop.io.\n\n## Features\n\n- ✅ **Full CRUD Operations** for raindrops (bookmarks) and collections\n- ✅ **Advanced Search \u0026 Filtering** with support for Raindrop.io search operators\n- ✅ **Tag Management** for organizing and retrieving tags\n- ✅ **User Information** access and management\n- ✅ **Authentication** via OAuth access tokens\n- ✅ **Comprehensive Testing** with unit test coverage\n- ✅ **TypeScript Client** integration using `@lasuillard/raindrop-client`\n\n## Installation\n\n### From npm\n\n```bash\ncd ~/.node-red\nnpm install @dotwee/node-red-raindrop\n```\n\n### From GitHub Packages\n\n```bash\ncd ~/.node-red\nnpm install @dotwee/node-red-raindrop --registry=https://npm.pkg.github.com\n```\n\n### From source\n\n```bash\ncd ~/.node-red\n# Clone the repository first if you haven't\n# git clone https://github.com/dotWee/node-red-raindrop.git\n# cd node-red-raindrop\nnpm install\n# cd ..\n# Then link it or install directly\nnpm install /path/to/your-local/node-red-raindrop\n```\n\n## Quick Start\n\n### 1. Get Your API Access Token\n\n1. Go to [Raindrop.io Integrations](https://app.raindrop.io/settings/integrations)\n2. Create a new app to get your access token\n3. Copy the access token for use in Node-RED\n\n### 2. Configure Authentication\n\n1. Add a **Raindrop Config** node to your flow\n2. Enter your access token\n3. Test the connection to verify it works\n\n### 3. Start Using the Nodes\n\nYou can now use any of the Raindrop nodes in your flows. All operational nodes require a Raindrop Config node to be configured.\n\n## Available Nodes\n\n### Configuration\n\n- **raindrop-config** - Authentication and API configuration\n\n### Raindrop Operations\n\n- **raindrop-create** - Create new bookmarks\n- **raindrop-get** - Retrieve individual bookmarks by ID\n- **raindrop-update** - Update existing bookmarks\n- **raindrop-delete** - Delete bookmarks\n- **raindrop-search** - Search and filter bookmarks with pagination\n\n### Collection Operations\n\n- **collection-create** - Create new collections\n- **collection-get** - Retrieve individual collections by ID\n- **collection-update** - Update existing collections\n- **collection-delete** - Delete collections\n- **collection-list** - List all collections\n\n### Tag Operations\n\n- **tags-get** - Retrieve tags from collections\n- **tags-manage** - Manage tags (rename, merge, delete)\n\n### User Operations\n\n- **user-get** - Get current user information\n\n### Highlight Operations\n\n- **highlights-get** - Retrieve text highlights\n\n## Node Details\n\n### Raindrop Search Node\n\nThe search node supports all Raindrop.io search operators:\n\n```text\ntag:javascript        # Search by tag\ntype:article          # Search by type\ndomain:github.com     # Search by domain\nimportant:true        # Important bookmarks only\nbroken:true           # Broken links only\ncreated:2023          # By creation year\n\"exact phrase\"        # Exact phrase search\n```\n\n### Collection IDs\n\nSpecial collection IDs in Raindrop.io:\n\n- **0** - All raindrops (except Trash)\n- **-1** - Unsorted collection  \n- **-99** - Trash collection\n\n### Error Handling\n\nAll nodes include comprehensive error handling:\n\n- Invalid authentication tokens\n- Network connectivity issues\n- API rate limiting\n- Missing required parameters\n- Invalid data formats\n\n## Examples\n\n### Create a Bookmark\n\n```json\n[\n    {\n        \"id\": \"create-example\",\n        \"type\": \"raindrop-create\", \n        \"name\": \"Create Bookmark\",\n        \"config\": \"raindrop-config-node-id\"\n    }\n]\n```\n\nInput message:\n\n```json\n{\n    \"payload\": {\n        \"link\": \"https://nodejs.org\",\n        \"title\": \"Node.js Official Website\", \n        \"tags\": [\"nodejs\", \"javascript\", \"development\"],\n        \"important\": true,\n        \"collectionId\": 12345\n    }\n}\n```\n\n### Search Bookmarks\n\n```json\n[\n    {\n        \"id\": \"search-example\",\n        \"type\": \"raindrop-search\",\n        \"name\": \"Search JS Articles\", \n        \"config\": \"raindrop-config-node-id\",\n        \"search\": \"tag:javascript type:article\",\n        \"sort\": \"-created\",\n        \"perpage\": \"10\"\n    }\n]\n```\n\n### List Collections\n\n```json\n[\n    {\n        \"id\": \"list-example\", \n        \"type\": \"collection-list\",\n        \"name\": \"Get All Collections\",\n        \"config\": \"raindrop-config-node-id\",\n        \"includeChildCollections\": true\n    }\n]\n```\n\n## Example Flows\n\nThis package provides ready-to-use example flows to help you get started quickly. You can find them in the `examples/` directory:\n\n- **Create Bookmark**: `examples/Create Bookmark.json`\n- **Search Bookmarks**: `examples/Search Bookmarks.json`\n- **List Collections**: `examples/List Collections.json`\n\n### Importing Example Flows in Node-RED\n\n1. In Node-RED, click the menu (☰) in the top right corner.\n2. Select **Import** \u003e **Examples** \u003e **@dotwee/node-red-raindrop**.\n3. Choose the example you want to import.\n\nAlternatively, you can import the JSON files directly:\n\n1. Open the `examples/` directory in this repository.\n2. Copy the contents of the desired `.json` file.\n3. In Node-RED, click the menu (☰) \u003e **Import** \u003e **Clipboard** and paste the JSON.\n\nThese examples are designed to be short and self-contained, with comment nodes describing their functionality. No third-party nodes are required beyond this package.\n\n## Development\n\n### Requirements\n\n- Node.js 14+\n- Node-RED 2.0+\n\n### Dependencies\n\n- `@lasuillard/raindrop-client` - TypeScript client for Raindrop.io API\n- `axios` - HTTP client\n\n### Development Dependencies\n\n- `node-red-node-test-helper` - Testing framework\n- `mocha` - Test runner\n- `should` - Assertion library\n\n### Running Tests\n\n```bash\nnpm test\n```\n\n### Project Structure\n\n```text\nnode-red-raindrop/\n├── nodes/                 # Node implementations\n│   ├── raindrop-config.js # Configuration node\n│   ├── raindrop-*.js      # Raindrop operation nodes  \n│   ├── collection-*.js    # Collection operation nodes\n│   ├── tags-*.js          # Tag operation nodes\n│   └── user-*.js          # User operation nodes\n├── test/                  # Unit tests\n│   └── *_spec.js          # Test files\n├── package.json           # Package configuration\n├── openapi.yaml          # API specification\n└── README.md             # This file\n```\n\n## API Coverage\n\nThis package provides nodes for the following Raindrop.io API endpoints:\n\n### Raindrops\n\n- ✅ Create raindrop\n- ✅ Get raindrop  \n- ✅ Update raindrop\n- ✅ Delete raindrop\n- ✅ Search raindrops\n- ✅ Upload files\n- ✅ Upload covers\n\n### Collections\n\n- ✅ Create collection\n- ✅ Get collection\n- ✅ Update collection\n- ✅ Delete collection\n- ✅ List collections\n- ✅ Upload collection covers\n- ✅ Merge collections\n- ✅ Share collections\n\n### Tags\n\n- ✅ Get tags\n- ✅ Rename/merge tags\n- ✅ Delete tags\n\n### Users\n\n- ✅ Get current user\n- ✅ Update user\n- ✅ Get public user\n\n### Highlights\n\n- ✅ Get highlights\n\n### Authentication  \n\n- ✅ OAuth token management\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Add tests for new functionality\n4. Ensure all tests pass\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the WTFPL License. See [LICENSE](./LICENSE) for details.\n\n## Links\n\n- [Raindrop.io](https://raindrop.io)\n- [Raindrop.io API Documentation](https://developer.raindrop.io)\n- [Node-RED](https://nodered.org)\n- [OpenAPI Specification](./openapi.yaml)\n\n## Support\n\nFor issues and questions:\n\n- [GitHub Issues](https://github.com/dotWee/node-red-raindrop/issues)\n- [Node-RED Forum](https://discourse.nodered.org)\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotwee%2Fnode-red-raindrop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotwee%2Fnode-red-raindrop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotwee%2Fnode-red-raindrop/lists"}