正在处理此应用程序www.prhunters.com它扫描Twitter并提取包含某些关键字的推文。
以下代码管理每日发送一次的每日摘要电子邮件。但是,有些日子没有匹配,电子邮件是空的。
如何自定义以下代码,仅在有推文时发送,而在电子邮件为空时不发送?
感谢您的帮助!
export function sendDailyTweets({notifications}){
console.log('send daily tweets');
let promises = putValuesInArray(mapObject(notifications, (email, matches) => {
return new Promise(function(resolve, reject){
//console.log(matches);
let template_object = {
showHeader: true,
date: moment().format('MMMM Do YYYY'),
categories: []
};
mapObject(matches, (keyword, tweets) => {
template_object.categories.push({
name: keyword,
tweets: tweets.map( (tweet) => {
return {
authorImage: tweet.user.profile_image_url_https.replace('_normal','_bigger'),
authorName: tweet.user.name,
authorLink: 'https://twitter.com/'+tweet.user.screen_name,
authorScreenname: tweet.user.screen_name,
tweetText: tweet.text,
tweetLink: 'https://twitter.com/'+tweet.user.screen_name+'/status/'+tweet.id_str
};
})
});
});
let html = emailTemplate(template_object);
mandrill.messages.send({
message: {
to: [{
email: email
}],
from_email: 'support@prhunters.com',
from_name: 'PR Hunters',
subject: "Daily PR Opportunities",
html,
tags: ["tweet_notification"],
track_opens: true,
auto_html: true,
preserve_recipients: false
}
},function(result){
console.log('email sent!',result);
if(result[0].status === "rejected" || result[0].status === "invalid"){
reject("Error sending email: "+result[0].reject_reason);
}
resolve(result);
},function(error){
console.error('error sending email',error);
reject(error);
});
});
}));
}
答案 0 :(得分:0)
发送电子邮件的位是......
mandrill.messages.send
因此您只需将该代码包装在IF条件中。
if (number of tweets>0) {
mandrill.messages.send
}
您只需确定正确的条件即可确定推文的数量是否大于0。
查看template_object并比较何时没有与有些匹配时的比较,并使用它来确定相关条件。