Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. var _ = require("underscore");
  2. var Q = require('q');
  3. const googleTrends = require('google-trends-api');
  4.  
  5.  
  6. function update_star_relevance(stars) {
  7.  
  8. var deferred = Q.defer();
  9. stars = [{ "star": { "star_name": "Mila Kunis" } },
  10. { "star": { "star_name": "Charlize Theron" } },
  11. { "star": { "star_name": "Tom Cruise" } }
  12. ]
  13.  
  14. Q.all(stars.map(row => {
  15. return googleTrends.interestOverTime({
  16. keyword: row.star.star_name,
  17. startTime: new Date(Date.now() - (365 * 24 * 60 * 60 * 1000))
  18. }).then(results => {
  19. results = JSON.parse(results);
  20. // check if rising in popularity
  21. var gains = _.reduce(results.default.timelineData, function (memo, item) {
  22. return item.value[0] - memo;
  23. }, 0);
  24. // check if it is a popular search
  25. var avg = _.reduce(results.default.timelineData, function (memo, item) {
  26. return (memo + item.value[0]) / 2;
  27. }, 0);
  28. //console.log(JSON.stringify(row.star));
  29. return {
  30. "gains": gains,
  31. "avg": avg
  32. };
  33. });
  34. }))
  35. .then(f => {
  36. console.log(f);
  37. //relevant_stars = _.sortBy(relevant_stars, 'gains');
  38. deferred.resolve(f);
  39. })
  40. .catch(function (err) {
  41. deferred.reject(err);
  42. });
  43.  
  44. return deferred.promise;
  45. }
  46. // There is plenty of other chained functions to process the data that I have excluded.
  47. update_star_relevance()
  48. .then(f => { console.log(f) })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement