with RSS and CoinCatch?
The RSS app allows users to automatically fetch and parse updates from web feeds. This functionality is pivotal for staying abreast of content changes or updates from websites, blogs, and news outlets that offer RSS feeds. With Pipedream, you can harness the RSS API to trigger workflows that enable a broad range of automations, like content aggregation, monitoring for specific keywords, notifications, and data synchronization across platforms.
module.exports = defineComponent({
props: {
rss: {
type: "app",
app: "rss",
}
},
async run({steps, $}) {
// Retrieve items from a sample feed
const Parser = require('rss-parser');
const parser = new Parser();
const stories = []
// Replace with your feed URL
const url = "https://pipedream.com/community/latest.rss"
const feed = await parser.parseURL(url);
const { title, items } = feed
this.title = title
if (!items.length) {
$end("No new stories")
}
this.items = items
},
})
import { axios } from "@pipedream/platform";
import crypto from 'crypto';
export default defineComponent({
props: {
coincatch: {
type: "app",
app: "coincatch",
}
},
async run({ steps, $ }) {
const accessKey = this.coincatch.$auth.access_key;
const secretKey = this.coincatch.$auth.secret_key;
const passphrase = this.coincatch.$auth.passphrase;
// Helper function to generate signed headers
const createSignedHeaders = ({
method,
requestPath,
queryString = "",
body = "",
}) => {
const timestamp = Date.now().toString();
const upperMethod = method.toUpperCase();
// Build content to sign
let contentToSign = timestamp + upperMethod + requestPath;
if (queryString) {
contentToSign += "?" + queryString;
}
if (body) {
contentToSign += body;
}
// Generate signature
const hmac = crypto.createHmac("sha256", secretKey);
hmac.update(contentToSign);
const signature = hmac.digest("base64");
return {
timestamp,
method: upperMethod,
requestPath,
queryString,
body,
contentToSign,
signature,
headers: {
"ACCESS-KEY": accessKey,
"ACCESS-SIGN": signature,
"ACCESS-TIMESTAMP": timestamp,
"ACCESS-PASSPHRASE": passphrase,
},
};
};
// Call helper to get signed headers + metadata
const resp = createSignedHeaders({
method: "GET",
requestPath: "/api/mix/v1/account/accounts",
queryString: "productType=umcbl"
});
const url = `https://api.coincatch.com${resp.requestPath}${resp.queryString ? "?" + resp.queryString : ""
}`;
// Make the API request
return await axios($, {
method: resp.method,
url,
headers: resp.headers,
data: resp.body || undefined,
});
},
})