From d283a31128660fc53a5b88ea831ae7fe7ecc0fa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=9D=E3=83=BC=E3=83=AB=20=E3=82=A6=E3=82=A7=E3=83=83?= =?UTF-8?q?=E3=83=96?= Date: Mon, 30 Jul 2018 16:39:32 -0500 Subject: [PATCH] Fixed GitHub feed --- server.js | 26 +++++++++++++++++++++++++- views/pages/_api.js | 3 +++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index 3903589..0f85e97 100755 --- a/server.js +++ b/server.js @@ -4,6 +4,7 @@ // P A C K A G E S +const async = require("async"); const color = require("turbocolor"); const cors = require("cors"); const dedent = require("dedent"); @@ -298,7 +299,7 @@ function generateGitHubFeed(displayGitHubFeed) { `); } - // TODO: Update `.last-updated` every minute + updateGithubFeed(); // TODO: Update `.last-updated` every minute displayGitHubFeed(dedent`

GitHub

@@ -377,6 +378,29 @@ function newsletterSubscribe(data, socket) { }); } +function updateGithubFeed() { + octokit.activity.getEventsForOrg({ + org: "lbryio", + per_page: 20, + page: 1 + }).then(({ data }) => { + async.eachSeries(data, (item, callback) => { + const eventString = JSON.stringify(item); + + client.zrank("events", eventString, (err, reply) => { + if (reply === null) client.zadd("events", item.id, eventString, callback); + else callback(); + }); + }, () => client.zremrangebyrank("events", 0, -51)); // Keep the latest 50 events + }).catch(err => { + logSlackError( + "\n" + + "> *GITHUB FEED ERROR:* ```" + JSON.parse(JSON.stringify(err)) + "```" + "\n" + + "> _Cause: GitHub feed refresh_\n" + ); + }); +} + function uploadImage(imageSource) { return new Promise((resolve, reject) => { request({ diff --git a/views/pages/_api.js b/views/pages/_api.js index a2b62c5..d22e0a0 100644 --- a/views/pages/_api.js +++ b/views/pages/_api.js @@ -1,2 +1,5 @@ // https://github.com/lbryio/lbry/blob/master/docs/api.json +// https://rawgit.com/lbryio/lbry/master/docs/api.json +// https://cdn.rawgit.com/lbryio/lbry/5b3103e4/docs/api.json + // https://www.npmjs.com/package/make-fetch-happen