add announcements and make the github api calls more robust

This commit is contained in:
Michael Q Larson
2015-02-16 17:48:42 -08:00
parent 762ee8aa26
commit d279ac6d1b
6 changed files with 47 additions and 39 deletions

View File

@ -104,24 +104,21 @@ module.exports = {
var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
var githubHeaders = {headers: {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1521.3 Safari/537.36'}, port:80 };
client.get('https://trello.com/1/boards/BA3xVpz9/cards?key=' + secrets.trello.key, function(trello, res2) {
client.get('https://www.googleapis.com/blogger/v3/blogs/2421288658305323950/posts?key=' + secrets.blogger.key, function (blogger, res5) {
trello = trello ? (JSON.parse(trello)).length : "Can't connecto to Trello";
client.get('https://www.googleapis.com/blogger/v3/blogs/2421288658305323950/posts?key=' + secrets.blogger.key, function (blog, res5) {
var blog = blog.length > 100 ? JSON.parse(blog) : "";
client.get('https://api.github.com/repos/freecodecamp/freecodecamp/pulls?client_id=' + secrets.github.clientID + '&client_secret=' + secrets.github.clientSecret, githubHeaders, function(pulls, res3) {
pulls = Object.keys(JSON.parse(pulls)).length || "Can't connect to github";
client.get('https://api.github.com/repos/freecodecamp/freecodecamp/issues?client_id=' + secrets.github.clientID + '&client_secret=' + secrets.github.clientSecret, githubHeaders, function(issues, res4) {
var nonprofitProjects = (JSON.parse(trello)).length || 27;
issues = Object.keys(JSON.parse(issues)).length - pulls || "Can't connect to github";
var blog = JSON.parse(blogger);
issues = ((pulls === parseInt(pulls)) && issues) ? Object.keys(JSON.parse(issues)).length - pulls : "Can't connect to GitHub";
var announcements = resources.announcements;
debug('here', announcements);
User.count({'points': {'$gt': 2}}, function (err, c3) {
if (err) {
debug('User err: ', err);
next(err);
}
User.count({'points': {'$gt': 9}}, function (err, c10) {
if (err) {
debug('User err: ', err);
next(err);
}
User.count({'points': {'$gt': 29}}, function (err, c30) {
if (err) {
debug('User err: ', err);
next(err);
@ -134,24 +131,23 @@ module.exports = {
res.render('resources/learn-to-code', {
title: 'About Free Code Camp and Our Team of Volunteers',
daysRunning: daysRunning,
nonprofitProjects: nonprofitProjects,
nonprofitProjects: trello,
pulls: pulls,
issues: issues,
c3: c3,
c10: c10,
c30: c30,
all: all,
blog1Title: blog["items"][0]["title"],
blog1Link: blog["items"][0]["url"],
blog2Title: blog["items"][1]["title"],
blog2Link: blog["items"][1]["url"],
blog3Title: blog["items"][2]["title"],
blog3Link: blog["items"][2]["url"],
blog4Title: blog["items"][3]["title"],
blog4Link: blog["items"][3]["url"],
blog5Title: blog["items"][4]["title"],
blog5Link: blog["items"][4]["url"]
});
blog1Title: blog ? blog["items"][0]["title"] : "Can't connect to Blogger",
blog1Link: blog ? blog["items"][0]["url"] : "http://blog.freecodecamp.com",
blog2Title: blog ? blog["items"][1]["title"] : "Can't connect to Blogger",
blog2Link: blog ? blog["items"][1]["url"] : "http://blog.freecodecamp.com",
blog3Title: blog ? blog["items"][2]["title"] : "Can't connect to Blogger",
blog3Link: blog ? blog["items"][2]["url"] : "http://blog.freecodecamp.com",
blog4Title: blog ? blog["items"][3]["title"] : "Can't connect to Blogger",
blog4Link: blog ? blog["items"][3]["url"] : "http://blog.freecodecamp.com",
blog5Title: blog ? blog["items"][4]["title"] : "Can't connect to Blogger",
blog5Link: blog ? blog["items"][4]["url"] : "http://blog.freecodecamp.com",
announcements: announcements
});
});
});

View File

@ -1,4 +1,9 @@
{
"announcements": [
["Screen Hero is now free on Windows and Mac! Follow these special instructions to install it.", "http://freecodecamp.com/challenges/34"],
["Bonfire is now live with 30+ challenges! If you haven't started CoderByte, do these instead.", "http://freecodecamp.com/bonfires"],
["Once you finish all the challenges, come to our Nonprofit Project Office Hours every Monday and Thursday Night at 9 pm EST", "https://gitter.im/FreeCodeCamp/NonprofitProjects"]
],
"questions": [{
"question": "Time Complexity of Accessing Array Index (int a = ARR[5];)",
"answer": "O(1)"

View File

@ -274,7 +274,7 @@ block content
.col-xs-12
if (user.profile.username)
a.btn.btn-lg.btn-block.btn-info.btn-link-social(href='/#{user.profile.username}') Check out my Public Profile
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/') Take me to my current challenge
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/challenges') Take me to my current challenge
a.btn.btn-lg.btn-block.btn-warning.btn-link-social(href='/logout') Sign out
br
- if (!user.google || !user.facebook || /*!user.github ||*/ !user.linkedin || !user.twitter)

View File

@ -13,7 +13,7 @@
a(href='/challenges/0') Challenges
- else
li
a(href='/') Challenges
a(href='/challenges') Challenges
- if (!cc || (cc && cc[1] < 1))
li
a(href='/challenges/1') Chat

View File

@ -6,17 +6,17 @@ h2.stats-text
.col-xs-6.text-right Nonprofit Projects:
.col-xs-6.text-left= nonprofitProjects
| &nbsp
a(href="https://trello.com/b/BA3xVpz9/nonprofit-projects") (view)
a(href="https://trello.com/b/BA3xVpz9/nonprofit-projects") (view them)
.row
.col-xs-6.text-right Open Issues:
.col-xs-6.text-left= issues
| &nbsp
a(href="https://github.com/freecodecamp/freecodecamp/issues") (view)
a(href="https://github.com/freecodecamp/freecodecamp/issues") (create one)
.row
.col-xs-6.text-right Pull Requests:
.col-xs-6.text-left= pulls
| &nbsp
a(href="https://github.com/freecodecamp/freecodecamp/pulls") (view)
a(href="https://github.com/freecodecamp/freecodecamp/pulls") (create one)
.row
.col-xs-6.text-right Campers with at least...
.col-xs-4
@ -26,9 +26,6 @@ h2.stats-text
.row
.col-xs-6.text-right 10 Points:
.col-xs-6.text-left= c10
.row
.col-xs-6.text-right 30 Points:
.col-xs-6.text-left= c30
.row
.col-xs-6.text-right All 54 Points:
.col-xs-6.text-left= all

View File

@ -8,6 +8,16 @@ block content
var challengeName = 'Learn to code'
.row
.col-xs-12.col-sm-12.col-md-6
.panel.panel-info
.panel-heading.landing-panel-heading.text-center Announcements
.panel-body
.landing-panel-body.text-center
for announcement in announcements
h2
if (announcement.length > 1)
a(href=announcement[1])= announcement[0]
else
= announcement[0]
include ../partials/faq
.col-xs-12.col-sm-12.col-md-6
.panel.panel-info