I am trying to query my database to grab a name of a beer and brewery, but when I start meteor and I tweet to my twitter bot I get this error: Can’t wait without a fiber. Am I using Meteor.wrapAsync correctly?
if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
var Twit = Meteor.npmRequire('twit');
var T = new Twit({
consumer_key: '',
consumer_secret: '',
access_token: '',
access_token_secret: '',
});
// Setting up a user stream
var stream = T.stream('user');
// Anytime someone tweets me
stream.on('tweet', tweetEvent);
function tweetEvent(eventMsg) {
// get a tweet!
// var fs = require('fs');
// var json = JSON.stringify(eventMsg,null,2);
// fs.writeFile("tweet.json", json);
var replyto = eventMsg.in_reply_to_screen_name;
var text = eventMsg.text;
var from = eventMsg.user.screen_name;
var time = eventMsg.created_at;
// var ranNum = Math.floor((Math.random() * 100) + 1);
var beerdbData = Meteor.wrapAsync(Beerdb.find().fetch());
beerdbData.forEach(function(brew) {
var brewery = Meteor.wrapAsync(brew.brewery)
var beer = Meteor.wrapAsync(brew.beer[0])
});
var beer = 'beer'
var brewery = 'brewery'
var randomBeer = [
'@' + from + ' Try a nice cold ' + beer + ' by ' + brewery + '.',
'@' + from + ' My sensors indicate you will like ' + beer + ' by ' + brewery + '.',
'@' + from + ' Sit back and relax with ' + beer + ' by ' + brewery + '.',
'@' + from + ' Wet your whistle with ' + beer + ' by ' + brewery + '.',
'@' + from + ' Good things come to those who drink ' + beer + ' by ' + brewery + '.',
'@' + from + ' Drink ' + beer + ' by ' + brewery + ', it will make you stronger.',
'@' + from + ' Keep calm and drink ' + beer + ' by ' + brewery + '.',
// '@' + from + ' ',
];
var randomTweetTwo = [
'@' + from + ' It’s BEER. Hooray beer!',
'@' + from + ' 🍺',
'@' + from + ' http://gph.is/1MWsstV?tc=1 via @giphy',
'@' + from + ' I am made with 10% recycled beer.',
'@' + from + ' Beer. Because milk is for babies.',
'@' + from + ' 01100010 01100101 01100101 01110010',
// '@' + from + ' ',
];
// The bot sends out a random beer from the db
if (text === '@mbbtest beer me'){
var newtweet = randomBeer[Math.floor(Math.random()*randomBeer.length)]
tweetIt(newtweet);
}
if (text === '@mbbtest 🍺'){
var beerTweet = randomTweetTwo[Math.floor(Math.random()*randomTweetTwo.length)]
tweetIt(beerTweet);
}
console.log(from + ' ' + time);
}
//The trigger to tweet
function tweetIt(txt) {
var tweet = {
status: txt
}
T.post('statuses/update', tweet, tweeted);
function tweeted(err, data, response) {
if (err) {
console.log('error:', err);
} else {
console.log("It worked!");
}
}
}
});
}