with Readwise and IMAP?
A list of highlights with a pagination metadata. The rate limit of this endpoint is restricted to 20 requests per minute. Each request returns 1000 items. See the docs here
The Readwise API allows you to access and manipulate your Readwise data, which includes highlights, notes, and books from your reading list. With this API, you can automate the retrieval of your reading highlights, synchronize them across various platforms, or trigger custom actions based on new highlights added. Pipedream, as a serverless integration and compute platform, enables you to create workflows that leverage the Readwise API to build powerful automations, connecting your reading insights to countless other apps and services to enrich productivity and data management.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
readwise: {
type: "app",
app: "readwise",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://readwise.io/api/v2/books/`,
headers: {
"Authorization": `Token ${this.readwise.$auth.access_token}`,
},
})
},
})
Using Pipedream's IMAP API, developers can automate interactions with their email inbox, enabling serverless workflows that perform actions based on incoming emails. This could include parsing email contents, triggering events upon receiving emails from specific senders, attaching labels, and much more. By leveraging IMAP, Pipedream can act as a bridge between your email and other services, streamlining processes that would otherwise require manual intervention.
import { once } from "events";
import imaps from "imap-simple";
import cycle from "cycle";
export default defineComponent({
props: {
imap: {
type: "app",
app: "imap",
}
},
async run({steps, $}) {
const { host, port, email, password } = this.imap.$auth;
const connection = await imaps.connect({
imap: {
host,
port,
user: email,
password,
tls: true,
tlsOptions: { servername: host },
authTimeout: 3000
},
});
const boxes = await connection.getBoxes();
// Filter out circular references to parents
const filteredBoxes = cycle.decycle(boxes);
$.export("results", filteredBoxes);
connection.end();
await once(connection.imap, "end");
},
})