@dotwee/node-red-raindrop 1.0.3
Node-RED contribution package for interacting with the Raindrop.io API. Nodes for managing bookmarks, collections, tags, and user information.
Node-RED Raindrop Client
A comprehensive Node-RED contribution package for interacting with the Raindrop.io API. This package provides a complete set of nodes for managing bookmarks, collections, tags, and user information in Raindrop.io.
Features
- ✅ Full CRUD Operations for raindrops (bookmarks) and collections
 - ✅ Advanced Search & Filtering with support for Raindrop.io search operators
 - ✅ Tag Management for organizing and retrieving tags
 - ✅ User Information access and management
 - ✅ Authentication via OAuth access tokens
 - ✅ Comprehensive Testing with unit test coverage
 - ✅ TypeScript Client integration using 
@lasuillard/raindrop-client 
Installation
From npm
cd ~/.node-red
npm install @dotwee/node-red-raindrop
From GitHub Packages
cd ~/.node-red
npm install @dotwee/node-red-raindrop --registry=https://npm.pkg.github.com
From source
cd ~/.node-red
# Clone the repository first if you haven't
# git clone https://github.com/dotWee/node-red-raindrop.git
# cd node-red-raindrop
npm install
# cd ..
# Then link it or install directly
npm install /path/to/your-local/node-red-raindrop
Quick Start
1. Get Your API Access Token
- Go to Raindrop.io Integrations
 - Create a new app to get your access token
 - Copy the access token for use in Node-RED
 
2. Configure Authentication
- Add a Raindrop Config node to your flow
 - Enter your access token
 - Test the connection to verify it works
 
3. Start Using the Nodes
You can now use any of the Raindrop nodes in your flows. All operational nodes require a Raindrop Config node to be configured.
Available Nodes
Configuration
- raindrop-config - Authentication and API configuration
 
Raindrop Operations
- raindrop-create - Create new bookmarks
 - raindrop-get - Retrieve individual bookmarks by ID
 - raindrop-update - Update existing bookmarks
 - raindrop-delete - Delete bookmarks
 - raindrop-search - Search and filter bookmarks with pagination
 
Collection Operations
- collection-create - Create new collections
 - collection-get - Retrieve individual collections by ID
 - collection-update - Update existing collections
 - collection-delete - Delete collections
 - collection-list - List all collections
 
Tag Operations
- tags-get - Retrieve tags from collections
 - tags-manage - Manage tags (rename, merge, delete)
 
User Operations
- user-get - Get current user information
 
Highlight Operations
- highlights-get - Retrieve text highlights
 
Node Details
Raindrop Search Node
The search node supports all Raindrop.io search operators:
tag:javascript        # Search by tag
type:article          # Search by type
domain:github.com     # Search by domain
important:true        # Important bookmarks only
broken:true           # Broken links only
created:2023          # By creation year
"exact phrase"        # Exact phrase search
Collection IDs
Special collection IDs in Raindrop.io:
- 0 - All raindrops (except Trash)
 - -1 - Unsorted collection
 - -99 - Trash collection
 
Error Handling
All nodes include comprehensive error handling:
- Invalid authentication tokens
 - Network connectivity issues
 - API rate limiting
 - Missing required parameters
 - Invalid data formats
 
Examples
Create a Bookmark
[
    {
        "id": "create-example",
        "type": "raindrop-create", 
        "name": "Create Bookmark",
        "config": "raindrop-config-node-id"
    }
]
Input message:
{
    "payload": {
        "link": "https://nodejs.org",
        "title": "Node.js Official Website", 
        "tags": ["nodejs", "javascript", "development"],
        "important": true,
        "collectionId": 12345
    }
}
Search Bookmarks
[
    {
        "id": "search-example",
        "type": "raindrop-search",
        "name": "Search JS Articles", 
        "config": "raindrop-config-node-id",
        "search": "tag:javascript type:article",
        "sort": "-created",
        "perpage": "10"
    }
]
List Collections
[
    {
        "id": "list-example", 
        "type": "collection-list",
        "name": "Get All Collections",
        "config": "raindrop-config-node-id",
        "includeChildCollections": true
    }
]
Example Flows
This package provides ready-to-use example flows to help you get started quickly. You can find them in the examples/ directory:
- Create Bookmark: 
examples/Create Bookmark.json - Search Bookmarks: 
examples/Search Bookmarks.json - List Collections: 
examples/List Collections.json 
Importing Example Flows in Node-RED
- In Node-RED, click the menu (☰) in the top right corner.
 - Select Import > Examples > @dotwee/node-red-raindrop.
 - Choose the example you want to import.
 
Alternatively, you can import the JSON files directly:
- Open the 
examples/directory in this repository. - Copy the contents of the desired 
.jsonfile. - In Node-RED, click the menu (☰) > Import > Clipboard and paste the JSON.
 
These examples are designed to be short and self-contained, with comment nodes describing their functionality. No third-party nodes are required beyond this package.
Development
Requirements
- Node.js 14+
 - Node-RED 2.0+
 
Dependencies
@lasuillard/raindrop-client- TypeScript client for Raindrop.io APIaxios- HTTP client
Development Dependencies
node-red-node-test-helper- Testing frameworkmocha- Test runnershould- Assertion library
Running Tests
npm test
Project Structure
node-red-raindrop/
├── nodes/                 # Node implementations
│   ├── raindrop-config.js # Configuration node
│   ├── raindrop-*.js      # Raindrop operation nodes  
│   ├── collection-*.js    # Collection operation nodes
│   ├── tags-*.js          # Tag operation nodes
│   └── user-*.js          # User operation nodes
├── test/                  # Unit tests
│   └── *_spec.js          # Test files
├── package.json           # Package configuration
├── openapi.yaml          # API specification
└── README.md             # This file
API Coverage
This package provides nodes for the following Raindrop.io API endpoints:
Raindrops
- ✅ Create raindrop
 - ✅ Get raindrop
 - ✅ Update raindrop
 - ✅ Delete raindrop
 - ✅ Search raindrops
 - ✅ Upload files
 - ✅ Upload covers
 
Collections
- ✅ Create collection
 - ✅ Get collection
 - ✅ Update collection
 - ✅ Delete collection
 - ✅ List collections
 - ✅ Upload collection covers
 - ✅ Merge collections
 - ✅ Share collections
 
Tags
- ✅ Get tags
 - ✅ Rename/merge tags
 - ✅ Delete tags
 
Users
- ✅ Get current user
 - ✅ Update user
 - ✅ Get public user
 
Highlights
- ✅ Get highlights
 
Authentication
- ✅ OAuth token management
 
Contributing
- Fork the repository
 - Create a feature branch
 - Add tests for new functionality
 - Ensure all tests pass
 - Submit a pull request
 
License
This project is licensed under the WTFPL License. See LICENSE for details.
Links
Support
For issues and questions:
Changelog
See CHANGELOG.md for a detailed history of changes.