// const $ = require("nodeQuery");
// const ajax = require("ajax-request");
var fetch = require("node-fetch");
// Using require() in ES2015
var { FB } = require('fb');
//Function to add K to thousands
function kFormatter(num) {
return num > 999 ? (num/1000).toFixed(1) + 'k' : num;
}
var settings = {
//Get Access Tokens,keys,client_ids
instagram_token: process.env.instagram_token,
facebook_token: process.env.facebook_token,
youtube_key: process.env.youtube_token,
};
function facebook(userId){
return new Promise((resolve, reject) => {
fetch(`https://graph.facebook.com/v2.8/${userId}?access_token=${settings.facebook_token}&fields=fan_count`)
.then(function(res) {
return res.json();
})
.then(function(json) {
var followers = parseInt(json.fan_count);
resolve(followers)
})
.catch(e => reject(e));
})
}
function instagram(username){
return new Promise((resolve, reject) => {
fetch('https://www.instagram.com/' + username + '?__a=1')
.then(function(res) {
return res.json();
})
.then(function(json) {
const followers = parseInt(json.user.followed_by.count);
resolve(followers);
})
.catch(e => reject(e));
});
}
function youtube(username){
return new Promise((resolve, reject) => {
fetch(`https://www.googleapis.com/youtube/v3/channels?part=statistics&id=${username}&key=${settings.youtube_key}`)
.then(function(res) {
return res.json();
})
.then(function(json) {
var subscribers = parseInt(json.items[0].statistics.subscriberCount);
resolve(subscribers);
})
.catch(e => reject(e));
});
}
function twitter(username){
return new Promise((resolve, reject) => {
fetch(`https://cdn.syndication.twimg.com/widgets/followbutton/info.json?screen_names=${username}`)
.then(function(res) {
return res.json();
})
.then(function(json) {
var subscribers = parseInt(json[0].followers_count);
resolve(subscribers);
})
.catch(e => reject(e));
});
}
// const dummy = {
// facebook_user: '80655071208',
// instagram_user: 'rajinwonderland',
// youtube_user: 'destinws2',
// twitter_user: 'rajinwonderland'
// }
// if(settings.facebook_user!='' && settings.facebook_token!=''){
// facebook(dummy.facebook_user);
// }
// if(settings.instagram_user!='' && settings.instagram_token!=''){
// instagram(dummy.instagram_user);
// }
// if(settings.youtube_user!='' && settings.youtube_key!=''){
// youtube(dummy.youtube_user);
// }
// if(settings.twitter_user!=''){
// twitter(dummy.twitter_user);
// }
var express = require("@runkit/runkit/express-endpoint/1.0.0");
var app = express(exports);
// example userID: 80655071208
app.get("/facebook/:userId", (req, res, next) => {
facebook(req.params.userId)
.then((result) => res.send(200, result))
.catch(e => res.send(next(e)));
});
// example userID: envato
app.get("/instagram/:userId", (req, res, next) => {
instagram(req.params.userId)
.then((result) => res.send(200, result))
.catch(e => res.send(next(e)));
});
// example userID: UCsooa4yRKGN_zEE8iknghZA
app.get("/youtube/:userId", (req, res, next) => {
youtube(req.params.userId)
.then((result) => res.send(200, result))
.catch(e => res.send(next(e)));
});
// example userID: envato
app.get("/twitter/:userId", (req, res, next) => {
twitter(req.params.userId)
.then((result) => res.send(200, result))
.catch(e => res.send(next(e)));
});