"use strict"; require("dotenv").config(); // P A C K A G E S const async = require("async"); const html = require("choo-async/html"); const local = require("app-root-path").require; const octokit = require("@octokit/rest")(); const redis = require("redis"); // V A R I A B L E S if (typeof process.env.GITHUB_OAUTH_TOKEN !== "undefined") { octokit.authenticate({ type: "oauth", token: process.env.GITHUB_OAUTH_TOKEN }); } const logSlackError = local("/helpers/slack"); let redisClient; // process.env.NODE_ENV === "development" ? "" : redisClient = redis.createClient(process.env.REDISCLOUD_URL); redisClient = redis.createClient(process.env.REDISCLOUD_URL); // P R O G R A M const githubFeed = () => async (state, emit) => { // eslint-disable-line /* process.env.NODE_ENV === "development" ? "" : */ redisClient.zrevrange("events", 0, 9, (err, reply) => { if (err) return; const events = []; reply.forEach(item => events.push(JSON.parse(item))); console.log(events); return events; // res.json(events); // respond with JSON }); /* return html`

Whitepaper

LBRY: A Decentralized Digital Content Marketplace

Some info here about the whitepaper and a link.

API Specification

All of our APIs, in one place

chainquery

lbry

lbrycrd

Lighthouse

The Front Desk

Latest news and musings from the LBRY team

`; */ }; function updateGithubFeed() { octokit.activity.getEventsForOrg({ org: "lbryio", per_page: 20, page: 1 }).then(({ data }) => { async.eachSeries(data, (item, callback) => { const eventString = JSON.stringify(item); redisClient.zrank("events", eventString, (err, reply) => { if (reply === null) redisClient.zadd("events", item.id, eventString, callback); else callback(); }); }, () => { // Keep the latest 50 events redisClient.zremrangebyrank("events", 0, -51); }); }).catch(err => { logSlackError("ERROR: Unable to update Github feed:\n", "```" + JSON.stringify(err) + "```"); }); } // E X P O R T module.exports = exports = githubFeed;